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

C:/temp/src/j2k/Deprecated/old_18mar_diff/String/StringAt.inl

Go to the documentation of this file.
00001 #ifndef __J2K__JString_At_INL__
00002 #define __J2K__JString_At_INL__
00003 
00004 #include <j2k/Fred/String/String.hpp>
00005 
00006 // TODO:  Check for effects of LOCK functions !
00007 // StrAdd also !
00008 
00009 // Use CopyBeforeWrite();
00010 
00011 /** ANDREA ***************************************************
00012 
00013   This module defines a few inline and a few regular
00014   methods. How do you think one can use it ? #including
00015   a .cpp (so recompiling all the functions every time) ?
00016 **************************************************************/
00017 
00018 // same as getAt
00019 inline char JString::operator[](long index) const {
00020   if ( index < 0 ) return (char)NULL;
00021   return getAt( (size_t)index );
00022 }
00023 
00024 inline char JString::getAt( size_t index ) const {
00025   if ( (long)index == -1 ) return (char)NULL;
00026   if ( index >= pData->length ) {
00027     return (char)NULL;
00028   }
00029  
00030   return pData->data[ index ];
00031 }
00032 
00033 inline JString JString::at() { return JString( *this ); } // get a copy
00034 
00035 inline JString JString::at( const char* s) {    return at( s, 0 ); }
00036 inline JString JString::at( const JString& S) { return at( S.pData->data, 0 ); }
00037 
00038 inline JString JString::at( const JString& S, size_t startpos ) {
00039   return at( S.pData->data, startpos );
00040 }
00041 
00042 inline JString JString::at( const JString& S, size_t startpos, size_t length ) {
00043   return at( S.pData->data, startpos, length );
00044 }
00045 
00046 inline JString JString::right( size_t length ) { 
00047   return at( pData->length - length, length ); 
00048 }
00049 
00050 inline JString JString::left( size_t length )  { 
00051   return at( (size_t)0, length ); 
00052 }
00053 
00054 inline JString JString::mid( const JString& S, size_t startpos, size_t length ) {
00055   return at( S.pData->data, startpos, length );
00056 }
00057 
00058 inline JString JString::mid( const char* s, size_t startpos, size_t length ) {
00059   return at( s, startpos, length );
00060 }
00061 
00062 inline JString JString::ltrim( char ch ) const {
00063   // find first single character
00064   // return -1 if not found and index otherwise
00065   for( size_t l = 0; l < pData->length; l++ ) {
00066     if ( pData->data[l] == ch ) return JString( pData->data+l );
00067   }
00068   return JString();
00069 }
00070 
00071 // Same as at:
00072 // operator()(...) -> at(...)
00073 
00074 inline JString JString::operator()( size_t startpos, size_t length ) { 
00075   return at( startpos, length ); 
00076 }
00077 
00078 inline JString JString::operator()( size_t startpos  ) { return at( startpos ); }
00079 inline JString JString::operator()( const char* s    ) { return at( s, 0 ); }
00080 inline JString JString::operator()( const JString& S ) { return at( S.pData->data, 0 ); }
00081 
00082 inline JString JString::operator()( const char* s,    size_t startpos ) { 
00083   return at( s, startpos ); 
00084 }
00085 
00086 inline JString JString::operator()( const JString& S, size_t startpos ) { 
00087   return at( S.pData->data, startpos ); 
00088 }
00089 
00090 inline JString JString::operator()( const char* s,    size_t startpos, size_t length ) { 
00091   return at( s, startpos, length ); 
00092 }
00093 
00094 inline JString JString::operator()( const JString& S, size_t startpos, size_t length ) {
00095   return at( S.pData->data, startpos, length ); 
00096 }
00097 
00098 #endif

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