<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Apache.NMS.ActiveMQ</name>
    </assembly>
    <members>
        <member name="T:Apache.NMS.ActiveMQ.Commands.Message">
            <summary>
             The ActiveMQ Message Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.BaseDataStructure">
            <summary>
            Base class for all DataStructure implementations
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.DataStructure">
            <summary>
            An OpenWire command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.Command">
            <summary>
            An OpenWire command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.MarshallAware">
            <summary>
            Represents a marshallable entity
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSCorrelationID">
            <summary>
            The correlation ID used to correlate messages with conversations or long running business processes
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSDestination">
            <summary>
            The destination of the message
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSTimeToLive">
            <summary>
            The time in milliseconds that this message should expire in
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSMessageId">
            <summary>
            The message ID which is set by the provider
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSPersistent">
            <summary>
            Whether or not this message is persistent
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSPriority">
            <summary>
            The Priority on this message
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSRedelivered">
            <summary>
            Returns true if this message has been redelivered to this or another consumer before being acknowledged successfully.
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSReplyTo">
            <summary>
            The destination that the consumer of this message should send replies to
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSTimestamp">
            <summary>
            The timestamp the broker added to the message
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSType">
            <summary>
            The type name of this message
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSXDeliveryCount">
            <summary>
            Returns the number of times this message has been redelivered to other consumers without being acknowledged successfully.
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSXGroupID">
            <summary>
            The Message Group ID used to group messages together to the same consumer for the same group ID value
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSXGroupSeq">
            <summary>
            The Message Group Sequence counter to indicate the position in a group
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.NMSXProducerTXID">
            <summary>
            Returns the ID of the producers transaction
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination">
            <summary>
            Summary description for ActiveMQDestination.
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.ACTIVEMQ_TOPIC">
            Topic Destination object
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.ACTIVEMQ_TEMPORARY_TOPIC">
            Temporary Topic Destination object
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.ACTIVEMQ_QUEUE">
            Queue Destination object
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.ACTIVEMQ_TEMPORARY_QUEUE">
            Temporary Queue Destination object
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.ADVISORY_PREFIX">
            prefix for Advisory message destinations
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.CONSUMER_ADVISORY_PREFIX">
            prefix for consumer advisory destinations
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.PRODUCER_ADVISORY_PREFIX">
            prefix for producer advisory destinations
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.CONNECTION_ADVISORY_PREFIX">
            prefix for connection advisory destinations
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.DEFAULT_ORDERED_TARGET">
            The default target for ordered destinations
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.#ctor">
            The Default Constructor
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.#ctor(System.String)">
             Construct the Destination with a defined physical name;
            
             @param name
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsAdvisory">
            @return Returns the advisory.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.SetAdvisory(System.Boolean)">
            @param advisory The advisory to set.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsConsumerAdvisory">
            @return true if this is a destination for Consumer advisories
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsProducerAdvisory">
            @return true if this is a destination for Producer advisories
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsConnectionAdvisory">
            @return true if this is a destination for Connection advisories
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsExclusive">
            @return Returns the exclusive.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.SetExclusive(System.Boolean)">
            @param exclusive The exclusive to set.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsOrdered">
            @return Returns the ordered.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.SetOrdered(System.Boolean)">
            @param ordered The ordered to set.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.GetOrderedTarget">
            @return Returns the orderedTarget.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.SetOrderedTarget(System.String)">
            @param orderedTarget The orderedTarget to set.
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.Inspect(Apache.NMS.ActiveMQ.Commands.ActiveMQDestination)">
             A helper method to return a descriptive string for the topic or queue
             @param destination
            
             @return a descriptive string for this queue or topic
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.Transform(Apache.NMS.IDestination)">
            @param destination
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.CreateDestination(System.Int32,System.String)">
            Create a Destination
            @param type
            @param pyhsicalName
            @return
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.CreateTemporaryName(System.String)">
             Create a temporary name from the clientId
            
             @param clientId
             @return
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.GetClientId(Apache.NMS.ActiveMQ.Commands.ActiveMQDestination)">
             From a temporary destination find the clientId of the Connection that created it
            
             @param destination
             @return the clientId or null if not a temporary destination
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.CompareTo(System.Object)">
            @param o object to compare
            @return 1 if this is less than o else 0 if they are equal or -1 if this is less than o
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.CompareTo(Apache.NMS.ActiveMQ.Commands.ActiveMQDestination)">
             Lets sort by name first then lets sort topics greater than queues
            
             @param that another destination to compare against
             @return 1 if this is less than o else 0 if they are equal or -1 if this is less than o
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.GetDestinationType">
            @return Returns the Destination type
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.ToString">
            @return string representation of this instance
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.GetHashCode">
            @return hashCode for this instance
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.Equals(System.Object)">
             if the object passed in is equivalent, return true
            
             @param obj the object to compare
             @return true if this instance and obj are equivalent
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsWildcard">
            @return true if the destination matches multiple possible destinations
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.CreateDestination(System.String)">
            Factory method to create a child destination if this destination is a composite
            @param name
            @return the created Destination
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.Options">
            <summary>
            Dictionary of name/value pairs representing option values specified
            in the URI used to create this Destination.  A null value is returned
            if no options were specified.
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Commands.ActiveMQDestination.IsComposite">
             Returns true if this destination represents a collection of
             destinations; allowing a set of destinations to be published to or subscribed
             from in one NMS operation.
             <p/>
             If this destination is a composite then you can call {@link #getChildDestinations()}
             to return the list of child destinations.
            
             @return true if this destination represents a collection of child destinations.
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ActiveMQQueue">
            <summary>
            Summary description for ActiveMQQueue.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQTempDestination.GetDestinationType">
            <summary>
            Method GetDestinationType
            </summary>
            <returns>An int</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Commands.ActiveMQTempDestination.CreateDestination(System.String)">
            <summary>
            Method CreateDestination
            </summary>
            <returns>An ActiveMQDestination</returns>
            <param name="name">A  String</param>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ActiveMQTempQueue">
            <summary>
            A Temporary Queue
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ActiveMQTempTopic">
            <summary>
            A Temporary Topic
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ActiveMQTopic">
            <summary>
            Summary description for ActiveMQTopic.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.BrokerError">
            <summary>
            Represents an exception on the broker
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.BrokerId">
            <summary>
             The ActiveMQ BrokerId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.BrokerInfo">
            <summary>
             The ActiveMQ BrokerInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ConnectionControl">
            <summary>
             The ActiveMQ ConnectionControl Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ConnectionError">
            <summary>
             The ActiveMQ ConnectionError Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ConnectionId">
            <summary>
             The ActiveMQ ConnectionId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ConnectionInfo">
            <summary>
             The ActiveMQ ConnectionInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ConsumerControl">
            <summary>
             The ActiveMQ ConsumerControl Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ConsumerId">
            <summary>
             The ActiveMQ ConsumerId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ConsumerInfo">
            <summary>
             The ActiveMQ ConsumerInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ControlCommand">
            <summary>
             The ActiveMQ ControlCommand Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.DataArrayResponse">
            <summary>
             The ActiveMQ DataArrayResponse Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.Response">
            <summary>
             The ActiveMQ Response Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.DataResponse">
            <summary>
             The ActiveMQ DataResponse Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.DataStructureSupport">
            <summary>
            Summary description for DataStructureSupport.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.DestinationInfo">
            <summary>
             The ActiveMQ DestinationInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.DiscoveryEvent">
            <summary>
             The ActiveMQ DiscoveryEvent Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ExceptionResponse">
            <summary>
             The ActiveMQ ExceptionResponse Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.FlushCommand">
            <summary>
             The ActiveMQ FlushCommand Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.IntegerResponse">
            <summary>
             The ActiveMQ IntegerResponse Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.JournalQueueAck">
            <summary>
             The ActiveMQ JournalQueueAck Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.JournalTopicAck">
            <summary>
             The ActiveMQ JournalTopicAck Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.JournalTrace">
            <summary>
             The ActiveMQ JournalTrace Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.JournalTransaction">
            <summary>
             The ActiveMQ JournalTransaction Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.KeepAliveInfo">
            <summary>
             The ActiveMQ KeepAliveInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.LastPartialCommand">
            <summary>
             The ActiveMQ LastPartialCommand Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.PartialCommand">
            <summary>
             The ActiveMQ PartialCommand Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.LocalTransactionId">
            <summary>
             The ActiveMQ LocalTransactionId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.TransactionId">
            <summary>
             The ActiveMQ TransactionId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.MessageAck">
            <summary>
             The ActiveMQ MessageAck Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.MessageDispatch">
            <summary>
             The ActiveMQ MessageDispatch Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.MessageDispatchNotification">
            <summary>
             The ActiveMQ MessageDispatchNotification Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.MessageId">
            <summary>
             The ActiveMQ MessageId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.MessagePull">
            <summary>
             The ActiveMQ MessagePull Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.NetworkBridgeFilter">
            <summary>
             The ActiveMQ NetworkBridgeFilter Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ProducerId">
            <summary>
             The ActiveMQ ProducerId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ProducerInfo">
            <summary>
             The ActiveMQ ProducerInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.RemoveInfo">
            <summary>
             The ActiveMQ RemoveInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.RemoveSubscriptionInfo">
            <summary>
             The ActiveMQ RemoveSubscriptionInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ReplayCommand">
            <summary>
             The ActiveMQ ReplayCommand Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.SessionId">
            <summary>
             The ActiveMQ SessionId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.SessionInfo">
            <summary>
             The ActiveMQ SessionInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.ShutdownInfo">
            <summary>
             The ActiveMQ ShutdownInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.SubscriptionInfo">
            <summary>
             The ActiveMQ SubscriptionInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.TransactionInfo">
            <summary>
             The ActiveMQ TransactionInfo Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Commands.XATransactionId">
            <summary>
             The ActiveMQ XATransactionId Command
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQBytesMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQBytesMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.MessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for Message
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.BaseCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for BaseCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.BaseDataStreamMarshaller">
            <summary>
            A base class with useful implementation inheritence methods
            for creating marshallers of the OpenWire protocol
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.BaseDataStreamMarshaller.ToString(Apache.NMS.ActiveMQ.Commands.MessageId)">
            <summary>
            Converts the object to a String
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.BaseDataStreamMarshaller.ToString(Apache.NMS.ActiveMQ.Commands.ProducerId)">
            <summary>
            Converts the object to a String
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.BaseDataStreamMarshaller.ToString(Apache.NMS.ActiveMQ.Commands.TransactionId)">
            <summary>
            Converts the given transaction ID into a String
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.BaseDataStreamMarshaller.ToHexFromBytes(System.Byte[])">
            <summary>
            Creates the byte array into hexidecimal
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQDestinationMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQDestination
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQMapMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQMapMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQObjectMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQObjectMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQQueueMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQQueue
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQStreamMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQStreamMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQTempDestinationMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTempDestination
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQTempQueueMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTempQueue
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQTempTopicMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTempTopic
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQTextMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTextMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ActiveMQTopicMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTopic
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.BrokerIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for BrokerId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.BrokerInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for BrokerInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ConnectionControlMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionControl
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ConnectionErrorMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionError
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ConnectionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ConnectionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ConsumerControlMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConsumerControl
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ConsumerIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConsumerId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ConsumerInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConsumerInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ControlCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ControlCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.DataArrayResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DataArrayResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for Response
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.DataResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DataResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.DestinationInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DestinationInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.DiscoveryEventMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DiscoveryEvent
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ExceptionResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ExceptionResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.FlushCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for FlushCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.IntegerResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for IntegerResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.JournalQueueAckMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalQueueAck
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.JournalTopicAckMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalTopicAck
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.JournalTraceMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalTrace
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.JournalTransactionMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalTransaction
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.KeepAliveInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for KeepAliveInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.LastPartialCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for LastPartialCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.PartialCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for PartialCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.LocalTransactionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for LocalTransactionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.TransactionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for TransactionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.MarshallerFactory">
            <summary>
            Used to create marshallers for a specific version of the wire protocol
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.MessageAckMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageAck
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.MessageDispatchMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageDispatch
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.MessageDispatchNotificationMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageDispatchNotification
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.MessageIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.NetworkBridgeFilterMarshaller">
            <summary>
             Marshalling code for Open Wire Format for NetworkBridgeFilter
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ProducerIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ProducerId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ProducerInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ProducerInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.RemoveInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for RemoveInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.RemoveSubscriptionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for RemoveSubscriptionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ReplayCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ReplayCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.SessionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for SessionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.SessionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for SessionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.ShutdownInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ShutdownInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.SubscriptionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for SubscriptionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.TransactionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for TransactionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.WireFormatInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for WireFormatInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V1.XATransactionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for XATransactionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQBytesMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQBytesMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.MessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for Message
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.BaseCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for BaseCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQDestinationMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQDestination
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQMapMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQMapMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQObjectMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQObjectMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQQueueMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQQueue
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQStreamMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQStreamMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQTempDestinationMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTempDestination
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQTempQueueMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTempQueue
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQTempTopicMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTempTopic
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQTextMessageMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTextMessage
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ActiveMQTopicMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ActiveMQTopic
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.BrokerIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for BrokerId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.BrokerInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for BrokerInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ConnectionControlMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionControl
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ConnectionErrorMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionError
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ConnectionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ConnectionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConnectionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ConsumerControlMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConsumerControl
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ConsumerIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConsumerId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ConsumerInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ConsumerInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ControlCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ControlCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.DataArrayResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DataArrayResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for Response
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.DataResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DataResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.DestinationInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DestinationInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.DiscoveryEventMarshaller">
            <summary>
             Marshalling code for Open Wire Format for DiscoveryEvent
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ExceptionResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ExceptionResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.FlushCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for FlushCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.IntegerResponseMarshaller">
            <summary>
             Marshalling code for Open Wire Format for IntegerResponse
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.JournalQueueAckMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalQueueAck
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.JournalTopicAckMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalTopicAck
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.JournalTraceMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalTrace
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.JournalTransactionMarshaller">
            <summary>
             Marshalling code for Open Wire Format for JournalTransaction
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.KeepAliveInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for KeepAliveInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.LastPartialCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for LastPartialCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.PartialCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for PartialCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.LocalTransactionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for LocalTransactionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.TransactionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for TransactionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.MarshallerFactory">
            <summary>
            Used to create marshallers for a specific version of the wire protocol
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.MessageAckMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageAck
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.MessageDispatchMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageDispatch
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.MessageDispatchNotificationMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageDispatchNotification
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.MessageIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessageId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.MessagePullMarshaller">
            <summary>
             Marshalling code for Open Wire Format for MessagePull
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.NetworkBridgeFilterMarshaller">
            <summary>
             Marshalling code for Open Wire Format for NetworkBridgeFilter
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ProducerIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ProducerId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ProducerInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ProducerInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.RemoveInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for RemoveInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.RemoveSubscriptionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for RemoveSubscriptionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ReplayCommandMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ReplayCommand
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.SessionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for SessionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.SessionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for SessionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.ShutdownInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for ShutdownInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.SubscriptionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for SubscriptionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.TransactionInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for TransactionInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.WireFormatInfoMarshaller">
            <summary>
             Marshalling code for Open Wire Format for WireFormatInfo
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.V2.XATransactionIdMarshaller">
            <summary>
             Marshalling code for Open Wire Format for XATransactionId
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.BooleanStream">
            <summary>
            Represents a stream of boolean flags
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.EndianSupport">
            <summary>
            Support class that switches from one endian to the other.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader">
            <summary>
            A BinaryWriter that switches the endian orientation of the read opperations so that they
            are compatible with marshalling used by OpenWire.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.Read(System.Char[],System.Int32,System.Int32)">
            <summary>
            Method Read
            </summary>
            <returns>An int</returns>
            <param name="buffer">A  char[]</param>
            <param name="index">An int</param>
            <param name="count">An int</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadChars(System.Int32)">
            <summary>
            Method ReadChars
            </summary>
            <returns>A char[]</returns>
            <param name="count">An int</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadInt16">
            <summary>
            Method ReadInt16
            </summary>
            <returns>A short</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadChar">
            <summary>
            Method ReadChar
            </summary>
            <returns>A char</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadInt64">
            <summary>
            Method ReadInt64
            </summary>
            <returns>A long</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadUInt64">
            <summary>
            Method ReadUInt64
            </summary>
            <returns>An ulong</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadUInt32">
            <summary>
            Method ReadUInt32
            </summary>
            <returns>An uint</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadUInt16">
            <summary>
            Method ReadUInt16
            </summary>
            <returns>An ushort</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadInt32">
            <summary>
            Method ReadInt32
            </summary>
            <returns>An int</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryReader.ReadString">
            <summary>
            Method ReadString
            </summary>
            <returns>A string</returns>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter">
            <summary>
            A BinaryWriter that switches the endian orientation of the write opperations so that they
            are compatible with marshalling used by OpenWire.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Int64)">
            <summary>
            Method Write
            </summary>
            <param name="value">A  long</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.UInt16)">
            <summary>
            Method Write
            </summary>
            <param name="value">An ushort</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Int32)">
            <summary>
            Method Write
            </summary>
            <param name="value">An int</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Char[],System.Int32,System.Int32)">
            <summary>
            Method Write
            </summary>
            <param name="chars">A  char[]</param>
            <param name="index">An int</param>
            <param name="count">An int</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Char[])">
            <summary>
            Method Write
            </summary>
            <param name="chars">A  char[]</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.UInt32)">
            <summary>
            Method Write
            </summary>
            <param name="value">An uint</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Char)">
            <summary>
            Method Write
            </summary>
            <param name="ch">A  char</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.UInt64)">
            <summary>
            Method Write
            </summary>
            <param name="value">An ulong</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Int16)">
            <summary>
            Method Write
            </summary>
            <param name="value">A  short</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.String)">
            <summary>
            Method Write
            </summary>
            <param name="text">A  string</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Single)">
            <summary>
            Method Write
            </summary>
            <param name="value">A  double</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.OpenWireBinaryWriter.Write(System.Double)">
            <summary>
            Method Write
            </summary>
            <param name="value">A  double</param>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.OpenWireFormat">
            <summary>
            Implements the <a href="http://activemq.apache.org/openwire.html">OpenWire</a> protocol.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.IWireFormat">
            <summary>
            Represents the marshalling of commands to and from an IO stream
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.IWireFormat.Marshal(System.Object,System.IO.BinaryWriter)">
            <summary>
            Marshalls the given command object onto the stream
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.IWireFormat.Unmarshal(System.IO.BinaryReader)">
            <summary>
            Unmarshalls the next command object from the stream
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.OpenWire.PrimitiveMap">
            <summary>
            A default implementation of IPrimitiveMap
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.PrimitiveMap.ToString">
            <summary>
            Method ToString
            </summary>
            <returns>A string</returns>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.PrimitiveMap.Unmarshal(System.Byte[])">
            <summary>
            Unmarshalls the map from the given data or if the data is null just
            return an empty map
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.PrimitiveMap.MarshalPrimitiveMap(System.Collections.IDictionary)">
            <summary>
            Marshals the primitive type map to a byte array
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.OpenWire.PrimitiveMap.UnmarshalPrimitiveMap(System.Byte[])">
            <summary>
            Unmarshals the primitive type map from the given byte array
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.Stomp.StompFrameStream">
            <summary>
            A Stream for writing a <a href="http://stomp.codehaus.org/">STOMP</a> Frame
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.Stomp.StompHelper">
            <summary>
            Some <a href="http://stomp.codehaus.org/">STOMP</a> protocol conversion helper methods.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.Stomp.StompWireFormat">
            <summary>
            Implements the <a href="http://stomp.codehaus.org/">STOMP</a> protocol.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport">
            <summary>
            An implementation of ITransport that uses sockets to communicate with the broker
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.ITransport">
            <summary>
            Represents the logical networking transport layer.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.Start">
            <summary>
            Method Start
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.IsStarted">
            <summary>
            Property IsStarted
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransport.RequestTimeout">
            <summary>
            Property RequestTimeout
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransportFactory.receiveBufferSize">
            <summary>
            Size in bytes of the receive buffer.
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransportFactory.sendBufferSize">
            <summary>
            Size in bytes of send buffer.
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransportFactory.receiveTimeout">
            <summary>
            The time-out value, in milliseconds. The default value is 0, which indicates
            an infinite time-out period. Specifying -1 also indicates an infinite time-out period.
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Transport.Tcp.TcpTransportFactory.sendTimeout">
            <summary>
            The time-out value, in milliseconds. If you set the property with a value between 1 and 499,
            the value will be changed to 500. The default value is 0, which indicates an infinite
            time-out period. Specifying -1 also indicates an infinite time-out period.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.FutureResponse">
            <summary>
            Handles asynchronous responses
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.LoggingTransport">
            <summary>
            A Transport filter that is used to log the commands sent and received.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.TransportFilter">
            <summary>
            Used to implement a filter on the transport layer.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.TransportFilter.Oneway(Apache.NMS.ActiveMQ.Commands.Command)">
            <summary>
            Method Oneway
            </summary>
            <param name="command">A  Command</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.TransportFilter.AsyncRequest(Apache.NMS.ActiveMQ.Commands.Command)">
            <summary>
            Method AsyncRequest
            </summary>
            <returns>A FutureResponse</returns>
            <param name="command">A  Command</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.TransportFilter.Request(Apache.NMS.ActiveMQ.Commands.Command)">
            <summary>
            Method Request
            </summary>
            <returns>A Response</returns>
            <param name="command">A  Command</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.TransportFilter.Request(Apache.NMS.ActiveMQ.Commands.Command,System.TimeSpan)">
            <summary>
            Method Request with time out for Response.
            </summary>
            <returns>A Response</returns>
            <param name="command">A  Command</param>
            <param name="timeout">Timeout in milliseconds</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.TransportFilter.Start">
            <summary>
            Method Start
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Transport.TransportFilter.Dispose">
            <summary>
            Method Dispose
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Transport.TransportFilter.RequestTimeout">
            <summary>
            Property RequestTimeout
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Transport.TransportFilter.IsStarted">
            <summary>
            Property IsStarted
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.MutexTransport">
            <summary>
            A Transport which guards access to the next transport using a mutex.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.ResponseCorrelator">
            <summary>
            A Transport that correlates asynchronous send/receive messages into single request/response.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Transport.WireFormatNegotiator">
            <summary>
            A Transport which negotiates the wire format
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.BrokerException">
            <summary>
            Exception thrown when the broker returns an error
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.BrokerException.StackTraceDump(Apache.NMS.ActiveMQ.Commands.StackTraceElement[])">
            <summary>
            Generates a nice textual stack trace
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Connection">
            <summary>
            Represents a connection with a message broker
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.Start">
            <summary>
            Starts asynchronous message delivery of incoming messages for this connection.
            Synchronous delivery is unaffected.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.Stop">
            <summary>
            Temporarily stop asynchronous delivery of inbound messages for this connection.
            The sending of outbound messages is unaffected.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.CreateSession">
            <summary>
            Creates a new session to work on this connection
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.CreateSession(Apache.NMS.AcknowledgementMode)">
            <summary>
            Creates a new session to work on this connection
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.SyncRequest(Apache.NMS.ActiveMQ.Commands.Command)">
            <summary>
            Performs a synchronous request-response with the broker
            </summary>
            
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.CreateTemporaryDestinationName">
            <summary>
            Creates a new temporary destination name
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.CreateLocalTransactionId">
            <summary>
            Creates a new local transaction ID
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Connection.OnCommand(Apache.NMS.ActiveMQ.Transport.ITransport,Apache.NMS.ActiveMQ.Commands.Command)">
            <summary>
            Handle incoming commands
            </summary>
            <param name="commandTransport">An ITransport</param>
            <param name="command">A  Command</param>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Connection.AsyncSend">
            <summary>
            This property indicates whether or not async send is enabled.
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Connection.AsyncClose">
            <summary>
            This property indicates whether or not async close is enabled.
            When the connection is closed, it will either send a synchronous
            DisposeOf command to the broker and wait for confirmation (if true),
            or it will send the DisposeOf command asynchronously.
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Connection.AckMode">
            <summary>
            This property sets the acknowledgment mode for the connection.
            The URI parameter connection.ackmode can be set to a string value
            that maps to the enumeration value.
            </summary>
        </member>
        <member name="P:Apache.NMS.ActiveMQ.Connection.IsStarted">
            <summary>
            This property determines if the asynchronous message delivery of incoming
            messages has been started for this connection.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.ConnectionClosedException">
            <summary>
            Exception thrown when a connection is used that it already closed
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.ConnectionFactory">
            <summary>
            Represents a connection with a message broker
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.ConsumerClosedException">
            <summary>
            Exception thrown when a consumer is used that it already closed
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.DestinationFilter">
            <summary>
            Summary description for DestinationFilter.
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Dispatcher">
            <summary>
            Handles the multi-threaded dispatching between the transport and the consumers
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Dispatcher.RedeliverRolledBackMessages">
            <summary>
            Whem we start a transaction we must redeliver any rolled back messages
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Dispatcher.Redeliver(Apache.NMS.IMessage)">
            <summary>
            Redeliver the given message, putting it at the head of the queue
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Dispatcher.Enqueue(Apache.NMS.IMessage)">
            <summary>
            Method Enqueue
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Dispatcher.DequeueNoWait">
            <summary>
            Method DequeueNoWait
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Dispatcher.Dequeue(System.TimeSpan)">
            <summary>
            Method Dequeue
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Dispatcher.Dequeue">
            <summary>
            Method Dequeue
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.ISynchronization.BeforeCommit">
            <summary>
            Called before a commit
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.ISynchronization.AfterCommit">
            <summary>
            Called after a commit
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.ISynchronization.AfterRollback">
            <summary>
            Called after a transaction rollback
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.MessageConsumer">
            <summary>
            An object capable of receiving messages from some destination
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.MessageConsumer.Dispatch(Apache.NMS.ActiveMQ.Commands.ActiveMQMessage)">
            <summary>
            Method Dispatch
            </summary>
            <param name="message">An ActiveMQMessage</param>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.MessageConsumer.DispatchAsyncMessages">
            <summary>
            Dispatch any pending messages to the asynchronous listener
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.MessageProducer">
            <summary>
            An object capable of sending messages to some destination
            </summary>
        </member>
        <member name="T:Apache.NMS.ActiveMQ.Session">
            <summary>
            Default provider of ISession
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Session.PrefetchSize">
            <summary>
            Sets the prefetch size, the maximum number of messages a broker will dispatch to consumers
            until acknowledgements are received.
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Session.MaximumPendingMessageLimit">
            <summary>
            Sets the maximum number of messages to keep around per consumer
            in addition to the prefetch window for non-durable topics until messages
            will start to be evicted for slow consumers.
            Must be > 0 to enable this feature
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Session.DispatchAsync">
            <summary>
            Enables or disables whether asynchronous dispatch should be used by the broker
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Session.Exclusive">
            <summary>
            Enables or disables exclusive consumers when using queues. An exclusive consumer means
            only one instance of a consumer is allowed to process messages on a queue to preserve order
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Session.Retroactive">
            <summary>
            Enables or disables retroactive mode for consumers; i.e. do they go back in time or not?
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Session.Priority">
            <summary>
            Sets the default consumer priority for consumers
            </summary>
        </member>
        <member name="F:Apache.NMS.ActiveMQ.Session.AsyncSend">
            <summary>
            This property indicates whether or not async send is enabled.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Session.DoStartTransaction">
            <summary>
            Ensures that a transaction is started
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Session.DispatchAsyncMessages">
            <summary>
            Private method called by the dispatcher thread in order to perform
            asynchronous delivery of queued (inbound) messages.
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Session.GetConsumers">
            <summary>
            Returns a copy of the current consumers in a thread safe way to avoid concurrency
            problems if the consumers are changed in another thread
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Session.GetProducers">
            <summary>
            Returns a copy of the current consumers in a thread safe way to avoid concurrency
            problems if the consumers are changed in another thread
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.Session.Configure(Apache.NMS.ActiveMQ.Commands.ActiveMQMessage)">
            <summary>
            Configures the message command
            </summary>
        </member>
        <member name="M:Apache.NMS.ActiveMQ.TransactionContext.AddSynchronization(Apache.NMS.ActiveMQ.ISynchronization)">
            <summary>
            Method AddSynchronization
            </summary>
        </member>
    </members>
</doc>
