| IGLib 1.6.0 The IGLib base library for development of numerical, technical and business applications.

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Properties | Private Attributes | List of all members
IG.Lib.IpcStreamServerBase Class Referenceabstract

Server that creates a named pipe, listens on its input stream, and sends responses to the client. More...

Inheritance diagram for IG.Lib.IpcStreamServerBase:
[legend]
Collaboration diagram for IG.Lib.IpcStreamServerBase:
[legend]

## Public Member Functions
override void | CloseInput ()
| Closes the inpt stream. More...
override void | CloseOutput ()
| Closes the outut stream. More...
abstract void | SendDummyRequest ()
virtual void | StopServer ()
virtual string | GetResponse (string request)
| Returns response string for given request string. More...
void | ThreadServe ()
| Launches a named pipe server in a new thread. More...
void | AbortWorkingThread (double timeoutSeconds=0)
| Aborts the working thread. More...
override void | ClearData ()
| Clears all the data related to servig requests (i.e. request and response strings, error flags, exceptions, etc.). More...
Public Member Functions inherited from IG.Lib.IpcStreamClientServerBase2
virtual bool | IsErrorResponse (string responseString)
| Returns true if the specified response string represents an error response (exception), false if not. More...
virtual string | GetErrorMessage (string responseString)
| Returns error message that corresponds to the specified response string. More...
abstract void | ClosePipe ()
| Closes the pipe and streams that depend on it. More...
abstract bool | IsConnected ()
| Returns true if server pipe is connected, . More...
Public Member Functions inherited from IG.Lib.IpcStreamClientServerBase
delegate string | ResponseDelegate (string request)
| Provides an answer string to the specified request string. More...
void | SetMessagePreix (string messagePrefix)
| Changes message prefix for the current object. More...
void | SetMessageSeparator (char messageSeparator)
| Changes message separator for the current object. More...
void | SetMessageFalseSeparator (char messageFalseSeparator)
| Changes message false separator for the current object. More...
string | CreateMessage (string messageName, string[] messageArguments)
| Creates a built-in message (possibly with arguments) that is to be interpreted directly by the receiver (stream client or server) and is not executed via ordinary path. More...
string | CreateResponseOrRequestString (string originalResponseOrRequestString, bool multiLine)
| Generates request and response string in such a way that it can not be mixed up with a message. More...
void | InterpretRequestOrResponseLine (ref string responseOrRequestString, out bool isMessage, out string messageOrCommandName, out string[] messageArguments)
| Returns the (eventually decoded) request or response string corresponding to the stirng that is read form the communication pipeline, and also parameters that specify whether the request string represents a message or not. Eventual command or message parameters are also returned. More...
void | WriteMessage (StreamWriter outputStream, string message, string[] args)
| Writes a mesage to the output stream. What is written is decorated message (including the standard message prefix and separator) and message arguments. More...
virtual void | WorkMessage (string messageName, string[] messageArguments, IpcStage context, ref bool worked)
virtual void | RespondToMessage (string messageName, string[] messageArguments, ref bool responded)
| Responds to a received message. More...

## Protected Member Functions
abstract void | WaitForConnection ()
| Waits until a client connects to the specified server pipe. More...
virtual string | GetErrorMessage (Exception ex)
| Returns error message corresponding to the specified exception. More...
virtual string | ReadRequest ()
| Reads the next request from the pipe. More...
virtual void | SendResponse (string responseString)
| Sends the specified response string back to the server. More...
virtual void | SendResponse ()
| Sends the response (i.e., the ResponseString) back to the client. More...
virtual void | RespondToRequest ()
| Reads a single request from the client and sends back the response. More...
virtual void | ServeInCurrentThread ()
| Enters the serving loop. More...
Protected Member Functions inherited from IG.Lib.IpcStreamClientServerBase2
abstract void | CloseConnection ()
| Closes connection of the server pype. More...

## Static Protected Member Functions
static string | DefaultResponseMethod (string request)
| The deefault method that returns response to the specified request. More...

## Protected Attributes
ThreadPriority | _threadPriority = UtilSystem.ThreadPriority
Protected Attributes inherited from IG.Lib.IpcStreamClientServerBase
object | _lock = new object()

## Properties
bool | IsResponseSent`[get, protected set]`
| Auxiliary flag telling whether response to a request has already been sent to the client. Used for synchronization of diffeeent parts of the response generation process, which enables e.g special handling of Exceptions. More...
bool | StopServe`[get, protected set]`
| Whether the pipe should be closed. More...
bool | IsServerRunning`[get, protected set]`
| Flag telling whether the server is currently running. More...
virtual ResponseDelegate | ResponseMethod`[get, set]`
| Delegate that calculates response to given request. More...
ThreadPriority | ThreadPriority`[get, set]`
| Priority of the server thread. More...
Properties inherited from IG.Lib.IpcStreamClientServerBase2
abstract string | Name`[get, set]`
static string | DefaultPipeName`[get, set]`
| Default pipe name. More...
static string | DefaultErrorBegin`[get]`
| Default string that begins an error report. More...
string | ErrorBegin`[get, protected set]`
abstract StreamReader | InputStream`[get, protected set]`
| Input stream writer of the server's named pipe. More...
abstract StreamWriter | OutputStream`[get, protected set]`
| Output stream reader of the server's named pipe. More...
bool | IsError`[get, protected set]`
string | RequestString`[get, protected set]`
| The last request string that was read from the pipe. More...
string | ResponseString`[get, protected set]`
| The last answer string that was written to the pipe. More...
Exception | LastException`[get, protected set]`
| Returns the last exception thrown when serving request. More...
string | LastErrorMessage`[get, protected set]`
| Returns the last error message. More...
string | LastRequestString`[get, protected set]`
| Returns the last request string. More...
string | LastResponseString`[get, protected set]`
| Returns the last response string. More...
Properties inherited from IG.Lib.IpcStreamClientServerBase
object | Lock`[get]`
| Objectt for locking the current object. More...
static object | LockGlobal`[get]`
| Static lock object used by all instances of this class (and possibly by other classes). More...
StringBuilder | StringBuilderInternal`[get]`
static int | DefaultOutputLevel`[get, set]`
| Default level of output for this kind of class. More...
virtual int | OutputLevel`[get, set]`
| Level of output generated by operatins. More...
static string | DefaultMessagePrefix`[get, set]`
static char | DefaultMessageSeparator`[get, set]`
static char | DefaultMessageFalseSeparator`[get, set]`
string | MessagePrefix`[get, protected set]`
char | MessageSeparator`[get, protected set]`
char | MessageFalseSeparator`[get, protected set]`
string | MessagePrefixWithSeparator`[get, protected set]`
| Gets the mesage prefix with separator. If some string is a message, everything that follows this string until the first separator is a message name. More...
static string | DefaultMsgRequestBegin`[get]`
| Default message that begins any mulltiline request. More...
static string | DefaultMsgRequestEnd`[get]`
| Default message that ends any mulltiline request. More...
static string | DefaultMsgResponseBegin`[get]`
| Default message that begins any multiline response. More...
static string | DefaultMsgResponseEnd`[get]`
| Default message that ends any multiline response. More...
static string | DefaultMsgTestSquare`[get]`
| Default message that requests a test computation of square to be performed on the other side (a sort of ping command). More...
static string | DefaultMsgTestSpeed`[get]`
| Default message that requests a speed test to be performed on the other side (a sort of ping command). More...
string | MsgRequestBegin`[get, protected set]`
string | MsgRequestEnd`[get, protected set]`
string | MsgResponseBegin`[get, protected set]`
| Message that begins any multiline response (only when multiline responses are allowed). More...
string | MsgResponseEnd`[get, protected set]`
| Message that ends any multiline response (only when multiline responses are allowed). More...
string | MsgTestSquare`[get, protected set]`
| Message that requests square of its argument to be sent back. Used as a kind of verifiable ping. More...
string | MsgTestSpeed`[get, protected set]`
| Message that requires a kind of speed test to be performed on the other side. More...
static string | DefaultStopRequest`[get, set]`
| Default stop request string - request string that will stop the server. More...
string | StopRequest`[get, set]`
| Request that causes the server stop listening and closing the pipe. More...
static string | DefaultGenericResponse`[get, set]`
| Default generic response (sent in absence of any other method to generate the response). More...
string | GenericResponse`[get, protected set]`
| Generic response that is sent back to the client in abscence of any method generating responses to specific requests. More...
static string | DefaultStoppedResponse`[get, set]`
| Default stopped response (sent after the srver has sttopped on request). More...
string | StoppedResponse`[get, protected set]`
| Stopped response that is sent back to the client after the server stops on its request. More...
static bool | DefaultIsMultilineResponse`[get]`
| Default pipe name. More...
static bool | DefaultIsMultilineRequest`[get]`
| Default pipe name. More...
virtual bool | IsMultilineRequest`[get, protected set]`
| Whether or not multi line requests are allowed. More...
virtual bool | IsMultilineResponse`[get, protected set]`
| Whether or not multi line responses are allowed. More...
Properties inherited from IG.Lib.ILockable
object | Lock`[get]`

## Private Attributes
bool | _stopServe = false
bool | _isServerRunning = false
ResponseDelegate | _responseMethod = DefaultResponseMethod
Thread | _workingThread = null

## Additional Inherited Members
Public Attributes inherited from IG.Lib.IpcStreamClientServerBase
const int | MinimalMessagePreffixLength = 3

## Detailed Description

Server that creates a named pipe, listens on its input stream, and sends responses to the client.

$A Igor xx Mar14;

## Member Function Documentation

abstract void IG.Lib.IpcStreamServerBase.WaitForConnection | ( |  | ) |
| protected pure virtual

Waits until a client connects to the specified server pipe.

Parameters

  pipe | Pipe that waits for connection to be established.

Implemented in IG.Lib.PipeServerBase, and IG.Lib.NamedPipeServerBase.

override void IG.Lib.IpcStreamServerBase.CloseInput | ( |  | ) |
| inline virtual

Closes the inpt stream.

Implements IG.Lib.IpcStreamClientServerBase2.

override void IG.Lib.IpcStreamServerBase.CloseOutput | ( |  | ) |
| inline virtual

Closes the outut stream.

Implements IG.Lib.IpcStreamClientServerBase2.

abstract void IG.Lib.IpcStreamServerBase.SendDummyRequest | ( |  | ) |
| pure virtual

Implemented in IG.Lib.PipeServerBase, and IG.Lib.NamedPipeServerBase.

virtual void IG.Lib.IpcStreamServerBase.StopServer | ( |  | ) |
| inline virtual

Referenced by IG.Lib.CommandLineApplicationInterpreter.RemovePipeServers().

static string IG.Lib.IpcStreamServerBase.DefaultResponseMethod | ( | string | request | ) |
| inline static protected

The deefault method that returns response to the specified request.

Just returns a string that tells which was the request string.

Parameters

  request |

virtual string IG.Lib.IpcStreamServerBase.GetResponse | ( | string | request | ) |
| inline virtual

Returns response string for given request string.

This method will generally be overridden in derived classes.

Parameters

  request | The request string.

Returns
  Response to the request string.

Reimplemented in IG.Lib.CommandLineApplicationInterpreter.InterpreterPipeServer.

virtual string IG.Lib.IpcStreamServerBase.GetErrorMessage | ( | Exception | ex | ) |
| inline protected virtual

Returns error message corresponding to the specified exception.

Parameters

  ex |

virtual string IG.Lib.IpcStreamServerBase.ReadRequest | ( |  | ) |
| inline protected virtual

Reads the next request from the pipe.

virtual void IG.Lib.IpcStreamServerBase.SendResponse | ( | string | responseString | ) |
| inline protected virtual

Sends the specified response string back to the server.

Parameters

  responseString |

virtual void IG.Lib.IpcStreamServerBase.SendResponse | ( |  | ) |
| inline protected virtual

Sends the response (i.e., the ResponseString) back to the client.

virtual void IG.Lib.IpcStreamServerBase.RespondToRequest | ( |  | ) |
| inline protected virtual

Reads a single request from the client and sends back the response.

virtual void IG.Lib.IpcStreamServerBase.ServeInCurrentThread | ( |  | ) |
| inline protected virtual

Enters the serving loop.

Within the loop, only ReadRequest() and RespondToRequest() are executed. The latter must handle things like stopping requests.

void IG.Lib.IpcStreamServerBase.ThreadServe | ( |  | ) |
| inline

Launches a named pipe server in a new thread.

Referenced by IG.Lib.CommandLineApplicationInterpreter.CreatePipeServer().

void IG.Lib.IpcStreamServerBase.AbortWorkingThread | ( | double | timeoutSeconds = `0` | ) |
| inline

Aborts the working thread.

Parameters

  timeoutSeconds |

override void IG.Lib.IpcStreamServerBase.ClearData | ( |  | ) |
| inline virtual

Clears all the data related to servig requests (i.e. request and response strings, error flags, exceptions, etc.).

Implements IG.Lib.IpcStreamClientServerBase2.

## Member Data Documentation

bool IG.Lib.IpcStreamServerBase._stopServe = false
| private

bool IG.Lib.IpcStreamServerBase._isServerRunning = false
| private

ResponseDelegate IG.Lib.IpcStreamServerBase._responseMethod = DefaultResponseMethod
| private

Thread IG.Lib.IpcStreamServerBase._workingThread = null
| private

ThreadPriority IG.Lib.IpcStreamServerBase._threadPriority = UtilSystem.ThreadPriority
| protected

## Property Documentation

bool IG.Lib.IpcStreamServerBase.IsResponseSent
| get protected set

Auxiliary flag telling whether response to a request has already been sent to the client. Used for synchronization of diffeeent parts of the response generation process, which enables e.g special handling of Exceptions.

bool IG.Lib.IpcStreamServerBase.StopServe
| get protected set

Whether the pipe should be closed.

bool IG.Lib.IpcStreamServerBase.IsServerRunning
| get protected set

Flag telling whether the server is currently running.

virtual ResponseDelegate IG.Lib.IpcStreamServerBase.ResponseMethod
| get set

Delegate that calculates response to given request.

ThreadPriority IG.Lib.IpcStreamServerBase.ThreadPriority
| get set

Priority of the server thread.

Setting priority changes priority of the server thread if it exists.

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

- igbase/data/streams/IpcStreamServerBase.cs