00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _ACTIVEMQ_WIREFORMAT_MARSHALAWARE_H_
00019 #define _ACTIVEMQ_WIREFORMAT_MARSHALAWARE_H_
00020
00021 #include <vector>
00022 #include <decaf/io/IOException.h>
00023 #include <activemq/util/Config.h>
00024
00025 namespace activemq {
00026 namespace wireformat {
00027
00028 class WireFormat;
00029
00030 class AMQCPP_API MarshalAware {
00031 public:
00032
00033 virtual ~MarshalAware();
00034
00044 virtual bool isMarshalAware() const = 0;
00045
00055 virtual void beforeMarshal(WireFormat* wireFormat) = 0;
00056
00066 virtual void afterMarshal(WireFormat* wireFormat) = 0;
00067
00077 virtual void beforeUnmarshal(WireFormat* wireFormat) = 0;
00078
00088 virtual void afterUnmarshal(WireFormat* wireFormat) = 0;
00089
00103 virtual void setMarshaledForm(WireFormat* wireFormat, const std::vector<char>& data) = 0;
00104
00114 virtual std::vector<unsigned char> getMarshaledForm(WireFormat* wireFormat) = 0;
00115
00116 };
00117
00118 }}
00119
00120 #endif