コード例 #1
0
STDMETHODIMP CMmQvRequestColl::Add(BSTR Key, IMmQvRequestAtom* Value, IMmQvRequestAtom** pRetVal)
{
	__CHECK_POINTER(pRetVal);
	_bstr_t bsKey(Key);

	try
	{
		if(m_coll.find(bsKey) != m_coll.end())
			EgLib::CComErrorWrapper::ThrowError(E_INVALIDARG, _T("Quote Request component with the same key is already exists."));


		if(!Value)
			*pRetVal = AddNew(bsKey).Detach();
		else
		{
			_CHK(IMmQvRequestCollImpl::Add(bsKey, Value), _T("Fail to add Quote Request."));
			Value->AddRef();
			*pRetVal = Value;
		}
	}
	catch(const _com_error& e)
	{
		return Error((PTCHAR)EgLib::CComErrorWrapper::ErrorDescription(e), IID_IMmQvRequestColl, e.Error());
	}

	return S_OK;
}
コード例 #2
0
ファイル: MmTradeChannel.cpp プロジェクト: AlexS2172/IVRM
void	CMmTradeChannel::AddManualTradeToTradesByUndMan(CComObject<CMmTradeInfoAtom>* pTrd)
{
	if(pTrd->m_enStatus == enTrsManual)
	{
		long lAssetID = 0L;
		pTrd->m_spUnd->get_ID(&lAssetID);
		_bstr_t	bsKey(lAssetID);

		long lTraderID = 0L;
		pTrd->m_spTrader->get_ID(&lTraderID);

		bsKey+= L"_" + _bstr_t(lTraderID);

		IMmTradeInfoCollPtr aTrdFind;
		m_pTrdByUndMan->get_Item(bsKey, &aTrdFind);
		if(NULL == aTrdFind)
			m_pTrdByUndMan->Add(bsKey, NULL, &aTrdFind);

		IMmTradeInfoAtomPtr spTrade;
		IMmTradeInfoAtomPtr spNewTrade;

		spTrade.Attach(pTrd, TRUE);
		aTrdFind->Add(pTrd->m_nTradeID, pTrd->m_dtTradeDate, spTrade,&spNewTrade);
	}

}
コード例 #3
0
ファイル: Table.cpp プロジェクト: agazso/keyspace
bool Table::Get(Transaction* tx, const char* key, ByteString &value)
{
	int len;
	
	len = strlen(key);
	
	ByteString bsKey(len, len, (char*) key);
	
	return Table::Get(tx, bsKey, value);
}
コード例 #4
0
ファイル: Table.cpp プロジェクト: agazso/keyspace
bool Table::Set(Transaction* tx,
				const char* key,
				const char* value)
{
	int len;
	
	len = strlen(key);
	ByteString bsKey(len, len, (char*) key);
	
	len = strlen(value);
	ByteString bsValue(len, len, (char*) value);
	
	return Table::Set(tx, bsKey, bsValue);
}
コード例 #5
0
ファイル: MmTradeChannel.cpp プロジェクト: AlexS2172/IVRM
void	CMmTradeChannel::AddTradeToTradesByFut(CComObject<CMmTradeInfoAtom>* pTrd)
{
	long lFutID = pTrd->m_spFut != NULL ? pTrd->m_spFut->get_ID(&lFutID) : 0L;
	if(lFutID)
	{
		_bstr_t bsKey(lFutID);
		IMmTradeInfoCollPtr aTrdFind;
		m_pTrdByFut->get_Item(bsKey, &aTrdFind);
		if(aTrdFind == NULL)
			m_pTrdByFut->Add(bsKey, NULL, &aTrdFind);

		IMmTradeInfoAtomPtr spTrade;
		IMmTradeInfoAtomPtr spNewTrade;

		spTrade.Attach(pTrd, TRUE);
		aTrdFind->Add(pTrd->m_nTradeID, pTrd->m_dtTradeDate, spTrade,&spNewTrade);
	}
}
コード例 #6
0
STDMETHODIMP CMmRpUndColl::Add(BSTR Key, IMmRpUndAtom* Value, IMmRpUndAtom** pRetVal)
{
	__CHECK_POINTER(pRetVal);

	try
	{
		_bstr_t bsKey(Key);
		if(m_coll.find(bsKey) != m_coll.end())
		{
			CComErrorWrapper::ThrowError(E_INVALIDARG, _T("Value with the same key already exists."));
		}

		CComObject<CMmRpUndAtom>* pUnd;

		if(!Value)
		{
			__CHECK_HRESULT(CComObject<CMmRpUndAtom>::CreateInstance(&pUnd), _T("Failed to add value."));
			pUnd->AddRef();
			if(FAILED(IMmRpUndCollImpl::Add(bsKey, pUnd)))
			{
				pUnd->Release();
				CComErrorWrapper::ThrowError(E_INVALIDARG, _T("Failed to add value."));
			}
			*pRetVal = pUnd;
		}
		else
		{
			__CHECK_HRESULT(IMmRpUndCollImpl::Add(bsKey, Value), _T("Failed to add value."));
			Value->AddRef();
			*pRetVal = Value;
		}
	}
	catch(const _com_error& e)
	{
		return Error((PTCHAR)CComErrorWrapper::ErrorDescription(e), IID_IMmRpUndColl, e.Error());
	}

	return S_OK;
}
コード例 #7
0
ファイル: MmOrderByReqColl.cpp プロジェクト: AlexS2172/IVRM
STDMETHODIMP CMmOrderByReqColl::Add(BSTR Key, DATE SortKey, IMmOrderAtom* Value, IMmOrderAtom** pRetVal)
{
	__CHECK_POINTER(pRetVal);

	try
	{
		_bstr_t bsKey(Key);
		if(m_collRef.find(bsKey) != m_collRef.end())
		{
			EgLib::CComErrorWrapper::ThrowError(E_INVALIDARG, _T("Order with the same key already exists."));
		}

		if(!Value)
		{
			CComObject<CMmOrderAtom>* pNewVal;
			__CHECK_HRESULT(CComObject<CMmOrderAtom>::CreateInstance(&pNewVal), _T("Failed to add order."));
			pNewVal->AddRef();
			if(FAILED(IMmOrderByReqCollImpl::Add(bsKey, SortKey, pNewVal)))
			{
				pNewVal->Release();
				EgLib::CComErrorWrapper::ThrowError(E_INVALIDARG, _T("Failed to add order."));
			}
			*pRetVal = pNewVal;
		}
		else
		{
			__CHECK_HRESULT(IMmOrderByReqCollImpl::Add(bsKey, SortKey, Value), _T("Failed to add order."));
			Value->AddRef();
			*pRetVal = Value;
		}
	}
	catch(const _com_error& e)
	{
		return Error((PTCHAR)EgLib::CComErrorWrapper::ErrorDescription(e), IID_IMmOrderByReqColl, e.Error());
	}

	return S_OK;
}
コード例 #8
0
// CEtsMmFilterAtomColl
STDMETHODIMP CEtsMmFilterAtomColl::Add(BSTR Key, IEtsMmFilterAtom* Value, IEtsMmFilterAtom** pRetVal)
{
	__CHECK_POINTER(pRetVal);
	_bstr_t bsKey(Key);

	try
	{
		if(m_coll.find(bsKey) != m_coll.end())
			EgLib::CComErrorWrapper::ThrowError(E_INVALIDARG, _T("Filter component with the same key is already exists."));

		CComObject<CEtsMmFilterAtom>* pFilterComp;

		if(!Value)
		{
			_CHK(CComObject<CEtsMmFilterAtom>::CreateInstance(&pFilterComp), _T("Fail to add Filter component."));
			IEtsMmFilterAtomPtr	spFilterComp;
			spFilterComp.Attach(pFilterComp, TRUE);
			
			if(FAILED(IEtsMmFilterAtomCollImpl::Add(bsKey, pFilterComp)))
				EgLib::CComErrorWrapper::ThrowError(E_INVALIDARG, _T("Fail to add Filter component."));

			*pRetVal = spFilterComp.Detach();
		}
		else
		{
			_CHK(IEtsMmFilterAtomCollImpl::Add(bsKey, Value), _T("Fail to add Filter component."));
			Value->AddRef();
			*pRetVal = Value;
		}
	}
	catch(const _com_error& e)
	{
		return Error((PTCHAR)EgLib::CComErrorWrapper::ErrorDescription(e), IID_IEtsMmFilterAtomColl, e.Error());
	}

	return S_OK;
}
コード例 #9
0
ファイル: MmTradeChannel.cpp プロジェクト: AlexS2172/IVRM
void CMmTradeChannel::AddTradeToTradesByUnd(CComObject<CMmTradeInfoAtom>* pTrd)
{
	long lFutureID = 0L;
	if (pTrd->m_spFut)
		pTrd->m_spFut->get_ID(&lFutureID);

	if(pTrd->m_spFut == NULL || !lFutureID)
	{
		long lAssetID = 0L;
		pTrd->m_spUnd->get_ID(&lAssetID);
		_bstr_t	bsKey(lAssetID);

		IMmTradeInfoCollPtr aTrdByUnd;
		m_pTrdByUnd->get_Item(bsKey, &aTrdByUnd);
		if(aTrdByUnd == NULL)
			m_pTrdByUnd->Add(bsKey, NULL, &aTrdByUnd);

		IMmTradeInfoAtomPtr spTrade;
		IMmTradeInfoAtomPtr spNewTrade;
		
		spTrade.Attach(pTrd, TRUE);
		aTrdByUnd->Add(pTrd->m_nTradeID, pTrd->m_dtTradeDate, spTrade,&spNewTrade);
	}
}