![]() |
fix8
version 1.4.0
Open Source C++ FIX Framework
|
#include <iostream>#include <memory>#include <fstream>#include <iomanip>#include <sstream>#include <vector>#include <map>#include <list>#include <set>#include <iterator>#include <algorithm>#include <typeinfo>#include <thread>#include <sys/ioctl.h>#include <signal.h>#include <termios.h>#include <errno.h>#include <string.h>#include <fix8/f8includes.hpp>#include <fix8/usage.hpp>#include <fix8/consolemenu.hpp>#include <fix8/multisession.hpp>#include "Myfix_types.hpp"#include "Myfix_router.hpp"#include "Myfix_classes.hpp"#include "myfix.hpp"Go to the source code of this file.
Namespaces | |
| FIX8 | |
| FIX8::TEX | |
Functions | |
| void | print_usage () |
| const string | GETARGLIST ("hl:svqc:R:S:rdomN:D:") |
| f8_atomic< bool > | term_received (false) |
| void | server_process (ServerSessionBase *srv, int scnt, bool ismulti=false) |
| void | client_process (ClientSessionBase *mc) |
| bool | quiet (false) |
| unsigned | next_send (0) |
| unsigned | next_receive (0) |
| void | sig_handler (int sig) |
| int | main (int argc, char **argv) |
Variables | |
| FIX8::tty_save_state | save_tty (0) |
This is a complete working example of a FIX client/server using FIX8.
Usage: f8test [-NRScdhlmoqrsv]
-N,–session for client, select session to use from configuration (default none)
-R,–receive set next expected receive sequence number
-S,–send set next send sequence number
-c,–config xml config (default: myfix_client.xml or myfix_server.xml)
-d,–dump dump parsed XML config file, exit
-h,–help help, this screen
-l,–log global log filename
-m,–multi run multiple server mode (default single server session at a time)
-o,–once for server, allow one client session then exit
-q,–quiet do not print fix output
-r,–reliable start in reliable mode
-s,–server run in server mode (default client mode)
-v,–version print version, exit
To use start the server:
% f8test -sl server
In another terminal session, start the client:
% f8test -l client
Notes
myfix_client.xml and the client uses myfix_server.xml for configuration settings.FIX50SP2.xml and FIXT11.xml in ./schemaDefinition in file myfix.cpp.
| void client_process | ( | ClientSessionBase * | mc | ) |
Definition at line 376 of file myfix.cpp.
References FIX8::ClientSessionBase::has_given_up(), FIX8::Session::is_shutdown(), save_tty, FIX8::ClientSessionBase::session_ptr(), FIX8::Session::stop(), and term_received().
Referenced by main().
| const string GETARGLIST | ( | "hl:svqc:R:S:rdomN:D:" | ) |
Referenced by main(), and print_usage().
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 181 of file myfix.cpp.
References FIX8::SessionConfig::_session_name, FIX8::SessionManager< T >::add(), client_process(), FIX8::TEX::ctx(), XmlElement::Factory(), FIX8_PACKAGE, FIX8_VERSION, FIX8::SessionManager< T >::for_each_if(), GETARGLIST(), RandDev::getrandom(), glout_error, FIX8::hypersleep< h_seconds >(), RandDev::init(), next_receive(), next_send(), print_usage(), quiet(), save_tty, server_process(), FIX8::ClientSessionBase::session_ptr(), sig_handler(), term_received(), FIX8::tty_save_state::unset_raw_mode(), and FIX8::f8Exception::what().
| unsigned next_receive | ( | 0 | ) |
Referenced by main(), and server_process().
| unsigned next_send | ( | 0 | ) |
Referenced by main(), and server_process().
| void print_usage | ( | ) |
Definition at line 744 of file myfix.cpp.
References UsageMan::add(), GETARGLIST(), UsageMan::print(), and UsageMan::setdesc().
Referenced by main().
| bool quiet | ( | false | ) |
Referenced by main(), and server_process().
| void server_process | ( | ServerSessionBase * | srv, |
| int | scnt, | ||
| bool | ismulti = false |
||
| ) |
Definition at line 394 of file myfix.cpp.
References FIX8::SessionConfig::_ses, FIX8::ServerSessionBase::create_server_instance(), FIX8::Configuration::get_process_model(), glout_info, FIX8::hypersleep< h_milliseconds >(), next_receive(), next_send(), FIX8::pm_pipeline, quiet(), and myfix_session_server::sample_scheduler_callback().
Referenced by main().
| void sig_handler | ( | int | sig | ) |
Definition at line 165 of file myfix.cpp.
References term_received().
Referenced by main().
| f8_atomic<bool> term_received | ( | false | ) |
Referenced by client_process(), main(), and sig_handler().
| FIX8::tty_save_state save_tty(0) |
Referenced by client_process(), and main().