|
activemq-cpp-3.3.0
|
00001 00018 #ifndef _ACTIVEMQ_WIREFORMAT_OPENWIRE_MARSHAL_DATASTREAMMARSHALLER_H_ 00019 #define _ACTIVEMQ_WIREFORMAT_OPENWIRE_MARSHAL_DATASTREAMMARSHALLER_H_ 00020 00021 #include <decaf/io/DataInputStream.h> 00022 #include <decaf/io/DataOutputStream.h> 00023 #include <decaf/io/IOException.h> 00024 #include <activemq/commands/DataStructure.h> 00025 #include <activemq/wireformat/openwire/utils/BooleanStream.h> 00026 #include <activemq/wireformat/openwire/OpenWireFormat.h> 00027 #include <activemq/util/Config.h> 00028 00029 namespace activemq{ 00030 namespace wireformat{ 00031 namespace openwire{ 00032 namespace marshal{ 00033 00037 class AMQCPP_API DataStreamMarshaller { 00038 public: 00039 00040 virtual ~DataStreamMarshaller() {} 00041 00046 virtual unsigned char getDataStructureType() const = 0; 00047 00053 virtual commands::DataStructure* createObject() const = 0; 00054 00067 virtual int tightMarshal1( OpenWireFormat* format, 00068 commands::DataStructure* command, 00069 utils::BooleanStream* bs ) = 0; 00070 00079 virtual void tightMarshal2( OpenWireFormat* format, 00080 commands::DataStructure* command, 00081 decaf::io::DataOutputStream* ds, 00082 utils::BooleanStream* bs ) = 0; 00083 00092 virtual void tightUnmarshal( OpenWireFormat* format, 00093 commands::DataStructure* command, 00094 decaf::io::DataInputStream* dis, 00095 utils::BooleanStream* bs ) = 0; 00096 00104 virtual void looseMarshal( OpenWireFormat* format, 00105 commands::DataStructure* command, 00106 decaf::io::DataOutputStream* ds ) = 0; 00107 00115 virtual void looseUnmarshal( OpenWireFormat* format, 00116 commands::DataStructure* command, 00117 decaf::io::DataInputStream* dis ) = 0; 00118 00119 }; 00120 00121 }}}} 00122 00123 #endif /*_ACTIVEMQ_WIREFORMAT_OPENWIRE_MARSHAL_DATASTREAMMARSHALLER_H_*/