Doxygen
GrowBuf类 参考

Class representing a string buffer optimised for growing. 更多...

#include <growbuf.h>

Public 成员函数

 GrowBuf ()
 
 GrowBuf (uint initialSize)
 
 ~GrowBuf ()
 
 GrowBuf (const GrowBuf &other)
 
GrowBufoperator= (const GrowBuf &other)
 
 GrowBuf (GrowBuf &&other)
 
GrowBufoperator= (GrowBuf &&other)
 
void reserve (uint size)
 
void clear ()
 
void addChar (char c)
 
void addStr (const QCString &s)
 
void addStr (const std::string &s)
 
void addStr (const char *s)
 
void addStr (const char *s, uint n)
 
char * get ()
 
const char * get () const
 
uint getPos () const
 
void setPos (uint newPos)
 
char at (uint i) const
 
bool empty () const
 

Private 属性

char * m_str
 
uint m_pos
 
uint m_len
 

详细描述

Class representing a string buffer optimised for growing.

在文件 growbuf.h12 行定义.

构造及析构函数说明

◆ GrowBuf() [1/4]

GrowBuf::GrowBuf ( )
inline

在文件 growbuf.h15 行定义.

15 : m_str(0), m_pos(0), m_len(0) {}

◆ GrowBuf() [2/4]

GrowBuf::GrowBuf ( uint  initialSize)
inline

在文件 growbuf.h16 行定义.

16 : m_pos(0), m_len(initialSize) { m_str=(char*)malloc(m_len); }

引用了 m_len , 以及 m_str.

◆ ~GrowBuf()

GrowBuf::~GrowBuf ( )
inline

在文件 growbuf.h17 行定义.

17 { free(m_str); }

引用了 m_str.

◆ GrowBuf() [3/4]

GrowBuf::GrowBuf ( const GrowBuf other)
inline

在文件 growbuf.h18 行定义.

19  {
20  m_len = other.m_len;
21  m_pos = other.m_pos;
22  m_str = (char*)malloc(m_len);
23  memcpy(m_str,other.m_str,m_len);
24  }

引用了 m_len, m_pos , 以及 m_str.

◆ GrowBuf() [4/4]

GrowBuf::GrowBuf ( GrowBuf &&  other)
inline

在文件 growbuf.h37 行定义.

38  : m_str(std::exchange(other.m_str,(char*)0))
39  , m_pos(std::exchange(other.m_pos,0))
40  , m_len(std::exchange(other.m_len,0))
41  {
42  }

成员函数说明

◆ addChar()

◆ addStr() [1/4]

void GrowBuf::addStr ( const char *  s)
inline

在文件 growbuf.h75 行定义.

75  {
76  if (s)
77  {
78  uint l=(uint)strlen(s);
79  if (m_pos+l>=m_len) { m_len+=l+GROW_AMOUNT; m_str = (char*)realloc(m_str,m_len); }
80  strcpy(&m_str[m_pos],s);
81  m_pos+=l;
82  }
83  }

引用了 GROW_AMOUNT, m_len, m_pos , 以及 m_str.

◆ addStr() [2/4]

void GrowBuf::addStr ( const char *  s,
uint  n 
)
inline

在文件 growbuf.h84 行定义.

84  {
85  if (s)
86  {
87  uint l=(uint)strlen(s);
88  if (n<l) l=n;
89  if (m_pos+l>=m_len) { m_len+=l+GROW_AMOUNT; m_str = (char*)realloc(m_str,m_len); }
90  strncpy(&m_str[m_pos],s,n);
91  m_pos+=l;
92  }
93  }

引用了 GROW_AMOUNT, m_len, m_pos , 以及 m_str.

◆ addStr() [3/4]

◆ addStr() [4/4]

void GrowBuf::addStr ( const std::string &  s)
inline

在文件 growbuf.h66 行定义.

66  {
67  if (!s.empty())
68  {
69  uint l=(uint)s.length();
70  if (m_pos+l>=m_len) { m_len+=l+GROW_AMOUNT; m_str = (char*)realloc(m_str,m_len); }
71  strcpy(&m_str[m_pos],s.c_str());
72  m_pos+=l;
73  }
74  }

引用了 GROW_AMOUNT, m_len, m_pos , 以及 m_str.

◆ at()

char GrowBuf::at ( uint  i) const
inline

在文件 growbuf.h98 行定义.

98 { return m_str[i]; }

引用了 m_str.

被这些函数引用 filter2008VhdlComment().

◆ clear()

void GrowBuf::clear ( )
inline

在文件 growbuf.h53 行定义.

53 { m_pos=0; }

引用了 m_pos.

被这些函数引用 Markdown::detab(), filterId(), Markdown::process(), Markdown::processBlocks() , 以及 Markdown::processQuotations().

◆ empty()

bool GrowBuf::empty ( ) const
inline

在文件 growbuf.h99 行定义.

99 { return m_pos==0; }

引用了 m_pos.

◆ get() [1/2]

◆ get() [2/2]

const char* GrowBuf::get ( ) const
inline

在文件 growbuf.h95 行定义.

95 { return m_str; }

引用了 m_str.

◆ getPos()

uint GrowBuf::getPos ( ) const
inline

在文件 growbuf.h96 行定义.

96 { return m_pos; }

引用了 m_pos.

被这些函数引用 SearchIndexExternal::addWord(), filter2008VhdlComment() , 以及 DocParser::processCopyDoc().

◆ operator=() [1/2]

GrowBuf& GrowBuf::operator= ( const GrowBuf other)
inline

在文件 growbuf.h25 行定义.

26  {
27  if (this!=&other)
28  {
29  free(m_str);
30  m_len = other.m_len;
31  m_pos = other.m_pos;
32  m_str = (char*)malloc(m_len);
33  memcpy(m_str,other.m_str,m_len);
34  }
35  return *this;
36  }

引用了 m_len, m_pos , 以及 m_str.

◆ operator=() [2/2]

GrowBuf& GrowBuf::operator= ( GrowBuf &&  other)
inline

在文件 growbuf.h43 行定义.

44  {
45  if (this==&other)
46  return *this;
47  m_len = std::exchange(other.m_len,0);
48  m_pos = std::exchange(other.m_pos,0);
49  m_str = std::exchange(other.m_str,(char*)0);
50  return *this;
51  }

引用了 m_len, m_pos , 以及 m_str.

◆ reserve()

void GrowBuf::reserve ( uint  size)
inline

在文件 growbuf.h52 行定义.

52 { if (m_len<size) { m_len = size; m_str = (char*)realloc(m_str,m_len); } }

引用了 m_len , 以及 m_str.

被这些函数引用 Markdown::detab().

◆ setPos()

void GrowBuf::setPos ( uint  newPos)
inline

在文件 growbuf.h97 行定义.

97 { m_pos = newPos; }

引用了 m_pos.

被这些函数引用 filter2008VhdlComment().

类成员变量说明

◆ m_len

uint GrowBuf::m_len
private

在文件 growbuf.h103 行定义.

被这些函数引用 addChar(), addStr(), GrowBuf(), operator=() , 以及 reserve().

◆ m_pos

uint GrowBuf::m_pos
private

在文件 growbuf.h102 行定义.

被这些函数引用 addChar(), addStr(), clear(), empty(), getPos(), GrowBuf(), operator=() , 以及 setPos().

◆ m_str

char* GrowBuf::m_str
private

在文件 growbuf.h101 行定义.

被这些函数引用 addChar(), addStr(), at(), get(), GrowBuf(), operator=(), reserve() , 以及 ~GrowBuf().


该类的文档由以下文件生成:
GrowBuf::m_len
uint m_len
Definition: growbuf.h:103
GrowBuf::m_str
char * m_str
Definition: growbuf.h:101
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
GROW_AMOUNT
#define GROW_AMOUNT
Definition: growbuf.h:9
uint
unsigned uint
Definition: qcstring.h:40
GrowBuf::m_pos
uint m_pos
Definition: growbuf.h:102
QCString::data
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
Definition: qcstring.h:153