00001 #ifndef __J2K__JString_Build_INL__
00002 #define __J2K__JString_Build_INL__
00003
00004 #include <j2k/Fred/String/String.hpp>
00005
00006
00007
00008
00009
00010 inline JString::JString()
00011 : pData( strNull ) { }
00012
00013 inline JString::JString( JStringData* sd )
00014 : pData( sd ) { }
00015
00016 inline JString::JString( const char* s )
00017 {
00018 if ( s != NULL && *s != (char)NULL ) {
00019 pData = new JStringData( s );
00020 } else {
00021 pData = strNull;
00022 }
00023 }
00024
00025
00026 #if 0
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #endif
00038
00039
00040
00041
00042 inline JString::JString( const char* s, size_t nBuffer )
00043 {
00044 if ( s != NULL && *s != (char)NULL ) {
00045
00046 register size_t len = strlen( s );
00047
00048 if ( len > nBuffer ) {
00049 pData = new JStringData( s, len );
00050 } else {
00051 pData = new JStringData( s, nBuffer );
00052 }
00053
00054 } else {
00055
00056 if ( nBuffer < 1 ) {
00057 pData = strNull;
00058 } else {
00059 pData = new JStringData( nBuffer );
00060 }
00061
00062 }
00063 }
00064
00065 inline JString::JString( char ch )
00066 : pData( new JStringData( ch, 1 ) ) { }
00067
00068 inline JString::JString( char ch, size_t nRepeat )
00069 : pData( new JStringData( ch, nRepeat ) ) { }
00070
00071
00072
00073 inline JString::JString( const JString& src )
00074 : pData( src.pData )
00075 {
00076 pData->Inc();
00077 }
00078
00079
00080 inline JString::~JString() {
00081
00082 #ifdef __J2K__DEBUG
00083 printf("\nDelete JString[%s]\n", pData->data );
00084 #endif
00085
00086 pData->Dec();
00087 }
00088
00089 #endif