Generic QuickFIX and eventpp examples
Project uses VSCode .devcontainer support -- look in the directory for a sample Dockerfile if you want to roll your own.
mkdir logs
mkdir build
cd build
cmake ..
make -j4
root@d2e792573131:/workspaces/quickfix/build# ./cpp/fix_client ../conf/fix_client.ini
root@d2e792573131:/workspaces/quickfix/build# ./cpp/fix_server ../conf/fix_server.ini
After a successful login, client sends the server a NewOrderSingle which gets fully executed, and the ExecutionReport is sent back to the client. Client then tries to OrderCancelRequest the order, which is handled with a OrderCancelReject.
An eventpp::EventQueue from eventpp is used to handle the cracked message, decoupling the FIX workflow from business logic.
While this is a trivial example, the client / server framework can be immediately extended by swapping out the Application class to fit your needs.
// replace me...
using ClientApplication =
fixclient::Application<typename Traits::EventQueuePtr>;
// replace me...
using ServerApplication =
fixserver::Application<typename Traits::EventQueuePtr>;