Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   Related Pages  

Message.cc

00001 /*
00002  * Copyright 2003 Michael A. Marsh, Cornell University. All rights reserved.
00003  * This software is released under the modified BSD license.
00004  * See the file LICENSE in the top-level directory for details.
00005  */
00006 //
00007 // $Id: Message.cc,v 1.3 2004/05/19 15:56:55 mmarsh Exp $
00008 //
00009 // $Log: Message.cc,v $
00010 // Revision 1.3  2004/05/19 15:56:55  mmarsh
00011 // *** empty log message ***
00012 //
00013 // Revision 1.2  2003/11/04 22:31:50  mmarsh
00014 // *** empty log message ***
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 }

Generated on Wed Jun 2 16:32:55 2004 for COrnell Data EXchange (CODEX) by doxygen1.2.18