Go to the documentation of this file.
72 if (0 == this->
cmp(that))
81 if (0 == this->
cmp(that))
103 memcpy(
buf_, str, len);
225 if (newLength >
len_)
return;
233 buf_[newLength] =
'\0';
239 nilCmp(
const bool thisIsNilOrEmpty,
const bool otherIsNilOrEmpty,
int &result)
241 if (!thisIsNilOrEmpty && !otherIsNilOrEmpty)
244 if (thisIsNilOrEmpty && otherIsNilOrEmpty)
246 else if (thisIsNilOrEmpty)
258 if (
nilCmp(!
size(), (!aString || !*aString), result))
268 if (
nilCmp((!
size() || !count), (!aString || !*aString || !count), result))
271 return strncmp(
termedBuf(), aString, count);
288 if (
nilCmp(!
size(), (!aString || !*aString), result))
298 if (
nilCmp((!
size() || !count), (!aString || !*aString || !count), result))
301 return strncasecmp(
termedBuf(), aString, count);
319 ptrcmp(
C const &lhs,
C const &rhs)
324 StringRegistry::StringRegistry()
328 "Strings in use in squid", Stat, 0, 1);
333 StringRegistry::add(
String const *entry)
335 entries.insert(entry, ptrcmp);
339 StringRegistry::remove(
String const *entry)
341 entries.remove(entry, ptrcmp);
344 StringRegistry StringRegistry::Instance_;
352 Instance().entries.head->walk(Stater, entry);
356 StringRegistry::Stater(
String const *
const & nodedata,
void *state)
359 nodedata->stat(entry);
377 while ((c = (
unsigned char) *s++) !=
'\0') {
381 if (c >= 0x7f && c <= 0x9f)
395 unsigned char *word =
NULL;
396 unsigned char *p = (
unsigned char *) buf;
402 p = (
unsigned char *) *t;
474 return (
char *) word;
480 return p ? p :
"(NULL)";
int caseCmp(char const *) const
static CodeContext::Pointer & Instance()
guarantees the forever existence of the pointer, starting from the first use
bool operator!=(String const &) const
size_type rfind(char const ch) const
String & operator=(char const *)
void storeAppendPrintf(StoreEntry *e, const char *fmt,...)
void error(char *format,...)
void setBuffer(char *buf, size_type sz)
int stringHasCntl(const char *s)
int cmp(char const *) const
char * xstrncpy(char *dst, const char *src, size_t n)
static const size_type npos
bool operator==(String const &) const
bool canGrowBy(const size_type growthLen) const
whether appending growthLen characters is safe (i.e., unlikely to assert)
void append(char const *buf, int len)
const char * rpos(char const ch) const
char * strwordtok(char *buf, char **t)
const char * checkNullString(const char *p)
void memFreeString(size_t size, void *)
int stringHasWhitespace(const char *s)
void allocAndFill(const char *str, int len)
static bool nilCmp(const bool thisIsNilOrEmpty, const bool otherIsNilOrEmpty, int &result)
char const * termedBuf() const
const char * pos(char const *aString) const
static const size_type SizeMax_
void cut(size_type newLength)
void allocBuffer(size_type sz)
void reset(char const *str)
void assign(const char *str, int len)
size_type find(char const ch) const
void * memAllocString(size_t net_size, size_t *gross_size)
String substr(size_type from, size_type to) const
void RegisterAction(char const *action, char const *desc, OBJH *handler, int pw_req_flag, int atomic)
char const * rawBuf() const