00001 #ifndef _IT_BUS_BINARY_BUFFER_NILLABLE_H_
00002 #define _IT_BUS_BINARY_BUFFER_NILLABLE_H_
00003
00004
00005
00006
00007 #include <it_bus/binary_buffer.h>
00008 #include <it_bus/api_defines.h>
00009 #include <it_bus/no_data_exception.h>
00010
00011 namespace IT_Bus
00012 {
00020 class IT_BUS_API BinaryBufferNillable
00021 {
00022 public:
00026 BinaryBufferNillable();
00027
00031 BinaryBufferNillable(
00032 const BinaryBufferNillable& other
00033 );
00034
00038 BinaryBufferNillable(
00039 const BinaryBuffer& other
00040 );
00041
00045 virtual ~BinaryBufferNillable();
00046
00050 BinaryBufferNillable&
00051 operator=(
00052 const BinaryBufferNillable& other
00053 );
00054
00058 virtual Boolean
00059 is_nil() const;
00060
00064 virtual void
00065 set_nil();
00066
00071 virtual const IT_Bus::BinaryBuffer&
00072 get() const throw((NoDataException));
00073
00078 virtual IT_Bus::BinaryBuffer&
00079 get() throw((NoDataException));
00080
00084 virtual void
00085 set(
00086 const IT_Bus::BinaryBuffer& data
00087 );
00088
00092 virtual void
00093 reset();
00094
00095 private:
00096 Boolean m_is_nil;
00097 IT_Bus::BinaryBuffer m_data;
00098 };
00099 }
00100
00101 #endif