![]() |
Container for setting dictionaries mapped to sessions. More...
#include <SessionSettings.h>
Public Types | |
typedef std::map< SessionID, Dictionary > | Dictionaries |
Public Member Functions | |
SessionSettings () | |
SessionSettings (std::istream &stream) throw ( ConfigError ) | |
SessionSettings (const std::string &file) throw ( ConfigError ) | |
const bool | has (const SessionID &) const |
Check if session setings are present. | |
const Dictionary & | get (const SessionID &) const throw ( ConfigError ) |
Get a dictionary for a session. | |
void | set (const SessionID &, Dictionary) throw ( ConfigError ) |
Set a dictionary for a session. | |
const Dictionary & | get () const |
Get global default settings. | |
void | set (const Dictionary &defaults) throw ( ConfigError ) |
Set global default settings. | |
int | size () const |
Number of session settings. | |
std::set< SessionID > | getSessions () const |
Private Member Functions | |
void | validate (const Dictionary &) const throw ( ConfigError ) |
Private Attributes | |
Dictionaries | m_settings |
Dictionary | m_defaults |
Friends | |
std::ostream & | operator<< (std::ostream &, const SessionSettings &) |
Container for setting dictionaries mapped to sessions.
Definition at line 129 of file SessionSettings.h.
typedef std::map< SessionID, Dictionary > FIX::SessionSettings::Dictionaries |
Definition at line 152 of file SessionSettings.h.
FIX::SessionSettings::SessionSettings | ( | ) | [inline] |
Definition at line 132 of file SessionSettings.h.
FIX::SessionSettings::SessionSettings | ( | std::istream & | stream | ) | throw ( ConfigError ) |
Definition at line 34 of file SessionSettings.cpp.
FIX::SessionSettings::SessionSettings | ( | const std::string & | file | ) | throw ( ConfigError ) |
Definition at line 40 of file SessionSettings.cpp.
const Dictionary& FIX::SessionSettings::get | ( | ) | const [inline] |
Get global default settings.
Definition at line 145 of file SessionSettings.h.
References m_defaults.
Referenced by get().
00145 { return m_defaults; }
const Dictionary & FIX::SessionSettings::get | ( | const SessionID & | sessionID | ) | const throw ( ConfigError ) |
Get a dictionary for a session.
Definition at line 127 of file SessionSettings.cpp.
References get(), QF_STACK_POP, and QF_STACK_PUSH.
Referenced by FIX::Initiator::connect(), FIX::ScreenLogFactory::create(), FIX::FileStoreFactory::create(), FIX::FileLogFactory::create(), FIX::Initiator::getSessionSettings(), FIX::Acceptor::getSessionSettings(), FIX::Initiator::initialize(), and FIX::Acceptor::initialize().
00129 { QF_STACK_PUSH(SessionSettings::get) 00130 00131 Dictionaries::const_iterator i; 00132 i = m_settings.find( sessionID ); 00133 if ( i == m_settings.end() ) throw ConfigError( "Session not found" ); 00134 return i->second; 00135 00136 QF_STACK_POP 00137 }
std::set< SessionID > FIX::SessionSettings::getSessions | ( | ) | const |
Definition at line 166 of file SessionSettings.cpp.
References m_settings, QF_STACK_POP, and QF_STACK_PUSH.
Referenced by FIX::Initiator::initialize(), and FIX::Acceptor::initialize().
00167 { QF_STACK_PUSH(SessionSettings::getSessions) 00168 00169 std::set < SessionID > result; 00170 Dictionaries::const_iterator i; 00171 for ( i = m_settings.begin(); i != m_settings.end(); ++i ) 00172 result.insert( i->first ); 00173 return result; 00174 00175 QF_STACK_POP 00176 }
const bool FIX::SessionSettings::has | ( | const SessionID & | sessionID | ) | const |
Check if session setings are present.
Definition at line 121 of file SessionSettings.cpp.
References m_settings, QF_STACK_POP, and QF_STACK_PUSH.
Referenced by FIX::ScreenLogFactory::create().
00122 { QF_STACK_PUSH(SessionSettings::has) 00123 return m_settings.find( sessionID ) != m_settings.end(); 00124 QF_STACK_POP 00125 }
void FIX::SessionSettings::set | ( | const Dictionary & | defaults | ) | throw ( ConfigError ) |
Set global default settings.
Definition at line 158 of file SessionSettings.cpp.
00159 { 00160 m_defaults = defaults; 00161 Dictionaries::iterator i = m_settings.begin(); 00162 for( i = m_settings.begin(); i != m_settings.end(); ++i ) 00163 i->second.merge( defaults ); 00164 }
void FIX::SessionSettings::set | ( | const SessionID & | sessionID, | |
Dictionary | settings | |||
) | throw ( ConfigError ) |
Set a dictionary for a session.
Definition at line 139 of file SessionSettings.cpp.
References FIX::BEGINSTRING, QF_STACK_POP, QF_STACK_PUSH, FIX::SENDERCOMPID, and FIX::TARGETCOMPID.
00142 { QF_STACK_PUSH(SessionSettings::set) 00143 00144 if( has(sessionID) ) 00145 throw ConfigError( "Duplicate Session " + sessionID.toString() ); 00146 00147 settings.setString( BEGINSTRING, sessionID.getBeginString() ); 00148 settings.setString( SENDERCOMPID, sessionID.getSenderCompID() ); 00149 settings.setString( TARGETCOMPID, sessionID.getTargetCompID() ); 00150 00151 settings.merge( m_defaults ); 00152 validate( settings ); 00153 m_settings[ sessionID ] = settings; 00154 00155 QF_STACK_POP 00156 }
int FIX::SessionSettings::size | ( | ) | const [inline] |
Number of session settings.
Definition at line 150 of file SessionSettings.h.
References m_settings.
00150 { return m_settings.size(); }
void FIX::SessionSettings::validate | ( | const Dictionary & | dictionary | ) | const throw ( ConfigError ) [private] |
Definition at line 178 of file SessionSettings.cpp.
References FIX::BEGINSTRING, FIX::BeginString_FIX40, FIX::BeginString_FIX41, FIX::BeginString_FIX42, FIX::BeginString_FIX43, FIX::BeginString_FIX44, FIX::BeginString_FIXT11, and FIX::CONNECTION_TYPE.
00180 { 00181 std::string beginString = dictionary.getString( BEGINSTRING ); 00182 if( beginString != BeginString_FIX40 && 00183 beginString != BeginString_FIX41 && 00184 beginString != BeginString_FIX42 && 00185 beginString != BeginString_FIX43 && 00186 beginString != BeginString_FIX44 && 00187 beginString != BeginString_FIXT11 ) 00188 { 00189 throw ConfigError( std::string(BEGINSTRING) + " must be FIX.4.0 to FIX.4.4 or FIXT.1.1" ); 00190 } 00191 00192 std::string connectionType = dictionary.getString( CONNECTION_TYPE ); 00193 if( connectionType != "initiator" && 00194 connectionType != "acceptor" ) 00195 { 00196 throw ConfigError( std::string(CONNECTION_TYPE) + " must be 'initiator' or 'acceptor'" ); 00197 } 00198 }
std::ostream& operator<< | ( | std::ostream & | , | |
const SessionSettings & | ||||
) | [friend] |
Dictionary FIX::SessionSettings::m_defaults [private] |
Definition at line 159 of file SessionSettings.h.
Referenced by get().
Dictionaries FIX::SessionSettings::m_settings [private] |
Definition at line 158 of file SessionSettings.h.
Referenced by getSessions(), has(), and size().