The AMPS C++ client includes a set of utilities and helper classes to make working with AMPS easier.
The client provides a pair of classes for creating and parsing composite message types:
CompositeMessageBuilder
allows you to assemble the parts of a composite message and then serialize them in a format suitable for AMPS.
CompositeMessageParser
extracts the individual parts of a composite message type.
For more information regarding composite message types, refer to the Message Types chapter in the AMPS User Guide.
To build a composite message, create an instance of CompositeMessageBuilder
, and populate the parts. The CompositeMessageBuilder
copies the parts provided, in order, to the underlying message. The builder simply writes to an internal buffer with the appropriate formatting, and does not allow you to update or change the individual parts of a message once they've been added to the builder.
The snippet below shows how to build a composite message that includes a JSON part, constructed as a string, and a binary part consisting of the bytes from a standard vector
.
To parse a composite message, create an instance of CompositeMessageParser
, then use the parse()
method to parse the message provided by the AMPS client. The CompositeMessageParser
gives you access to each part of the message as a sequence of bytes.
For example, the following snippet parses and prints messages that contain a JSON part and a binary part that contains an array of doubles.
Notice that the receiving application is written with explicit knowledge of the structure and content of the composite message type.
The C++ client distribution contains the following samples to demonstrate CompositeMessageBuilder
and CompositeMessageParser
.
amps_publish_composite.cpp
Creating and publishing a composite message using CompositeMessageBuilder
amps_subscribe_composite.cpp
Receiving and parsing a composite message using CompositeMessageParser
The client provides a pair of classes for creating and parsing NVFIX message types:
NVFIXBuilder
allows you to assemble an NVFIX message and then serialize it in a format suitable for AMPS.
NVFIXShredder
extracts the individual fields of an NVFIX message type.
To build an NVFIX message, create an instance of NVFIXBuilder
, then add the fields of the message using append()
. NVFIXBuilder
copies the fields provided, in order, to the underlying message. The builder simply writes to an internal buffer with the appropriate formatting, and does not allow you to update or change the individual fields of a message once they've been added to the builder.
The snippet below shows how to build an NVFIX message and publish it to the AMPS client.
To parse an NVFIX message, create an instance of NVFIXShredder
, then use the toMap()
method to parse the message provided by the AMPS client. The NVFIXShredder
gives you access to each field of the message in a map.
The snippet below shows how to parse and print an NVFIX message.
The C++ client distribution contains the following samples to demonstrate NVFIXBuilder
and NVFIXShredder
.
amps_nvfix_builder_publisher.cpp
Creating and publishing a message using NVFIXBuilder
amps_nvfix_builder_subscriber.cpp
Receiving a message and parsing it using NVFIXShredder
The client provides a pair of classes for creating and parsing FIX messages:
FIXBuilder
allows you to assemble a FIX message and then serialize them in a format suitable for AMPS.
FIXShredder
extracts the individual fields of a FIX message.
To build a FIX message, create an instance of FIXBuilder
, then add the fields of the message using append()
. FIXBuilder
copies the fields provided, in order, to the underlying message. The builder simply writes to an internal buffer with the appropriate formatting, and does not allow you to update or change the individual fields of a message once they've been added to the builder.
The snippet below shows how to build a FIX message and publish it to the AMPS client.
To parse a FIX message, create an instance of FIXShredder
, then use the toMap()
method to parse the message provided by the AMPS client. The FIXShredder
gives you access to each field of the message in a map.
The snippet below shows how to parse and print a FIX message.
The C++ client distribution contains the following samples to demonstrate FIXBuilder
and FIXShredder
.
amps_fix_builder_publisher.cpp
Creating and publishing a message using FIXBuilder
amps_fix_builder_subscriber.cpp
Receiving a message and parsing it using FIXShredder