NFX.Glue.Native NamespaceNFX Class Library

[This is preliminary documentation and is subject to change.]

Provides implementations for NFX-native Glue bindings whoch are based on NFX.Serialization and TCP/IP sockets
Classes

  ClassDescription
Protected classConsts
Constants common to Native/Socket-based family of technologies
Public classInProcBinding
Provides synchronous communication pattern based on in-memory message exchange without serialization. This binding is usable for interconnection between NFX-native components in the same app domain
Public classInProcClientTransport
Provides client-side functionality for synchronous communication pattern based on in-memory message exchange without serialization
Public classInProcServerTransport
Provides server-side functionality for synchronous communication pattern based on in-memory message exchange without serialization
Public classMemChunk
Represents a stream/writable chunk of memory backed by an array buffer
Public classMpxBinding
Provides asynchronous communicating pattern based on asynchronous virtual socket. The concrete socket may be based on OS-supported technology i.e. - IO completion ports on Windows
Public classMpxClientSocket
Represents client-side asynchronous socket. This socket initiates a connection to MpxServerSocket
Public classMpxClientTransport
Implements asynchronous MPX client transport for MpxBinding
Public classMpxListener
Represents a server-side listener socket that accepts the calls
Public classMpxServerSocket
Represents server-side asynchronous socket that clients connect to
Public classMpxServerTransport
Implements asynchronous MPX server transport for MpxBinding
Public classMpxSocket TTransport 
Base for MpxSockets implementation. An MpxSocket represents an asynchronous bi-directional channel of communication that delivers binary/wire messages of flexible size. The socket is NOT THREAD SAFE for calling Send() from parallel threads. Send() is done synchronously on the calling thread, i.e. the sender waits until the data is written into the OS socket buff. Receive is invoked by internal/system/io thread asynchronously and should not block for long (seconds)
Public classMpxSocketFactory
Defines factory abstraction that creates socket per particular technology
Public classMpxWinClientSocket
Implements a MPX client socket using Windows IO completion ports for receive
Public classMpxWinListener
Implements a MPX socket listener that accepts connections into MpxWinServerSocket
Public classMpxWinServerSocket
Implements a MPX server socket using Windows IO completion ports for receive
Public classMpxWinSocketFactory
Factory that makes MpxWin sockets based on Windows-IO completion ports
Protected classSocketState
Public classSyncBinding
Provides synchronous communication pattern based on TCP blocking sockets and Slim serializer for maximum serialization performance and lowest latency. This binding is usable for interconnection between NFX-native components on LANs (i.e. server clusters) in scenarios when low latency is more important than total call invocation throughput
Public classSyncClientTransport
Provides client-side functionality for synchronous communication pattern based on TCP blocking sockets and Slim serializer for maximum serialization performance and lowest latency. The SyncBinding is usable for interconnection between NFX-native components on LANs (i.e. server clusters) in scenarios when low latency is more important than total call invocation throughput
Public classSyncServerTransport
Provides server-side functionality for synchronous communication pattern based on TCP blocking sockets and Slim serializer for maximum serialization performance and lowest latency. The SyncBinding is usable for interconnection between NFX-native components on LANs (i.e. server clusters) in scenarios when low latency is more important than total call invocation throughput. SyncServerTransport uses dedicated thread for request processing and is not scalable beyond a few hundred connections by design, however it provides low latency benefit
Structures

  StructureDescription
Public structureClientSite
Represents a client call site identifier which gets generated on client and sent to server upon handshake. This struct identifies the calling client by supplying machine/host name and calling application instance ID
Public structureWireFrame
This struct defines a frame transmitted as a part of WireMsg which can be used for transport or session management needs
Public structureWireMsg
Represents a message that is transmitted over the wire:
Interfaces

  InterfaceDescription
Public interfaceIMpxTransport
Delegates

  DelegateDescription
Public delegateMpxSocketReceiveAction TTransport 
Delivers wire msg from another side. DO NOT use WireMsg beyound the implementation of this delegate, if needed make a copy of msg.Data as the memory will be freed after this call returns
Enumerations

  EnumerationDescription
Public enumerationFrameType
Type of transport frame message