void OmmArrayEncoder::addRmtes( const EmaBuffer& value ) { if ( !_rsslArray.primitiveType ) { _rsslArray.primitiveType = RSSL_DT_RMTES_STRING; acquireEncIterator(); initEncode(); } else if ( _rsslArray.primitiveType != RSSL_DT_RMTES_STRING ) { EmaString temp( "Attempt to addRmtes() while OmmArray contains='" ); temp.append( getDTypeAsString( dataType[ _rsslArray.primitiveType ] ) ).append( "'. " ); throwIueException( temp ); return; } if ( _rsslArray.itemLength && _rsslArray.itemLength < value.length() ) { EmaString temp( "Passed in value is longer than fixed width in addRmtes(). Fixed width='" ); temp.append( _rsslArray.itemLength ).append( "'. " ); throwIueException( temp ); return; } RsslBuffer buffer; buffer.data = (char*)value.c_buf(); buffer.length = value.length(); addPrimitiveEntry( "addRmtes()", &buffer ); }
void MapEncoder::encodePermissionData( const EmaBuffer& permission ) { if ( permission.length() > 0 ) { rsslMapEntryApplyHasPermData ( &_rsslMapEntry ); _rsslMapEntry.permData.length = permission.length(); _rsslMapEntry.permData.data = const_cast<char *>(permission.c_buf()); } }
void MapEncoder::addKeyRmtes(const EmaBuffer& key, MapEntry::MapAction action, const EmaBuffer& permissionData) { validateEntryKeyAndPayLoad(RSSL_DT_RMTES_STRING, RSSL_DT_NO_DATA, DataType::NoDataEnum, "addKeyRmtes()"); RsslBuffer buffer; buffer.data = (char*)key.c_buf(); buffer.length = key.length(); addEntryWithNoPayload(&buffer, action, permissionData, "addKeyRmtes()"); }
void hexToString( EmaString& output, const EmaBuffer& in ) { for ( UInt32 idx = 0; idx < in.length(); ++idx ) { char charOmmArray[10]; hexToChar( charOmmArray, *(in.c_buf() + idx) ); output.append( charOmmArray ); if ( in.length() > 1 && idx < in.length() - 1 ) output.append( " " ); } }
void AckMsgEncoder::extendedHeader( const EmaBuffer& extHeader ) { acquireEncIterator(); #ifdef __EMA_COPY_ON_SET__ _extendedHeader = extHeader; _rsslAckMsg.extendedHeader.data = (char*)_extendedHeader.c_buf(); _rsslAckMsg.extendedHeader.length = _extendedHeader.length(); #else _rsslAckMsg.extendedHeader.data = (char*)extHeader.c_buf(); _rsslAckMsg.extendedHeader.length = extHeader.length(); #endif rsslAckMsgApplyHasExtendedHdr( &_rsslAckMsg ); }
void GenericMsgEncoder::permissionData( const EmaBuffer& permData ) { acquireEncIterator(); #ifdef __EMA_COPY_ON_SET__ _permissionData = permData; _rsslGenericMsg.permData.data = (char*)_permissionData.c_buf(); _rsslGenericMsg.permData.length = _permissionData.length(); #else _rsslGenericMsg.permData.data = (char*)permData.c_buf(); _rsslGenericMsg.permData.length = permData.length(); #endif rsslGenericMsgApplyHasPermData( &_rsslGenericMsg ); }
void FieldListEncoder::addRmtes( Int16 fieldId, const EmaBuffer& value ) { if ( rsslFieldListCheckHasStandardData( &_rsslFieldList ) == RSSL_FALSE ) { rsslFieldListApplyHasStandardData( &_rsslFieldList ); acquireEncIterator(); initEncode(); } RsslBuffer buffer; buffer.data = (char*)value.c_buf(); buffer.length = value.length(); addPrimitiveEntry( fieldId, RSSL_DT_RMTES_STRING, "addRmtes()", &buffer ); }
void MapEncoder::addKeyRmtes( const EmaBuffer& key, MapEntry::MapAction action, const ComplexType& value, const EmaBuffer& permissionData ) { const Encoder& enc = value.getEncoder(); UInt8 rsslDataType = enc.convertDataType( value.getDataType() ); validateEntryKeyAndPayLoad(RSSL_DT_RMTES_STRING, rsslDataType, value.getDataType(), "addKeyRmtes()"); RsslBuffer buffer; buffer.data = (char*)key.c_buf(); buffer.length = key.length(); if ( action == MapEntry::DeleteEnum ) { addEntryWithNoPayload( &buffer, action, permissionData, "addKeyRmtes()" ); } else if ( value.hasEncoder() && enc.ownsIterator() ) { if ( enc.isComplete() ) addEncodedEntry( &buffer, action, value, permissionData, "addKeyRmtes()" ); else { EmaString temp( "Attempt to add a ComplexType while complete() was not called on this ComplexType." ); throwIueException( temp ); return; } } else if ( value.hasDecoder() ) { addDecodedEntry( &buffer, action, value, permissionData, "addKeyRmtes()" ); } else { if ( rsslDataType == RSSL_DT_MSG ) { EmaString temp( "Attempt to pass in an empty message while it is not supported." ); throwIueException( temp ); return; } passEncIterator( const_cast<Encoder&>( enc ) ); startEncodingEntry( &buffer, action, permissionData, "addKeyRmtes()" ); } }
int main( int argc, char* argv[] ) { try { authenticationToken.clear(); newauthenticationToken.clear(); authenticationExtended.clear(); processCommandLineOptions( argc, argv ); printActiveConfig(); AppLoginClient loginClient; EmaBuffer authnExtendedBuf; Login::LoginReq loginMsg; OmmConsumerConfig consumerConfig; loginMsg.name(authenticationToken).applicationId(appId).nameType(USER_AUTH_TOKEN); if (!authenticationExtended.empty()) { authnExtendedBuf.setFrom(authenticationExtended.c_str(), authenticationExtended.length()); loginMsg.authenticationExtended(authnExtendedBuf); } consumerConfig.addAdminMsg(loginMsg.getMessage()); AppClient appClient; OmmConsumer consumer( consumerConfig, loginClient); consumer.registerClient( ReqMsg().serviceName( "DIRECT_FEED" ).name( "TRI.N" ), appClient ); for (int i = 0; i < 60; i++) { if (loginClient._TTReissue != 0 && getCurrentTime() >= loginClient._TTReissue) { loginMsg.clear().name(authenticationToken).applicationId(appId).nameType(USER_AUTH_TOKEN); if (!authenticationExtended.empty()) { loginMsg.authenticationExtended(authnExtendedBuf); } consumer.reissue(loginMsg.getMessage(), loginClient._handle); loginClient._TTReissue = 0; } sleep(1000); if ( i == 3 ) { cout << endl << "SEND PAUSE USING first TOKEN" << endl; loginMsg.clear().name(authenticationToken).applicationId(appId).nameType(USER_AUTH_TOKEN).pause(true); consumer.reissue(loginMsg.getMessage(), loginClient._handle); } if ( i == 10 ) { cout << endl << "Renew new TOKEN with PAUSE falg" << endl; loginMsg.clear().name(newauthenticationToken).applicationId(appId).nameType(USER_AUTH_TOKEN).pause(true); consumer.reissue(loginMsg.getMessage(), loginClient._handle); } if ( i == 13 ) { cout << endl << "SEND RESUME USING second TOKEN" << endl; loginMsg.clear().name(newauthenticationToken).applicationId(appId).nameType(USER_AUTH_TOKEN).pause(false); consumer.reissue(loginMsg.getMessage(), loginClient._handle); } } } catch ( const OmmException& excp ) { cout << excp << endl; } return 0; }
void RmtesBufferImpl::apply( const EmaBuffer& buf ) { apply( buf.c_buf(), buf.length() ); }
void OmmOpaqueEncoder::set( const EmaBuffer& value ) { encodeBuffer( value.c_buf(), value.length() ); }