Scs Represents a SCS server that is used to accept and manage client connections. Starts the server. Stops the server. This event is raised when a new client connected to the server. This event is raised when a client disconnected from the server. Gets/sets wire protocol factory to create IWireProtocol objects. A collection of clients that are connected to the server. Represents a client to connect to server. Represents an object that can send and receive messages. Sends a message to the remote application. Message to be sent This event is raised when a new message is received. This event is raised when a new message is sent without any error. It does not guaranties that message is properly handled and processed by remote application. Gets/sets wire protocol that is used while reading and writing messages. Gets the time of the last succesfully received message. Gets the time of the last succesfully sent message. Represents a client for SCS servers. Connects to server. Disconnects from server. Does nothing if already disconnected. This event is raised when client connected to server. This event is raised when client disconnected from server. Timeout for connecting to a server (as milliseconds). Default value: 15 seconds (15000 ms). Gets the current communication state. This class extends RemoteInvokeProxy to provide auto connect/disconnect mechanism if client is not connected to the server when a service method is called. Type of the proxy class/interface Type of the messenger object that is used to send/receive messages This class is used to generate a dynamic proxy to invoke remote methods. It translates method invocations to messaging. Type of the proxy class/interface Type of the messenger object that is used to send/receive messages Messenger object that is used to send/receive messages. Creates a new RemoteInvokeProxy object. Messenger object that is used to send/receive messages Overrides message calls and translates them to messages to remote application. Method invoke message (from RealProxy base class) Method invoke return message (to RealProxy base class) Reference to the client object that is used to connect/disconnect. Creates a new AutoConnectRemoteInvokeProxy object. Messenger object that is used to send/receive messages Reference to the client object that is used to connect/disconnect Overrides message calls and translates them to messages to remote application. Method invoke message (from RealProxy base class) Method invoke return message (to RealProxy base class) This class is used to communicate with a remote application over TCP/IP protocol. This class provides base functionality for all communication channel classes. Represents a communication channel. A communication channel is used to communicate (send/receive messages) with a remote application. Starts the communication with remote application. Closes messenger. This event is raised when client disconnected from server. Gets endpoint of remote application. Gets the current communication state. Constructor. Disconnects from remote application and closes this channel. Starts the communication with remote application. Sends a message to the remote application. Message to be sent Throws ArgumentNullException if message is null Starts the communication with remote application really. Sends a message to the remote application. This method is overrided by derived classes to really send to message. Message to be sent Raises Disconnected event. Raises MessageReceived event. Received message Raises MessageSent event. Received message This event is raised when a new message is received. This event is raised when a new message is sent without any error. It does not guaranties that message is properly handled and processed by remote application. This event is raised when communication channel closed. Gets endpoint of remote application. Gets the current communication state. Gets the time of the last succesfully received message. Gets the time of the last succesfully sent message. Gets/sets wire protocol that the channel uses. This property must set before first communication. Size of the buffer that is used to receive bytes from TCP socket. This buffer is used to receive bytes Socket object to send/reveice messages. A flag to control thread's running This object is just used for thread synchronizing (locking). Creates a new TcpCommunicationChannel object. A connected Socket object that is used to communicate over network Disconnects from remote application and closes channel. Starts the thread to receive messages from socket. Sends a message to the remote application. Message to be sent This method is used as callback method in _clientSocket's BeginReceive method. It reveives bytes from socker. Asyncronous call result Gets the endpoint of remote application. Base class for all services that is serviced by IScsServiceApplication. A class must be derived from ScsService to serve as a SCS service. The current client for a thread that called service method. Gets the current client which called this service method. This property is thread-safe, if returns correct client when called in a service method if the method is called by SCS system, else throws exception. Stores communication channel information to be used by an event. Creates a new CommunicationChannelEventArgs object. Communication channel that is associated with this event Communication channel that is associated with this event. This class is used to create SCS Clients to connect to a SCS server. Creates a new client to connect to a server using an end point. End point of the server to connect it Created TCP client Creates a new client to connect to a server using an end point. End point address of the server to connect it Created TCP client This message is sent to invoke a method of a remote application. Represents a message that is sent and received by server and client. This is the base class for all messages. Represents a message that is sent and received by server and client. Unique identified for this message. Unique identified for this message. Creates a new ScsMessage. Creates a new reply ScsMessage. Replied message id if this is a reply for a message. Creates a string to represents this object. A string to represents this object Unique identified for this message. Default value: New GUID. Do not change if you do not want to do low level changes such as custom wire protocols. This property is used to indicate that this is a Reply message to a message. It may be null if this is not a reply message. Represents this object as string. String representation of this object Name of the remove service class. Method of remote application to invoke. Parameters of method. Represents a service client that consumes a SCS service. Type of service interface Reference to the service proxy to invoke remote service methods. Timeout value when invoking a service method. If timeout occurs before end of remote method call, an exception is thrown. Use -1 for no timeout (wait indefinite). Default value: 60000 (1 minute). Default communication protocol between server and clients to send and receive a message. It uses .NET binary serialization to write and read messages. A Message format: [Message Length (4 bytes)][Serialized Message Content] If a message is serialized to byte array as N bytes, this protocol adds 4 bytes size information to head of the message bytes, so total length is (4 + N) bytes. This class can be derived to change serializer (default: BinaryFormatter). To do this, SerializeMessage and DeserializeMessage methods must be overrided. Represents a byte-level communication protocol between applications. Serializes a message to a byte array to send to remote application. This method is synchronized. So, only one thread can call it concurrently. Message to be serialized Builds messages from a byte array that is received from remote application. The Byte array may contain just a part of a message, the protocol must cumulate bytes to build messages. This method is synchronized. So, only one thread can call it concurrently. Received bytes from remote application List of messages. Protocol can generate more than one message from a byte array. Also, if received bytes are not sufficient to build a message, the protocol may return an empty list (and save bytes to combine with next method call). This method is called when connection with remote application is reset (connection is renewing or first connecting). So, wire protocol must reset itself. Maximum length of a message. This MemoryStream object is used to collect receiving bytes to build messages. Creates a new instance of BinarySerializationProtocol. Serializes a message to a byte array to send to remote application. This method is synchronized. So, only one thread can call it concurrently. Message to be serialized Throws CommunicationException if message is bigger than maximum allowed message length. Builds messages from a byte array that is received from remote application. The Byte array may contain just a part of a message, the protocol must cumulate bytes to build messages. This method is synchronized. So, only one thread can call it concurrently. Received bytes from remote application List of messages. Protocol can generate more than one message from a byte array. Also, if received bytes are not sufficient to build a message, the protocol may return an empty list (and save bytes to combine with next method call). This method is called when connection with remote application is reset (connection is renewing or first connecting). So, wire protocol must reset itself. This method is used to serialize a IScsMessage to a byte array. This method can be overrided by derived classes to change serialization strategy. It is a couple with DeserializeMessage method and must be overrided together. Message to be serialized Serialized message bytes. Does not include length of the message. This method is used to deserialize a IScsMessage from it's bytes. This method can be overrided by derived classes to change deserialization strategy. It is a couple with SerializeMessage method and must be overrided together. Bytes of message to be deserialized (does not include message length. It consist of a single whole message) Deserialized message This method tries to read a single message and add to the messages collection. Messages collection to collect messages Returns a boolean value indicates that if there is a need to re-call this method. Throws CommunicationException if message is bigger than maximum allowed message length. Writes a int value to a byte array from a starting index. Byte array to write int value Start index of byte array to write An integer value to write Deserializes and returns a serialized integer. Deserialized integer Reads a byte array with specified length. Stream to read from Length of the byte array to read Read byte array Throws EndOfStreamException if can not read from stream. This class is used in deserializing to allow deserializing objects that are defined in assemlies that are load in runtime (like PlugIns). Represents a communication listener. A connection listener is used to accept incoming client connection requests. Starts listening incoming connections. Stops listening incoming connections. This event is raised when a new communication channel connected. Represents a service client that consumes a SCS service. Type of service interface Underlying IScsClient object to communicate with server. Messenger object to send/receive messages over _client. This object is used to create a transparent proxy to invoke remote methods on server. The client object that is used to call method invokes in client side. May be null if client has no methods to be invoked by server. Creates a new ScsServiceClient object. Underlying IScsClient object to communicate with server The client object that is used to call method invokes in client side. May be null if client has no methods to be invoked by server. Connects to server. Disconnects from server. Does nothing if already disconnected. Calls Disconnect method. Handles MessageReceived event of messenger. It gets messages from server and invokes appropriate method. Source of event Event arguments Sends response to the remote application that invoked a service method. Request message Return value to send Exception to send Handles Connected event of _client object. Source of object Event arguments Handles Disconnected event of _client object. Source of object Event arguments Raises Connected event. Raises Disconnected event. This event is raised when client connected to server. This event is raised when client disconnected from server. Timeout for connecting to a server (as milliseconds). Default value: 15 seconds (15000 ms). Gets the current communication state. Reference to the service proxy to invoke remote service methods. Timeout value when invoking a service method. If timeout occurs before end of remote method call, an exception is thrown. Use -1 for no timeout (wait indefinite). Default value: 60000 (1 minute). Provides some functionality that are used by servers. Used to set an auto incremential unique identifier to clients. Gets an unique number to be used as idenfitier of a client. This class is used to create Binary Serialization Protocol objects. Defines a Wire Protocol Factory class that is used to create Wire Protocol objects. Creates a new Wire Protocol object. Newly created wire protocol object Creates a new Wire Protocol object. Newly created wire protocol object This message is used to send/receive a text as message data. Creates a new ScsTextMessage object. Creates a new ScsTextMessage object with Text property. Message text that is being transmitted Creates a new reply ScsTextMessage object with Text property. Message text that is being transmitted Replied message id if this is a reply for a message. Creates a string to represents this object. A string to represents this object Message text that is being transmitted. This class is used to build ScsService applications. Creates a new SCS Service application using an EndPoint. EndPoint that represents address of the service Created SCS service application This message is used to send/receive ping messages. Ping messages is used to keep connection alive between server and client. Creates a new PingMessage object. Creates a new reply PingMessage object. Replied message id if this is a reply for a message. Creates a string to represents this object. A string to represents this object Represents a SCS Remote Exception. This exception is used to send an exception from an application to another application. Contstructor. Contstructor. Contstructor. Exception message Contstructor. Exception message Inner exception This class provides base functionality for server classes. This object is used to listen incoming connections. Constructor. Starts the server. Stops the server. This method is implemented by derived classes to create appropriate connection listener to listen incoming connection requets. Handles CommunicationChannelConnected event of _connectionListener object. Source of event Event arguments Handles Disconnected events of all connected clients. Source of event Event arguments Raises ClientConnected event. Connected client Raises ClientDisconnected event. Disconnected client This event is raised when a new client is connected. This event is raised when a client disconnected from the server. Gets/sets wire protocol that is used while reading and writing messages. A collection of clients that are connected to the server. This message is used to send/receive a raw byte array as message data. Default empty constructor. Creates a new ScsRawDataMessage object with MessageData property. Message data that is being transmitted Creates a new reply ScsRawDataMessage object with MessageData property. Message data that is being transmitted Replied message id if this is a reply for a message. Creates a string to represents this object. A string to represents this object Message data that is being transmitted. Stores service client informations to be used by an event. Creates a new ServiceClientEventArgs object. Client that is associated with this event Client that is associated with this event. Implements IScsServiceClient. It is used to manage and monitor a service client. Represents a client that uses a SDS service. Closes client connection. Gets the client proxy interface that provides calling client methods remotely. Type of client interface Client interface This event is raised when client is disconnected from service. Unique identifier for this client. Gets endpoint of remote application. Gets the communication state of the Client. Reference to underlying IScsServerClient object. This object is used to send messages to client. Last created proxy object to invoke remote medhods. Creates a new ScsServiceClient object. Reference to underlying IScsServerClient object RequestReplyMessenger to send messages Closes client connection. Gets the client proxy interface that provides calling client methods remotely. Type of client interface Client interface Handles disconnect event of _serverClient object. Source of event Event arguments Raises Disconnected event. This event is raised when this client is disconnected from server. Unique identifier for this client. Gets endpoint of remote application. Gets the communication state of the Client. This class is used to store key-value based items in a thread safe manner. It uses System.Collections.Generic.SortedList internally. Key type Value type Internal collection to store items. Used to synchronize access to _items list. Creates a new ThreadSafeSortedList object. Checks if collection contains spesified key. Key to check True; if collection contains given key Checks if collection contains spesified item. Item to check True; if collection contains given item Removes an item from collection. Key of item to remove Gets all items in collection. Item list Removes all items from list. Gets then removes all items in collection. Item list Gets/adds/replaces an item by key. Key to get/set value Item associated with this key Gets count of items in the collection. This class is used to simplify TCP socket operations. This code is used to connect to a TCP socket with timeout option. IP endpoint of remote server Timeout to wait until connect Socket object connected to server Throws SocketException if can not connect. Throws TimeoutException if can not connect within specified timeoutMs This class is used to communicate with server over TCP/IP protocol. This class provides base functionality for client classes. Default timeout value for connecting a server. The communication channel that is used by client to send and receive messages. This timer is used to send PingMessage messages to server periodically. Constructor. Connects to server. Disconnects from server. Does nothing if already disconnected. Disposes this object and closes underlying connection. Sends a message to the server. Message to be sent Throws a CommunicationStateException if client is not connected to the server. This method is implemented by derived classes to create appropriate communication channel. Ready communication channel to communicate Handles MessageReceived event of _communicationChannel object. Source of event Event arguments Handles MessageSent event of _communicationChannel object. Source of event Event arguments Handles Disconnected event of _communicationChannel object. Source of event Event arguments Handles Elapsed event of _pingTimer to send PingMessage messages to server. Source of event Event arguments Raises Connected event. Raises Disconnected event. Raises MessageReceived event. Received message Raises MessageSent event. Received message This event is raised when a new message is received. This event is raised when a new message is sent without any error. It does not guaranties that message is properly handled and processed by remote application. This event is raised when communication channel closed. This event is raised when client disconnected from server. Timeout for connecting to a server (as milliseconds). Default value: 15 seconds (15000 ms). Gets/sets wire protocol that is used while reading and writing messages. Gets the communication state of the Client. Gets the time of the last succesfully received message. Gets the time of the last succesfully received message. The endpoint address of the server. Creates a new ScsTcpClient object. The endpoint address to connect to the server Creates a communication channel using ServerIpAddress and ServerPort. Ready communication channel to communicate Represens a TCP end point in SCS. Represents a server side end point in SCS. Create a Scs End Point from a string. Address must be formatted as: protocol://address For example: tcp://89.43.104.179:10048 for a TCP endpoint with IP 89.43.104.179 and port 10048. Address to create endpoint Created end point Creates a Scs Server that uses this end point to listen incoming connections. Scs Server Creates a Scs Server that uses this end point to connect to server. Scs Client Creates a new ScsTcpEndPoint object with specified port number. Listening TCP Port for incoming connection requests on server Creates a new ScsTcpEndPoint object with specified IP address and port number. IP address of the server Listening TCP Port for incoming connection requests on server Creates a new ScsTcpEndPoint from a string address. Address format must be like IPAddress:Port (For example: 127.0.0.1:10085). TCP end point Address Created ScsTcpEndpoint object Creates a Scs Server that uses this end point to listen incoming connections. Scs Server Creates a Scs Client that uses this end point to connect to server. Scs Client Generates a string representation of this end point object. String representation of this end point object IP address of the server. Listening TCP Port for incoming connection requests on server. Any SCS Service interface class must has this attribute. Creates a new ScsServiceAttribute object. Service Version. This property can be used to indicate the code version. This value is sent to client application on an exception, so, client application can know that service version is changed. Default value: NO_VERSION. This class adds SendMessageAndWaitForResponse(...) and SendAndReceiveMessage methods to a IMessenger for synchronous request/response style messaging. It also adds queued processing of incoming messages. Type of IMessenger object to use as underlying communication Default Timeout value. This messages are waiting for a response those are used when SendMessageAndWaitForResponse is called. Key: MessageID of waiting request message. Value: A WaitingMessage instance. This object is used to process incoming messages sequentially. This object is used for thread synchronization. Creates a new RequestReplyMessenger. IMessenger object to use as underlying communication Starts the messenger. Stops the messenger. Cancels all waiting threads in SendMessageAndWaitForResponse method and stops message queue. SendMessageAndWaitForResponse method throws exception if there is a thread that is waiting for response message. Also stops incoming message processing and deletes all messages in incoming message queue. Calls Stop method of this object. Sends a message. Message to be sent Sends a message and waits a response for that message. Response message is matched with RepliedMessageId property, so if any other message (that is not reply for sent message) is received from remote application, it is not considered as a reply and is not returned as return value of this method. MessageReceived event is not raised for response messages. message to send Response message Sends a message and waits a response for that message. Response message is matched with RepliedMessageId property, so if any other message (that is not reply for sent message) is received from remote application, it is not considered as a reply and is not returned as return value of this method. MessageReceived event is not raised for response messages. message to send Timeout duration as milliseconds. Response message Throws TimeoutException if can not receive reply message in timeout value Throws CommunicationException if communication fails before reply message. Handles MessageReceived event of Messenger object. Source of event Event arguments Handles MessageSent event of Messenger object. Source of event Event arguments Raises MessageReceived event. Received message Raises MessageSent event. Received message This event is raised when a new message is received from underlying messenger. This event is raised when a new message is sent without any error. It does not guaranties that message is properly handled and processed by remote application. Gets/sets wire protocol that is used while reading and writing messages. Gets the time of the last succesfully received message. Gets the time of the last succesfully received message. Gets the underlying IMessenger object. Timeout value as milliseconds to wait for a receiving message on SendMessageAndWaitForResponse and SendAndReceiveMessage methods. Default value: 60000 (1 minute). This class is used to store messaging context for a request message until response is received. Creates a new WaitingMessage object. Response message for request message (null if response is not received yet). ManualResetEvent to block thread until response is received. State of the request message. This enum is used to store the state of a waiting message. Still waiting for response. Message sending is cancelled. Response is properly received. This class is a timer that performs some tasks periodically. This timer is used to perfom the task at spesified intervals. Indicates that whether timer is running or stopped. Indicates that whether performing the task or _taskTimer is in sleep mode. This field is used to wait executing tasks when stopping Timer. Creates a new Timer. Task period of timer (as milliseconds) Creates a new Timer. Task period of timer (as milliseconds) Indicates whether timer raises Elapsed event on Start method of Timer for once Starts the timer. Stops the timer. Waits the service to stop. This method is called by _taskTimer. Not used argument This event is raised periodically according to Period of Timer. Task period of timer (as milliseconds). Indicates whether timer raises Elapsed event on Start method of Timer for once. Default: False. This application is thrown if communication is not expected state. This application is thrown in a communication error. Contstructor. Contstructor for serializing. Contstructor. Exception message Contstructor. Exception message Inner exception Contstructor. Contstructor for serializing. Contstructor. Exception message Contstructor. Exception message Inner exception Stores client information to be used by an event. Creates a new ServerClientEventArgs object. Client that is associated with this event Client that is associated with this event. This class represents a client in server side. Represents a client from a perspective of a server. Disconnects from server. This event is raised when client disconnected from server. Unique identifier for this client in server. Gets endpoint of remote application. Gets the current communication state. The communication channel that is used by client to send and receive messages. Creates a new ScsClient object. The communication channel that is used by client to send and receive messages Disconnects from client and closes underlying communication channel. Sends a message to the client. Message to be sent Handles Disconnected event of _communicationChannel object. Source of event Event arguments Handles MessageReceived event of _communicationChannel object. Source of event Event arguments Handles MessageSent event of _communicationChannel object. Source of event Event arguments Raises Disconnected event. Raises MessageReceived event. Received message Raises MessageSent event. Received message This event is raised when a new message is received. This event is raised when a new message is sent without any error. It does not guaranties that message is properly handled and processed by remote application. This event is raised when client is disconnected from server. Unique identifier for this client in server. Gets the communication state of the Client. Gets/sets wire protocol that is used while reading and writing messages. Gets endpoint of remote application. Gets the time of the last succesfully received message. Gets the time of the last succesfully received message. This class is used to listen and accept incoming TCP connection requests on a TCP port. This class provides base functionality for communication listener classes. Starts listening incoming connections. Stops listening incoming connections. Raises CommunicationChannelConnected event. This event is raised when a new communication channel is connected. The endpoint address of the server to listen incoming connections. Server socket to listen incoming connection requests. The thread to listen socket A flag to control thread's running Creates a new TcpConnectionListener for given endpoint. The endpoint address of the server to listen incoming connections Starts listening incoming connections. Stops listening incoming connections. Starts listening socket. Stops listening socket. Entrance point of the thread. This method is used by the thread to listen incoming requests. Implements IScsServiceApplication and provides all functionallity. Represents a SCS Service Application that is used to construct and manage a SCS service. Starts service application. Stops service application. Adds a service object to this service application. Only single service object can be added for a service interface type. Service interface type Service class type. Must be delivered from ScsService and must implement TServiceInterface. An instance of TServiceClass. Removes a previously added service object from this service application. It removes object according to interface type. Service interface type True: removed. False: no service object with this interface This event is raised when a new client connected to the service. This event is raised when a client disconnected from the service. Underlying IScsServer object to accept and manage client connections. User service objects that is used to invoke incoming method invocation requests. Key: Service interface type's name. Value: Service object. All connected clients to service. Key: Client's unique Id. Value: Reference to the client. Creates a new ScsServiceApplication object. Underlying IScsServer object to accept and manage client connections Throws ArgumentNullException if scsServer argument is null Starts service application. Stops service application. Adds a service object to this service application. Only single service object can be added for a service interface type. Service interface type Service class type. Must be delivered from ScsService and must implement TServiceInterface. An instance of TServiceClass. Throws ArgumentNullException if service argument is null Throws Exception if service is already added before Removes a previously added service object from this service application. It removes object according to interface type. Service interface type True: removed. False: no service object with this interface Handles ClientConnected event of _scsServer object. Source of event Event arguments Handles ClientDisconnected event of _scsServer object. Source of event Event arguments Handles MessageReceived events of all clients, evaluates each message, finds appropriate service object and invokes appropriate method. Source of event Event arguments Sends response to the remote application that invoked a service method. Client that sent invoke message Request message Return value to send Exception to send Raises ClientConnected event. Raises ClientDisconnected event. This event is raised when a new client connected to the service. This event is raised when a client disconnected from the service. Represents a user service object. It is used to invoke methods on a ScsService object. This collection stores a list of all methods of service object. Key: Method name Value: Informations about method. Creates a new ServiceObject. Type of service interface The service object that is used to invoke methods on Invokes a method of Service object. Name of the method to invoke Parameters of method Return value of method The service object that is used to invoke methods on. ScsService attribute of Service object's class. Communication states. Connected. Disconnected. This class is a wrapper for IMessenger and is used to synchronize message receiving operation. It extends RequestReplyMessenger. It is suitable to use in applications those want to receive messages by synchronized method calls instead of asynchronous MessageReceived event. A queue that is used to store receiving messages until Receive(...) method is called to get them. This object is used to synchronize/wait threads. This boolean value indicates the running state of this class. Creates a new SynchronizedMessenger object. A IMessenger object to be used to send/receive messages Creates a new SynchronizedMessenger object. A IMessenger object to be used to send/receive messages capacity of the incoming message queue Starts the messenger. Stops the messenger. This method is used to receive a message from remote application. It waits until a message is received. Received message This method is used to receive a message from remote application. It waits until a message is received or timeout occurs. Timeout value to wait if no message is received. Use -1 to wait indefinitely. Received message Throws TimeoutException if timeout occurs Throws Exception if SynchronizedMessenger stops before a message is received This method is used to receive a specific type of message from remote application. It waits until a message is received. Received message This method is used to receive a specific type of message from remote application. It waits until a message is received or timeout occurs. Timeout value to wait if no message is received. Use -1 to wait indefinitely. Received message Overrides Gets/sets capacity of the incoming message queue. No message is received from remote application if number of messages in internal queue exceeds this value. Default value: int.MaxValue (2147483647). Stores message to be used by an event. Creates a new MessageEventArgs object. Message object that is associated with this event Message object that is associated with this event. This class is used to automatically re-connect to server if disconnected. It attempts to reconnect to server periodically until connection established. Reference to client object. Timer to attempt ro reconnect periodically. Indicates the dispose state of this object. Creates a new ClientReConnecter object. It is not needed to start ClientReConnecter since it automatically starts when the client disconnected. Reference to client object Throws ArgumentNullException if client is null. Disposes this object. Does nothing if already disposed. Handles Disconnected event of _client object. Source of the event Event arguments Hadles Elapsed event of _reconnectTimer. Source of the event Event arguments Reconnect check period. Default: 20 seconds. This class is used to create service client objects that is used in server-side. Creates a new service client object that is used in server-side. Underlying server client object RequestReplyMessenger object to send/receive messages over serverClient This class is used to create SCS servers. Creates a new SCS Server using an EndPoint. Endpoint that represents address of the server Created TCP server This class is used to build service clients to remotely invoke methods of a SCS service. Creates a client to connect to a SCS service. Type of service interface for remote method call EndPoint of the server Client-side object that handles remote method calls from server to client. May be null if client has no methods to be invoked by server Created client object to connect to the server Creates a client to connect to a SCS service. Type of service interface for remote method call EndPoint address of the server Client-side object that handles remote method calls from server to client. May be null if client has no methods to be invoked by server Created client object to connect to the server This class is used to process items sequentially in a multithreaded manner. Type of item to process The method delegate that is called to actually process items. Item queue. Used to process items sequentially. A reference to the current Task that is processing an item in ProcessItem method. Indicates state of the item processing. A boolean value to control running of SequentialItemProcessor. An object to synchronize threads. Creates a new SequentialItemProcessor object. The method delegate that is called to actually process items Adds an item to queue to process the item. Item to add to the queue Starts processing of items. Stops processing of items and waits stopping of current item. This method runs on a new seperated Task (thread) to process items on the queue. This class is used to create a TCP server. The endpoint address of the server to listen incoming connections. Creates a new ScsTcpServer object. The endpoint address of the server to listen incoming connections Creates a TCP connection listener. Created listener object This class is used to get default protocols. Creates a default wire protocol factory object to be used on communicating of applications. A new instance of default wire protocol Creates a default wire protocol object to be used on communicating of applications. A new instance of default wire protocol This message is sent as response message to a ScsRemoteInvokeMessage. It is used to send return value of method invocation. Represents this object as string. String representation of this object Return value of remote method invocation. If any exception occured during method invocation, this field contains Exception object. If no exception occured, this field is null.