Ignore:
Timestamp:
Nov 9, 2005 3:37:19 PM (19 years ago)
Author:
bennylp
Message:

Rework pjlib++

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/main/pjlib/include/pj++/string.hpp

    r29 r36  
    11/* $Id$ 
    2  * 
    32 */ 
    43#ifndef __PJPP_STRING_H__ 
     
    76#include <pj/string.h> 
    87#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// 
     13class Pj_String : public pj_str_t 
    1114{ 
    1215public: 
    13     PJ_String()  
     16    // 
     17    // Default constructor. 
     18    // 
     19    Pj_String()  
    1420    {  
    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)  
    2030    {  
    2131        set(str); 
    2232    } 
    2333 
    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) 
    2538    { 
    2639        set(pool, src); 
    2740    } 
    2841 
    29     explicit PJ_String(pj_str_t *s) 
     42    // 
     43    // Construct from pj_str_t*. 
     44    // 
     45    explicit Pj_String(pj_str_t *s) 
    3046    { 
    3147        set(s); 
    3248    } 
    3349 
    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) 
    3554    { 
    3655        set(pool, s); 
    3756    } 
    3857 
    39     explicit PJ_String(PJ_String &rhs) 
     58    // 
     59    // Construct from another Pj_String 
     60    // 
     61    explicit Pj_String(Pj_String &rhs) 
    4062    { 
    4163        set(rhs); 
    4264    } 
    4365 
    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) 
    4570    { 
    4671        set(pool, rhs); 
    4772    } 
    4873 
    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) 
    5078    { 
    5179        set(str, len); 
    5280    } 
    5381 
    54     PJ_String(char *begin, char *end) 
     82    // 
     83    // Construct from pair of pointer. 
     84    // 
     85    Pj_String(char *begin, char *end) 
    5586    { 
    5687        pj_strset3(this, begin, end); 
    5788    } 
    5889 
     90    // 
     91    // Get the length of the string. 
     92    // 
    5993    pj_size_t length() const 
    6094    { 
     
    6296    } 
    6397 
     98    // 
     99    // Get the length of the string. 
     100    // 
    64101    pj_size_t size() const 
    65102    { 
     
    67104    } 
    68105 
     106    // 
     107    // Get the string buffer. 
     108    // 
    69109    const char *buf() const 
    70110    { 
     
    72112    } 
    73113 
     114    // 
     115    // Initialize buffer from char*. 
     116    // 
    74117    void set(char *str) 
    75118    { 
     
    77120    } 
    78121 
    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) 
    80126    { 
    81127        pj_strdup2(pool->pool_(), this, s); 
    82128    } 
    83129 
     130    // 
     131    // Initialize from pj_str_t*. 
     132    // 
    84133    void set(pj_str_t *s) 
    85134    { 
     
    87136    } 
    88137 
    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) 
    90142    { 
    91143        pj_strdup(pool->pool_(), this, s); 
    92144    } 
    93145 
     146    // 
     147    // Initialize from char* and length. 
     148    // 
    94149    void set(char *str, pj_size_t len) 
    95150    { 
     
    97152    } 
    98153 
     154    // 
     155    // Initialize from pair of pointers. 
     156    // 
    99157    void set(char *begin, char *end) 
    100158    { 
     
    102160    } 
    103161 
    104     void set(PJ_String &rhs) 
     162    // 
     163    // Initialize from other Pj_String. 
     164    // 
     165    void set(Pj_String &rhs) 
    105166    { 
    106167        pj_strassign(this, &rhs); 
    107168    } 
    108169 
    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) 
    110174    { 
    111175        pj_strdup(pool->pool_(), this, s); 
    112176    } 
    113177 
    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) 
    115182    { 
    116183        pj_strdup(pool->pool_(), this, &s); 
    117184    } 
    118185 
     186    // 
     187    // Copy the contents of other string. 
     188    // 
    119189    void strcpy(const pj_str_t *s) 
    120190    { 
     
    122192    } 
    123193 
    124     void strcpy(const PJ_String &rhs) 
     194    // 
     195    // Copy the contents of other string. 
     196    // 
     197    void strcpy(const Pj_String &rhs) 
    125198    { 
    126199        pj_strcpy(this, &rhs); 
    127200    } 
    128201 
     202    // 
     203    // Copy the contents of other string. 
     204    // 
    129205    void strcpy(const char *s) 
    130206    { 
     
    132208    } 
    133209 
     210    // 
     211    // Compare string. 
     212    // 
    134213    int strcmp(const char *s) const 
    135214    { 
     
    137216    } 
    138217 
     218    // 
     219    // Compare string. 
     220    // 
    139221    int strcmp(const pj_str_t *s) const 
    140222    { 
     
    142224    } 
    143225 
    144     int strcmp(const PJ_String &rhs) const 
     226    // 
     227    // Compare string. 
     228    // 
     229    int strcmp(const Pj_String &rhs) const 
    145230    { 
    146231        return pj_strcmp(this, &rhs); 
    147232    } 
    148233 
     234    // 
     235    // Compare string. 
     236    // 
    149237    int strncmp(const char *s, pj_size_t len) const 
    150238    { 
     
    152240    } 
    153241 
     242    // 
     243    // Compare string. 
     244    // 
    154245    int strncmp(const pj_str_t *s, pj_size_t len) const 
    155246    { 
     
    157248    } 
    158249 
    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 
    160254    { 
    161255        return pj_strncmp(this, &rhs, len); 
    162256    } 
    163257 
     258    // 
     259    // Compare string. 
     260    // 
    164261    int stricmp(const char *s) const 
    165262    { 
     
    167264    } 
    168265 
     266    // 
     267    // Compare string. 
     268    // 
    169269    int stricmp(const pj_str_t *s) const 
    170270    { 
     
    172272    } 
    173273 
    174     int stricmp(const PJ_String &rhs) const 
     274    // 
     275    // Compare string. 
     276    // 
     277    int stricmp(const Pj_String &rhs) const 
    175278    { 
    176279        return stricmp(&rhs); 
    177280    } 
    178281 
     282    // 
     283    // Compare string. 
     284    // 
    179285    int strnicmp(const char *s, pj_size_t len) const 
    180286    { 
     
    182288    } 
    183289 
     290    // 
     291    // Compare string. 
     292    // 
    184293    int strnicmp(const pj_str_t *s, pj_size_t len) const 
    185294    { 
     
    187296    } 
    188297 
    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 
    190302    { 
    191303        return strnicmp(&rhs, len); 
    192304    } 
    193305 
     306    // 
     307    // Compare contents for equality. 
     308    // 
    194309    bool operator==(const char *s) const 
    195310    { 
     
    197312    } 
    198313 
     314    // 
     315    // Compare contents for equality. 
     316    // 
    199317    bool operator==(const pj_str_t *s) const 
    200318    { 
     
    202320    } 
    203321 
    204     bool operator==(const PJ_String &rhs) const 
     322    // 
     323    // Compare contents for equality. 
     324    // 
     325    bool operator==(const Pj_String &rhs) const 
    205326    { 
    206327        return pj_strcmp(this, &rhs) == 0; 
    207328    } 
    208329 
     330    // 
     331    // Find a character in the string. 
     332    // 
    209333    char *strchr(int chr) 
    210334    { 
     
    212336    } 
    213337 
     338    // 
     339    // Find a character in the string. 
     340    // 
    214341    char *find(int chr) 
    215342    { 
     
    217344    } 
    218345 
    219     void strcat(const PJ_String &rhs) 
     346    // 
     347    // Concatenate string. 
     348    // 
     349    void strcat(const Pj_String &rhs) 
    220350    { 
    221351        pj_strcat(this, &rhs); 
    222352    } 
    223353 
     354    // 
     355    // Left trim. 
     356    // 
    224357    void ltrim() 
    225358    { 
     
    227360    } 
    228361 
     362    // 
     363    // Right trim. 
     364    // 
    229365    void rtrim() 
    230366    { 
     
    232368    } 
    233369 
     370    // 
     371    // Left and right trim. 
     372    // 
    234373    void trim() 
    235374    { 
     
    237376    } 
    238377 
    239     unsigned long toul() const 
     378    // 
     379    // Convert to unsigned long. 
     380    // 
     381    unsigned long to_ulong() const 
    240382    { 
    241383        return pj_strtoul(this); 
    242384    } 
    243385 
     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 
    244403private: 
    245     //PJ_String(const PJ_String &rhs) {} 
    246     void operator=(const PJ_String &rhs) { pj_assert(false); } 
     404    //Pj_String(const Pj_String &rhs) {} 
     405    void operator=(const Pj_String &rhs) { pj_assert(false); } 
    247406}; 
    248407 
Note: See TracChangeset for help on using the changeset viewer.