Monitor
monitor.CommandManager Class Reference

Command Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers More...

Collaboration diagram for monitor.CommandManager:

Public Types

enum  CommandManagerStatus { CommandManagerStatus.AnswerReceived, CommandManagerStatus.Timeout, CommandManagerStatus.Busy }
 Available status when sending command More...
 

Public Member Functions

delegate void CommandReceivedEvent (string msg, byte[] buffer)
 Callback for sending received data to upper level More...
 
 CommandManager (CommandReceivedEvent callback)
 Initializes a new instance of the T:monitor.CommandManager class. More...
 
bool Open (string hostname)
 Open the specified hostname server, using default port number. More...
 
bool Open (string hostname, int port)
 Open connection to server "host", with port number "port" More...
 
void Close ()
 Close connection to server More...
 
CommandManagerStatus SendCommand (string cmd, out string answer, double timeout)
 Sends a command to TCP server More...
 

Public Attributes

CommandReceivedEvent commandReceivedEvent = null
 

Private Member Functions

 ~CommandManager ()
 Releases unmanaged resources and performs other cleanup operations before the T:monitor.CommandManager is reclaimed by garbage collection. More...
 
void OnMessageReception (string message, byte[] buffer)
 Callback called by Client class after reception of new message More...
 
void OnMessageTimeout (object sender, System.Timers.ElapsedEventArgs e)
 Callback called by stopwatch on timeout More...
 

Private Attributes

System.Timers.Timer waitTimer = new System.Timers.Timer()
 Timer for managing timeout More...
 
ManualResetEvent waitEvent = new ManualResetEvent(false)
 
bool waitForAcknowledge = false
 Flag to tell rogram to wait for an acknowledge from server More...
 
string messageReceived = null
 received message More...
 
bool isBusy = false
 flag indicating command manager is currently busy waiting an acknowledge More...
 

Detailed Description

Command Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers

Definition at line 31 of file CommandManager.cs.

Member Enumeration Documentation

◆ CommandManagerStatus

Available status when sending command

Enumerator
AnswerReceived 
Timeout 
Busy 

Definition at line 63 of file CommandManager.cs.

Constructor & Destructor Documentation

◆ CommandManager()

monitor.CommandManager.CommandManager ( CommandReceivedEvent  callback)

Initializes a new instance of the T:monitor.CommandManager class.

Parameters
callbackCallback used when new message are received

Definition at line 74 of file CommandManager.cs.

◆ ~CommandManager()

monitor.CommandManager.~CommandManager ( )
private

Releases unmanaged resources and performs other cleanup operations before the T:monitor.CommandManager is reclaimed by garbage collection.

Definition at line 86 of file CommandManager.cs.

Member Function Documentation

◆ Close()

void monitor.CommandManager.Close ( )

Close connection to server

Definition at line 115 of file CommandManager.cs.

◆ CommandReceivedEvent()

delegate void monitor.CommandManager.CommandReceivedEvent ( string  msg,
byte []  buffer 
)

Callback for sending received data to upper level

◆ OnMessageReception()

void monitor.CommandManager.OnMessageReception ( string  message,
byte []  buffer 
)
private

Callback called by Client class after reception of new message

Parameters
messageMessage received from server
bufferRaw buffer reived from server

Definition at line 125 of file CommandManager.cs.

◆ OnMessageTimeout()

void monitor.CommandManager.OnMessageTimeout ( object  sender,
System.Timers.ElapsedEventArgs  e 
)
private

Callback called by stopwatch on timeout

Parameters
senderSender object
eInformation on elapsed condition

Definition at line 156 of file CommandManager.cs.

◆ Open() [1/2]

bool monitor.CommandManager.Open ( string  hostname)

Open the specified hostname server, using default port number.

Returns
true if connection succeded, false otherwise
Parameters
hostnameHostname to connect to

Definition at line 96 of file CommandManager.cs.

◆ Open() [2/2]

bool monitor.CommandManager.Open ( string  hostname,
int  port 
)

Open connection to server "host", with port number "port"

Returns
true if connection succeded, false otherwise
Parameters
hostnameHostname to connect to
portPort number for connection

Definition at line 107 of file CommandManager.cs.

◆ SendCommand()

CommandManagerStatus monitor.CommandManager.SendCommand ( string  cmd,
out string  answer,
double  timeout 
)

Sends a command to TCP server

Returns
status that is part of CommandManagerStatus enumerate
Parameters
cmdCommand message to send to server
answerAnswer from server, in case of acknowledge
timeoutTimeout (ms) waiting an acknowledge, 0 if no acknowledge needed

Definition at line 171 of file CommandManager.cs.

Member Data Documentation

◆ commandReceivedEvent

CommandReceivedEvent monitor.CommandManager.commandReceivedEvent = null

Definition at line 37 of file CommandManager.cs.

◆ isBusy

bool monitor.CommandManager.isBusy = false
private

flag indicating command manager is currently busy waiting an acknowledge

Definition at line 58 of file CommandManager.cs.

◆ messageReceived

string monitor.CommandManager.messageReceived = null
private

received message

Definition at line 53 of file CommandManager.cs.

◆ waitEvent

ManualResetEvent monitor.CommandManager.waitEvent = new ManualResetEvent(false)
private

Definition at line 43 of file CommandManager.cs.

◆ waitForAcknowledge

bool monitor.CommandManager.waitForAcknowledge = false
private

Flag to tell rogram to wait for an acknowledge from server

Definition at line 48 of file CommandManager.cs.

◆ waitTimer

System.Timers.Timer monitor.CommandManager.waitTimer = new System.Timers.Timer()
private

Timer for managing timeout

Definition at line 42 of file CommandManager.cs.


The documentation for this class was generated from the following file: