17 #ifndef ZORBA_STRING_API_H
18 #define ZORBA_STRING_API_H
24 #include <zorba/config.h>
76 String( std::string
const &s );
148 String& operator=( std::string
const &s );
181 return length() == 0;
189 size_type length()
const;
210 reference at( size_type pos );
218 value_type at( size_type pos )
const;
226 const_reference operator[]( size_type pos )
const;
246 String& append(
String const &s, size_type s_pos, size_type s_n );
254 String& append( std::string
const &s );
264 String& append( std::string
const &s, size_type s_pos, size_type s_n );
272 String& append( const_pointer s );
281 String& append( const_pointer s, size_type s_n );
290 String& append( size_type n, value_type c );
297 void push_back( value_type c );
316 return append( s.data(), s.size() );
336 return append( 1, c );
355 String& assign( std::string
const &s );
365 String& assign(
String const &s, size_type pos, size_type n );
375 String& assign( std::string
const &s, size_type pos, size_type n );
383 String& assign( const_pointer s );
392 String& assign( const_pointer s, size_type n );
401 String& assign( size_type n, value_type c );
409 String& assign( const_iterator i, const_iterator j );
421 int compare(
String const &s )
const;
431 int compare( std::string
const &s )
const;
441 int compare( const_pointer s )
const;
453 int compare( size_type pos, size_type n,
String const &s )
const;
465 int compare( size_type pos, size_type n, std::string
const &s )
const;
477 int compare( size_type pos, size_type n, const_pointer s )
const;
491 int compare( size_type pos, size_type n,
String const &s, size_type s_pos,
492 size_type s_n )
const;
506 int compare( size_type pos, size_type n, std::string
const &s,
507 size_type s_pos, size_type s_n )
const;
520 int compare( size_type pos, size_type n, const_pointer s,
521 size_type s_n )
const;
538 String& erase( size_type pos = 0, size_type n = npos );
547 iterator erase( iterator i );
556 iterator erase( iterator i, iterator j );
567 size_type find(
String const &s, size_type pos = 0 )
const;
576 size_type find( std::string
const &s, size_type pos = 0 )
const;
585 size_type find( const_pointer s, size_type pos = 0 )
const;
595 size_type find( const_pointer s, size_type pos, size_type s_n )
const;
605 size_type find( value_type c, size_type pos = 0 )
const;
615 size_type find_first_of(
String const &s, size_type pos = 0 )
const;
625 size_type find_first_of( std::string
const &s, size_type pos = 0 )
const;
635 size_type find_first_of( const_pointer s, size_type pos = 0 )
const;
646 size_type find_first_of( const_pointer s, size_type pos,
647 size_type s_n )
const;
657 size_type find_first_of( value_type c, size_type pos = 0 )
const;
667 size_type find_first_not_of(
String const &s, size_type pos = 0 )
const;
677 size_type find_first_not_of( std::string
const &s, size_type pos = 0 )
const;
687 size_type find_first_not_of( const_pointer s, size_type pos = 0 )
const;
698 size_type find_first_not_of( const_pointer s, size_type pos,
699 size_type s_n )
const;
709 size_type find_first_not_of( value_type c, size_type pos = 0 )
const;
719 size_type find_last_of(
String const &s, size_type pos = npos )
const;
729 size_type find_last_of( std::string
const &s, size_type pos = npos )
const;
739 size_type find_last_of( const_pointer s, size_type pos = npos )
const;
750 size_type find_last_of( const_pointer s, size_type pos, size_type s_n )
const;
760 size_type find_last_of( value_type c, size_type pos = npos )
const;
770 size_type find_last_not_of(
String const &s, size_type pos = npos )
const;
780 size_type find_last_not_of( std::string
const &s, size_type pos = npos )
const;
790 size_type find_last_not_of( const_pointer s, size_type pos = npos )
const;
801 size_type find_last_not_of( const_pointer s, size_type pos,
802 size_type s_n )
const;
812 size_type find_last_not_of( value_type c, size_type pos = npos )
const;
822 size_type rfind(
String const &s, size_type pos = npos )
const;
832 size_type rfind( std::string
const &s, size_type pos = npos )
const;
842 size_type rfind( const_pointer s, size_type pos = npos )
const;
853 size_type rfind( const_pointer s, size_type pos, size_type s_n )
const;
863 size_type rfind( value_type c, size_type pos = npos )
const;
883 String& insert( size_type pos, std::string
const &s );
892 String& insert( size_type pos, const_pointer s );
904 String& insert( size_type pos,
String const &s, size_type s_pos,
917 String& insert( size_type pos, std::string
const &s, size_type s_pos,
929 String& insert( size_type pos, const_pointer s, size_type s_n );
939 String& insert( size_type pos, size_type n, value_type c );
949 iterator insert( iterator pos, value_type c );
959 void insert( iterator pos, size_type n, value_type c );
972 String& replace( size_type pos, size_type n,
String const &s );
983 String& replace( size_type pos, size_type n, std::string
const &s );
994 String& replace( size_type pos, size_type n, const_pointer s );
1007 String& replace( size_type pos, size_type n,
String const &s,
1008 size_type s_pos, size_type s_n );
1021 String& replace( size_type pos, size_type n, std::string
const &s,
1022 size_type s_pos, size_type s_n );
1034 String& replace( size_type pos, size_type n, const_pointer s, size_type s_n );
1046 String& replace( size_type pos, size_type n, size_type c_n, value_type c );
1057 String& replace( iterator i, iterator j,
String const &s );
1068 String& replace( iterator i, iterator j, std::string
const &s );
1079 String& replace( iterator i, iterator j, const_pointer s );
1091 String& replace( iterator i, iterator j, const_pointer s, size_type s_n );
1103 String& replace( iterator i, iterator j, size_type n, value_type c );
1115 String& replace( iterator i, iterator j, iterator
si, iterator sj );
1133 const_iterator begin()
const;
1149 const_iterator end()
const;
1157 reverse_iterator rbegin();
1165 const_reverse_iterator rbegin()
const;
1173 reverse_iterator rend();
1181 const_reverse_iterator rend()
const;
1196 size_type copy( pointer buf, size_type n, size_type pos = 0 )
const;
1205 const_pointer
c_str()
const;
1214 const_pointer data()
const;
1222 void reserve( size_type n );
1233 void resize( size_type n, value_type c = value_type() );
1244 std::string str()
const;
1255 String substr( size_type pos = 0, size_type n = npos )
const;
1272 struct string_storage_type {
1281 #ifdef ZORBA_DEBUG_STRING
1286 string_storage_type string_storage_;
1289 struct zstring_ptr {
void const *ptr; };
1291 String( zstring_ptr );
1292 String& operator=( zstring_ptr );
1294 static void size_check();
1296 friend ZORBA_DLL_PUBLIC
bool operator==( String
const&, String
const& );
1297 friend ZORBA_DLL_PUBLIC
bool operator==( String
const&, std::string
const& );
1298 friend ZORBA_DLL_PUBLIC
bool operator==( String
const&, const_pointer );
1300 friend ZORBA_DLL_PUBLIC
bool operator<( String
const&, String
const& );
1301 friend ZORBA_DLL_PUBLIC
bool operator<( String
const&, std::string
const& );
1302 friend ZORBA_DLL_PUBLIC
bool operator<( String
const&, const_pointer );
1303 friend ZORBA_DLL_PUBLIC
bool operator<( std::string
const&, String
const& );
1304 friend ZORBA_DLL_PUBLIC
bool operator<( const_pointer, String
const& );
1306 friend ZORBA_DLL_PUBLIC
bool operator<=( String
const&, String
const& );
1307 friend ZORBA_DLL_PUBLIC
bool operator<=( String
const&, std::string
const& );
1308 friend ZORBA_DLL_PUBLIC
bool operator<=( String
const&, const_pointer );
1309 friend ZORBA_DLL_PUBLIC
bool operator<=( std::string
const&, String
const& );
1310 friend ZORBA_DLL_PUBLIC
bool operator<=( const_pointer, String
const& );
1312 friend ZORBA_DLL_PUBLIC String
operator+( String
const&, String
const& );
1313 friend ZORBA_DLL_PUBLIC String
operator+( String
const&, std::string
const& );
1314 friend ZORBA_DLL_PUBLIC String
operator+( String
const&, const_pointer );
1315 friend ZORBA_DLL_PUBLIC String
operator+( std::string
const&, String
const& );
1316 friend ZORBA_DLL_PUBLIC String
operator+( const_pointer, String
const& );
1318 friend ZORBA_DLL_PUBLIC
1319 std::ostream&
operator<<( std::ostream&, String
const& );
1321 friend class Unmarshaller;
1327 ZORBA_DLL_PUBLIC
bool operator==(
String const &s1, std::string
const &s2 );
1331 ZORBA_DLL_PUBLIC
bool operator<(
String const &s1, std::string
const &s2 );
1333 ZORBA_DLL_PUBLIC
bool operator<( std::string
const &s1,
String const &s2 );
1337 ZORBA_DLL_PUBLIC
bool operator<=(
String const &s1, std::string
const &s2 );
1339 ZORBA_DLL_PUBLIC
bool operator<=( std::string
const &s1,
String const &s2 );
1412 ZORBA_DLL_PUBLIC String
operator+( String
const &s1, String
const &s2 );
1413 ZORBA_DLL_PUBLIC String
operator+( String
const &s1, std::string
const &s2 );
1415 ZORBA_DLL_PUBLIC String
operator+( std::string
const &s1, String
const &s2 );
1420 ZORBA_DLL_PUBLIC std::ostream&
operator<<( std::ostream &o, String
const &s );