2 #define DEF_NB_STRING (1) 8 const int native_string_storage = 15;
9 const size_t npos = -1;
11 struct nbstring_allocated_info
24 uint8_t stor[native_string_storage];
27 class NBStorageManager
32 nbstring_allocated_info inf;
36 bool IsConstStore()
const;
37 bool IsLocalStore()
const;
39 void reservespace(
size_t n);
40 void setusedsize(
size_t n);
42 size_t GetUsed()
const;
43 size_t GetAvailable()
const;
45 const char *GetConstBuf()
const;
47 void SetFromConstant(
const char *c,
int len);
54 static void swap(NBStorageManager &n1, NBStorageManager &n2);
65 void DoStorage(
const char *cp,
int len);
70 NBString(
const NBString &str);
71 NBString(
const NBString &str,
size_t pos,
size_t len = npos);
72 NBString(
const char *s);
73 NBString(
const char *s,
size_t n);
78 NBString &operator=(
const NBString &str);
79 NBString &operator=(
const char *s);
80 NBString &operator=(
char c);
83 char &operator[](
size_t pos);
84 const char &operator[](
size_t pos)
const;
87 const char *c_str()
const;
90 NBString substr(
size_t pos = 0,
size_t len = npos)
const;
93 int compare(
const NBString &str)
const;
94 int compare(
const char *s)
const;
97 size_t length()
const;
102 NBString &Append(
const char *str,
size_t len);
103 NBString &operator+=(
const NBString &str);
104 NBString &operator+=(
const char *str);
105 NBString &operator+=(
char c);
112 friend void swap(NBString &x, NBString &y);
115 friend NBString operator+(
const NBString &lhs,
const NBString &rhs);
116 friend NBString operator+(
const NBString &lhs,
const char *rhs);
117 friend NBString operator+(
const char *lhs,
const NBString &rhs);
118 friend NBString operator+(
const NBString &lhs,
char rhs);
119 friend NBString operator+(
char lhs,
const NBString &rhs);
122 friend bool operator==(
const NBString &lhs,
const NBString &rhs);
123 friend bool operator==(
const char *lhs,
const NBString &rhs);
124 friend bool operator==(
const NBString &lhs,
const char *rhs);
125 friend bool operator!=(
const NBString &lhs,
const NBString &rhs);
126 friend bool operator!=(
const char *lhs,
const NBString &rhs);
127 friend bool operator!=(
const NBString &lhs,
const char *rhs);
128 friend bool operator<(
const NBString &lhs,
const NBString &rhs);
129 friend bool operator<(
const char *lhs,
const NBString &rhs);
130 friend bool operator<(
const NBString &lhs,
const char *rhs);
131 friend bool operator<=(
const NBString &lhs,
const NBString &rhs);
132 friend bool operator<=(
const char *lhs,
const NBString &rhs);
133 friend bool operator<=(
const NBString &lhs,
const char *rhs);
134 friend bool operator>(
const NBString &lhs,
const NBString &rhs);
135 friend bool operator>(
const char *lhs,
const NBString &rhs);
136 friend bool operator>(
const NBString &lhs,
const char *rhs);
137 friend bool operator>=(
const NBString &lhs,
const NBString &rhs);
138 friend bool operator>=(
const char *lhs,
const NBString &rhs);
139 friend bool operator>=(
const NBString &lhs,
const char *rhs);
143 int vsiprintf(
const char *format, va_list &vl);
146 int sprintf(
const char *format, ...);
147 int sprintf(NBString
const format, ...);
150 int siprintf(
const char *format, ...);
151 int siprintf(NBString
const format, ...);
158 unsigned int stoui()
const;
159 unsigned long stoul()
const;
179 size_t copy(
char *s,
size_t len,
size_t pos = 0)
const;
182 size_t strcopy(
char *s,
size_t len,
size_t pos = 0)
const;
186 NBString operator+(
const NBString &lhs,
const NBString &rhs);
187 NBString operator+(
const NBString &lhs,
const char *rhs);
188 NBString operator+(
const char *lhs,
const NBString &rhs);
189 NBString operator+(
const NBString &lhs,
char rhs);
190 NBString operator+(
char lhs,
const NBString &rhs);
193 inline bool operator==(
const NBString &lhs,
const NBString &rhs)
195 return lhs.compare(rhs) == 0;
197 inline bool operator==(
const char *lhs,
const NBString &rhs)
199 return rhs.compare(lhs) == 0;
201 inline bool operator==(
const NBString &lhs,
const char *rhs)
203 return lhs.compare(rhs) == 0;
205 inline bool operator!=(
const NBString &lhs,
const NBString &rhs)
207 return lhs.compare(rhs) != 0;
209 inline bool operator!=(
const char *lhs,
const NBString &rhs)
211 return rhs.compare(lhs) != 0;
213 inline bool operator!=(
const NBString &lhs,
const char *rhs)
215 return lhs.compare(rhs) != 0;
217 inline bool operator<(
const NBString &lhs,
const NBString &rhs)
219 return lhs.compare(rhs) > 0;
221 inline bool operator<(
const char *lhs,
const NBString &rhs)
223 return rhs.compare(lhs) < 0;
225 inline bool operator<(
const NBString &lhs,
const char *rhs)
227 return lhs.compare(rhs) > 0;
229 inline bool operator<=(
const NBString &lhs,
const NBString &rhs)
231 return lhs.compare(rhs) >= 0;
233 inline bool operator<=(
const char *lhs,
const NBString &rhs)
235 return rhs.compare(lhs) <= 0;
237 inline bool operator<=(
const NBString &lhs,
const char *rhs)
239 return lhs.compare(rhs) >= 0;
241 inline bool operator>(
const NBString &lhs,
const NBString &rhs)
243 return lhs.compare(rhs) < 0;
245 inline bool operator>(
const char *lhs,
const NBString &rhs)
247 return rhs.compare(lhs) > 0;
249 inline bool operator>(
const NBString &lhs,
const char *rhs)
251 return lhs.compare(rhs) < 0;
253 inline bool operator>=(
const NBString &lhs,
const NBString &rhs)
255 return lhs.compare(rhs) <= 0;
257 inline bool operator>=(
const char *lhs,
const NBString &rhs)
259 return rhs.compare(lhs) >= 0;
261 inline bool operator>=(
const NBString &lhs,
const char *rhs)
263 return lhs.compare(rhs) <= 0;
Used to hold and manipulate IPv4 and IPv6 addresses in dual stack mode.
Definition: ipv6_addr.h:28
NetBurner System Functions.