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