fix8  version 1.4.0
Open Source C++ FIX Framework
FIX8::ServerSessionBase Class Referenceabstract

Base Server Session. More...

#include <sessionwrapper.hpp>

Inheritance diagram for FIX8::ServerSessionBase:
FIX8::SessionConfig FIX8::Configuration FIX8::ServerSession< T >

Public Member Functions

 ServerSessionBase (const F8MetaCntx &ctx, const std::string &conf_file, const std::string &session_name)
 Ctor. Prepares session for receiving inbbound connections (acceptor). More...
 
virtual ~ServerSessionBase ()
 Dtor. More...
 
virtual SessionInstanceBasecreate_server_instance ()=0
 
bool poll (const Poco::Timespan &span=Poco::Timespan(250000)) const
 
Poco::Net::StreamSocket accept (Poco::Net::SocketAddress &claddr)
 
virtual bool is_secure () const
 
- Public Member Functions inherited from FIX8::SessionConfig
 SessionConfig (const F8MetaCntx &ctx, const std::string &conf_file, const std::string &session_name)
 Ctor. Loads configuration, obtains session details, sets up logfile flags. More...
 
virtual ~SessionConfig ()
 Dtor. More...
 
const XmlElementget_session_element () const
 
- Public Member Functions inherited from FIX8::Configuration
const XmlElementfind_group (group_types type, const std::string &tag) const
 
 Configuration (const std::string &xmlfile, bool do_process=false)
 
 Configuration (std::istream &istr, bool do_process=false)
 
virtual ~Configuration ()
 Dtor. More...
 
F8API int process ()
 
const XmlElementget_session (const unsigned num) const
 
F8API Connection::Role get_role (const XmlElement *from) const
 
F8API size_t get_addresses (const XmlElement *from, std::vector< Server > &target) const
 
F8API Poco::Net::SocketAddress get_address (const XmlElement *from) const
 
F8API Poco::Net::IPAddress get_ip (const XmlElement *from) const
 
template<typename T >
get_logflags (const std::string &tag, const std::vector< std::string > &names, const XmlElement *from, Logger::LogPositions *positions=nullptr) const
 
F8API std::string & get_logname (const XmlElement *from, std::string &to, const SessionID *sid=nullptr) const
 
unsigned get_connect_timeout (const XmlElement *from, const unsigned def=defaults::connect_timeout) const
 
unsigned get_retry_interval (const XmlElement *from, const unsigned def=defaults::retry_interval) const
 
unsigned get_retry_count (const XmlElement *from, const int def=defaults::login_retries) const
 
unsigned get_tcp_recvbuf_sz (const XmlElement *from, const unsigned def=0) const
 
unsigned get_tcp_sendbuf_sz (const XmlElement *from, const unsigned def=0) const
 
unsigned get_version (const XmlElement *from, const unsigned def=0) const
 
unsigned get_tabsize (const XmlElement *from, const unsigned def=defaults::tabsize) const
 
unsigned get_logfile_rotation (const XmlElement *from, const unsigned def=defaults::log_rotation) const
 
unsigned get_heartbeat_interval (const XmlElement *from, const unsigned def=defaults::hb_interval) const
 
bool get_tcp_nodelay (const XmlElement *from, const bool def=true) const
 
bool get_tcp_keepalive (const XmlElement *from, const bool def=false) const
 
bool get_tcp_reuseaddr (const XmlElement *from, const bool def=false) const
 
int get_tcp_linger (const XmlElement *from, const int def=-1) const
 
bool get_silent_disconnect (const XmlElement *from, const bool def=false) const
 
bool get_enforce_compids_flag (const XmlElement *from, const bool def=true) const
 
bool get_ignore_logon_sequence_check_flag (const XmlElement *from, const bool def=false) const
 
bool get_no_chksum_flag (const XmlElement *from, const bool def=false) const
 
bool get_permissive_mode_flag (const XmlElement *from, const bool def=false) const
 
bool get_reset_sequence_number_flag (const XmlElement *from, const bool def=false) const
 
bool get_always_seqnum_assign (const XmlElement *from, const bool def=false) const
 
F8API ProcessModel get_process_model (const XmlElement *from) const
 
default_appl_ver_id get_default_appl_ver_id (const XmlElement *from) const
 
sender_comp_id get_sender_comp_id (const XmlElement *from) const
 
target_comp_id get_target_comp_id (const XmlElement *from) const
 
F8API Persistercreate_persister (const XmlElement *from, const SessionID *sid=nullptr, bool flag=false) const
 
F8API Loggercreate_logger (const XmlElement *from, const Logtype ltype, const SessionID *sid=nullptr) const
 
F8API Schedule create_schedule (const XmlElement *from) const
 
F8API Clients create_clients (const XmlElement *from) const
 
F8API Schedule create_login_schedule (const XmlElement *from) const
 
F8API Session_Schedulecreate_session_schedule (const XmlElement *from) const
 
F8API unsigned get_all_sessions (std::vector< const XmlElement * > &target, const Connection::Role role=Connection::cn_unknown) const
 
const XmlElementget_root () const
 
template<typename T >
get_logflags (const string &tag, const vector< string > &names, const XmlElement *from, Logger::LogPositions *positions) const
 

Protected Attributes

Poco::Net::ServerSocket * _server_sock = nullptr
 

Friends

class ServerManager
 

Additional Inherited Members

- Public Types inherited from FIX8::Configuration
enum  group_types {
  g_sessions, g_persisters, g_loggers, g_server_group,
  g_ssl_context, g_schedules, g_logins, g_client_group,
  g_count
}
 
enum  Logtype { session_log, protocol_log }
 
- Public Attributes inherited from FIX8::SessionConfig
const F8MetaCntx_ctx
 
const XmlElement_ses
 
LoginParameters _loginParameters
 
const std::string _session_name
 
- Protected Member Functions inherited from FIX8::Configuration
bool from_or_default (const XmlElement *from, const f8String &tag, f8String &target) const
 
template<typename T >
T & get_string_field (const XmlElement *from, const std::string &tag, T &to) const
 
Tickval::ticks get_time_field (const XmlElement *from, const std::string &tag, bool timeonly=false) const
 
template<typename T >
find_or_default (const XmlElement *from, const std::string &tag, const T def) const
 

Detailed Description

Base Server Session.

Definition at line 499 of file sessionwrapper.hpp.

Constructor & Destructor Documentation

FIX8::ServerSessionBase::ServerSessionBase ( const F8MetaCntx ctx,
const std::string &  conf_file,
const std::string &  session_name 
)
inline

Ctor. Prepares session for receiving inbbound connections (acceptor).

Definition at line 506 of file sessionwrapper.hpp.

507  : SessionConfig(ctx, conf_file, session_name) {}
const F8MetaCntx & ctx()
Compiler generated metadata object, accessed through this function.
SessionConfig(const F8MetaCntx &ctx, const std::string &conf_file, const std::string &session_name)
Ctor. Loads configuration, obtains session details, sets up logfile flags.
virtual FIX8::ServerSessionBase::~ServerSessionBase ( )
inlinevirtual

Dtor.

Definition at line 511 of file sessionwrapper.hpp.

References _server_sock.

512  {
513  delete _server_sock;
514  _server_sock = nullptr;
515  }
Poco::Net::ServerSocket * _server_sock

Member Function Documentation

Poco::Net::StreamSocket FIX8::ServerSessionBase::accept ( Poco::Net::SocketAddress &  claddr)
inline

Accept an inbound connection and obtain a connected socket

Parameters
claddrlocation to store address of remote connection
Returns
the connected socket

Definition at line 530 of file sessionwrapper.hpp.

531  { return _server_sock->acceptConnection(claddr); }
Poco::Net::ServerSocket * _server_sock
virtual SessionInstanceBase* FIX8::ServerSessionBase::create_server_instance ( )
pure virtual

Create a SessionInstance for the associated Session

Returns
base pointer to new SessionInstance

Implemented in FIX8::ServerSession< T >.

Referenced by server_process().

virtual bool FIX8::ServerSessionBase::is_secure ( ) const
inlinevirtual

Check if this server session supports secure connections

Returns
true if supported

Reimplemented in FIX8::ServerSession< T >.

Definition at line 535 of file sessionwrapper.hpp.

535 { return false; }
bool FIX8::ServerSessionBase::poll ( const Poco::Timespan &  span = Poco::Timespan(250000)) const
inline

Check to see if there are any waiting inbound connections.

Parameters
spantimespan (us, default 250 ms) to wait before returning (will return immediately if connection available)
Returns
true if a connection is avaialble

Definition at line 524 of file sessionwrapper.hpp.

525  { return _server_sock->poll(span, Poco::Net::Socket::SELECT_READ); }
Poco::Net::ServerSocket * _server_sock

Friends And Related Function Documentation

friend class ServerManager
friend

Definition at line 537 of file sessionwrapper.hpp.

Member Data Documentation

Poco::Net::ServerSocket* FIX8::ServerSessionBase::_server_sock = nullptr
protected

Definition at line 502 of file sessionwrapper.hpp.

Referenced by FIX8::ServerManager::add(), and ~ServerSessionBase().


The documentation for this class was generated from the following file: