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


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,
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 

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 ( )


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)

Accept an inbound connection and obtain a connected socket

claddrlocation to store address of remote connection
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

base pointer to new SessionInstance

Implemented in FIX8::ServerSession< T >.

Referenced by server_process().

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

Check if this server session supports secure connections

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

Check to see if there are any waiting inbound connections.

spantimespan (us, default 250 ms) to wait before returning (will return immediately if connection available)
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

Definition at line 537 of file sessionwrapper.hpp.

Member Data Documentation

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

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: