Skip to content

Version 2.0.0

Compare
Choose a tag to compare
@mgnsm mgnsm released this 14 May 11:51
· 75 commits to main since this release

This version is backwards incompatible (breaking) but adds support for:

  • Requesting data by creating and sending messages just like you do using the wrapped libmdf C/C++ API
  • Sending data to the system (assuming you have sufficient permissions)
  • Creating messages using a new Message class which is a managed implementation of the mdf_message_t handle that can contain several messages
  • Adding any numeric, integer, string, date, time and list fields that are supported by the native API to a message
  • Consuming data and fetching messages and fields "manually" on the same thread using a new MarketDataFeed class which is a managed implementation of the native mdf_t API handle and a replacement for the removed DataFeed class
  • Registering data and status callbacks with strongly-typed custom and settable user data
  • Sending of multiple messages
  • Resetting and reusing of messages
  • Removal of a message from a message handle
  • Moving of messages between message handles
  • Serialization and deserialization of messages
  • Setting the zlib compression level and disabling UTF-8 validation
  • Setting the current API error code and the number of sent and received bytes between the client and the server
  • Getting the file descriptor used by the connection and the time difference between the client and the server in nanoseconds
  • Setting a numerical bind address to which the API will bind before attempting to connect
  • Enabling or disabling encryption
  • Limiting the supported message digests used to authenticate messages between the server and the client
  • Limiting the supported ciphers used to encrypt messages between the server and the client
  • Two-factor authentication using an extra credential
  • Specifying a custom path to the native dependency
  • A bit field (flags) MessageClasses enumeration (enum) that defines all message classes

The latest connections statuses, fields/tags, message references and request classes in libmdf 1.0.25 have been added to the existing enums. For each method that accepts an enum value, an overload that accepts the underlying value (int or uint) has been added to make the API forward compatible and being able to handle new fields/tags, messages, and request classes without updating.

string constants for all message classes and request types have also been defined to make them easier to use in Message.AddNumeric (which is the managed counterpart of mdf_message_add_numeric), e.g.:

message.AddNumeric(Field.MDF_F_REQUESTTYPE, StringConstants.RequestTypes.MDF_RT_FULL);
  • Besides the DataFeed class, the RequestMessage, ResponseMessage, SubscribeMessage, UnsubscribeMessage, ConnnectionStatusChangedEventHandler and ConnectionStatusChangedEventArgs types have also been removed (breaking)