<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Matrix</name>
    </assembly>
    <members>
        <member name="T:Matrix.BlockingQueue">
             <summary>
             C # queue with a DeQueue function that blocks while the queue is empty
             </summary>
             <remarks>
             The BlockingQueue encapsulates an ordinary C# queue to allow the DeQ function to block
             if the queue is Empty. In addition, the queue holds a delegate to which an external
             function can be registered. When an element is enqueued, it is automatically extracted
             and passed to the registered function as a parameter.  
            </remarks>
        </member>
        <member name="M:Matrix.BlockingQueue.#ctor(Matrix.BlockingQueue.DequeueDelegate)">
            <summary>
            Constructor for the BlockingQueue.
            </summary>
            <param name="_dequeue">
            the delegate to which the processing function is registered.
            </param>
        </member>
        <member name="M:Matrix.BlockingQueue.enQ(System.Object)">
            <summary>
            Add an element into the Queue
            </summary>
            <param name="msg">the element to be entered into the queue
            </param>
        </member>
        <member name="M:Matrix.BlockingQueue.size">
            <summary>
            Returns the current number of elements in the queue
            </summary>
            <returns>Integer containing the size</returns>
        </member>
        <member name="M:Matrix.BlockingQueue.clear">
            <summary>
            Remove all elements from the Queue
            </summary>
        </member>
        <member name="T:Matrix.BlockingQueue.DequeueDelegate">
            <summary>
            Delegate to which the processing function is registered.
            </summary>
        </member>
        <member name="T:Matrix.ReceiveDelegate">
            <summary>
            Delegate to register the function to be notified when response messages are
            received.
            </summary>
        </member>
        <member name="T:Matrix.Cell">
            <summary>
            Defines the public interface to a Matrix Cell. 
            </summary>
            <remarks>
            The Cell interface is the parent to all Matrix Cells. Its functions are used
            in registering Cells to the framework, locating and communicating between Cells.
            Most of the Functions have default implementations which do not change for one Cell
            to another. These functions are marked as MATRIX INTERNAL FUNCTION and their implementation
            code can be generated automatically for every Cell. 
            </remarks>
        </member>
        <member name="M:Matrix.Cell.Register">
            <summary>
            MATRIX INTERNAL FUNCTION - Logs the Cell into the Matrix registry 
            </summary>
            <remarks>This function registers the Cell and makes its services available
            to the rest of the Application. It also runs the Start Function defined by the
            Cell to allow it to perform initialization operations
            </remarks>
            <returns>True if successful</returns>
        </member>
        <member name="M:Matrix.Cell.Unregister">
            <summary>
            MATRIX INTERNAL FUNCTION - Removes the Cell from the Matrix Registry
            </summary>
            <returns>True if successful</returns>
        </member>
        <member name="M:Matrix.Cell.Extract(System.Object)">
            <summary>
            MATRIX INTERNAL FUNCTION - Extracts the incoming messages from the Input Queue, forwards them 
            to be processed and returns the response objects
            </summary>
            <param name="msg">The Input Message to be processed</param>
        </member>
        <member name="M:Matrix.Cell.ExtractResponse(System.Object)">
            <summary>
            MATRIX INTERNAL FUNCTION - Extracts Messages from the response queue and retrieves the return values
            for synchronous Message transfers
            </summary>
            <param name="msg">The Response Message to be processed</param>
        </member>
        <member name="M:Matrix.Cell.Accept(System.String)">
            <summary>
            MATRIX INTERNAL FUNCTION - Accepts a Message and puts it into the Request queue for processing
            </summary>
            <param name="message">The incoming Message</param>
        </member>
        <member name="M:Matrix.Cell.Accept(System.String,System.Boolean)">
            <summary>
            MATRIX INTERNAL FUNCTION - Accepts a Message for processing
            </summary>
            <param name="message">The incoming Message</param>
            <param name="Response">Defines whether the Message is a Request or a Reply
            True for Response Messages and False for Request Messages
            </param>
        </member>
        <member name="M:Matrix.Cell.GetID">
            <summary>
            MATRIX INTERNAL FUNCTION - Returns the GUID of the Cell instance
            </summary>
            <returns>System.Guid holding the Cell's GUID</returns>                      
        </member>
        <member name="M:Matrix.Cell.QueryCapability(System.String)">
            <summary>
            MATRIX INTERNAL FUNCTION - Determines if the Cell can process a particular MessageType
            </summary>
            <param name="capability">The MessageType being queried</param>
            <returns>True if the Cell can accept Messages of the specified type
            False if it cannot</returns>
        </member>
        <member name="M:Matrix.Cell.QueryCapability">
            <summary>
            Finds all the MessageTypes that the Cell can process
            </summary>
            <returns>A string array containing the names of all the MessageType the 
            Cell can process
            </returns>
        </member>
        <member name="M:Matrix.Cell.GetClone(System.String)">
            <summary>
            MATRIX INTERNAL FUNCTION - Returns a Clone of the MessageHandler Cell for the specified Messagetype
            </summary>
            <param name="MessageName">The name of the Message for which a Message Handler
            is required</param>
            <returns>A Clone of the Message Handler Cell</returns>
        </member>
        <member name="M:Matrix.Cell.Send(System.String,System.Object[],System.String)">
            <summary>
            MATRIX INTERNAL FUNCTION - Sends an asynchronous Message to either a local or remote Cell
            </summary>
            <param name="MessageName">The name of the Message to be sent</param>
            <param name="Params">The arguments to be supplied to the Messsage Handler</param>
            <param name="destnAddress">The Address of remote Machine to which the Message is 
            to be delivered. An address of "0" will deliver the messsage to the local machine</param>
            <returns>True if successful</returns>
        </member>
        <member name="M:Matrix.Cell.SyncSend(System.String,System.Object[],System.String)">
            <summary>
            MATRIX INTERNAL FUNCTION - Sends a synchronous Message to either a local or remote Cell and waits for
            the reply
            </summary>
            <param name="MessageName">The name of the Message to be sent</param>
            <param name="Params">The arguments to be supplied to the Messsage Handler</param>
            <param name="destnAddress">The Address of remote Machine to which the Message is 
            to be delivered. An address of "0" will deliver the messsage to the local machine</param>
            <returns>An array of objects containing the reply to the request Message</returns>
        </member>
        <member name="M:Matrix.Cell.SyncSend(System.String,System.Object[],System.String,Matrix.Clone)">
            <summary>
            MATRIX INTERNAL FUNCTION - Sends a synchronous Message to either a local or remote Cell and waits for
            the reply
            </summary>
            <param name="MessageName">The name of the Message to be sent</param>
            <param name="Params">The arguments to be supplied to the Messsage Handler</param>
            <param name="destnAddress">The Address of remote Machine to which the Message is 
            to be delivered. An address of "0" will deliver the messsage to the local machine</param>
            <param name="clone">The Clone cell to which the message is to be delivered</param>
            <returns>An array of objects containing the reply to the request Message</returns>
        </member>
        <member name="M:Matrix.Cell.Start">
            <summary>
            Run as the Cell is loaded. Used for initialization and in Cells that perform Executive
            operations.
            </summary>
            <remarks>
            This function can be used to perform the Initialization operations required by the Cell. 
            It is run on its own thread at the end of the registration process after the Cell has
            been loaded. Cells that operate as Executives can use this Method to perform their operations
            </remarks>
        </member>
        <member name="M:Matrix.Cell.Process(Matrix.ExecObject)">
            <summary>
            Used to process incoming messages and return the results.
            </summary>
            <remarks>
            The Process function has a partial implementation that is common to all Cells. Each MessageType
            that is to be handled by the Cell should be listed as a case in the switch statement. Processing
            can either be continued in the case block or delegated to a private function.
            </remarks>
            <param name="obj">The ExecObject containing the Message Parameters</param>
            <returns>An object Array containing the result objects</returns>
            <example>
            switch(MessageType)
            {
            	case "Matrix.Network.SendMessage":
            	ret = process_sendMessage(eo.getParams());
            	break;					
            }
            </example>
        </member>
        <member name="E:Matrix.Cell.OnReceive">
            <summary>
            Activated when the Cell receives a Response Message. Functions that handle response Messages
            can register for the event. Used by the Matrix Internal Messaging Structure
            </summary>
        </member>
        <member name="T:Matrix.Clone">
            <summary>
            The Clone Class is used to create copies of Cells to
            allow stateful processing. 
            </summary>
            <remarks>
            Some applications may require multiple instances of a 
            particular Cell. Clones can be created and registered to
            the Mediator to allow dedicated Cell instances to be used.
            </remarks>
        </member>
        <member name="M:Matrix.Clone.#ctor(System.Guid)">
            <summary>
            Constructor for the Clone Class
            </summary>
            <param name="g">The Guid of the Cell to be cloned</param>
        </member>
        <member name="M:Matrix.Clone.guid">
            <summary>
            Returns the Guid of the Clone.
            </summary>
            <returns>Guid object containing the Cell's Guid</returns>
        </member>
        <member name="T:Matrix.Config">
            <summary>
            Config loads the Configuration file and extracts the 
            properties required for setting up the Matrix
            </summary>
        </member>
        <member name="M:Matrix.Config.#ctor">
            <summary>
            Constructor for the config class
            </summary>
        </member>
        <member name="M:Matrix.Config.loadConfiguration(System.String)">
            <summary>
            Load the config file and extract properties
            </summary>
            <param name="filename"></param>
        </member>
        <member name="P:Matrix.Config.RepositoryPath">
            <summary>
            The folder name and location of the Repository 
            </summary>
        </member>
        <member name="P:Matrix.Config.RepositoryLocation">
            <summary>
            The IP Address of the Repository Server
            </summary>
        </member>
        <member name="P:Matrix.Config.CellPath">
            <summary>
            The folder name and path to the Plugin Folder
            </summary>
        </member>
        <member name="P:Matrix.Config.LocalIP">
            <summary>
            The IP Address of the local machine
            </summary>
        </member>
        <member name="P:Matrix.Config.MatrixPort">
            <summary>
            The port used by the Matrix Framework
            </summary>
        </member>
        <member name="P:Matrix.Config.MessageNameServer">
            <summary>
            The IP Address of the Address Server
            </summary>
        </member>
        <member name="P:Matrix.Config.BackUpServers">
            <summary>
            Address of backup server where new Cells can be 
            installed.
            </summary>
        </member>
        <member name="P:Matrix.Config.DistributedBackup">
            <summary>
            Indicates whether new Cells are installed to the 
            backup server or to the requesting Machine
            </summary>
        </member>
        <member name="T:Matrix.MatrixException">
            <summary>
            Basic Matrix Exception.
            </summary>
        </member>
        <member name="M:Matrix.MatrixException.#ctor">
            <summary>
            MatrixException Constructor
            </summary>
        </member>
        <member name="M:Matrix.MatrixException.#ctor(System.String)">
            <summary>
            Overloaded MatrixException Constructor
            </summary>
            <param name="s">String explaining cause of Exception</param>
        </member>
        <member name="T:Matrix.MInvalidArgsException">
            <summary>
            Matrix Exception thrown when a Message contains invalid type 
            or number of parameters
            </summary>
        </member>
        <member name="M:Matrix.MInvalidArgsException.#ctor">
            <summary>
            Constructor for MInvalidArgsException
            </summary>
        </member>
        <member name="T:Matrix.MInvalidFormatException">
            <summary>
            Matrix Exception thrown when a Message format is invalid - either
            an invalid XML document or the wrong type and placement of tags
            </summary>
        </member>
        <member name="M:Matrix.MInvalidFormatException.#ctor">
            <summary>
            Constructor for the MInvalidFormatException
            </summary>
        </member>
        <member name="T:Matrix.MNoRecipientException">
            <summary>
            Matrix Exception thrown when no handler is found for the requested
            Message type
            </summary>
        </member>
        <member name="M:Matrix.MNoRecipientException.#ctor">
            <summary>
            Constructor for the MNoRecipientException
            </summary>
        </member>
        <member name="T:Matrix.ExecObject">
            <summary>
            Encapsulates the Message Details in a Class
            </summary>
            <remarks>
            Once a Message has been received, all the attributes 
            contained in XML format are stored into an ExecObject
            instance for easy retrieval
            </remarks>
        </member>
        <member name="M:Matrix.ExecObject.#ctor(System.Boolean,System.String,System.String,System.String,System.String,System.Object,System.Object[])">
            <summary>
            Constructor for the ExecObject Class
            </summary>
            <param name="_Request">True for Request Messages, False for Response Messages</param>
            <param name="_RequestCellGuid">Guid of the Source Cell</param>
            <param name="_ResponseCellGuid">Guid of the Destination Cell</param>
            <param name="_RequestID">Guid of the Request Message</param>
            <param name="_MessageName">The name of the Message Type</param>
            <param name="_ReturnVal">The Return Values contained in the Message</param>
            <param name="_Params">The Message Parameters</param>
        </member>
        <member name="M:Matrix.ExecObject.#ctor(System.Boolean,System.String,System.Object)">
            <summary>
            Overloaded Constructor for the ExecObject Class
            </summary>
            <param name="_Request">True for Request Messages, False for Response Messages</param>
            <param name="_RequestID">Guid of the Request Message</param>
            <param name="_ReturnVal">The Return Values contained in the Message</param>
        </member>
        <member name="M:Matrix.ExecObject.isRequest">
            <summary>
            Checks whether the Message is a Request or a Response
            </summary>
            <returns>True for Request Messages, False for Response Messages</returns>
        </member>
        <member name="M:Matrix.ExecObject.getReturnValue">
            <summary>
            Gets the Message Return Values
            </summary>
            <returns>Object returned after the Message has been processed</returns>
        </member>
        <member name="M:Matrix.ExecObject.getMessageType">
            <summary>
            Returns the name of the Message Type
            </summary>
            <returns>String containing the Message Type Name</returns>
        </member>
        <member name="M:Matrix.ExecObject.getRequestCellGuid">
            <summary>
            Returns the Guid of the Requesting Cell
            </summary>
            <returns>string containing the Guid</returns>
        </member>
        <member name="M:Matrix.ExecObject.getResponseCellGuid">
            <summary>
            Returns the Guid of the Responding Cell
            </summary>
            <returns>string containing the Guid</returns>
        </member>
        <member name="M:Matrix.ExecObject.getRequestID">
            <summary>
            Returns the Guid assigned to the Message
            </summary>
            <returns>string containing the Guid</returns>
        </member>
        <member name="M:Matrix.ExecObject.getParams">
            <summary>
            Returns the Parameters with which the Message was called
            </summary>
            <returns>object array containing the parameters</returns>
        </member>
        <member name="T:Matrix.Matrix">
            <summary>
            The Matrix Class which Functions as a Mediator for Matrix
            Applications.
            </summary>
            <remarks>
            The Matrix class contains static data structures and functions
            that perform the activities of a Mediator. It registers Cells
            as they are loaded and holds references to them in an indexed 
            table. It also facilitates communication between Cells by 
            accepting and forwarding Messages between them.
            </remarks>
        </member>
        <member name="M:Matrix.Matrix.register(Matrix.Cell)">
            <summary>
            Registers the Cell to the Matrix Registry
            </summary>
            <param name="c">The Cell to be registered</param>
            <returns>True if successful</returns>
        </member>
        <member name="M:Matrix.Matrix.unregister(Matrix.Cell)">
            <summary>
            Removes the Cell reference from the Registry
            </summary>
            <param name="c">The Cell to be removed</param>
            <returns>True if successful</returns>
        </member>
        <member name="M:Matrix.Matrix.registerClone(Matrix.Cell)">
            <summary>
            Registers Clone Cells to the Matrix Registry
            </summary>
            <param name="c">The Cell to be Registered</param>
            <returns>True if successful</returns>
        </member>
        <member name="M:Matrix.Matrix.unregisterClone(Matrix.Cell)">
            <summary>
            Removes a Clone Cell from the Registry
            </summary>
            <param name="c"></param>
            <returns>True if successful</returns>        
        </member>
        <member name="M:Matrix.Matrix.createClone(System.String)">
            <summary>
            Creates a Clone Cell
            </summary>
            <param name="MessageName">The name of the Message Type
            whose Handler is to be cloned</param>
            <returns>The Guid of the created Clone</returns>
        </member>
        <member name="M:Matrix.Matrix.transmit(System.String)">
            <summary>
            Accepts a Message to be forwarded.
            </summary>
            <param name="message">String containing the message</param>
        </member>
        <member name="M:Matrix.Matrix.checkCells(System.Guid,Matrix.Cell@)">
            <summary>
            Checks if the specified Cell is registered and returns a reference if it is 
            found.
            </summary>
            <param name="CellID">The Guid of the required Cell</param>
            <param name="c">Empty reference to a Cell object to which the discovered
            Cell is assigned</param>
            <returns>True if Cell is found</returns>
        </member>
        <member name="M:Matrix.Matrix.checkClones(System.Guid,Matrix.Cell@)">
            <summary>
            Checks if the specified Clone Cell is registered and returns a reference if it is 
            found.
            </summary>
            <param name="CellID">The Guid of the required Cell</param>
            <param name="c">Empty reference to a Cell object to which the discovered
            Cell is assigned</param>
            <returns>True if Cell is found</returns>
        </member>
        <member name="M:Matrix.Matrix.send(System.Object,System.Guid)">
            <summary>
            Forwards a Message to the Specified Cell
            </summary>
            <param name="message">Object containing the message</param>
            <param name="CellID">The guid of the destination cell</param>
        </member>
        <member name="M:Matrix.Matrix.sendResponse(System.Object,System.Guid)">
            <summary>
            Forwards a Response Message to the specified Cell
            </summary>
            <param name="message">Object containing the message</param>
            <param name="CellID">The Guid of the Destination Cell</param>
        </member>
        <member name="M:Matrix.Matrix.sendClone(System.Object,System.Guid)">
            <summary>
            Forwards a Message to a specified Clone Cell
            </summary>
            <param name="message">Object containing the message</param>
            <param name="CellID">The Guid of the Destination Cell</param>
        </member>
        <member name="M:Matrix.Matrix.discover(System.String)">
            <summary>
            Discover the Location of the Handler to the specified Message Type
            </summary>
            <param name="MessageType">String containing the Message Type</param>
            <returns>String containing the location. Can represent either
            a Guid, an IP Address or a null value</returns>
        </member>
        <member name="M:Matrix.Matrix.startApplication">
            <summary>
            Trigger the start of the application by releasing all stored messages
            </summary>
            <remarks>
            To synchronize application startup, all incoming message are cache'd until
            a flag is set indicating that all Cells have been loaded. This function is 
            called to set the flag and forward all messages in the cache.
            </remarks>
        </member>
        <member name="M:Matrix.Matrix.queryNodeCapability">
            <summary>
            Request the current list of Message Handlers registered to this node
            </summary>
            <returns>
            String array containing the Capability List
            </returns>
        </member>
        <member name="T:Matrix.Messaging">
            <summary>
            Supports Creating and Parsing XML Messages in the 
            Matrix Format.
            </summary>
            <remarks>
            The Messaging class provides Functions for building
            Requests and Responses, Serializing parameter and result
            Objects and logic for Message Forwarding in the Mediator
            </remarks>
        </member>
        <member name="M:Matrix.Messaging.#ctor">
            <summary>
            Constructor for the Messaging Class
            </summary>
        </member>
        <member name="M:Matrix.Messaging.buildRequest(System.String,System.String,System.Object,System.Object[],System.Guid@,System.Guid,System.String,System.String)">
            <summary>
            Build a Request Message based on the supplied parameters
            </summary>
            <param name="RequestCellGuid">The Guid of the Cell making the Request</param>
            <param name="MessageName">The Message Type name of the request</param>
            <param name="ReturnVal">Object reference which can be used to return the reply objects</param>
            <param name="Params">Parameter objects for the Message</param>
            <param name="RequestID">ID for the Request. It is created by the buildRequest function
            and returned as an out argument</param>
            <param name="ResponseGuid">The Guid of the Receiver Cell</param>
            <param name="DestnAddress">The IP Address of the Receiver Cell</param>
            <param name="srcAddress">The IP Address of the Requesting Cell</param>
            <returns>String containing the Request Message.</returns>
        </member>
        <member name="M:Matrix.Messaging.toString(System.IO.MemoryStream)">
            <summary>
            Utility function to convert a MemoryStream object to a String.
            </summary>
            <param name="_stream">The MemoryStream to be converted</param>
            <returns>The String representing the contents of the MemoryStream</returns>
        </member>
        <member name="M:Matrix.Messaging.buildResponse(System.Object,System.Object,System.Guid@,System.Boolean@)">
            <summary>
            Build a Response Message based on the given parameters
            </summary>
            <param name="msg">The Request Message for which a Response is to be generated</param>
            <param name="Ret">Object containing the Return Values</param>
            <param name="RequestCellGUID">The Guid of the Requesting Cell. It is read from the 
            Request Message and returned as an out argument</param>
            <param name="netResponse">True if Response is to be delivered to a Remote Cell,
            False if it is for a local Cell. Determined by the buildResponse function and returned
            as an out argument</param>
            <returns>String containing the XML Response Message</returns>
        </member>
        <member name="M:Matrix.Messaging.extract(System.Object)">
            <summary>
            Extracts the parameters of a XML message and uses the data
            to create an ExecObject that can be used by a Cell to process
            Requests or Responses.
            </summary>
            <param name="msg">The XML Message to be processed</param>
            <returns>An ExecObject containing Message parameters</returns>
        </member>
        <member name="M:Matrix.Messaging.extractRequest(System.Xml.XmlDocument)">
            <summary>
            Extracts the parameters of a Request message and uses the data
            to create an ExecObject that can be used by a Cell to process
            Requests.
            </summary>
            <param name="doc">XmlDocument object containing the Message</param>
            <returns>ExecObject containing the Request parameters</returns>
        </member>
        <member name="M:Matrix.Messaging.extractResponse(System.Xml.XmlDocument)">
            <summary>
            Extracts the parameters of a Response message and uses the data
            to create an ExecObject that can be used by a Cell to process
            Responses.
            </summary>
            <param name="doc">XmlDocument object containing the Message</param>
            <returns>ExecObject containing the Response parameters</returns>
        </member>
        <member name="M:Matrix.Messaging.forwardRequest(System.Object)">
            <summary>
            Forwards a Message to the specified destination
            </summary>
            <remarks>
            The forwardRequest Function extracts Messages from the MatrixQueue
            and processes them to identify the Cell or Location that they must be
            delivered to. It them forwards the Message by calling the Send Function
            or sending the Message to the Network Cell
            </remarks>
            <param name="msg">The Message to be forwarded.</param>
        </member>
        <member name="M:Matrix.Messaging.forwardCoverMessage(System.String,System.String,System.String,System.String)">
            <summary>
            Encapsulates a Message in either a Network or Default Message to send it to the 
            Network and Default Cells
            </summary>
            <param name="messageType">The Message Type name of the Message to be forwarded</param>
            <param name="destn">The IP Adress of the Location the Cell must be sent to</param>
            <param name="message">The Message to be Forwarded.</param>
            <param name="forwardType">Indicates whether the Message is sent to the Default Cell
            or to the Network Cell.</param>
            <returns>True if successful.</returns>
        </member>
        <member name="M:Matrix.Messaging.IsGuid(System.String)">
            <summary>
            Utility function to identify is a string contains a Guid
            </summary>
            <param name="id">The String to be verfied</param>
            <returns>True if the string represents a Guid, False else</returns>
        </member>
        <member name="M:Matrix.Messaging.textSerialize(System.Object)">
            <summary>
            Utility function to serialize an object
            </summary>
            <param name="obj">The object to be serialized</param>
            <returns>The string representing the serialized object</returns>
        </member>
        <member name="M:Matrix.Messaging.textDeserialize(System.String)">
            <summary>
            Utility function to deserialize a string into an Object
            </summary>
            <param name="ser">The string to be deserialized</param>
            <returns>The object created from the String</returns>
        </member>
        <member name="P:Matrix.Messaging.LocalIP">
            <summary>
            Public property which contains the IP Address of the local
            machine.
            </summary>
        </member>
        <member name="T:Matrix.ReturnObject">
            <summary>
            Object to hold return values extracted from a Response Message
            </summary>
            <remarks>
            The parameters contained in a Response Object are extracted and
            stored in the ReturnObject to allow a Cell to easily access them 
            without having to parse XML.
            </remarks>
        </member>
        <member name="M:Matrix.ReturnObject.#ctor(System.Object[],System.Exception)">
            <summary>
            Constructor for the ReturnObject Class. 
            </summary>
            <param name="_ReturnValue">The return values from the Response Message</param>
            <param name="_exception">The exception contained in the Response Message</param>
        </member>
        <member name="M:Matrix.ReturnObject.getReturnValue">
            <summary>
            Returns the Return Value from the Response Message
            </summary>
            <returns>Object Array containing the Return Objects</returns>
        </member>
        <member name="M:Matrix.ReturnObject.getException">
            <summary>
            Returns the Exception from the Response Message
            </summary>
            <returns>Exception Object containing the exception</returns>
        </member>
        <member name="M:Matrix.ReturnObject.hasException">
            <summary>
            Indicates whether the Response Message contains an Exception Object.
            </summary>
            <returns>True if processing of the Request produced an Exception</returns>
        </member>
        <member name="T:Matrix.SyncWait">
            <summary>
            Enables Synchronized Message Collaboration.
            </summary>
            <remarks>
            The SyncWait Class allows Cells to synchronize Message Passing
            and make blocking Message Calls that return values.
            </remarks>
        </member>
        <member name="M:Matrix.SyncWait.#ctor(Matrix.Cell,System.Guid)">
            <summary>
            Constructor for the SyncWait Class
            </summary>
            <param name="c">The Parent Cell that created this Class</param>
            <param name="_RequestID">The Guid of the Request Message for which
            synchronization is required.</param>
        </member>
        <member name="M:Matrix.SyncWait.subscribe">
            <summary>
            Register the check function to be notified when the parent Cell
            receives a Response Message
            </summary>
        </member>
        <member name="M:Matrix.SyncWait.unsubscribe">
            <summary>
            Remove the SyncWait class from the Parent Cells onReceive 
            event Notification List
            </summary>
        </member>
        <member name="M:Matrix.SyncWait.Check(System.Object,Matrix.ReceiveInfoEventArgs)">
            <summary>
            Check if the Response Message matches the one that is being waited for.
            </summary>
            <param name="queue"></param>
            <param name="rargs"></param>
        </member>
        <member name="M:Matrix.SyncWait.wait">
            <summary>
            Blocking Function that waits till a response is received. 
            </summary>
            <remarks>
            The time out allows recovery from failed Message deliveries
            </remarks>
            <returns>The Return Object extracted from the Response Message
            </returns>
        </member>
        <member name="T:Matrix.ReceiveInfoEventArgs">
            <summary>
            Class to hold Information related to an OnReceive Event
            </summary>
            <remarks>
            When the parent Cell receives a Response Message, the ReceiveInfoEventArgs
            is used to transfer the required result objects between the Cells response 
            and the registered SyncWait to allow the waiting Class to match Request IDs
            and return the correct Return Objects.
            </remarks>
        </member>
        <member name="M:Matrix.ReceiveInfoEventArgs.#ctor(System.Guid,System.Object)">
            <summary>
            Constructor for the ReceiveInfoEventArgs Class
            </summary>
            <param name="_MessageID">The Id of the Message that triggered the event</param>
            <param name="_Result">The Result objects contained in the Response Message</param>
        </member>
        <member name="M:Matrix.ReceiveInfoEventArgs.getMessageID">
            <summary>
            Returns the Message ID 
            </summary>
            <returns>Guid containing the Message ID</returns>
        </member>
        <member name="M:Matrix.ReceiveInfoEventArgs.getResult">
            <summary>
            Returns the Return Values 
            </summary>
            <returns>Object containing the Return Values</returns>
        </member>
    </members>
</doc>
