00001 #ifndef __J2K__Buffer_CPP__
00002 #define __J2K__Buffer_CPP__
00003
00004 #include <j2k/nto/Buffer.hpp>
00005
00006 Buffer::Buffer( size_t sz = 80, const char* src = NULL )
00007 : size( sz+1 ), buffer( NULL )
00008 {
00009 if ( sz < 2 ) size = 1;
00010
00011 buffer = new char[ size ];
00012
00013 if ( buffer == NULL )
00014 {
00015 printf( "Memory couldn't be allocated !" );
00016 exit( 1 );
00017 }
00018
00019 memset( buffer, 0, size );
00020
00021 if ( src != NULL )
00022 memcpy( buffer, src, size );
00023 }
00024
00025 Buffer::Buffer( const Buffer& src )
00026 : size( src.size ), buffer( NULL )
00027 {
00028 buffer = new char[ src.size ];
00029 memset( buffer, 0, src.size );
00030
00031 if ( src.buffer != NULL )
00032 memcpy( buffer, src.buffer, src.size );
00033 }
00034
00035 const Buffer& Buffer::operator= ( const Buffer& src )
00036 {
00037 size = src.size;
00038
00039 if ( buffer != NULL ) delete[] buffer;
00040
00041 buffer = NULL;
00042 buffer = new char[ src.size + 1 ];
00043
00044 if ( buffer == NULL )
00045 {
00046 printf( "Memory couldn't be allocated !" );
00047 exit( 1 );
00048 }
00049
00050 memset( buffer, 0, src.size );
00051
00052 if ( src.buffer != NULL )
00053 memcpy( buffer, src.buffer, src.size );
00054 }
00055
00056 Buffer::~Buffer()
00057 {
00058 if ( buffer != NULL ) delete[] buffer;
00059 }
00060
00061 #endif