Changeset 36 for pjproject/main/pjlib/include/pj++/string.hpp
- Timestamp:
- Nov 9, 2005 3:37:19 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/main/pjlib/include/pj++/string.hpp
r29 r36 1 1 /* $Id$ 2 *3 2 */ 4 3 #ifndef __PJPP_STRING_H__ … … 7 6 #include <pj/string.h> 8 7 #include <pj++/pool.hpp> 9 10 class PJ_String : public pj_str_t 8 #include <pj/assert.h> 9 10 // 11 // String wrapper class for pj_str_t. 12 // 13 class Pj_String : public pj_str_t 11 14 { 12 15 public: 13 PJ_String() 16 // 17 // Default constructor. 18 // 19 Pj_String() 14 20 { 15 pj_assert(sizeof(PJ_String) == sizeof(pj_str_t)); 16 ptr=NULL; slen=0; 17 } 18 19 explicit PJ_String(char *str) 21 pj_assert(sizeof(Pj_String) == sizeof(pj_str_t)); 22 ptr=NULL; 23 slen=0; 24 } 25 26 // 27 // Construct the buffer from a char*. 28 // 29 explicit Pj_String(char *str) 20 30 { 21 31 set(str); 22 32 } 23 33 24 PJ_String(PJ_Pool *pool, const char *src) 34 // 35 // Construct from a const char*. 36 // 37 Pj_String(Pj_Pool *pool, const char *src) 25 38 { 26 39 set(pool, src); 27 40 } 28 41 29 explicit PJ_String(pj_str_t *s) 42 // 43 // Construct from pj_str_t*. 44 // 45 explicit Pj_String(pj_str_t *s) 30 46 { 31 47 set(s); 32 48 } 33 49 34 PJ_String(PJ_Pool *pool, const pj_str_t *s) 50 // 51 // Construct by copying from const pj_str_t*. 52 // 53 Pj_String(Pj_Pool *pool, const pj_str_t *s) 35 54 { 36 55 set(pool, s); 37 56 } 38 57 39 explicit PJ_String(PJ_String &rhs) 58 // 59 // Construct from another Pj_String 60 // 61 explicit Pj_String(Pj_String &rhs) 40 62 { 41 63 set(rhs); 42 64 } 43 65 44 PJ_String(PJ_Pool *pool, const PJ_String &rhs) 66 // 67 // Construct by copying from Pj_String 68 // 69 Pj_String(Pj_Pool *pool, const Pj_String &rhs) 45 70 { 46 71 set(pool, rhs); 47 72 } 48 73 49 PJ_String(char *str, pj_size_t len) 74 // 75 // Construct from a char* and a length. 76 // 77 Pj_String(char *str, pj_size_t len) 50 78 { 51 79 set(str, len); 52 80 } 53 81 54 PJ_String(char *begin, char *end) 82 // 83 // Construct from pair of pointer. 84 // 85 Pj_String(char *begin, char *end) 55 86 { 56 87 pj_strset3(this, begin, end); 57 88 } 58 89 90 // 91 // Get the length of the string. 92 // 59 93 pj_size_t length() const 60 94 { … … 62 96 } 63 97 98 // 99 // Get the length of the string. 100 // 64 101 pj_size_t size() const 65 102 { … … 67 104 } 68 105 106 // 107 // Get the string buffer. 108 // 69 109 const char *buf() const 70 110 { … … 72 112 } 73 113 114 // 115 // Initialize buffer from char*. 116 // 74 117 void set(char *str) 75 118 { … … 77 120 } 78 121 79 void set(PJ_Pool *pool, const char *s) 122 // 123 // Initialize by copying from a const char*. 124 // 125 void set(Pj_Pool *pool, const char *s) 80 126 { 81 127 pj_strdup2(pool->pool_(), this, s); 82 128 } 83 129 130 // 131 // Initialize from pj_str_t*. 132 // 84 133 void set(pj_str_t *s) 85 134 { … … 87 136 } 88 137 89 void set(PJ_Pool *pool, const pj_str_t *s) 138 // 139 // Initialize by copying from const pj_str_t*. 140 // 141 void set(Pj_Pool *pool, const pj_str_t *s) 90 142 { 91 143 pj_strdup(pool->pool_(), this, s); 92 144 } 93 145 146 // 147 // Initialize from char* and length. 148 // 94 149 void set(char *str, pj_size_t len) 95 150 { … … 97 152 } 98 153 154 // 155 // Initialize from pair of pointers. 156 // 99 157 void set(char *begin, char *end) 100 158 { … … 102 160 } 103 161 104 void set(PJ_String &rhs) 162 // 163 // Initialize from other Pj_String. 164 // 165 void set(Pj_String &rhs) 105 166 { 106 167 pj_strassign(this, &rhs); 107 168 } 108 169 109 void set(PJ_Pool *pool, const PJ_String *s) 170 // 171 // Initialize by copying from a Pj_String*. 172 // 173 void set(Pj_Pool *pool, const Pj_String *s) 110 174 { 111 175 pj_strdup(pool->pool_(), this, s); 112 176 } 113 177 114 void set(PJ_Pool *pool, const PJ_String &s) 178 // 179 // Initialize by copying from other Pj_String. 180 // 181 void set(Pj_Pool *pool, const Pj_String &s) 115 182 { 116 183 pj_strdup(pool->pool_(), this, &s); 117 184 } 118 185 186 // 187 // Copy the contents of other string. 188 // 119 189 void strcpy(const pj_str_t *s) 120 190 { … … 122 192 } 123 193 124 void strcpy(const PJ_String &rhs) 194 // 195 // Copy the contents of other string. 196 // 197 void strcpy(const Pj_String &rhs) 125 198 { 126 199 pj_strcpy(this, &rhs); 127 200 } 128 201 202 // 203 // Copy the contents of other string. 204 // 129 205 void strcpy(const char *s) 130 206 { … … 132 208 } 133 209 210 // 211 // Compare string. 212 // 134 213 int strcmp(const char *s) const 135 214 { … … 137 216 } 138 217 218 // 219 // Compare string. 220 // 139 221 int strcmp(const pj_str_t *s) const 140 222 { … … 142 224 } 143 225 144 int strcmp(const PJ_String &rhs) const 226 // 227 // Compare string. 228 // 229 int strcmp(const Pj_String &rhs) const 145 230 { 146 231 return pj_strcmp(this, &rhs); 147 232 } 148 233 234 // 235 // Compare string. 236 // 149 237 int strncmp(const char *s, pj_size_t len) const 150 238 { … … 152 240 } 153 241 242 // 243 // Compare string. 244 // 154 245 int strncmp(const pj_str_t *s, pj_size_t len) const 155 246 { … … 157 248 } 158 249 159 int strncmp(const PJ_String &rhs, pj_size_t len) const 250 // 251 // Compare string. 252 // 253 int strncmp(const Pj_String &rhs, pj_size_t len) const 160 254 { 161 255 return pj_strncmp(this, &rhs, len); 162 256 } 163 257 258 // 259 // Compare string. 260 // 164 261 int stricmp(const char *s) const 165 262 { … … 167 264 } 168 265 266 // 267 // Compare string. 268 // 169 269 int stricmp(const pj_str_t *s) const 170 270 { … … 172 272 } 173 273 174 int stricmp(const PJ_String &rhs) const 274 // 275 // Compare string. 276 // 277 int stricmp(const Pj_String &rhs) const 175 278 { 176 279 return stricmp(&rhs); 177 280 } 178 281 282 // 283 // Compare string. 284 // 179 285 int strnicmp(const char *s, pj_size_t len) const 180 286 { … … 182 288 } 183 289 290 // 291 // Compare string. 292 // 184 293 int strnicmp(const pj_str_t *s, pj_size_t len) const 185 294 { … … 187 296 } 188 297 189 int strnicmp(const PJ_String &rhs, pj_size_t len) const 298 // 299 // Compare string. 300 // 301 int strnicmp(const Pj_String &rhs, pj_size_t len) const 190 302 { 191 303 return strnicmp(&rhs, len); 192 304 } 193 305 306 // 307 // Compare contents for equality. 308 // 194 309 bool operator==(const char *s) const 195 310 { … … 197 312 } 198 313 314 // 315 // Compare contents for equality. 316 // 199 317 bool operator==(const pj_str_t *s) const 200 318 { … … 202 320 } 203 321 204 bool operator==(const PJ_String &rhs) const 322 // 323 // Compare contents for equality. 324 // 325 bool operator==(const Pj_String &rhs) const 205 326 { 206 327 return pj_strcmp(this, &rhs) == 0; 207 328 } 208 329 330 // 331 // Find a character in the string. 332 // 209 333 char *strchr(int chr) 210 334 { … … 212 336 } 213 337 338 // 339 // Find a character in the string. 340 // 214 341 char *find(int chr) 215 342 { … … 217 344 } 218 345 219 void strcat(const PJ_String &rhs) 346 // 347 // Concatenate string. 348 // 349 void strcat(const Pj_String &rhs) 220 350 { 221 351 pj_strcat(this, &rhs); 222 352 } 223 353 354 // 355 // Left trim. 356 // 224 357 void ltrim() 225 358 { … … 227 360 } 228 361 362 // 363 // Right trim. 364 // 229 365 void rtrim() 230 366 { … … 232 368 } 233 369 370 // 371 // Left and right trim. 372 // 234 373 void trim() 235 374 { … … 237 376 } 238 377 239 unsigned long toul() const 378 // 379 // Convert to unsigned long. 380 // 381 unsigned long to_ulong() const 240 382 { 241 383 return pj_strtoul(this); 242 384 } 243 385 386 // 387 // Convert from unsigned long. 388 // 389 void from_ulong(unsigned long value) 390 { 391 slen = pj_utoa(value, ptr); 392 } 393 394 // 395 // Convert from unsigned long with padding. 396 // 397 void from_ulong_with_pad(unsigned long value, int min_dig=0, int pad=' ') 398 { 399 slen = pj_utoa_pad(value, ptr, min_dig, pad); 400 } 401 402 244 403 private: 245 //P J_String(const PJ_String &rhs) {}246 void operator=(const P J_String &rhs) { pj_assert(false); }404 //Pj_String(const Pj_String &rhs) {} 405 void operator=(const Pj_String &rhs) { pj_assert(false); } 247 406 }; 248 407
Note: See TracChangeset
for help on using the changeset viewer.