activemq-cpp-3.3.0

src/main/activemq/wireformat/openwire/marshal/DataStreamMarshaller.h

Go to the documentation of this file.
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_*/