Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/nto/bak/Message.cpp

Go to the documentation of this file.
00001 #ifndef __J2K__Message_HPP__
00002 #define __J2K__Message_HPP__
00003 
00004 #include <j2k/Fred/Standard.hpp>
00005 
00006   // XOR checksum
00007   void Message::calculateCheckSum()
00008   {
00009     msg.checksum = ~0;
00010 
00011     for( size_t i = 0; i < size; i++ )
00012     {
00013       msg.checksum ^= ( msg.buffer[i] * ((i+1) & 65535 ) );
00014     }
00015 
00016     msg.checksum ^= msg.number;
00017   }
00018 
00019   Message::Message( void* buffer0, size_t size0, int number0 = 0 )
00020   {
00021     msg.buffer = new char[ size0+1 ];
00022     msg.size   = size0+1;
00023     msg.number = number0;
00024     memcpy( msg.buffer, buffer0, msg.size );
00025     calculateCheckSum();
00026   }
00027 
00028   Message::Message( int number0 = 0 )
00029   {
00030     msg.buffer = NULL;
00031     msg.size   = 0;
00032     msg.number = number0;
00033     calculateCheckSum();   
00034   }
00035 
00036   Message::Message( const Message& src )
00037   {
00038     msg.buffer = new char[ src.msg.size ];
00039     msg.size   = src.msg.size;
00040     msg.number = src.msg.number;
00041     memcpy( msg.buffer, src.msg.buffer, src.msg.size );
00042     calculateCheckSum();
00043   }
00044 
00045   const Message& Message::operator= ( const Message& src )
00046   {
00047     msg.buffer = new char[ src.msg.size ];
00048     msg.size   = src.msg.size;
00049     msg.number = src.msg.number;
00050     memcpy( msg.buffer, src.msg.buffer, src.msg.size );
00051     calculateCheckSum();
00052   }
00053 
00054   Message::~Message()
00055   {
00056     if ( msg.buffer != NULL )
00057     {
00058       delete[] msg.buffer;
00059     }
00060   }
00061 
00062 #endif

Generated on Sun Oct 14 18:46:35 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001