Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
FIX::SessionSettings Class Reference

Container for setting dictionaries mapped to sessions. More...

#include <SessionSettings.h>

Collaboration diagram for FIX::SessionSettings:
Collaboration graph
[legend]

Public Types

typedef std::map< SessionID, DictionaryDictionaries
 

Public Member Functions

 SessionSettings ()
 
 SessionSettings (std::istream &stream, bool resolveEnvVars=false) throw ( ConfigError )
 
 SessionSettings (const std::string &file, bool resolveEnvVars=false) throw ( ConfigError )
 
const bool has (const SessionID &) const
 Check if session setings are present. More...
 
const Dictionaryget (const SessionID &) const throw ( ConfigError )
 Get a dictionary for a session. More...
 
void set (const SessionID &, Dictionary) throw ( ConfigError )
 Set a dictionary for a session. More...
 
const Dictionaryget () const
 Get global default settings. More...
 
void set (const Dictionary &defaults) throw ( ConfigError )
 Set global default settings. More...
 
size_t size () const
 Number of session settings. More...
 
std::set< SessionIDgetSessions () const
 

Private Member Functions

void validate (const Dictionary &) const throw ( ConfigError )
 

Private Attributes

Dictionaries m_settings
 
Dictionary m_defaults
 
bool m_resolveEnvVars
 

Friends

std::istream & operator>> (std::istream &, SessionSettings &) throw ( ConfigError )
 
std::ostream & operator<< (std::ostream &, const SessionSettings &)
 

Detailed Description

Container for setting dictionaries mapped to sessions.

Definition at line 237 of file SessionSettings.h.

Member Typedef Documentation

◆ Dictionaries

Definition at line 260 of file SessionSettings.h.

Constructor & Destructor Documentation

◆ SessionSettings() [1/3]

FIX::SessionSettings::SessionSettings ( )
inline

Definition at line 240 of file SessionSettings.h.

241 { return m_settings.size(); }

◆ SessionSettings() [2/3]

FIX::SessionSettings::SessionSettings ( std::istream &  stream,
bool  resolveEnvVars = false 
)
throw (ConfigError
)

Definition at line 50 of file SessionSettings.cpp.

52 {
53  Settings settings(s.m_resolveEnvVars);
54  stream >> settings;
55 

◆ SessionSettings() [3/3]

FIX::SessionSettings::SessionSettings ( const std::string &  file,
bool  resolveEnvVars = false 
)
throw (ConfigError
)

Definition at line 57 of file SessionSettings.cpp.

69  {

Member Function Documentation

◆ get() [1/2]

const Dictionary& FIX::SessionSettings::get ( ) const
inline

Get global default settings.

Definition at line 253 of file SessionSettings.h.

◆ get() [2/2]

const Dictionary & FIX::SessionSettings::get ( const SessionID sessionID) const
throw (ConfigError
)

Get a dictionary for a session.

Definition at line 144 of file SessionSettings.cpp.

Referenced by FIX::Acceptor::Acceptor(), FIX::Initiator::getSessionSettings(), and FIX::SocketAcceptor::SocketAcceptor().

◆ getSessions()

std::set< SessionID > FIX::SessionSettings::getSessions ( ) const

Definition at line 177 of file SessionSettings.cpp.

179  {
180  throw ConfigError( std::string(BEGINSTRING) + " must be FIX.4.0 to FIX.4.4 or FIXT.1.1" );
181  }
182 
183  std::string connectionType = dictionary.getString( CONNECTION_TYPE );
184  if( connectionType != "initiator" &&

References FIX::BEGINSTRING.

Referenced by FIX::Acceptor::Acceptor(), and FIX::SocketAcceptor::SocketAcceptor().

◆ has()

const bool FIX::SessionSettings::has ( const SessionID sessionID) const

Check if session setings are present.

Definition at line 139 of file SessionSettings.cpp.

139 {
140  if( has(sessionID) )
141  throw ConfigError( "Duplicate Session " + sessionID.toString() );
142 

References FIX::BEGINSTRING.

◆ set() [1/2]

void FIX::SessionSettings::set ( const Dictionary defaults)
throw (ConfigError
)

Set global default settings.

Definition at line 169 of file SessionSettings.cpp.

171 {
172  std::string beginString = dictionary.getString( BEGINSTRING );
173  if( beginString != BeginString_FIX40 &&
174  beginString != BeginString_FIX41 &&
175  beginString != BeginString_FIX42 &&

References FIX::BEGINSTRING, FIX::BeginString_FIX40, FIX::BeginString_FIX41, FIX::BeginString_FIX42, and FIX::BeginString_FIX43.

◆ set() [2/2]

void FIX::SessionSettings::set ( const SessionID sessionID,
Dictionary  settings 
)
throw (ConfigError
)

Set a dictionary for a session.

Definition at line 153 of file SessionSettings.cpp.

153 {
154  m_defaults = defaults;
155  Dictionaries::iterator i = m_settings.begin();
156  for( i = m_settings.begin(); i != m_settings.end(); ++i )
157  i->second.merge( defaults );
158 }
159 
160 std::set < SessionID > SessionSettings::getSessions() const
161 {
162  std::set < SessionID > result;
163  Dictionaries::const_iterator i;
164  for ( i = m_settings.begin(); i != m_settings.end(); ++i )
165  result.insert( i->first );
166  return result;
167 }

◆ size()

size_t FIX::SessionSettings::size ( ) const
inline

Number of session settings.

Definition at line 258 of file SessionSettings.h.

◆ validate()

void FIX::SessionSettings::validate ( const Dictionary dictionary) const
throw (ConfigError
)
private

Definition at line 186 of file SessionSettings.cpp.

186  {
187  throw ConfigError( std::string(CONNECTION_TYPE) + " must be 'initiator' or 'acceptor'" );
188  }
189 }
190 
191 }

References FIX::CONNECTION_TYPE.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  ,
const SessionSettings  
)
friend

Definition at line 106 of file SessionSettings.cpp.

111  {
112  if( defaults.has(i->first) && defaults.getString(i->first) == i->second )
113  continue;
114  stream << i->first << "=" << i->second << std::endl;
115  }
116  stream << std::endl;
117  }
118 
119  return stream;
120 }
121 
122 const bool SessionSettings::has( const SessionID& sessionID ) const
123 {
124  return m_settings.find( sessionID ) != m_settings.end();
125 }
126 
127 const Dictionary& SessionSettings::get( const SessionID& sessionID ) const
128 throw( ConfigError )
129 {
130  Dictionaries::const_iterator i;
131  i = m_settings.find( sessionID );
132  if ( i == m_settings.end() ) throw ConfigError( "Session not found" );
133  return i->second;
134 }
135 
136 void SessionSettings::set( const SessionID& sessionID,
137  Dictionary settings )

◆ operator>>

std::istream& operator>> ( std::istream &  ,
SessionSettings  
)
throw (ConfigError
)
friend

Definition at line 67 of file SessionSettings.cpp.

69  {
70  dict = section[ session ];
71  dict.merge( def );
72 
73  BeginString beginString
74  ( dict.getString( BEGINSTRING ) );
75  SenderCompID senderCompID
76  ( dict.getString( SENDERCOMPID ) );
77  TargetCompID targetCompID
78  ( dict.getString( TARGETCOMPID ) );
79 
80  std::string sessionQualifier;
81  if( dict.has( SESSION_QUALIFIER ) )
82  sessionQualifier = dict.getString( SESSION_QUALIFIER );
83  SessionID sessionID( beginString, senderCompID, targetCompID, sessionQualifier );
84  s.set( sessionID, dict );
85  }
86  return stream;
87 }
88 
89 std::ostream& operator<<( std::ostream& stream, const SessionSettings& s )
90 {
91  const Dictionary& defaults = s.m_defaults;
92  if( defaults.size() )
93  {
94  stream << "[DEFAULT]" << std::endl;
96  for( i = defaults.begin(); i != defaults.end(); ++i )
97  stream << i->first << "=" << i->second << std::endl;
98  stream << std::endl;
99  }
100 
101  std::set<SessionID> sessions = s.getSessions();
102  std::set<SessionID>::iterator i;
103  for( i = sessions.begin(); i != sessions.end(); ++i )
104  {

Member Data Documentation

◆ m_defaults

Dictionary FIX::SessionSettings::m_defaults
private

Definition at line 267 of file SessionSettings.h.

◆ m_resolveEnvVars

bool FIX::SessionSettings::m_resolveEnvVars
private

Definition at line 268 of file SessionSettings.h.

◆ m_settings

Dictionaries FIX::SessionSettings::m_settings
private

Definition at line 266 of file SessionSettings.h.


The documentation for this class was generated from the following files:
FIX::SessionSettings::set
void set(const SessionID &, Dictionary)
Set a dictionary for a session.
Definition: SessionSettings.cpp:153
FIX::BeginString_FIX41
const char BeginString_FIX41[]
Definition: Values.h:52
FIX::SessionSettings::has
const bool has(const SessionID &) const
Check if session setings are present.
Definition: SessionSettings.cpp:139
FIX::BeginString_FIX40
const char BeginString_FIX40[]
Definition: Values.h:53
FIX::SessionSettings::m_defaults
Dictionary m_defaults
Definition: SessionSettings.h:267
FIX::BeginString_FIX42
const char BeginString_FIX42[]
Definition: Values.h:51
FIX::CONNECTION_TYPE
const char CONNECTION_TYPE[]
Definition: SessionSettings.h:59
FIX::SESSION_QUALIFIER
const char SESSION_QUALIFIER[]
Definition: SessionSettings.h:57
FIX::Dictionary::iterator
Data::const_iterator iterator
Definition: Dictionary.h:78
FIX::SessionSettings::operator<<
friend std::ostream & operator<<(std::ostream &, const SessionSettings &)
Definition: SessionSettings.cpp:106
FIX::SessionSettings::m_settings
Dictionaries m_settings
Definition: SessionSettings.h:266
FIX::BEGINSTRING
const char BEGINSTRING[]
Definition: SessionSettings.h:54
FIX::SENDERCOMPID
const char SENDERCOMPID[]
Definition: SessionSettings.h:55
FIX::SessionSettings::getSessions
std::set< SessionID > getSessions() const
Definition: SessionSettings.cpp:177
FIX::SessionSettings::SessionSettings
SessionSettings()
Definition: SessionSettings.h:240
FIX::SessionSettings::get
const Dictionary & get() const
Get global default settings.
Definition: SessionSettings.h:253
FIX::TARGETCOMPID
const char TARGETCOMPID[]
Definition: SessionSettings.h:56

Generated on Wed Apr 29 2020 19:41:30 for QuickFIX by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2001