diff options
author | Mike Buland <mbuland@penny-arcade.com> | 2023-04-24 09:16:32 -0700 |
---|---|---|
committer | Mike Buland <mbuland@penny-arcade.com> | 2023-04-24 09:16:32 -0700 |
commit | e1115a28535663cfe404791ede5bb7ca70399053 (patch) | |
tree | b9d273abd126e410fb59d39d9c99072149a14c5c /src | |
parent | 44409ec7257cb20ff091079eb55dc7a8d4049cf9 (diff) | |
download | libbu++-e1115a28535663cfe404791ede5bb7ca70399053.tar.gz libbu++-e1115a28535663cfe404791ede5bb7ca70399053.tar.bz2 libbu++-e1115a28535663cfe404791ede5bb7ca70399053.tar.xz libbu++-e1115a28535663cfe404791ede5bb7ca70399053.zip |
Additions to blob/utfstring for json.
Diffstat (limited to 'src')
-rw-r--r-- | src/unstable/blob.cpp | 47 | ||||
-rw-r--r-- | src/unstable/blob.h | 10 | ||||
-rw-r--r-- | src/unstable/settingsdrivertaf.cpp | 6 | ||||
-rw-r--r-- | src/unstable/utfstring.cpp | 55 | ||||
-rw-r--r-- | src/unstable/utfstring.h | 29 |
5 files changed, 107 insertions, 40 deletions
diff --git a/src/unstable/blob.cpp b/src/unstable/blob.cpp index e72e265..23987f3 100644 --- a/src/unstable/blob.cpp +++ b/src/unstable/blob.cpp | |||
@@ -499,6 +499,26 @@ Bu::Blob::iterator &Bu::Blob::iterator::operator--() | |||
499 | return *this; | 499 | return *this; |
500 | } | 500 | } |
501 | 501 | ||
502 | Bu::Blob::iterator &Bu::Blob::iterator::operator+=( int32_t iDelta ) | ||
503 | { | ||
504 | if( bForward ) | ||
505 | iIndex += iDelta; | ||
506 | else | ||
507 | iIndex -= iDelta; | ||
508 | |||
509 | return *this; | ||
510 | } | ||
511 | |||
512 | Bu::Blob::iterator &Bu::Blob::iterator::operator-=( int32_t iDelta ) | ||
513 | { | ||
514 | if( bForward ) | ||
515 | iIndex -= iDelta; | ||
516 | else | ||
517 | iIndex += iDelta; | ||
518 | |||
519 | return *this; | ||
520 | } | ||
521 | |||
502 | Bu::Blob::iterator Bu::Blob::iterator::operator+( int32_t iDelta ) const | 522 | Bu::Blob::iterator Bu::Blob::iterator::operator+( int32_t iDelta ) const |
503 | { | 523 | { |
504 | return iterator( pBlob, iIndex + iDelta, bForward ); | 524 | return iterator( pBlob, iIndex + iDelta, bForward ); |
@@ -541,7 +561,8 @@ bool Bu::Blob::iterator::operator!=( const Bu::Blob::const_iterator &rRhs ) | |||
541 | return pBlob != rRhs.pBlob || iIndex != rRhs.iIndex; | 561 | return pBlob != rRhs.pBlob || iIndex != rRhs.iIndex; |
542 | } | 562 | } |
543 | 563 | ||
544 | Bu::Blob::iterator &Bu::Blob::iterator::operator=( Bu::Blob::iterator &rRhs ) | 564 | Bu::Blob::iterator &Bu::Blob::iterator::operator=( |
565 | const Bu::Blob::iterator &rRhs ) | ||
545 | { | 566 | { |
546 | pBlob = rRhs.pBlob; | 567 | pBlob = rRhs.pBlob; |
547 | iIndex = rRhs.iIndex; | 568 | iIndex = rRhs.iIndex; |
@@ -651,6 +672,26 @@ Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator--() | |||
651 | return *this; | 672 | return *this; |
652 | } | 673 | } |
653 | 674 | ||
675 | Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator+=( int32_t iDelta ) | ||
676 | { | ||
677 | if( bForward ) | ||
678 | iIndex += iDelta; | ||
679 | else | ||
680 | iIndex -= iDelta; | ||
681 | |||
682 | return *this; | ||
683 | } | ||
684 | |||
685 | Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator-=( int32_t iDelta ) | ||
686 | { | ||
687 | if( bForward ) | ||
688 | iIndex -= iDelta; | ||
689 | else | ||
690 | iIndex += iDelta; | ||
691 | |||
692 | return *this; | ||
693 | } | ||
694 | |||
654 | Bu::Blob::const_iterator Bu::Blob::const_iterator::operator+( int32_t iDelta ) | 695 | Bu::Blob::const_iterator Bu::Blob::const_iterator::operator+( int32_t iDelta ) |
655 | const | 696 | const |
656 | { | 697 | { |
@@ -698,7 +739,7 @@ bool Bu::Blob::const_iterator::operator!=( | |||
698 | } | 739 | } |
699 | 740 | ||
700 | Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator=( | 741 | Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator=( |
701 | Bu::Blob::iterator &rRhs ) | 742 | const Bu::Blob::iterator &rRhs ) |
702 | { | 743 | { |
703 | pBlob = rRhs.pBlob; | 744 | pBlob = rRhs.pBlob; |
704 | iIndex = rRhs.iIndex; | 745 | iIndex = rRhs.iIndex; |
@@ -708,7 +749,7 @@ Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator=( | |||
708 | } | 749 | } |
709 | 750 | ||
710 | Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator=( | 751 | Bu::Blob::const_iterator &Bu::Blob::const_iterator::operator=( |
711 | Bu::Blob::const_iterator &rRhs ) | 752 | const Bu::Blob::const_iterator &rRhs ) |
712 | { | 753 | { |
713 | pBlob = rRhs.pBlob; | 754 | pBlob = rRhs.pBlob; |
714 | iIndex = rRhs.iIndex; | 755 | iIndex = rRhs.iIndex; |
diff --git a/src/unstable/blob.h b/src/unstable/blob.h index d6c40e3..bda29d6 100644 --- a/src/unstable/blob.h +++ b/src/unstable/blob.h | |||
@@ -100,6 +100,8 @@ namespace Bu | |||
100 | iterator &operator++(); | 100 | iterator &operator++(); |
101 | iterator &operator--( int32_t ); | 101 | iterator &operator--( int32_t ); |
102 | iterator &operator--(); | 102 | iterator &operator--(); |
103 | iterator &operator+=( int32_t iDelta ); | ||
104 | iterator &operator-=( int32_t iDelta ); | ||
103 | iterator operator+( int32_t iDelta ) const; | 105 | iterator operator+( int32_t iDelta ) const; |
104 | iterator operator-( int32_t iDelta ) const; | 106 | iterator operator-( int32_t iDelta ) const; |
105 | bool operator==( const iterator &rRhs ); | 107 | bool operator==( const iterator &rRhs ); |
@@ -107,7 +109,7 @@ namespace Bu | |||
107 | bool operator!=( const iterator &rRhs ); | 109 | bool operator!=( const iterator &rRhs ); |
108 | bool operator!=( const const_iterator &rRhs ); | 110 | bool operator!=( const const_iterator &rRhs ); |
109 | 111 | ||
110 | iterator &operator=( iterator &rRhs ); | 112 | iterator &operator=( const iterator &rRhs ); |
111 | 113 | ||
112 | private: | 114 | private: |
113 | Blob *pBlob; | 115 | Blob *pBlob; |
@@ -136,6 +138,8 @@ namespace Bu | |||
136 | const_iterator &operator++(); | 138 | const_iterator &operator++(); |
137 | const_iterator &operator--( int32_t ); | 139 | const_iterator &operator--( int32_t ); |
138 | const_iterator &operator--(); | 140 | const_iterator &operator--(); |
141 | const_iterator &operator+=( int32_t iDelta ); | ||
142 | const_iterator &operator-=( int32_t iDelta ); | ||
139 | const_iterator operator+( int32_t iDelta ) const; | 143 | const_iterator operator+( int32_t iDelta ) const; |
140 | const_iterator operator-( int32_t iDelta ) const; | 144 | const_iterator operator-( int32_t iDelta ) const; |
141 | bool operator==( const iterator &rRhs ); | 145 | bool operator==( const iterator &rRhs ); |
@@ -143,8 +147,8 @@ namespace Bu | |||
143 | bool operator!=( const iterator &rRhs ); | 147 | bool operator!=( const iterator &rRhs ); |
144 | bool operator!=( const const_iterator &rRhs ); | 148 | bool operator!=( const const_iterator &rRhs ); |
145 | 149 | ||
146 | const_iterator &operator=( iterator &rRhs ); | 150 | const_iterator &operator=( const iterator &rRhs ); |
147 | const_iterator &operator=( const_iterator &rRhs ); | 151 | const_iterator &operator=( const const_iterator &rRhs ); |
148 | 152 | ||
149 | private: | 153 | private: |
150 | const Blob *pBlob; | 154 | const Blob *pBlob; |
diff --git a/src/unstable/settingsdrivertaf.cpp b/src/unstable/settingsdrivertaf.cpp index 3fd61b3..d99d0ba 100644 --- a/src/unstable/settingsdrivertaf.cpp +++ b/src/unstable/settingsdrivertaf.cpp | |||
@@ -48,7 +48,7 @@ void Bu::SettingsDriverTaf::init( const Bu::UtfString &sCompany, | |||
48 | void Bu::SettingsDriverTaf::set( const Bu::UtfString &sKey, | 48 | void Bu::SettingsDriverTaf::set( const Bu::UtfString &sKey, |
49 | const Bu::UtfString &sValue ) | 49 | const Bu::UtfString &sValue ) |
50 | { | 50 | { |
51 | Bu::StringList lPath = sKey.get().split('/'); | 51 | Bu::StringList lPath = Bu::String(sKey.get()).split('/'); |
52 | Bu::StringList::iterator i = lPath.begin(); | 52 | Bu::StringList::iterator i = lPath.begin(); |
53 | Bu::StringList::iterator in; | 53 | Bu::StringList::iterator in; |
54 | Bu::TafGroup *pGrp = pRoot; | 54 | Bu::TafGroup *pGrp = pRoot; |
@@ -74,7 +74,7 @@ void Bu::SettingsDriverTaf::set( const Bu::UtfString &sKey, | |||
74 | Bu::UtfString Bu::SettingsDriverTaf::get( const Bu::UtfString &sKey, | 74 | Bu::UtfString Bu::SettingsDriverTaf::get( const Bu::UtfString &sKey, |
75 | const Bu::UtfString &sValue ) | 75 | const Bu::UtfString &sValue ) |
76 | { | 76 | { |
77 | Bu::StringList lPath = sKey.get().split('/'); | 77 | Bu::StringList lPath = Bu::String(sKey.get()).split('/'); |
78 | Bu::StringList::iterator i = lPath.begin(); | 78 | Bu::StringList::iterator i = lPath.begin(); |
79 | Bu::StringList::iterator in; | 79 | Bu::StringList::iterator in; |
80 | Bu::TafGroup *pGrp = pRoot; | 80 | Bu::TafGroup *pGrp = pRoot; |
@@ -98,5 +98,7 @@ Bu::UtfString Bu::SettingsDriverTaf::get( const Bu::UtfString &sKey, | |||
98 | } | 98 | } |
99 | i = in; | 99 | i = in; |
100 | } | 100 | } |
101 | |||
102 | return Bu::UtfString(); | ||
101 | } | 103 | } |
102 | 104 | ||
diff --git a/src/unstable/utfstring.cpp b/src/unstable/utfstring.cpp index 21b3f82..6217f80 100644 --- a/src/unstable/utfstring.cpp +++ b/src/unstable/utfstring.cpp | |||
@@ -8,6 +8,7 @@ | |||
8 | #include "bu/utfstring.h" | 8 | #include "bu/utfstring.h" |
9 | 9 | ||
10 | #include "bu/string.h" | 10 | #include "bu/string.h" |
11 | #include "bu/blob.h" | ||
11 | #include "bu/stream.h" | 12 | #include "bu/stream.h" |
12 | #include "bu/config.h" | 13 | #include "bu/config.h" |
13 | #include "bu/sio.h" | 14 | #include "bu/sio.h" |
@@ -36,11 +37,16 @@ Bu::UtfString::UtfString( const Bu::String &sInput, Encoding eEnc ) | |||
36 | set( sInput, eEnc ); | 37 | set( sInput, eEnc ); |
37 | } | 38 | } |
38 | 39 | ||
39 | Bu::UtfString::UtfString( const char *sInput, Encoding eEnc ) | 40 | Bu::UtfString::UtfString( const Bu::Blob &sInput, Encoding eEnc ) |
40 | { | 41 | { |
41 | set( sInput, eEnc ); | 42 | set( sInput, eEnc ); |
42 | } | 43 | } |
43 | 44 | ||
45 | Bu::UtfString::UtfString( const char *sInput, Encoding eEnc ) | ||
46 | { | ||
47 | set( Bu::Blob(sInput), eEnc ); | ||
48 | } | ||
49 | |||
44 | Bu::UtfString::~UtfString() | 50 | Bu::UtfString::~UtfString() |
45 | { | 51 | { |
46 | } | 52 | } |
@@ -57,6 +63,11 @@ Bu::UtfString::const_iterator Bu::UtfString::begin() const | |||
57 | 63 | ||
58 | void Bu::UtfString::set( const Bu::String &sInput, Encoding eEnc ) | 64 | void Bu::UtfString::set( const Bu::String &sInput, Encoding eEnc ) |
59 | { | 65 | { |
66 | set( sInput, eEnc ); | ||
67 | } | ||
68 | |||
69 | void Bu::UtfString::set( const Bu::Blob &sInput, Encoding eEnc ) | ||
70 | { | ||
60 | switch( eEnc ) | 71 | switch( eEnc ) |
61 | { | 72 | { |
62 | case Utf8: | 73 | case Utf8: |
@@ -122,9 +133,9 @@ void Bu::UtfString::append( const UtfString &rSrc ) | |||
122 | iCharLen += rSrc.iCharLen; | 133 | iCharLen += rSrc.iCharLen; |
123 | } | 134 | } |
124 | 135 | ||
125 | void Bu::UtfString::setUtf8( const Bu::String &sInput ) | 136 | void Bu::UtfString::setUtf8( const Bu::Blob &sInput ) |
126 | { | 137 | { |
127 | for( Bu::String::const_iterator i = sInput.begin(); i; i++ ) | 138 | for( Bu::Blob::const_iterator i = sInput.begin(); i; i++ ) |
128 | { | 139 | { |
129 | if( ((int)(uint8_t)*i)&0x80 ) | 140 | if( ((int)(uint8_t)*i)&0x80 ) |
130 | { | 141 | { |
@@ -145,9 +156,9 @@ void Bu::UtfString::setUtf8( const Bu::String &sInput ) | |||
145 | } | 156 | } |
146 | } | 157 | } |
147 | 158 | ||
148 | void Bu::UtfString::setUtf16( const Bu::String &sInput ) | 159 | void Bu::UtfString::setUtf16( const Bu::Blob &sInput ) |
149 | { | 160 | { |
150 | // Bu::String::const_iterator i = sInput.begin(); | 161 | // Bu::Blob::const_iterator i = sInput.begin(); |
151 | if( (uint8_t)*sInput.begin() == 0xFF && | 162 | if( (uint8_t)*sInput.begin() == 0xFF && |
152 | (uint8_t)*(sInput.begin()+1) == 0xFE ) | 163 | (uint8_t)*(sInput.begin()+1) == 0xFE ) |
153 | { | 164 | { |
@@ -157,9 +168,9 @@ void Bu::UtfString::setUtf16( const Bu::String &sInput ) | |||
157 | setUtf16be( sInput ); | 168 | setUtf16be( sInput ); |
158 | } | 169 | } |
159 | 170 | ||
160 | void Bu::UtfString::setUtf16be( const Bu::String &sInput ) | 171 | void Bu::UtfString::setUtf16be( const Bu::Blob &sInput ) |
161 | { | 172 | { |
162 | Bu::String::const_iterator i = sInput.begin(); | 173 | Bu::Blob::const_iterator i = sInput.begin(); |
163 | if( (uint8_t)*sInput.begin() == 0xFE && | 174 | if( (uint8_t)*sInput.begin() == 0xFE && |
164 | (uint8_t)*(sInput.begin()+1) == 0xFF ) | 175 | (uint8_t)*(sInput.begin()+1) == 0xFF ) |
165 | 176 | ||
@@ -184,9 +195,9 @@ void Bu::UtfString::setUtf16be( const Bu::String &sInput ) | |||
184 | } | 195 | } |
185 | } | 196 | } |
186 | 197 | ||
187 | void Bu::UtfString::setUtf16le( const Bu::String &sInput ) | 198 | void Bu::UtfString::setUtf16le( const Bu::Blob &sInput ) |
188 | { | 199 | { |
189 | Bu::String::const_iterator i = sInput.begin(); | 200 | Bu::Blob::const_iterator i = sInput.begin(); |
190 | if( (uint8_t)*sInput.begin() == 0xFF && | 201 | if( (uint8_t)*sInput.begin() == 0xFF && |
191 | (uint8_t)*(sInput.begin()+1) == 0xFE ) | 202 | (uint8_t)*(sInput.begin()+1) == 0xFE ) |
192 | { | 203 | { |
@@ -210,9 +221,9 @@ void Bu::UtfString::setUtf16le( const Bu::String &sInput ) | |||
210 | } | 221 | } |
211 | } | 222 | } |
212 | 223 | ||
213 | void Bu::UtfString::setUtf32( const Bu::String &sInput ) | 224 | void Bu::UtfString::setUtf32( const Bu::Blob &sInput ) |
214 | { | 225 | { |
215 | Bu::String::const_iterator i = sInput.begin(); | 226 | Bu::Blob::const_iterator i = sInput.begin(); |
216 | if( (uint8_t)*i == 0x00 && | 227 | if( (uint8_t)*i == 0x00 && |
217 | (uint8_t)*(++i) == 0x00 && | 228 | (uint8_t)*(++i) == 0x00 && |
218 | (uint8_t)*(++i) == 0xFF && | 229 | (uint8_t)*(++i) == 0xFF && |
@@ -224,9 +235,9 @@ void Bu::UtfString::setUtf32( const Bu::String &sInput ) | |||
224 | setUtf32be( sInput ); | 235 | setUtf32be( sInput ); |
225 | } | 236 | } |
226 | 237 | ||
227 | void Bu::UtfString::setUtf32be( const Bu::String &sInput ) | 238 | void Bu::UtfString::setUtf32be( const Bu::Blob &sInput ) |
228 | { | 239 | { |
229 | Bu::String::const_iterator i = sInput.begin(); | 240 | Bu::Blob::const_iterator i = sInput.begin(); |
230 | if( (uint8_t)*i == 0x00 && | 241 | if( (uint8_t)*i == 0x00 && |
231 | (uint8_t)*(++i) == 0x00 && | 242 | (uint8_t)*(++i) == 0x00 && |
232 | (uint8_t)*(++i) == 0xFE && | 243 | (uint8_t)*(++i) == 0xFE && |
@@ -250,9 +261,9 @@ void Bu::UtfString::setUtf32be( const Bu::String &sInput ) | |||
250 | } | 261 | } |
251 | } | 262 | } |
252 | 263 | ||
253 | void Bu::UtfString::setUtf32le( const Bu::String &sInput ) | 264 | void Bu::UtfString::setUtf32le( const Bu::Blob &sInput ) |
254 | { | 265 | { |
255 | Bu::String::const_iterator i = sInput.begin(); | 266 | Bu::Blob::const_iterator i = sInput.begin(); |
256 | if( (uint8_t)*i == 0x00 && | 267 | if( (uint8_t)*i == 0x00 && |
257 | (uint8_t)*(++i) == 0x00 && | 268 | (uint8_t)*(++i) == 0x00 && |
258 | (uint8_t)*(++i) == 0xFF && | 269 | (uint8_t)*(++i) == 0xFF && |
@@ -443,12 +454,12 @@ int Bu::UtfString::writePoint( Bu::Stream &sOut, const Bu::UtfChar &c, | |||
443 | 454 | ||
444 | int32_t Bu::UtfString::toInt32( int iRadix ) const | 455 | int32_t Bu::UtfString::toInt32( int iRadix ) const |
445 | { | 456 | { |
446 | return strtol( get().getStr(), NULL, iRadix ); | 457 | return strtol( get().getData(), NULL, iRadix ); |
447 | } | 458 | } |
448 | 459 | ||
449 | int64_t Bu::UtfString::toInt64( int iRadix ) const | 460 | int64_t Bu::UtfString::toInt64( int iRadix ) const |
450 | { | 461 | { |
451 | return strtoll( get().getStr(), NULL, iRadix ); | 462 | return strtoll( get().getData(), NULL, iRadix ); |
452 | } | 463 | } |
453 | 464 | ||
454 | void Bu::UtfString::writeUtf8( Bu::Stream &sOut ) const | 465 | void Bu::UtfString::writeUtf8( Bu::Stream &sOut ) const |
@@ -626,7 +637,7 @@ bool Bu::UtfString::operator==( const Bu::UtfString &rhs ) const | |||
626 | return aData == rhs.aData; | 637 | return aData == rhs.aData; |
627 | } | 638 | } |
628 | 639 | ||
629 | bool Bu::UtfString::operator==( const Bu::String &rhs ) const | 640 | bool Bu::UtfString::operator==( const Bu::Blob &rhs ) const |
630 | { | 641 | { |
631 | // Nieve comparison | 642 | // Nieve comparison |
632 | if( aData.getSize() != rhs.getSize() ) | 643 | if( aData.getSize() != rhs.getSize() ) |
@@ -718,11 +729,11 @@ bool Bu::UtfString::operator>=( const Bu::UtfString &rhs ) const | |||
718 | return false; | 729 | return false; |
719 | } | 730 | } |
720 | 731 | ||
721 | Bu::String Bu::UtfString::get( Encoding eEnc ) const | 732 | Bu::Blob Bu::UtfString::get( Encoding eEnc ) const |
722 | { | 733 | { |
723 | Bu::MemBuf mb; | 734 | Bu::MemBuf mb; |
724 | write( mb, eEnc ); | 735 | write( mb, eEnc ); |
725 | return mb.getString(); | 736 | return Bu::Blob( mb.getString().getStr(), mb.getString().getSize() ); |
726 | } | 737 | } |
727 | 738 | ||
728 | void Bu::UtfString::debug() const | 739 | void Bu::UtfString::debug() const |
@@ -745,9 +756,9 @@ void Bu::UtfString::debug() const | |||
745 | sio << sio.nl; | 756 | sio << sio.nl; |
746 | } | 757 | } |
747 | /* | 758 | /* |
748 | void Bu::UtfString::debugUtf8( const Bu::String &sUtf8 ) | 759 | void Bu::UtfString::debugUtf8( const Bu::Blob &sUtf8 ) |
749 | { | 760 | { |
750 | for( Bu::String::const_iterator i = sUtf8.begin(); i; i++ ) | 761 | for( Bu::Blob::const_iterator i = sUtf8.begin(); i; i++ ) |
751 | { | 762 | { |
752 | if( i != sUtf8.begin() ) | 763 | if( i != sUtf8.begin() ) |
753 | sio << ", "; | 764 | sio << ", "; |
diff --git a/src/unstable/utfstring.h b/src/unstable/utfstring.h index 5a72948..3c64a75 100644 --- a/src/unstable/utfstring.h +++ b/src/unstable/utfstring.h | |||
@@ -72,6 +72,7 @@ namespace Bu | |||
72 | 72 | ||
73 | UtfString(); | 73 | UtfString(); |
74 | UtfString( const Bu::String &sInput, Encoding eEnc=Utf8 ); | 74 | UtfString( const Bu::String &sInput, Encoding eEnc=Utf8 ); |
75 | UtfString( const Bu::Blob &sInput, Encoding eEnc=Utf8 ); | ||
75 | UtfString( const char *sInput, Encoding eEnc=Utf8 ); | 76 | UtfString( const char *sInput, Encoding eEnc=Utf8 ); |
76 | virtual ~UtfString(); | 77 | virtual ~UtfString(); |
77 | 78 | ||
@@ -182,6 +183,14 @@ namespace Bu | |||
182 | * string literals in code. | 183 | * string literals in code. |
183 | */ | 184 | */ |
184 | void set( const Bu::String &sInput, Encoding eEnc=Utf8 ); | 185 | void set( const Bu::String &sInput, Encoding eEnc=Utf8 ); |
186 | |||
187 | /** | ||
188 | * Set the value of the entire string based on the given input and | ||
189 | * encoding. The default encoding is Utf8, which is compatible with | ||
190 | * 7-bit ascii, so it's a great choice for setting UtfStrings from | ||
191 | * string literals in code. | ||
192 | */ | ||
193 | void set( const Bu::Blob &bInput, Encoding eEnc=Utf8 ); | ||
185 | 194 | ||
186 | /** | 195 | /** |
187 | * This encodes the UtfString in the given encoding and outputs it to | 196 | * This encodes the UtfString in the given encoding and outputs it to |
@@ -204,10 +213,10 @@ namespace Bu | |||
204 | 213 | ||
205 | /** | 214 | /** |
206 | * This encodes the UtfString in the given encoding and returns it as | 215 | * This encodes the UtfString in the given encoding and returns it as |
207 | * a binary Bu::String. Like write, this also includes the proper BOM | 216 | * a binary Bu::Blob. Like write, this also includes the proper BOM |
208 | * at the begining. | 217 | * at the begining. |
209 | */ | 218 | */ |
210 | Bu::String get( Encoding eEnc=Utf8 ) const; | 219 | Bu::Blob get( Encoding eEnc=Utf8 ) const; |
211 | 220 | ||
212 | void debug() const; | 221 | void debug() const; |
213 | 222 | ||
@@ -228,7 +237,7 @@ namespace Bu | |||
228 | UtfChar nextChar( int &iIndex ) const; | 237 | UtfChar nextChar( int &iIndex ) const; |
229 | 238 | ||
230 | bool operator==( const Bu::UtfString &rhs ) const; | 239 | bool operator==( const Bu::UtfString &rhs ) const; |
231 | bool operator==( const Bu::String &rhs ) const; | 240 | bool operator==( const Bu::Blob &rhs ) const; |
232 | bool operator==( const char *rhs ) const; | 241 | bool operator==( const char *rhs ) const; |
233 | UtfString &operator+=( const Bu::UtfString &rhs ); | 242 | UtfString &operator+=( const Bu::UtfString &rhs ); |
234 | UtfString &operator+=( const UtfChar &rhs ); | 243 | UtfString &operator+=( const UtfChar &rhs ); |
@@ -241,13 +250,13 @@ namespace Bu | |||
241 | private: | 250 | private: |
242 | void append16( uint16_t i ) { aData.append( i ); } | 251 | void append16( uint16_t i ) { aData.append( i ); } |
243 | 252 | ||
244 | void setUtf8( const Bu::String &sInput ); | 253 | void setUtf8( const Bu::Blob &sInput ); |
245 | void setUtf16( const Bu::String &sInput ); | 254 | void setUtf16( const Bu::Blob &sInput ); |
246 | void setUtf16be( const Bu::String &sInput ); | 255 | void setUtf16be( const Bu::Blob &sInput ); |
247 | void setUtf16le( const Bu::String &sInput ); | 256 | void setUtf16le( const Bu::Blob &sInput ); |
248 | void setUtf32( const Bu::String &sInput ); | 257 | void setUtf32( const Bu::Blob &sInput ); |
249 | void setUtf32be( const Bu::String &sInput ); | 258 | void setUtf32be( const Bu::Blob &sInput ); |
250 | void setUtf32le( const Bu::String &sInput ); | 259 | void setUtf32le( const Bu::Blob &sInput ); |
251 | 260 | ||
252 | void writeUtf8( Bu::Stream &sOut ) const; | 261 | void writeUtf8( Bu::Stream &sOut ) const; |
253 | void writeUtf16be( Bu::Stream &sOut ) const; | 262 | void writeUtf16be( Bu::Stream &sOut ) const; |