summaryrefslogtreecommitdiff
path: root/docs/doxygen/latex/xbstring_8h_source.tex
blob: b87d4d67af3cdaff337ae7304bc7bc9e7a2e1691 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
\hypertarget{xbstring_8h_source}{}\doxysection{xbstring.\+h}
\label{xbstring_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbstring.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbstring.h}}
\mbox{\hyperlink{xbstring_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/*  xbstring.h}}
\DoxyCodeLine{2 \textcolor{comment}{}}
\DoxyCodeLine{3 \textcolor{comment}{XBase64 Software Library}}
\DoxyCodeLine{4 \textcolor{comment}{}}
\DoxyCodeLine{5 \textcolor{comment}{Copyright (c) 1997,2003,2014,2022 Gary A Kunkel}}
\DoxyCodeLine{6 \textcolor{comment}{}}
\DoxyCodeLine{7 \textcolor{comment}{The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.}}
\DoxyCodeLine{8 \textcolor{comment}{}}
\DoxyCodeLine{9 \textcolor{comment}{Email Contact:}}
\DoxyCodeLine{10 \textcolor{comment}{}}
\DoxyCodeLine{11 \textcolor{comment}{    XDB-\/devel@lists.sourceforge.net}}
\DoxyCodeLine{12 \textcolor{comment}{    XDB-\/users@lists.sourceforge.net}}
\DoxyCodeLine{13 \textcolor{comment}{}}
\DoxyCodeLine{14 \textcolor{comment}{*/}}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 \textcolor{preprocessor}{\#ifndef \_\_XBSTRING\_H\_\_}}
\DoxyCodeLine{17 \textcolor{preprocessor}{\#define \_\_XBSTRING\_H\_\_}}
\DoxyCodeLine{18 }
\DoxyCodeLine{19 \textcolor{preprocessor}{\#ifdef  CMAKE\_COMPILER\_IS\_GNUCC}}
\DoxyCodeLine{20 \textcolor{preprocessor}{\#pragma interface}}
\DoxyCodeLine{21 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{22 }
\DoxyCodeLine{23 \textcolor{preprocessor}{\#include <stdlib.h>}}
\DoxyCodeLine{24 \textcolor{preprocessor}{\#include <iostream>}}
\DoxyCodeLine{25 }
\DoxyCodeLine{26 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacexb}{xb}}\{}
\DoxyCodeLine{27 }
\DoxyCodeLine{28 }
\DoxyCodeLine{30 }
\DoxyCodeLine{50 \textcolor{keyword}{class }XBDLLEXPORT \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \{}
\DoxyCodeLine{51 }
\DoxyCodeLine{52  \textcolor{keyword}{public}:}
\DoxyCodeLine{53   \textcolor{comment}{//Various constructors}}
\DoxyCodeLine{54   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}(xbUInt32 size);}
\DoxyCodeLine{55   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}(\textcolor{keywordtype}{char} c);}
\DoxyCodeLine{56   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s, xbUInt32 lMaxLen);}
\DoxyCodeLine{57   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s);}
\DoxyCodeLine{58   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char} * = \textcolor{stringliteral}{"{}"{}});}
\DoxyCodeLine{59   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} d );}
\DoxyCodeLine{60   \mbox{\hyperlink{classxb_1_1xbString}{\string~xbString}}();}
\DoxyCodeLine{61 }
\DoxyCodeLine{62   \textcolor{comment}{//operators}}
\DoxyCodeLine{63   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator= (\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s);}
\DoxyCodeLine{64   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator= (\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s);}
\DoxyCodeLine{65   \textcolor{keyword}{operator} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *() \textcolor{keyword}{const};}
\DoxyCodeLine{66   \textcolor{keywordtype}{char} \&operator[](xbUInt32 n) \textcolor{keyword}{const};}
\DoxyCodeLine{67   \textcolor{keywordtype}{char} \&operator[](xbInt32 n) \textcolor{keyword}{const};}
\DoxyCodeLine{68 }
\DoxyCodeLine{69   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator+=(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s);}
\DoxyCodeLine{70   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator+=(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s);}
\DoxyCodeLine{71   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator+=(\textcolor{keywordtype}{char} c);}
\DoxyCodeLine{72   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator-\/=(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s);}
\DoxyCodeLine{73   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator-\/=(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s);}
\DoxyCodeLine{74   \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&operator-\/=(\textcolor{keywordtype}{char} c);}
\DoxyCodeLine{75 }
\DoxyCodeLine{76   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator == ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& ) \textcolor{keyword}{const};}
\DoxyCodeLine{77   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator == ( \textcolor{keyword}{const} \textcolor{keywordtype}{char} * ) \textcolor{keyword}{const};}
\DoxyCodeLine{78   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator != ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& ) \textcolor{keyword}{const};}
\DoxyCodeLine{79   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator != ( \textcolor{keyword}{const} \textcolor{keywordtype}{char} * ) \textcolor{keyword}{const};}
\DoxyCodeLine{80 }
\DoxyCodeLine{81   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator <  ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& ) \textcolor{keyword}{const};}
\DoxyCodeLine{82   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator >  ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& ) \textcolor{keyword}{const};}
\DoxyCodeLine{83   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator <= ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& ) \textcolor{keyword}{const};}
\DoxyCodeLine{84   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator >= ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& ) \textcolor{keyword}{const};}
\DoxyCodeLine{85 }
\DoxyCodeLine{86   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  operator-\/( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s );}
\DoxyCodeLine{87   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  operator+( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *s );}
\DoxyCodeLine{88   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  operator+( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s );}
\DoxyCodeLine{89   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  operator+( \textcolor{keyword}{const} \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{90 }
\DoxyCodeLine{91   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&AddBackSlash( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{92   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Append(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s);}
\DoxyCodeLine{93   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Append(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s);}
\DoxyCodeLine{94   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Append(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s, xbUInt32 iByteCount );}
\DoxyCodeLine{95   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Append(\textcolor{keywordtype}{char} c);}
\DoxyCodeLine{96   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Assign(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *srcStr, xbUInt32 lStartPos, xbUInt32 lCopyLen );}
\DoxyCodeLine{97   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Assign(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *srcStr, xbUInt32 lStartPos );}
\DoxyCodeLine{98   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Assign(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s, xbUInt32 pos, xbUInt32 n );}
\DoxyCodeLine{99   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Assign(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s, xbUInt32 n );}
\DoxyCodeLine{100 }
\DoxyCodeLine{101   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  Copy() \textcolor{keyword}{const};}
\DoxyCodeLine{102   xbUInt32  CountChar( \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
\DoxyCodeLine{103   xbUInt32  CountChar( \textcolor{keywordtype}{char} c, xbInt16 iOpt ) \textcolor{keyword}{const};}
\DoxyCodeLine{104   xbInt16   CvtHexChar( \textcolor{keywordtype}{char} \&cOut );}
\DoxyCodeLine{105   xbInt16   CvtHexString( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sOut );}
\DoxyCodeLine{106   xbInt16   CvtULongLong( xbUInt64 \&ullOut );}
\DoxyCodeLine{107   xbInt16   CvtLongLong( xbInt64 \&llOut );}
\DoxyCodeLine{108 }
\DoxyCodeLine{109 \textcolor{preprocessor}{  \#ifdef XB\_DEBUG\_SUPPORT}}
\DoxyCodeLine{110   \textcolor{keywordtype}{void}      Dump( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *title ) \textcolor{keyword}{const};}
\DoxyCodeLine{111   \textcolor{keywordtype}{void}      Dump( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *title, xbInt16 iOption ) \textcolor{keyword}{const};}
\DoxyCodeLine{112   \textcolor{keywordtype}{void}      DumpHex( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *title ) \textcolor{keyword}{const};}
\DoxyCodeLine{113 \textcolor{preprocessor}{  \#endif}}
\DoxyCodeLine{114 }
\DoxyCodeLine{115   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&ExtractElement(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *src, \textcolor{keywordtype}{char} delim, xbUInt32 iCnt, xbInt16 iOpt = 0 );}
\DoxyCodeLine{116   \textcolor{keywordtype}{char}      GetCharacter( xbUInt32 lPos ) \textcolor{keyword}{const};}
\DoxyCodeLine{117   xbUInt32  GetLastPos(\textcolor{keywordtype}{char} c) \textcolor{keyword}{const};}
\DoxyCodeLine{118   xbUInt32  GetLastPos(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s) \textcolor{keyword}{const};}
\DoxyCodeLine{119   \textcolor{keywordtype}{char}      GetPathSeparator() \textcolor{keyword}{const};}
\DoxyCodeLine{120   xbUInt32  GetSize() \textcolor{keyword}{const};}
\DoxyCodeLine{121 }
\DoxyCodeLine{122   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}    HasAlphaChars() \textcolor{keyword}{const};}
\DoxyCodeLine{123   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}    IsEmpty() \textcolor{keyword}{const};}
\DoxyCodeLine{124   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}    IsNull() \textcolor{keyword}{const};}
\DoxyCodeLine{125 }
\DoxyCodeLine{126   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Left( xbUInt32 ulLen );}
\DoxyCodeLine{127   xbUInt32  Len() \textcolor{keyword}{const};                     \textcolor{comment}{// returns the length of the string}}
\DoxyCodeLine{128   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Ltrim();}
\DoxyCodeLine{129   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Ltrunc( xbUInt32 ulCnt );}
\DoxyCodeLine{130 }
\DoxyCodeLine{131   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Mid(xbUInt32 ulPos, xbUInt32 lLen );}
\DoxyCodeLine{132   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&PadLeft( \textcolor{keywordtype}{char} c, xbUInt32 ulLen );}
\DoxyCodeLine{133   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&PadRight( \textcolor{keywordtype}{char} c, xbUInt32 ulLen );}
\DoxyCodeLine{134   xbUInt32  Pos(\textcolor{keywordtype}{char} c) \textcolor{keyword}{const};}
\DoxyCodeLine{135   xbUInt32  Pos(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s) \textcolor{keyword}{const};}
\DoxyCodeLine{136   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&PutAt(xbUInt32 ulPos, \textcolor{keywordtype}{char} c);}
\DoxyCodeLine{137 }
\DoxyCodeLine{138   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Remove( xbUInt32 ulPos, xbUInt32 ulN );}
\DoxyCodeLine{139   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Resize( xbUInt32 lSize );}
\DoxyCodeLine{140   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Rtrim();}
\DoxyCodeLine{141 }
\DoxyCodeLine{142   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Set( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *s );}
\DoxyCodeLine{143   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Set( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s );}
\DoxyCodeLine{144   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Set( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *s, xbUInt32 ulSize );}
\DoxyCodeLine{145   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&SetNum( xbInt32 lNum );}
\DoxyCodeLine{146   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Sprintf(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *format, ...);}
\DoxyCodeLine{147 }
\DoxyCodeLine{148   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *Str() \textcolor{keyword}{const};}
\DoxyCodeLine{149   \textcolor{keywordtype}{char}      *strncpy( \textcolor{keywordtype}{char} * cDest, xbUInt32 n ) \textcolor{keyword}{const};}
\DoxyCodeLine{150   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&SwapChars( \textcolor{keywordtype}{char} from, \textcolor{keywordtype}{char} to );}
\DoxyCodeLine{151 }
\DoxyCodeLine{152   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&ToLowerCase();}
\DoxyCodeLine{153   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&ToUpperCase();}
\DoxyCodeLine{154   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&Trim();}
\DoxyCodeLine{155 }
\DoxyCodeLine{156   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}    ValidLogicalValue() \textcolor{keyword}{const};}
\DoxyCodeLine{157   \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}}    ValidNumericValue() \textcolor{keyword}{const};}
\DoxyCodeLine{158   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&ZapChar( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{159   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&ZapLeadingChar( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{160   \mbox{\hyperlink{classxb_1_1xbString}{xbString}}  \&ZapTrailingChar( \textcolor{keywordtype}{char} c );}
\DoxyCodeLine{161 }
\DoxyCodeLine{162   \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespacexb_ad27f348219e895c44f74addba8e1889a}{operator<< }}( std::ostream\& os, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& s );}
\DoxyCodeLine{163 }
\DoxyCodeLine{164  \textcolor{keyword}{private}:}
\DoxyCodeLine{165 }
\DoxyCodeLine{166   \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} * NullString;}
\DoxyCodeLine{167   \textcolor{keyword}{static}       \textcolor{keywordtype}{char}   cJunkBuf;}
\DoxyCodeLine{168 }
\DoxyCodeLine{169   \textcolor{keywordtype}{char}     *data;          \textcolor{comment}{// pointer to actual string data}}
\DoxyCodeLine{170   xbUInt32 size;           \textcolor{comment}{// size of string plus null terminating byte}}
\DoxyCodeLine{171 }
\DoxyCodeLine{172   \textcolor{keywordtype}{void}     ctor(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s);}
\DoxyCodeLine{173 \textcolor{comment}{//  xbUInt32 CalcSprintfBufSize(const char *format, ...);}}
\DoxyCodeLine{174 }
\DoxyCodeLine{175 \textcolor{comment}{//  char *   xb\_realloc( char *pIn, xbUInt32 iLen );}}
\DoxyCodeLine{176 }
\DoxyCodeLine{177   \textcolor{comment}{// next routine could result in buffer over runs if used with improperly sized buffers}}
\DoxyCodeLine{178   \textcolor{keywordtype}{char} *   xb\_strcpy ( \textcolor{keywordtype}{char} *target, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *source);}
\DoxyCodeLine{179 }
\DoxyCodeLine{180 \};}
\DoxyCodeLine{181 }
\DoxyCodeLine{182 \}        \textcolor{comment}{/* namespace */}}
\DoxyCodeLine{183 \textcolor{preprocessor}{\#endif   }\textcolor{comment}{/* \_\_XBSTRING\_H\_\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}