FIXEdge SDK Developer Guide
General statements
FIXEdge SDK allows developers to create custom plugins for FIXEdge: Transport Adaptors and Handlers.
Structure of FIXEdge SDK
cmakeModules - CMake modules
Headers - C++ headers files for FIXAntenna C++ (FA) and for FIXEdge (FE)
Libs - release version of FA C++ static libraries
src_Handler - source of sample HandlerÂ
src_TA - source of sample Transport Adaptor
Requirements
The FIXEdge SDK is available for Windows (MS Visual Studio 2010, x64) and Linux (RHEL 6, gcc44, x64)
CMake v 2.8 should be used to prepare the solution of sample Handler and sample Transport Adaptor
Xerces-c 3.1.1 (headers and dynamic libraries) is required for building the sample Handler project.
How to build samples
- Export a system variable pointing to the XERCES-C:Â export XERCESCROOT=/home/user/extlibs/xerces-c-src_2_8_0
- Create a folder for build:Â
$ mkdir ./build
$ cd ./build - Run CMake:
$ cmake -G "Unix Makefiles" ../
or (Windows)
> cmake.exe -G "Visual Studio 10 Win64" ../ - Build shared libraries:
$ make
or (Windows)
build b2b_fixserver_development_ta.sln (Release, MD)
Handler and Transport Adaptor Features
Handler is a lightweight plugin for FIXEdge. It is suited for using in the following scenario:
- make some modifications on incoming FIX Messages (add/delete/modify some tags based on some conditions that is difficult to implement in BL XML or BL JS) and pass it back to BL or Transport Adaptor
There are already implemented Handlers - see FIXEdge BL Handlers for more info.
Transport Adaptor is more complicated plugin. It is suited for use in the following scenarios where adapting FIX Session to any other kind of session is required:
- Â establish a connection to any non-FIX endpoints (such as SMTP - SMTP TA, IBM MQ, HTTPS, JMS, Kafka, and so on) and provide a data flow between these endpoints and FIX Sessions.
- periodically polling of any FIX or non-FIX endpoints
There are already implemented Transport Adaptors - see FIXEdge Transport Adaptors for more info.
Feature | Handler | Transport Adaptor |
---|---|---|
Load | reloads each time after BL Rules are reloaded loads only if reference to Handler exists in some BL rule | once at FE start |
ClientID | doesn't have a ClientID. Can't be referenced by another Handler or TA. | Can register several ClientIDs |
Incoming messages | Can be addressed from BL Rules using <HandlerAction> tag only  message is coming to process method | Messages to each of ClientID can be passed from BL <Send> tag, or from another TA or Handler. Message is coming into the sendToClient method |
Outgoing messages | Can just pass original or transformed message to the BL Can send synchronously to any registered ClientID Can send asynchronously to any registed ClientID | Can be send to BL only via the onMessageFromClient method. onMessageFromClient can't be called from the same thread as sendToClient |
History access | has direct access to any configured on BL History | for Bridge Adaptors only (see FIXEdge Transport Adaptors Developer Guide) for more details |
Configuration | in BL_Config.xml | in FIXEdge.properties |
For more detailed info on developing custom Handler, see FIXEdge BL Handlers Developer Guide.
For more detailed info on developing custom Transport Adaptor, see FIXEdge Transport Adaptors Developer Guide.