You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2006/10/02 16:30:22 UTC

svn commit: r452053 [1/17] - in /incubator/activemq/activemq-cpp/trunk/activemq-cpp/src: main/activemq/connector/openwire/ main/activemq/connector/openwire/commands/ main/activemq/connector/openwire/marshal/ main/activemq/connector/openwire/marshal/V2/...

Author: tabish
Date: Mon Oct  2 07:30:10 2006
New Revision: 452053

URL: http://svn.apache.org/viewvc?view=rev&rev=452053
Log: (empty)

Added:
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/DataStreamMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandReader.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandReader.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandWriter.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandWriter.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireConnector.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireConnector.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireConnectorException.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQBytesMessage.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQBytesMessage.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQMapMessage.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQMapMessage.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQMessage.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQMessage.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQObjectMessage.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQObjectMessage.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQQueue.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQQueue.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQStreamMessage.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQStreamMessage.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTempDestination.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTempDestination.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTempQueue.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTempQueue.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTempTopic.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTempTopic.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTextMessage.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTextMessage.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTopic.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQTopic.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BaseCommand.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BaseCommand.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BaseDataStructure.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BooleanExpression.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BrokerError.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BrokerId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BrokerId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BrokerInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/BrokerInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionControl.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionControl.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionError.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionError.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConnectionInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConsumerControl.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConsumerControl.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConsumerId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConsumerId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConsumerInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ConsumerInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ControlCommand.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ControlCommand.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DataArrayResponse.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DataArrayResponse.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DataResponse.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DataResponse.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DataStructure.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DestinationInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DestinationInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DiscoveryEvent.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/DiscoveryEvent.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ExceptionResponse.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ExceptionResponse.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/FlushCommand.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/FlushCommand.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/IntegerResponse.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/IntegerResponse.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalQueueAck.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalQueueAck.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalTopicAck.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalTopicAck.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalTrace.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalTrace.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalTransaction.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/JournalTransaction.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/KeepAliveInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/KeepAliveInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/LastPartialCommand.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/LastPartialCommand.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/LocalTransactionId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/LocalTransactionId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/Message.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/Message.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageAck.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageAck.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageDispatch.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageDispatch.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageDispatchNotification.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageDispatchNotification.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessageId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessagePull.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/MessagePull.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/NetworkBridgeFilter.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/NetworkBridgeFilter.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/PartialCommand.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/PartialCommand.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ProducerId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ProducerId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ProducerInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ProducerInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/RemoveInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/RemoveInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/RemoveSubscriptionInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/RemoveSubscriptionInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ReplayCommand.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ReplayCommand.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/Response.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/Response.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/SessionId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/SessionId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/SessionInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/SessionInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ShutdownInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ShutdownInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/SubscriptionInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/SubscriptionInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/TransactionId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/TransactionId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/TransactionInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/TransactionInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/WireFormatInfo.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/WireFormatInfo.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/XATransactionId.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/XATransactionId.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/BaseDataStreamMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/BaseDataStreamMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/MarshalAware.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQBytesMessageMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQBytesMessageMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQDestinationMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQDestinationMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQMapMessageMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQMapMessageMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQMessageMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQMessageMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQObjectMessageMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQObjectMessageMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQQueueMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQQueueMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQStreamMessageMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQStreamMessageMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTempDestinationMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTempDestinationMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTempQueueMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTempQueueMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTempTopicMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTempTopicMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTextMessageMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTextMessageMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTopicMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ActiveMQTopicMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/BaseCommandMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/BaseCommandMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/BrokerIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/BrokerIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/BrokerInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/BrokerInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionControlMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionControlMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionErrorMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionErrorMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConnectionInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConsumerControlMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConsumerControlMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConsumerIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConsumerIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConsumerInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ConsumerInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ControlCommandMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ControlCommandMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DataArrayResponseMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DataArrayResponseMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DataResponseMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DataResponseMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DestinationInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DestinationInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DiscoveryEventMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/DiscoveryEventMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ExceptionResponseMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ExceptionResponseMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/FlushCommandMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/FlushCommandMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/IntegerResponseMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/IntegerResponseMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalQueueAckMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalQueueAckMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalTopicAckMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalTopicAckMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalTraceMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalTraceMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalTransactionMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/JournalTransactionMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/KeepAliveInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/KeepAliveInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/LastPartialCommandMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/LastPartialCommandMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/LocalTransactionIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/LocalTransactionIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MarshallerFactory.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MarshallerFactory.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageAckMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageAckMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageDispatchMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageDispatchMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageDispatchNotificationMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageDispatchNotificationMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessageMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessagePullMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/MessagePullMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/NetworkBridgeFilterMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/NetworkBridgeFilterMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/PartialCommandMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/PartialCommandMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ProducerIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ProducerIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ProducerInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ProducerInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/RemoveInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/RemoveInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/RemoveSubscriptionInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/RemoveSubscriptionInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ReplayCommandMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ReplayCommandMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ResponseMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ResponseMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/SessionIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/SessionIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/SessionInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/SessionInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ShutdownInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/ShutdownInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/SubscriptionInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/SubscriptionInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/TransactionIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/TransactionIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/TransactionInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/TransactionInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/WireFormatInfoMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/WireFormatInfoMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/XATransactionIdMarshaller.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/marshal/V2/XATransactionIdMarshaller.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/utils/
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/utils/BooleanStream.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/utils/BooleanStream.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/DataInputStreamTest.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/DataInputStreamTest.h   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/DataOutputStreamTest.cpp   (with props)
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/io/DataOutputStreamTest.h   (with props)

Added: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/DataStreamMarshaller.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/DataStreamMarshaller.h?view=auto&rev=452053
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/DataStreamMarshaller.h (added)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/DataStreamMarshaller.h Mon Oct  2 07:30:10 2006
@@ -0,0 +1,123 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _ACTIVEMQ_CONNECTOR_OPENWIRE_DATASTREAMMARSHALLER_H_
+#define _ACTIVEMQ_CONNECTOR_OPENWIRE_DATASTREAMMARSHALLER_H_
+
+#include <activemq/io/DataInputStream.h>
+#include <activemq/io/DataOutputStream.h>
+#include <activemq/io/IOException.h>
+#include <activemq/connector/openwire/commands/DataStructure.h>
+#include <activemq/connector/openwire/utils/BooleanStream.h>
+#include <activemq/connector/openwire/OpenWireFormat.h>
+
+namespace activemq{
+namespace connector{
+namespace openwire{
+    
+    /**
+     * Base class for all classes that marshal commands for Openwire
+     */
+    class DataStreamMarshaller
+    {
+    public:
+    
+        DataStreamMarshaller() {}
+        virtual ~DataStreamMarshaller() {}
+    
+        /**
+         * Gets the DataStructureType that this class marshals/unmarshals
+         * @returns byte Id of this classes DataStructureType
+         */
+        virtual unsigned char getDataStructureType() = 0;
+        
+        /**
+         * Creates a new instance of the class that this class is a marshaling
+         * director for.
+         * @returns newly allocated Command
+         */
+        virtual commands::DataStructure* createObject() = 0;
+    
+        /**
+         * Tight Marhsal to the given stream
+         * @param format - The OpenwireFormat properties 
+         * @param command -  the object to Marshal
+         * @param bs - boolean stream to marshal to.
+         * @throws IOException if an error occurs.
+         */
+        virtual int tightMarshal1( OpenWireFormat* format, 
+                                   commands::DataStructure* command, 
+                                   utils::BooleanStream* bs ) 
+                                       throw ( io::IOException ) = 0;
+
+        /**
+         * Tight Marhsal to the given stream
+         * @param format - The OpenwireFormat properties 
+         * @param command -  the object to Marshal
+         * @param ds - the DataOutputStream to Marshal to
+         * @param bs - boolean stream to marshal to.
+         * @throws IOException if an error occurs.
+         */
+        virtual void tightMarshal2( OpenWireFormat* format, 
+                                    commands::DataStructure* command, 
+                                    io::DataOutputStream* ds, 
+                                    utils::BooleanStream* bs ) 
+                                        throw ( io::IOException ) = 0;
+
+        /**
+         * Tight Un-marhsal to the given stream
+         * @param format - The OpenwireFormat properties 
+         * @param command -  the object to Un-Marshal
+         * @param dis - the DataInputStream to Un-Marshal from
+         * @param bs - boolean stream to unmarshal from.
+         * @throws IOException if an error occurs.
+         */
+        virtual void tightUnmarshal( OpenWireFormat* format, 
+                                     commands::DataStructure* command, 
+                                     io::DataInputStream* dis, 
+                                     utils::BooleanStream* bs ) 
+                                        throw ( io::IOException ) = 0;
+    
+        /**
+         * Tight Marhsal to the given stream
+         * @param format - The OpenwireFormat properties 
+         * @param command -  the object to Marshal
+         * @param ds - DataOutputStream to marshal to
+         * @throws IOException if an error occurs.
+         */
+        virtual void looseMarshal( OpenWireFormat* format, 
+                                   commands::DataStructure* command, 
+                                   io::DataOutputStream* ds ) 
+                                       throw ( io::IOException ) = 0;
+
+        /**
+         * Loose Un-marhsal to the given stream
+         * @param format - The OpenwireFormat properties 
+         * @param command -  the object to Un-Marshal
+         * @param dis - the DataInputStream to Un-Marshal from
+         * @throws IOException if an error occurs.
+         */
+        virtual void looseUnmarshal( OpenWireFormat* format, 
+                                     commands::DataStructure* command, 
+                                     io::DataInputStream* dis ) 
+                                        throw ( io::IOException ) = 0;
+
+    };
+
+}}}
+
+#endif /*_ACTIVEMQ_CONNECTOR_OPENWIRE_DATASTREAMMARSHALLER_H_*/

Propchange: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/DataStreamMarshaller.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.cpp?view=auto&rev=452053
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.cpp (added)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.cpp Mon Oct  2 07:30:10 2006
@@ -0,0 +1,512 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "OpenWireFormat.h"
+
+#include <activemq/util/Boolean.h>
+#include <activemq/util/Integer.h>
+#include <activemq/util/Long.h>
+#include <activemq/util/Guid.h>
+#include <activemq/util/Math.h>
+#include <activemq/io/ByteArrayOutputStream.h>
+#include <activemq/connector/openwire/utils/BooleanStream.h>
+#include <activemq/connector/openwire/commands/MessageId.h>
+#include <activemq/connector/openwire/commands/ProducerId.h>
+#include <activemq/connector/openwire/commands/TransactionId.h>
+#include <activemq/connector/openwire/commands/LocalTransactionId.h>
+#include <activemq/connector/openwire/commands/XATransactionId.h>
+#include <activemq/connector/openwire/commands/WireFormatInfo.h>
+#include <activemq/connector/openwire/commands/DataStructure.h>
+#include <activemq/connector/openwire/marshal/MarshalAware.h>
+#include <activemq/connector/openwire/DataStreamMarshaller.h>
+#include <activemq/connector/openwire/marshal/v2/MarshallerFactory.h>
+
+using namespace std;
+using namespace activemq;
+using namespace activemq::wireformat;
+using namespace activemq::io;
+using namespace activemq::util;
+using namespace activemq::connector;
+using namespace activemq::transport;
+using namespace activemq::exceptions;
+using namespace activemq::connector::openwire;
+using namespace activemq::connector::openwire::commands;
+using namespace activemq::connector::openwire::marshal;
+using namespace activemq::connector::openwire::marshal::v2;
+using namespace activemq::connector::openwire::utils;
+
+////////////////////////////////////////////////////////////////////////////////
+const unsigned char OpenWireFormat::NULL_TYPE = 0;
+
+////////////////////////////////////////////////////////////////////////////////
+OpenWireFormat::OpenWireFormat( const activemq::util::Properties& properties ) {
+
+    // init
+    this->preferedWireFormatInfo = NULL;
+    
+    // Copy config data
+    this->properties.copy( &properties );
+
+    // Fill in that DataStreamMarshallers collection
+    dataMarshallers.resize( 255 );
+    MarshallerFactory().configure( this );
+
+    // Generate an ID
+    this->id = Guid::createGUIDString();
+
+    // parse params out of the properties
+    stackTraceEnabled = Boolean::parseBoolean( 
+        properties.getProperty( "wireFormat.stackTraceEnabled", 
+                                "1" ) );
+    cacheEnabled = Boolean::parseBoolean(
+        properties.getProperty( "wireFormat.cacheEnabled", 
+                                "1" ) );
+    tcpNoDelayEnabled = Boolean::parseBoolean( 
+        properties.getProperty( "wireFormat.tcpNoDelayEnabled", 
+                                "1" ) );
+    tightEncodingEnabled = Boolean::parseBoolean( 
+        properties.getProperty( "wireFormat.tightEncodingEnabled", 
+                                "1" ) );
+    sizePrefixDisabled = Boolean::parseBoolean( 
+        properties.getProperty( "wireFormat.sizePrefixDisabled", 
+                                "0" ) );
+    maxInactivityDuration = Long::parseLong( 
+        properties.getProperty( "wireFormat.maxInactivityDuration", 
+                                "30000" ) );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+OpenWireFormat::~OpenWireFormat()
+{
+    try {
+        
+        for( size_t i = 0; i < dataMarshallers.size(); ++i )
+        {
+            delete dataMarshallers[i];
+        }
+        
+        delete preferedWireFormatInfo;
+    }
+    AMQ_CATCH_NOTHROW( ActiveMQException )
+    AMQ_CATCHALL_NOTHROW( )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenWireFormat::addMarshaller( DataStreamMarshaller* marshaller )
+{
+    unsigned char type = marshaller->getDataStructureType();
+    dataMarshallers[type & 0xFF] = marshaller;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenWireFormat::setPreferedWireFormatInfo( 
+    commands::WireFormatInfo* info ) throw ( IllegalStateException ) {
+    
+    this->preferedWireFormatInfo = info;
+
+    try {
+        preferedWireFormatInfo->setStackTraceEnabled( stackTraceEnabled );
+        preferedWireFormatInfo->setCacheEnabled( cacheEnabled );
+        preferedWireFormatInfo->setTcpNoDelayEnabled( tcpNoDelayEnabled );
+        preferedWireFormatInfo->setTightEncodingEnabled( tightEncodingEnabled );
+        preferedWireFormatInfo->setSizePrefixDisabled( sizePrefixDisabled );
+        preferedWireFormatInfo->setMaxInactivityDuration( maxInactivityDuration );
+    } catch( ActiveMQException& e ) {
+        throw IllegalStateException(
+            __FILE__, __LINE__,
+            "OpenWireFormat::initialize - "
+            "Could not configure WireFormatInfo" );
+    }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenWireFormat::marshal( transport::Command* command, 
+                              io::DataOutputStream* dataOut ) 
+    throw ( io::IOException ) {
+
+    try {
+
+        int size = 1;
+        
+        if( command != NULL ) {
+            
+            DataStructure* dataStructure = 
+                dynamic_cast< DataStructure* >( command );
+            
+            unsigned char type = dataStructure->getDataStructureType();
+            
+            DataStreamMarshaller* dsm = dataMarshallers[type & 0xFF];
+            
+            if( dsm == NULL ) {
+                throw IOException(
+                    __FILE__, __LINE__,
+                    ( string( "OpenWireFormat::marshal - Unknown data type: " ) + 
+                    Integer::toString( type ) ).c_str() );
+            }
+    
+            if( tightEncodingEnabled ) {
+                BooleanStream* bs = new BooleanStream();
+                size += dsm->tightMarshal1( this, dataStructure, bs );
+                size += bs->marshalledSize(); 
+    
+                if( !sizePrefixDisabled ) {
+                    dataOut->writeInt( size );
+                }
+    
+                dataOut->writeByte( type );
+                bs->marshal( dataOut );
+                dsm->tightMarshal2( this, dataStructure, dataOut, bs );
+    
+            } else {                
+                DataOutputStream* looseOut = dataOut;
+                ByteArrayOutputStream* baos = NULL;
+                
+                if( !sizePrefixDisabled ) {
+                    baos = new ByteArrayOutputStream();
+                    looseOut = new DataOutputStream( baos );
+                }
+                
+                looseOut->writeByte( type );
+                dsm->looseMarshal( this, dataStructure, looseOut );
+                
+                if( !sizePrefixDisabled ) {
+                    looseOut->close();
+                    dataOut->writeInt( baos->getByteArraySize() );
+                    dataOut->write( baos->getByteArray(), 
+                                    baos->getByteArraySize() );
+                                    
+                    // Delete allocated resource
+                    delete baos;
+                    delete looseOut; 
+                }
+            }
+        } else {
+            dataOut->writeInt( size );
+            dataOut->writeByte( NULL_TYPE );
+        }
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+transport::Command* OpenWireFormat::unmarshal( io::DataInputStream* dis ) 
+    throw ( io::IOException ) {
+
+    try{
+        
+        if( !sizePrefixDisabled ) {
+            dis->readInt();
+        }
+        
+        // Get the unmarshalled DataStructure
+        DataStructure* data = doUnmarshal( dis );
+        
+        if( data == NULL ) {
+            throw IOException(
+                __FILE__, __LINE__,
+                "OpenWireFormat::doUnmarshal - "
+                "Failed to unmarshal an Object" );
+        }
+            
+        // Now all unmarshals from this level should result in an object
+        // that is a transport::Command type, if its not then we throw an
+        // exception.
+        transport::Command* command = 
+            dynamic_cast< transport::Command* >( data );
+    
+        if( command == NULL ) {
+            delete data;
+    
+            throw IOException(
+                __FILE__, __LINE__,
+                "OpenWireFormat::doUnmarshal - "
+                "Unmarshalled a non Command Type" );
+        }
+    
+        return command;
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+commands::DataStructure* OpenWireFormat::doUnmarshal( DataInputStream* dis ) 
+    throw ( IOException ) {
+
+    try {
+        
+        unsigned char dataType = dis->readByte();
+    
+        if( dataType != NULL_TYPE ) {
+            
+            DataStreamMarshaller* dsm = 
+                dynamic_cast< DataStreamMarshaller* >( 
+                    dataMarshallers[dataType & 0xFF] );
+                    
+            if( dsm == NULL ) {
+                throw IOException(
+                    __FILE__, __LINE__,
+                    ( string( "OpenWireFormat::marshal - Unknown data type: " ) + 
+                    Integer::toString( dataType ) ).c_str() );
+            }
+    
+            // Ask the DataStreamMarshaller to create a new instance of its 
+            // command so that we can fill in its data.
+            DataStructure* data = dsm->createObject();
+            
+            if( this->tightEncodingEnabled ) {
+                BooleanStream bs;
+                bs.unmarshal( dis );
+                dsm->tightUnmarshal( this, data, dis, &bs );
+            } else {
+                dsm->looseUnmarshal( this, data, dis );
+            }
+            
+            return data;
+        }
+    
+        return NULL;
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenWireFormat::tightMarshalNestedObject2( DataStructure* o, 
+                                                DataOutputStream* ds, 
+                                                BooleanStream* bs ) 
+                                                    throw ( IOException ) {
+
+    try {
+        
+        if( !bs->readBoolean() ) {
+            return;
+        }
+            
+        unsigned char type = o->getDataStructureType();
+        
+        ds->writeByte(type);
+    
+        if( o->isMarshallAware() && bs->readBoolean() ) {
+    
+            MarshalAware* ma = dynamic_cast< MarshalAware* >( o );
+            vector<unsigned char> sequence = ma->GetMarshalledForm( this );
+            ds->write( &sequence[0], sequence.size() );
+            
+        } else {
+            
+            DataStreamMarshaller* dsm = 
+                dynamic_cast< DataStreamMarshaller* >( dataMarshallers[type & 0xFF] );
+            
+            if( dsm == NULL ) {
+                throw IOException(
+                    __FILE__, __LINE__,
+                    ( string( "OpenWireFormat::marshal - Unknown data type: " ) + 
+                    Integer::toString( type ) ).c_str() );
+            }
+            
+            dsm->tightMarshal2( this, o, ds, bs );
+            
+        }
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+DataStructure* OpenWireFormat::tightUnmarshalNestedObject( DataInputStream* dis, 
+                                                           BooleanStream* bs) 
+    throw ( io::IOException ) {
+
+    try {
+        
+        if( bs->readBoolean() ) {
+            
+            byte dataType = dis->readByte();
+            
+            DataStreamMarshaller* dsm = 
+                dynamic_cast< DataStreamMarshaller* >( 
+                    dataMarshallers[dataType & 0xFF] );
+                    
+            if( dsm == NULL ) {
+                throw IOException(
+                    __FILE__, __LINE__,
+                    ( string( "OpenWireFormat::marshal - Unknown data type: " ) + 
+                    Integer::toString( dataType ) ).c_str() );
+            }
+    
+            DataStructure* data = dsm->createObject();
+    
+            if( data->isMarshallAware() && bs->readBoolean() ) {
+                
+                dis->readInt();
+                dis->readByte();
+                
+                BooleanStream bs2;
+                bs2.unmarshal( dis );
+                dsm->tightUnmarshal( this, data, dis, &bs2 );
+    
+            } else {
+                dsm->tightUnmarshal( this, data, dis, bs );
+            }
+            
+            return data;
+        } else {
+            return NULL;
+        }
+
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+DataStructure* OpenWireFormat::looseUnmarshalNestedObject( io::DataInputStream* dis ) 
+    throw ( IOException ) {
+
+    try{
+        
+        if( dis->readBoolean() ) {
+            
+            unsigned char dataType = dis->readByte();
+            
+            DataStreamMarshaller* dsm = 
+                dynamic_cast< DataStreamMarshaller* >( 
+                    dataMarshallers[dataType & 0xFF] );
+                    
+            if( dsm == NULL ) {
+                throw IOException(
+                    __FILE__, __LINE__,
+                    ( string( "OpenWireFormat::marshal - Unknown data type: " ) + 
+                    Integer::toString( dataType ) ).c_str() );
+            }
+            
+            DataStructure* data = dsm->createObject();
+            dsm->looseUnmarshal( this, data, dis );
+
+            return data;
+                        
+        } else {
+            return NULL;
+        }
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenWireFormat::looseMarshalNestedObject( commands::DataStructure* o, 
+                                               io::DataOutputStream* dataOut ) 
+    throw ( io::IOException ) {
+        
+    try{
+
+        dataOut->writeBoolean( o != NULL );
+        if( o != NULL ) {
+            
+            unsigned char dataType = o->getDataStructureType();
+            
+            dataOut->writeByte( dataType );
+            
+            DataStreamMarshaller* dsm = 
+                dynamic_cast< DataStreamMarshaller* >( 
+                    dataMarshallers[dataType & 0xFF] );
+
+            if( dsm == NULL ) {
+                throw IOException(
+                    __FILE__, __LINE__,
+                    ( string( "OpenWireFormat::marshal - Unknown data type: " ) + 
+                    Integer::toString( dataType ) ).c_str() );
+            }
+            
+            dsm->looseMarshal( this, o, dataOut );
+        }
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenWireFormat::renegotiateWireFormat( WireFormatInfo* info ) 
+    throw ( exceptions::IllegalStateException ) {
+    
+    if( preferedWireFormatInfo == NULL ) {
+        throw IllegalStateException(
+            __FILE__, __LINE__,
+            "OpenWireFormat::renegotiateWireFormat - "
+            "Wireformat cannot not be renegotiated." );
+    }
+
+    this->setVersion( Math::min( preferedWireFormatInfo->getVersion(), 
+                                 info->getVersion() ) );
+    this->stackTraceEnabled = info->isStackTraceEnabled() && 
+                              preferedWireFormatInfo->isStackTraceEnabled();
+    this->tcpNoDelayEnabled = info->isTcpNoDelayEnabled() && 
+                              preferedWireFormatInfo->isTcpNoDelayEnabled();
+    this->cacheEnabled = info->isCacheEnabled() && 
+                         preferedWireFormatInfo->isCacheEnabled();
+    this->tightEncodingEnabled = info->isTightEncodingEnabled() && 
+                                 preferedWireFormatInfo->isTightEncodingEnabled();
+    this->sizePrefixDisabled = info->isSizePrefixDisabled() && 
+                               preferedWireFormatInfo->isSizePrefixDisabled();
+    
+}
+
+////////////////////////////////////////////////////////////////////////////////
+std::string OpenWireFormat::toString( commands::MessageId* id )
+{
+    if( id == NULL ) return "";
+    
+    return OpenWireFormat::toString( id->getProducerId() ) + ":" + 
+           Long::toString( id->getProducerSequenceId() );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+std::string OpenWireFormat::toString( commands::ProducerId* id )
+{
+    return id->getConnectionId() + ":" + 
+           Long::toString( id->getSessionId() ) + ":" + 
+           Long::toString( id->getValue() );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+std::string OpenWireFormat::toString( commands::TransactionId* txnId )
+{
+    LocalTransactionId* ltxnId = dynamic_cast<LocalTransactionId*>( txnId );
+    XATransactionId* xaTxnId = dynamic_cast<XATransactionId*>( txnId );
+        
+    if( ltxnId != NULL )
+    {
+        return Long::toString( ltxnId->getValue() );
+    }
+    else if( xaTxnId != NULL )
+    {
+//        return string("XID:") + Integer::toString( xaTxnId->getFormatId() ) + ":" + 
+//               toHexFromBytes( xaTxnId->getGlobalTransactionId() ) + ":" + 
+//               toHexFromBytes( xaTxnId->getBranchQualifier() );        
+    }
+
+    return "";
+}

Propchange: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.h?view=auto&rev=452053
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.h (added)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.h Mon Oct  2 07:30:10 2006
@@ -0,0 +1,323 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _ACTIVEMQ_CONNECTOR_OPENWIRE_OPENWIREFORMAT_H_
+#define _ACTIVEMQ_CONNECTOR_OPENWIRE_OPENWIREFORMAT_H_
+
+#include <activemq/wireformat/WireFormat.h>
+#include <activemq/connector/openwire/commands/WireFormatInfo.h>
+#include <activemq/connector/openwire/commands/DataStructure.h>
+#include <activemq/connector/openwire/utils/BooleanStream.h>
+#include <activemq/util/SimpleProperties.h>
+#include <activemq/exceptions/IllegalStateException.h>
+#include <activemq/connector/openwire/commands/MessageId.h>
+#include <activemq/connector/openwire/commands/ProducerId.h>
+#include <activemq/connector/openwire/commands/TransactionId.h>
+    
+
+namespace activemq{
+namespace connector{
+namespace openwire{
+
+    class DataStreamMarshaller;
+
+    class OpenWireFormat : public wireformat::WireFormat
+    {
+    public:
+
+        /**
+         * Constructs a new OpenWireFormat object
+         * @param properties - can contain optional config params.
+         */    
+        OpenWireFormat( const activemq::util::Properties& properties );
+        
+        virtual ~OpenWireFormat();
+
+        /**
+         * Allows an external source to add marshallers to this object for
+         * types that may be marshalled or unmarhsalled.
+         * @param marshaller - the Marshaller to add to the collection.
+         */
+        void addMarshaller( DataStreamMarshaller* marshaller );
+        
+        /**
+         * Stream based marshaling
+         * @param command - The Command to Marshal
+         * @param out - the output stream to write the command to.
+         * @throws IOException 
+         */
+        virtual void marshal( transport::Command* command, 
+                              io::DataOutputStream* dataOut ) 
+            throw ( io::IOException );
+
+        /**
+         * Packet based un-marshaling 
+         * @param dis - the input stream to read the command from.
+         * @returns the newly marshaled Command, caller owns the pointer
+         * @throws IOException 
+         */
+        virtual transport::Command* unmarshal( io::DataInputStream* dis ) throw ( io::IOException );
+
+        /**
+         * Utility method that will Tight marshall some internally nested object
+         * that implements the DataStructure interface.  Writes the data to the
+         * Data Ouput Stream provided.
+         * @param o - DataStructure object
+         * @param ds - DataOuputStream for writing
+         * @param bs - BooleanStream
+         * @throws IOException if an error occurs.
+         */
+        void tightMarshalNestedObject2( commands::DataStructure* o, 
+                                        io::DataOutputStream* ds, 
+                                        utils::BooleanStream* bs ) throw ( io::IOException );
+
+        /**
+         * Utility method used to Unmarshal a Nested DataStructure type object
+         * from the given DataInputStream.  The DataStructure instance that is
+         * returned is now the property of the caller.
+         * @param ds - DataInputStream to read from
+         * @param bs - BooleanStream to read from
+         * @returns Newly allocated DataStructure Object
+         * @throws IOException if an error occurs.
+         */
+        commands::DataStructure* tightUnmarshalNestedObject( io::DataInputStream* dis, 
+                                                             utils::BooleanStream* bs ) 
+            throw ( io::IOException );
+
+        /**
+         * Utility method to unmarshal an DataStructure object from an 
+         * DataInputStream using the Loose Unmarshalling format.  Will read
+         * the Data and construct a new DataStructure based Object, the
+         * pointer to the Object returned is now owned by the caller.
+         * @param dis - the DataInputStream to read the data from
+         * @returns a new DataStructure derived Object pointer
+         * @throws IOException if an error occurs.
+         */
+        commands::DataStructure* looseUnmarshalNestedObject( 
+            io::DataInputStream* dis) 
+                throw ( io::IOException );
+
+        /**
+         * Utility method to loosely Marshal an object that is derived from the
+         * DataStrucutre interface.  The marshalled data is written to the 
+         * passed in DataOutputStream.
+         * @param o - DataStructure derived Object to Marshal
+         * @param dataOut - DataOutputStream to write the data to
+         * @throw IOException if an error occurs.
+         */
+        void looseMarshalNestedObject( commands::DataStructure* o, 
+                                       io::DataOutputStream* dataOut ) 
+                                           throw ( io::IOException );
+
+        /**
+         * Called to renegotiate the settings for the WireFormatInfo, these
+         * determine how the client and broker communicate.
+         * @param info - The new Wireformat Info settings
+         * @throws IllegalStateException is the params can't be negotiated.
+         */
+        void renegotiateWireFormat( commands::WireFormatInfo* info ) 
+            throw ( exceptions::IllegalStateException );
+
+        /**
+         * Configures this object using the provieded WireformatInfo object
+         * @param info - a WireFormatInfo object, takes ownership.
+         */
+        virtual void setPreferedWireFormatInfo( commands::WireFormatInfo* info )
+            throw ( exceptions::IllegalStateException );
+
+        /**
+         * Checks if the stackTraceEnabled flag is on
+         * @return true if the flag is on.
+         */
+        bool isStackTraceEnabled() const {
+            return stackTraceEnabled;
+        }
+    
+        /**
+         * Sets if the stackTraceEnabled flag is on
+         * @param stackTraceEnabled - ture to turn flag is on
+         */
+        void setStackTraceEnabled( bool stackTraceEnabled ) {
+            this->stackTraceEnabled = stackTraceEnabled;
+        }
+    
+        /**
+         * Checks if the tcpNoDelayEnabled flag is on
+         * @return true if the flag is on.
+         */
+        bool isTcpNoDelayEnabled() const {
+            return tcpNoDelayEnabled;
+        }
+    
+        /**
+         * Sets if the tcpNoDelayEnabled flag is on
+         * @param tcpNoDelayEnabled - ture to turn flag is on
+         */
+        void setTcpNoDelayEnabled( bool tcpNoDelayEnabled ) {
+            this->tcpNoDelayEnabled = tcpNoDelayEnabled;
+        }
+    
+        /**
+         * Get the current Wireformat Version
+         * @return int that identifies the version
+         */
+        int getVersion() const {
+            return version;
+        }
+    
+        /**
+         * Set the current Wireformat Version
+         * @param version - int that identifies the version
+         */
+        void setVersion( int version ) {
+            this->version = version;
+        }
+    
+        /**
+         * Checks if the cacheEnabled flag is on
+         * @return true if the flag is on.
+         */
+        bool isCacheEnabled() const {
+            return cacheEnabled;
+        }
+    
+        /**
+         * Sets if the cacheEnabled flag is on
+         * @param cacheEnabled - ture to turn flag is on
+         */
+        void setCacheEnabled( bool cacheEnabled ) {
+            this->cacheEnabled = cacheEnabled;
+        }
+    
+        /**
+         * Checks if the tightEncodingEnabled flag is on
+         * @return true if the flag is on.
+         */
+        bool isTightEncodingEnabled() const {
+            return tightEncodingEnabled;
+        }
+    
+        /**
+         * Sets if the tightEncodingEnabled flag is on
+         * @param tightEncodingEnabled - ture to turn flag is on
+         */
+        void setTightEncodingEnabled( bool tightEncodingEnabled ) {
+            this->tightEncodingEnabled = tightEncodingEnabled;
+        }
+    
+        /**
+         * Checks if the sizePrefixDisabled flag is on
+         * @return true if the flag is on.
+         */
+        bool isSizePrefixDisabled() const {
+            return sizePrefixDisabled;
+        }
+    
+        /**
+         * Sets if the sizePrefixDisabled flag is on
+         * @param sizePrefixDisabled - ture to turn flag is on
+         */
+        void setSizePrefixDisabled( bool sizePrefixDisabled ) {
+            this->sizePrefixDisabled = sizePrefixDisabled;
+        }
+    
+        /**
+         * Get the current value of the maxInactivityDuration feild
+         * @return the value of the maxInactivityDuration
+         */
+        long getMaxInactivityDuration() const {
+            return maxInactivityDuration;
+        }
+    
+        /**
+         * Set the current Wireformat Version
+         * @param version - int that identifies the version
+         */
+        void setMaxInactivityDuration( long maxInactivityDuration ) {
+            this->maxInactivityDuration = maxInactivityDuration;
+        }
+
+    public:      // Statics
+
+        /**
+         * Converts the object to a String
+         * @param id - MessageId pointer
+         * @returns string representing the id
+         */
+        static std::string toString( commands::MessageId* id );
+
+        /**
+         * Converts the object to a String
+         * @param id - ProducerId pointer
+         * @returns string representing the id
+         */
+        static std::string toString( commands::ProducerId* id );
+
+        /**
+         * Converts the given transaction ID into a String
+         * @param txnId - TransactionId poitner
+         * @returns string representation of the id
+         */
+        static std::string toString( commands::TransactionId* txnId );
+
+    protected:
+    
+        /**
+         * Perform the actual unmarshal of data from the given DataInputStream
+         * return the unmarshalled DataStrucutre object once done, caller takes 
+         * ownership of this object.  This method can return null if the type 
+         * of the object to unmarshal is NULL, empty data.
+         * @param dis - DataInputStream to read from
+         * @returns new DataStructure* that the caller owns
+         * @throws IOException if an error occurs during the unmarshal
+         */
+        commands::DataStructure* doUnmarshal( io::DataInputStream* dis ) 
+            throw ( io::IOException );
+
+    protected:
+
+        // Declared here to make life easier.    
+        static const unsigned char NULL_TYPE; 
+
+    private:
+    
+        // This object config data
+        activemq::util::SimpleProperties properties;
+        
+        // Prefered WireFormatInfo
+        commands::WireFormatInfo* preferedWireFormatInfo;
+        
+        // Marshallers
+        std::vector< DataStreamMarshaller* > dataMarshallers;
+        
+        // Uniquely Generated ID, initialize in the Ctor
+        std::string id;
+        
+        // WireFormat Data
+        int version;
+        bool stackTraceEnabled;
+        bool tcpNoDelayEnabled;
+        bool cacheEnabled;
+        bool tightEncodingEnabled;
+        bool sizePrefixDisabled;
+        int maxInactivityDuration;
+    
+    };
+
+}}}
+
+#endif /*_ACTIVEMQ_CONNECTOR_OPENWIRE_OPENWIREFORMAT_H_*/

Propchange: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormat.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.cpp?view=auto&rev=452053
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.cpp (added)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.cpp Mon Oct  2 07:30:10 2006
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include <activemq/connector/openwire/OpenwireFormatFactory.h>
+#include <activemq/connector/openwire/OpenwireFormat.h>
+
+using namespace std;
+using namespace activemq;
+using namespace activemq::wireformat;
+using namespace activemq::connector;
+using namespace activemq::transport;
+using namespace activemq::exceptions;
+using namespace activemq::connector::openwire;
+using namespace activemq::connector::openwire::commands;
+
+////////////////////////////////////////////////////////////////////////////////
+WireFormat* OpenWireFormatFactory::createWireFormat( 
+    const util::Properties& properties )
+        throw ( exceptions::IllegalStateException ) {
+
+    WireFormatInfo* info = new WireFormatInfo();
+    
+    // Configure the version to use
+    info->setVersion( 2 );
+    
+    // Create the Openwire Format Object
+    OpenWireFormat* f = new OpenWireFormat( properties );
+    
+    // give the format object the ownership
+    f->setPreferedWireFormatInfo( info );
+
+    return f;
+}
+

Propchange: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.h?view=auto&rev=452053
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.h (added)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.h Mon Oct  2 07:30:10 2006
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _ACTIVEMQ_CONNECTOR_OPENWIRE_OPENWIREFORMATFACTORY_H_
+#define _ACTIVEMQ_CONNECTOR_OPENWIRE_OPENWIREFORMATFACTORY_H_
+
+#include <activemq/wireformat/WireFormatFactory.h>
+#include <activemq/connector/openwire/commands/WireFormatInfo.h>
+#include <activemq/exceptions/IllegalStateException.h>
+#include <activemq/util/Properties.h>
+
+namespace activemq{
+namespace connector{
+namespace openwire{
+
+    class OpenWireFormatFactory : public wireformat::WireFormatFactory
+    {
+    public:
+
+        /**
+         * Constructor - Sets Defaults for all properties, these are all
+         * subject to change once the <code>createWireFormat</code> method
+         * is called.
+         * 
+         * URL options
+         * --------------------
+         * wireFormat.stackTraceEnabled
+         * wireFormat.cacheEnabled
+         * wireFormat.tcpNoDelayEnabled
+         * wireFormat.tightEncodingEnabled
+         * wireFormat.sizePrefixDisabled
+         * wireFormat.maxInactivityDuration
+         */
+        OpenWireFormatFactory() {};
+
+        virtual ~OpenWireFormatFactory() {};
+
+        /**    
+         * Creates a new WireFormat Object passing it a set of
+         * properties from which it can obtain any optional settings
+         * @param properties - the Properties for this WireFormat
+         */
+        virtual wireformat::WireFormat* createWireFormat( const util::Properties& properties )
+            throw ( exceptions::IllegalStateException );
+
+    };
+
+}}}
+
+#endif /*_ACTIVEMQ_CONNECTOR_OPENWIRE_OPENWIREFORMATFACTORY_H_*/

Propchange: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenWireFormatFactory.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandReader.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandReader.cpp?view=auto&rev=452053
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandReader.cpp (added)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandReader.cpp Mon Oct  2 07:30:10 2006
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include "OpenwireCommandReader.h"
+
+#include <activemq/concurrent/Thread.h>
+
+using namespace std;
+using namespace activemq;
+using namespace activemq::concurrent;
+using namespace activemq::connector;
+using namespace activemq::connector::openwire;
+using namespace activemq::transport;
+using namespace activemq::io;
+using namespace activemq::exceptions;
+
+////////////////////////////////////////////////////////////////////////////////
+OpenwireCommandReader::OpenwireCommandReader(void)
+{
+    inputStream = NULL;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+OpenwireCommandReader::OpenwireCommandReader( InputStream* is )
+{
+    inputStream = is;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Command* OpenwireCommandReader::readCommand(void) 
+    throw ( CommandIOException )
+{
+    try
+    {
+        return NULL;
+    }
+    AMQ_CATCH_RETHROW( CommandIOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, CommandIOException )
+    AMQ_CATCHALL_THROW( CommandIOException )
+}
+
+////////////////////////////////////////////////////////////////////////////////
+int OpenwireCommandReader::read( unsigned char* buffer, int count ) 
+   throw( io::IOException )
+{
+    try
+    {
+        if( inputStream == NULL )
+        {
+            throw IOException( 
+                __FILE__, __LINE__, 
+                "OpenwireCommandReader::read(char*,int) - input stream is NULL" );
+        }
+       
+        int head = 0;
+       
+        // We call the read(buffer, size) version asking for one
+        // byte, if this returns zero, then there wasn't anything 
+        // on the stream to read, so we try again after a short 
+        // pause in hopes that some more data will show up.
+        while( true )
+        {
+            head += inputStream->read( &buffer[head], count - head );
+          
+            if( head == count )
+            {
+                return count;
+            }
+          
+            // Got here, so we wait a bit and try again.
+            Thread::sleep( 10 );
+        }
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}
+ 
+////////////////////////////////////////////////////////////////////////////////
+unsigned char OpenwireCommandReader::readByte(void) throw( io::IOException )
+{
+    try
+    {
+        if( inputStream == NULL )
+        {
+            throw IOException( 
+                __FILE__, __LINE__, 
+                "OpenwireCommandReader::read(char*,int) - "
+                "input stream is NULL" );
+        }
+       
+        unsigned char c = 0;
+        inputStream->read( &c, 1 );
+        return c;
+    }
+    AMQ_CATCH_RETHROW( IOException )
+    AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
+    AMQ_CATCHALL_THROW( IOException )
+}

Propchange: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/OpenwireCommandReader.cpp
------------------------------------------------------------------------------
    svn:eol-style = native