00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "Message.h"
00019
00020 using namespace CODEX_Quorum;
00021
00022 Message::Message()
00023 {
00024 m_buffer.reserve(1024);
00025 }
00026
00027 Message::Message( const Message::BufferType& buff ) :
00028 m_buffer( buff )
00029 {}
00030
00031 Message::Message( const string& aString )
00032 {
00033 m_buffer.reserve(aString.size());
00034 for ( string::const_iterator elem = aString.begin() ;
00035 elem != aString.end() ;
00036 ++elem )
00037 {
00038 m_buffer.push_back(*elem);
00039 }
00040 }
00041
00042 Message::Message( const unsigned char* buff, int len )
00043 {
00044 m_buffer.reserve(len);
00045 for ( int i = 0 ; i < len ; ++i )
00046 {
00047 m_buffer.push_back(buff[i]);
00048 }
00049 }
00050
00051 Message::Message( const Message& aMessage ) :
00052 m_buffer( aMessage.m_buffer )
00053 {}
00054
00055 void
00056 Message::fill( const Message& aMessage )
00057 {
00058 m_buffer.insert( m_buffer.end(),
00059 aMessage.m_buffer.begin(),
00060 aMessage.m_buffer.end() );
00061 }
00062
00063 void
00064 Message::fill( const Message::BufferType& buff )
00065 {
00066 m_buffer.insert( m_buffer.end(), buff.begin(), buff.end() );
00067 }
00068
00069 void
00070 Message::fill( const string& aString )
00071 {
00072 m_buffer.reserve( m_buffer.capacity() + aString.size() );
00073 for ( string::const_iterator elem = aString.begin() ;
00074 elem != aString.end() ;
00075 ++elem )
00076 {
00077 m_buffer.push_back(*elem);
00078 }
00079 }
00080
00081 void
00082 Message::fill( const unsigned char* buff, int len )
00083 {
00084 m_buffer.reserve( m_buffer.capacity() + len );
00085 for ( int i = 0 ; i < len ; ++i )
00086 {
00087 m_buffer.push_back(buff[i]);
00088 }
00089 }
00090
00091 void
00092 Message::fill( unsigned char a )
00093 {
00094 m_buffer.push_back(a);
00095 }
00096
00097 const unsigned char*
00098 Message::buffer() const
00099 {
00100 return (&m_buffer[0]);
00101 }
00102
00103 unsigned int
00104 Message::length() const
00105 {
00106 return m_buffer.size();
00107 }
00108
00109 string
00110 Message::messageString() const
00111 {
00112 string s;
00113 for ( BufferType::const_iterator elem = m_buffer.begin() ;
00114 elem != m_buffer.end() ;
00115 ++elem )
00116 {
00117 s += *elem;
00118 }
00119 return s;
00120 }