예제 #1
0
//APIQA
void AppClient::processSymbolListRequest( const ReqMsg& reqMsg, const OmmProviderEvent& event ) {
  Map m;
  for (int i = 0; i < symbolListSize; ++i) {
	if (i % 25 == 0)
	  std::cout << std::endl << i << ' ';
	else
	  std::cout << '.';
	std::ostringstream oss;
	oss << "A" << i;
	try {
	  m.addKeyAscii( EmaString(oss.str().c_str(), oss.str().length()), MapEntry::AddEnum, FieldList().complete() );
	}
	catch (const OmmInvalidUsageException& e) {
	  std::cout << "caught OmmInvalidUsageException [" << e.getText() << ']' << std::endl;
	}
	catch (const OmmException& e) {
	  std::cout << "caught OmmException [" << e.getExceptionTypeAsString() << '|'
				<< e.getText() << ']' << std::endl;
	}
  }
  m.complete();

  event.getProvider()
	.submit( RefreshMsg().name( reqMsg.getName() ).serviceName( reqMsg.getServiceName() )
			 .domainType( reqMsg.getDomainType() )
			 .solicited( true ).state( OmmState::OpenEnum, OmmState::OkEnum, OmmState::NoneEnum, "Refresh Completed" ).
		payload( m.complete() ).complete(), event.getHandle() );

  /*		payload( Map().
				 addKeyAscii( "A", MapEntry::AddEnum ).
				 addKeyAscii( "B", MapEntry::AddEnum ).				 
				 complete() ), event.getHandle() );
  */
  std::cout << "processSymbolListRequest" << std::endl;
}
예제 #2
0
void AppClient::processInvalidItemRequest( const ReqMsg& reqMsg, const OmmProviderEvent& event )
{
	event.getProvider().submit( StatusMsg().name( reqMsg.getName() ).serviceName( reqMsg.getServiceName() ).
		domainType( reqMsg.getDomainType() ).
		state( OmmState::ClosedEnum, OmmState::SuspectEnum, OmmState::NotFoundEnum, "Item not found" ),
		event.getHandle() );
}
예제 #3
0
void AppClient::onReissue(const ReqMsg& reqMsg, const OmmProviderEvent& event)
{
	switch (reqMsg.getDomainType())
	{
	case MMT_DICTIONARY:
		processDictionaryRequest(reqMsg, event);
		break;
	default:
		processInvalidItemRequest(reqMsg, event);
		break;
	}
}
예제 #4
0
void AppClient::onReqMsg( const ReqMsg& reqMsg, const OmmProviderEvent& event )
{
	switch ( reqMsg.getDomainType() )
	{
	case MMT_LOGIN:
		processLoginRequest( reqMsg, event );
		break;
	case MMT_MARKET_PRICE:
		processMarketPriceRequest( reqMsg, event );
		break;
	default:
		processInvalidItemRequest( reqMsg, event );
		break;
	}
}