6 #ifndef CMR_STRING_BUFFER_INCLUDED
7 #define CMR_STRING_BUFFER_INCLUDED
38 : current_(sb.first_) {}
44 bool more()
const {
return current_ != 0; }
48 const char*
current() {
if (current_) {
return (
const char*) ¤t_->s_[0]; }
else {
return ""; } }
57 current_ = current_->next_;
61 return current_->size_;
72 return current_->size_;
100 const Page* current_;
118 bool more()
const {
return size_ > index_; }
126 return *(
const char*)¤t_->s_[index_ % PAGE_SIZE];
136 size_t pos() {
return index_; }
145 if ((index_ + 1) % PAGE_SIZE == 0)
147 current_ = current_->next_;
180 const Page* current_;
193 : size_(0), index_(0), current_(0) {}
195 : size_(t), index_(i), current_(p) {}
197 : size_(sb.size_), index_(0), current_(sb.first_) {}
203 bool more()
const {
return size_ > index_; }
209 char* u = (
char*) ¤t_->s_[0];
211 int i = index_ % PAGE_SIZE;
222 if ((index_ + 1) % PAGE_SIZE == 0)
224 current_ = current_->next_;
281 enum { PAGE_SIZE = 128 };
292 StringBuffer(
const char* s,
size_t page_size = PAGE_SIZE);
317 size_t size()
const {
return size_; }
337 size_t append(
const char*);
351 size_t add_size(
size_t size);
420 const char* c_str(
char* s,
size_t size)
const;
424 const char* c_str(
AString& s)
const;
456 int compare(
const char*)
const;
459 return compare(s) < 0;
463 return compare(s) > 0;
467 return compare(s) > 0;
471 return compare(s) < 0;
475 return compare(s) == 0;
479 return compare(s) == 0;
501 long write(
OBStream& o,
const char* delimitor)
const;
519 long write(
const Path& file_name,
bool check =
false)
const;
531 PPage allocate_(
size_t size);
532 void release_(PPage p);
size_t pos()
Definition: StringBuffer.h:136
ConstIterator operator++(int)
Definition: StringBuffer.h:157
bool operator>(const StringBuffer &s) const
Definition: StringBuffer.h:461
size_t next()
Definition: StringBuffer.h:53
Iterator iterator
Definition: StringBuffer.h:265
ConstPageIterator operator++(int)
Definition: StringBuffer.h:80
Page * PPage
Definition: StringBuffer.h:24
const char * current()
Definition: StringBuffer.h:48
ConstIterator & operator++()
Definition: StringBuffer.h:167
long CMREXD write_xml(const AString &sIn, OBStream &o)
Definition: AString.cpp:27
Definition: StringBuffer.h:21
ConstIterator()
Definition: StringBuffer.h:111
ConstIterator const_iterator
Definition: StringBuffer.h:184
ConstPageIterator(const StringBuffer &sb)
Definition: StringBuffer.h:37
Definition: StringBuffer.h:189
bool read(IBStream &str, int &num)
Definition: Time.cpp:200
size_t size_
Definition: StringBuffer.h:271
iterator begin()
Definition: StringBuffer.h:437
size_t get_size() const
Definition: StringBuffer.h:316
bool operator<(const char *s) const
Definition: StringBuffer.h:469
bool more() const
Definition: StringBuffer.h:44
const char & operator*()
Definition: StringBuffer.h:171
const char * operator*()
Definition: StringBuffer.h:94
ConstIterator(const StringBuffer &sb)
Definition: StringBuffer.h:113
PPage next_
Definition: StringBuffer.h:272
size_t next()
Definition: StringBuffer.h:141
#define CMREXD
Definition: Compiler.h:22
const_iterator cbegin() const
Definition: StringBuffer.h:447
Iterator(size_t t, int i, Page *p)
Definition: StringBuffer.h:194
bool operator<(const StringBuffer &s) const
Definition: StringBuffer.h:457
StringBuffer * PStringBuffer
Definition: StringBuffer.h:15
const_iterator begin() const
Definition: StringBuffer.h:430
commore::OBStream & operator<<(commore::OBStream &o, const commore::StringBuffer &b)
Definition: StringBuffer.h:538
size_t get_page_size() const
Definition: StringBuffer.h:321
Page()
Definition: StringBuffer.h:269
Iterator operator++(int)
Definition: StringBuffer.h:234
ConstPageIterator & operator++()
Definition: StringBuffer.h:90
long write(CommBuffer &buffer) const
Definition: StringBuffer.cpp:559
Iterator & operator++()
Definition: StringBuffer.h:244
ConstIterator(size_t t, int i, const Page *p)
Definition: StringBuffer.h:112
Iterator()
Definition: StringBuffer.h:192
Definition: CommBuffer.h:28
bool operator>(const char *s) const
Definition: StringBuffer.h:465
long CMREXD read_xml(AString &sOut, IBStream &i)
Definition: AString.cpp:65
size_t size() const
Definition: StringBuffer.h:317
size_t next()
Definition: StringBuffer.h:218
char & operator*()
Definition: StringBuffer.h:252
bool more() const
Definition: StringBuffer.h:118
Definition: StringBuffer.h:267
bool operator==(const StringBuffer &s) const
Definition: StringBuffer.h:473
Definition: IOBStream.h:166
Iterator(StringBuffer &sb)
Definition: StringBuffer.h:196
bool operator==(const ConstPageIterator &i) const
Definition: StringBuffer.h:98
ConstPageIterator()
Definition: StringBuffer.h:33
Definition: IOBStream.h:29
Definition: StringBuffer.h:30
bool more() const
Definition: StringBuffer.h:203
size_t get_size() const
Definition: StringBuffer.h:68
bool operator==(const Iterator &i) const
Definition: StringBuffer.h:256
char & current()
Definition: StringBuffer.h:207
const char & current()
Definition: StringBuffer.h:122
bool operator==(const char *s) const
Definition: StringBuffer.h:477
ConstPageIterator(const Page *p)
Definition: StringBuffer.h:35
Definition: StringBuffer.h:108
bool operator==(const ConstIterator &i) const
Definition: StringBuffer.h:175
PStringBuffer cont_
Definition: StringBuffer.h:270