void Message::reverseRoute( const Header& header ) { // required routing tags BeginString beginString; SenderCompID senderCompID; TargetCompID targetCompID; m_header.removeField( beginString.getTag() ); m_header.removeField( senderCompID.getTag() ); m_header.removeField( targetCompID.getTag() ); if( header.getFieldIfSet( beginString ) ) { if( beginString.getValue().size() ) m_header.setField( beginString ); OnBehalfOfLocationID onBehalfOfLocationID; DeliverToLocationID deliverToLocationID; m_header.removeField( onBehalfOfLocationID.getTag() ); m_header.removeField( deliverToLocationID.getTag() ); if( beginString >= BeginString_FIX41 ) { if( header.getFieldIfSet( onBehalfOfLocationID ) ) { if( onBehalfOfLocationID.getValue().size() ) m_header.setField( DeliverToLocationID( onBehalfOfLocationID ) ); } if( header.getFieldIfSet( deliverToLocationID ) ) { if( deliverToLocationID.getValue().size() ) m_header.setField( OnBehalfOfLocationID( deliverToLocationID ) ); } } } if( header.getFieldIfSet( senderCompID ) ) { if( senderCompID.getValue().size() ) m_header.setField( TargetCompID( senderCompID ) ); } if( header.getFieldIfSet( targetCompID ) ) { if( targetCompID.getValue().size() ) m_header.setField( SenderCompID( targetCompID ) ); } // optional routing tags OnBehalfOfCompID onBehalfOfCompID; OnBehalfOfSubID onBehalfOfSubID; DeliverToCompID deliverToCompID; DeliverToSubID deliverToSubID; m_header.removeField( onBehalfOfCompID.getTag() ); m_header.removeField( onBehalfOfSubID.getTag() ); m_header.removeField( deliverToCompID.getTag() ); m_header.removeField( deliverToSubID.getTag() ); if( header.getFieldIfSet( onBehalfOfCompID ) ) { if( onBehalfOfCompID.getValue().size() ) m_header.setField( DeliverToCompID( onBehalfOfCompID ) ); } if( header.getFieldIfSet( onBehalfOfSubID ) ) { if( onBehalfOfSubID.getValue().size() ) m_header.setField( DeliverToSubID( onBehalfOfSubID ) ); } if( header.getFieldIfSet( deliverToCompID ) ) { if( deliverToCompID.getValue().size() ) m_header.setField( OnBehalfOfCompID( deliverToCompID ) ); } if( header.getFieldIfSet( deliverToSubID ) ) { if( deliverToSubID.getValue().size() ) m_header.setField( OnBehalfOfSubID( deliverToSubID ) ); } }
void DataDictionaryProvider::addTransportDataDictionary (const BeginString& beginString, const DataDictionary * pDD) { m_transportDictionaries[beginString.getValue()] = pDD; }