[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
Class | Description | |
---|---|---|
![]() | Consts |
Constants common to Native/Socket-based family of technologies
|
![]() | InProcBinding |
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
|
![]() | InProcClientTransport |
Provides client-side functionality for synchronous communication pattern based on
in-memory message exchange without serialization
|
![]() | InProcServerTransport |
Provides server-side functionality for synchronous communication pattern based on
in-memory message exchange without serialization
|
![]() | MemChunk |
Represents a stream/writable chunk of memory backed by an array buffer
|
![]() | MpxBinding |
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
|
![]() | MpxClientSocket |
Represents client-side asynchronous socket. This socket initiates a connection to MpxServerSocket
|
![]() | MpxClientTransport |
Implements asynchronous MPX client transport for MpxBinding
|
![]() | MpxListener |
Represents a server-side listener socket that accepts the calls
|
![]() | MpxServerSocket |
Represents server-side asynchronous socket that clients connect to
|
![]() | MpxServerTransport |
Implements asynchronous MPX server transport for MpxBinding
|
![]() | MpxSocket 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)
|
![]() | MpxSocketFactory |
Defines factory abstraction that creates socket per particular technology
|
![]() | MpxWinClientSocket |
Implements a MPX client socket using Windows IO completion ports for receive
|
![]() | MpxWinListener |
Implements a MPX socket listener that accepts connections into MpxWinServerSocket
|
![]() | MpxWinServerSocket |
Implements a MPX server socket using Windows IO completion ports for receive
|
![]() | MpxWinSocketFactory |
Factory that makes MpxWin sockets based on Windows-IO completion ports
|
![]() | SocketState | |
![]() | SyncBinding |
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
|
![]() | SyncClientTransport |
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
|
![]() | SyncServerTransport |
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
Structure | Description | |
---|---|---|
![]() | ClientSite |
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
|
![]() | WireFrame |
This struct defines a frame transmitted as a part of WireMsg
which can be used for transport or session management needs
|
![]() | WireMsg |
Represents a message that is transmitted over the wire:
|
Interfaces
Interface | Description | |
---|---|---|
![]() | IMpxTransport |
Delegates
Delegate | Description | |
---|---|---|
![]() | MpxSocketReceiveAction 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
Enumeration | Description | |
---|---|---|
![]() | FrameType |
Type of transport frame message
|