C# Class GSF.Communication.ZeroMQServer

Represents a ZeroMQ ROUTER style socket as a communication server.
Inheritance: ServerBase
Show file Open project: GridProtectionAlliance/gsf Class Usage Examples

Private Properties

Property Type Description
GetClient TransportProvider
IsThreadAbortException bool
MonitorActiveClients void
ReceiveDataHandler void

Public Methods

Method Description
DisconnectOne ( System.Guid clientID ) : void

Disconnects the specified connected client.

LoadSettings ( ) : void

Loads saved ZeroMQServer settings from the config file if the ServerBase.PersistSettings property is set to true.

Read ( System.Guid clientID, byte buffer, int startIndex, int length ) : int

Reads a number of bytes from the current received data buffer and writes those bytes into a byte array at the specified offset.

This function should only be called from within the ServerBase.ReceiveClientData event handler. Calling this method outside this event will have unexpected results.

SaveSettings ( ) : void

Saves ZeroMQServer settings to the config file if the ServerBase.PersistSettings property is set to true.

Start ( ) : void

Starts the ZeroMQServer synchronously and begins accepting client connections asynchronously.

Stop ( ) : void

Stops the ZeroMQServer synchronously and disconnects all connected clients.

TryGetClient ( System.Guid clientID, TransportProvider &clientInfo ) : bool

Gets the TransportProvider{Socket} object associated with the specified client ID.

ZeroMQServer ( ) : System

Initializes a new instance of the ZeroMQServer class.

ZeroMQServer ( IContainer container ) : System

Initializes a new instance of the ZeroMQServer class.

ZeroMQServer ( string configString ) : System

Initializes a new instance of the ZeroMQServer class.

Protected Methods

Method Description
Dispose ( bool disposing ) : void

Releases the unmanaged resources used by the ZeroMQServer object and optionally releases the managed resources.

OnClientConnectingException ( Exception ex ) : void

Raises the ServerBase.ClientConnectingException event.

OnReceiveClientDataException ( System.Guid clientID, Exception ex ) : void

Raises the ServerBase.ReceiveClientDataException event.

OnSendClientDataException ( System.Guid clientID, Exception ex ) : void

Raises the ServerBase.SendClientDataException event.

OnUnhandledUserException ( Exception ex ) : void

Raises the ServerBase.UnhandledUserException event.

SendDataToAsync ( System.Guid clientID, byte data, int offset, int length ) : WaitHandle

Sends data to the specified client asynchronously.

ValidateConfigurationString ( string configurationString ) : void

Validates the specified configurationString.

Private Methods

Method Description
GetClient ( System.Guid clientID ) : TransportProvider
IsThreadAbortException ( Exception ex ) : bool
MonitorActiveClients ( object state ) : void
ReceiveDataHandler ( ) : void

Method Details

DisconnectOne() public method

Disconnects the specified connected client.
Client does not exist for the specified .
public DisconnectOne ( System.Guid clientID ) : void
clientID System.Guid ID of the client to be disconnected.
return void

Dispose() protected method

Releases the unmanaged resources used by the ZeroMQServer object and optionally releases the managed resources.
protected Dispose ( bool disposing ) : void
disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources.
return void

LoadSettings() public method

Loads saved ZeroMQServer settings from the config file if the ServerBase.PersistSettings property is set to true.
public LoadSettings ( ) : void
return void

OnClientConnectingException() protected method

Raises the ServerBase.ClientConnectingException event.
protected OnClientConnectingException ( Exception ex ) : void
ex System.Exception The encountered when connecting to the client.
return void

OnReceiveClientDataException() protected method

Raises the ServerBase.ReceiveClientDataException event.
protected OnReceiveClientDataException ( System.Guid clientID, Exception ex ) : void
clientID System.Guid ID of client to send to event.
ex System.Exception Exception to send to event.
return void

OnSendClientDataException() protected method

Raises the ServerBase.SendClientDataException event.
protected OnSendClientDataException ( System.Guid clientID, Exception ex ) : void
clientID System.Guid ID of client to send to event.
ex System.Exception Exception to send to event.
return void

OnUnhandledUserException() protected method

Raises the ServerBase.UnhandledUserException event.
protected OnUnhandledUserException ( Exception ex ) : void
ex System.Exception Exception to send to event.
return void

Read() public method

Reads a number of bytes from the current received data buffer and writes those bytes into a byte array at the specified offset.
This function should only be called from within the ServerBase.ReceiveClientData event handler. Calling this method outside this event will have unexpected results.
/// No received data buffer has been defined to read -or- /// Specified does not exist, cannot read buffer. /// is null. /// or is less than 0 -or- /// and will exceed length. ///
public Read ( System.Guid clientID, byte buffer, int startIndex, int length ) : int
clientID System.Guid ID of the client from which data buffer should be read.
buffer byte Destination buffer used to hold copied bytes.
startIndex int 0-based starting index into destination to begin writing data.
length int The number of bytes to read from current received data buffer and write into .
return int

SaveSettings() public method

Saves ZeroMQServer settings to the config file if the ServerBase.PersistSettings property is set to true.
public SaveSettings ( ) : void
return void

SendDataToAsync() protected method

Sends data to the specified client asynchronously.
protected SendDataToAsync ( System.Guid clientID, byte data, int offset, int length ) : WaitHandle
clientID System.Guid ID of the client to which the data is to be sent.
data byte The buffer that contains the binary data to be sent.
offset int The zero-based position in the at which to begin sending data.
length int The number of bytes to be sent from starting at the .
return System.Threading.WaitHandle

Start() public method

Starts the ZeroMQServer synchronously and begins accepting client connections asynchronously.
Attempt is made to the when it is running.
public Start ( ) : void
return void

Stop() public method

Stops the ZeroMQServer synchronously and disconnects all connected clients.
public Stop ( ) : void
return void

TryGetClient() public method

Gets the TransportProvider{Socket} object associated with the specified client ID.
public TryGetClient ( System.Guid clientID, TransportProvider &clientInfo ) : bool
clientID System.Guid ID of the client.
clientInfo TransportProvider Client information.
return bool

ValidateConfigurationString() protected method

Validates the specified configurationString.
Port property is missing. Port property value is not between and .
protected ValidateConfigurationString ( string configurationString ) : void
configurationString string Configuration string to be validated.
return void

ZeroMQServer() public method

Initializes a new instance of the ZeroMQServer class.
public ZeroMQServer ( ) : System
return System

ZeroMQServer() public method

Initializes a new instance of the ZeroMQServer class.
public ZeroMQServer ( IContainer container ) : System
container IContainer object that contains the .
return System

ZeroMQServer() public method

Initializes a new instance of the ZeroMQServer class.
public ZeroMQServer ( string configString ) : System
configString string Config string of the . See for format.
return System