void AppClient::processDictionaryRequest(const ReqMsg& reqMsg, const OmmProviderEvent& event) { result = false; refreshMsg.clear().clearCache( true ); if ( reqMsg.getName() == "RWFFld" ) { currentValue = dataDictionary.getMinFid(); while ( !result ) { result = dataDictionary.encodeFieldDictionary( series, currentValue, reqMsg.getFilter(), fragmentationSize ); event.getProvider().submit( refreshMsg.name( reqMsg.getName() ).serviceName( reqMsg.getServiceName() ).domainType( MMT_DICTIONARY ). filter( reqMsg.getFilter() ).payload( series ).complete( result ).solicited( true ), event.getHandle() ); refreshMsg.clear(); } } else if ( reqMsg.getName() == "RWFEnum" ) { currentValue = 0; while ( !result ) { result = dataDictionary.encodeEnumTypeDictionary( series, currentValue, reqMsg.getFilter(), fragmentationSize ); event.getProvider().submit( refreshMsg.name( reqMsg.getName() ).serviceName( reqMsg.getServiceName() ).domainType( MMT_DICTIONARY ). filter( reqMsg.getFilter() ).payload( series ).complete( result ).solicited( true ), event.getHandle() ); refreshMsg.clear(); } } }
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() ); }
//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; }
void AppClient::processLoginRequest( const ReqMsg& reqMsg, const OmmProviderEvent& ommEvent ) { ommEvent.getProvider().submit(RefreshMsg().domainType(MMT_LOGIN).name(reqMsg.getName()).nameType(USER_NAME).complete(). solicited( true ).state( OmmState::OpenEnum, OmmState::OkEnum, OmmState::NoneEnum, "Login accepted" ), ommEvent.getHandle()); loginHandle = ommEvent.getHandle(); cout << endl << "Handle: " << ommEvent.getHandle() << " Closure: " << ommEvent.getClosure() << endl; cout << endl << "Item Name: " << (reqMsg.hasName() ? reqMsg.getName() : EmaString("<not set>")) << endl << "Service Name: " << (reqMsg.hasServiceName() ? reqMsg.getServiceName() : EmaString("<not set>")); }
//END APIQA void AppClient::processMarketPriceRequest( const ReqMsg& reqMsg, const OmmProviderEvent& event ) { if ( itemHandle != 0 ) { processInvalidItemRequest(reqMsg, event); return; } event.getProvider().submit( RefreshMsg().name( reqMsg.getName() ).serviceName( reqMsg.getServiceName() ).solicited( true ). state( OmmState::OpenEnum, OmmState::OkEnum, OmmState::NoneEnum, "Refresh Completed" ). payload( FieldList(). addReal( 22, 3990, OmmReal::ExponentNeg2Enum ). addReal( 25, 3994, OmmReal::ExponentNeg2Enum ). addReal( 30, 9, OmmReal::Exponent0Enum ). addReal( 31, 19, OmmReal::Exponent0Enum ). complete() ). complete(), event.getHandle() ); itemHandle = event.getHandle(); }