当前位置: 首页>>代码示例>>C++>>正文


C++ string_buffer类代码示例

本文整理汇总了C++中string_buffer的典型用法代码示例。如果您正苦于以下问题:C++ string_buffer类的具体用法?C++ string_buffer怎么用?C++ string_buffer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了string_buffer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

void
ngram_search::xor_block(string_buffer& sb, unsigned int val)
{
  for (string_buffer::iterator i = sb.begin(); i != sb.end(); ++i) {
    (*i) ^= val;
  }
}
开发者ID:ahiguti,项目名称:ase,代码行数:7,代码来源:ngramsearch.cpp

示例2: append_uint32

void
append_uint32(string_buffer& buf, uint32_t v)
{
  char *const wp = buf.make_space(64);
  const int len = snprintf(wp, 64, "%lu", static_cast<unsigned long>(v));
  if (len > 0) {
    buf.space_wrote(len);
  }
}
开发者ID:Epictetus,项目名称:HandlerSocket-Plugin-for-MySQL,代码行数:9,代码来源:string_util.cpp

示例3: while

template <typename T> void
ngram_search::serialize_nat(string_buffer& sb, T value)
{
  do {
    const unsigned char b7 = value & 0x7fU;
    value >>= 7;
    const unsigned char cf = (value != 0) ? 0x80U : 0;
    const unsigned char b = b7 | cf;
    sb.append(reinterpret_cast<const char *>(&b), 1);
  } while (value != 0);
}
开发者ID:ahiguti,项目名称:ase,代码行数:11,代码来源:ngramsearch.cpp

示例4: append_string_buffer

 append_string_buffer(string_buffer& b) : b(b) { b.reserve(100); }
开发者ID:anibalanto,项目名称:hyp,代码行数:1,代码来源:shell_escape.hpp

示例5: close

size_t
hstcpcli::request_buf_append(const char *start, const char *finish)
{
/*
  if (num_req_sent > 0 || num_req_rcvd > 0) {
*/
  if (num_req_rcvd > 0) {
    close();
    set_error(-1, "request_buf_append: protocol out of sync");
    return 0;
  }
  const char *nl = start;
  size_t num_req = 0;
  while ((nl = memchr_char(nl, '\n', finish - nl))) {
    if (nl == finish)
      break;
    num_req++;
    nl++;
  }
  num_req++;
  writebuf.append(start, finish);
  if (*(finish - 1) != '\n')
    writebuf.append_literal("\n");
  num_req_bufd += num_req;
  return num_req;
}
开发者ID:SunguckLee,项目名称:MariaDB,代码行数:26,代码来源:hstcpcli.cpp

示例6: set_error

int
hstcpcli::request_send()
{
  if (error_code < 0) {
    return error_code;
  }
  clear_error();
  if (fd.get() < 0) {
    close();
    return set_error(-1, "write: closed");
  }
  if (num_req_bufd == 0 || num_req_sent > 0 || num_req_rcvd > 0) {
    close();
    return set_error(-1, "request_send: protocol out of sync");
  }
  const size_t wrlen = writebuf.size();
  const ssize_t r = send(fd.get(), writebuf.begin(), wrlen, MSG_NOSIGNAL);
  if (r <= 0) {
    close();
    return set_error(-1, r < 0 ? "write: failed" : "write: eof");
  }
  writebuf.erase_front(r);
  if (static_cast<size_t>(r) != wrlen) {
    close();
    return set_error(-1, "write: incomplete");
  }
  num_req_sent = num_req_bufd;
  num_req_bufd = 0;
  DBG(fprintf(stderr, "REQSEND 0\n"));
  return 0;
}
开发者ID:AllenWeb,项目名称:mariadb,代码行数:31,代码来源:hstcpcli.cpp

示例7: DBG

const string_ref *
hstcpcli::get_next_row()
{
  if (num_flds == 0) {
    DBG(fprintf(stderr, "GNR NF 0\n"));
    return 0;
  }
  if (flds.size() < num_flds) {
    flds.resize(num_flds);
  }
  char *start = readbuf.begin() + cur_row_offset;
  char *const finish = readbuf.begin() + response_end_offset - 1;
  if (start >= finish) { /* start[0] == nl */
    DBG(fprintf(stderr, "GNR FIN 0 %p %p\n", start, finish));
    return 0;
  }
  for (size_t i = 0; i < num_flds; ++i) {
    skip_one(start, finish);
    char *const fld_begin = start;
    read_token(start, finish);
    char *const fld_end = start;
    char *wp = fld_begin;
    if (is_null_expression(fld_begin, fld_end)) {
      /* null */
      flds[i] = string_ref();
    } else {
      unescape_string(wp, fld_begin, fld_end); /* in-place */
      flds[i] = string_ref(fld_begin, wp);
    }
  }
  cur_row_offset = start - readbuf.begin();
  return &flds[0];
}
开发者ID:AllenWeb,项目名称:mariadb,代码行数:33,代码来源:hstcpcli.cpp

示例8:

void
hstcpcli::request_reset()
{
  if (num_req_bufd) {
    writebuf.erase_front(writebuf.size());
    num_req_bufd = 0;
  }
}
开发者ID:SunguckLee,项目名称:MariaDB,代码行数:8,代码来源:hstcpcli.cpp

示例9: read

int
hstcpcli::read_more()
{
  const size_t block_size = 4096; // FIXME
  char *const wp = readbuf.make_space(block_size);
  const ssize_t rlen = read(fd.get(), wp, block_size);
  if (rlen <= 0) {
    if (rlen < 0) {
      error_str = "read: failed";
    } else {
      error_str = "read: eof";
    }
    return rlen;
  }
  readbuf.space_wrote(rlen);
  return rlen;
}
开发者ID:AllenWeb,项目名称:mariadb,代码行数:17,代码来源:hstcpcli.cpp

示例10: read_id

 dtoken read_id() {
     while (!eos() && m_curr_char != '(' && m_curr_char != ')' && 
            m_curr_char != '#' && m_curr_char != ',' && (m_parsing_domains || m_curr_char != '.') && 
            m_curr_char != ':' && m_curr_char != '=' && !iswspace(m_curr_char) ) {
         save_and_next();
     }
     return m_reserved_symbols.string2dtoken(m_buffer.c_str());
 }
开发者ID:EinNarr,项目名称:z3,代码行数:8,代码来源:datalog_parser.cpp

示例11: read_bid

 // read an id of the form '|'.*'|' 
 dtoken read_bid() {
     while (!eos() && m_curr_char != '|') {
         save_and_next();
     }
     if (m_curr_char == '|') {
         next();
     }
     return m_reserved_symbols.string2dtoken(m_buffer.c_str());
 }
开发者ID:EinNarr,项目名称:z3,代码行数:10,代码来源:datalog_parser.cpp

示例12: lookahead_newline

 bool lookahead_newline() {
     while (m_curr_char == ' ') {
         save_and_next();
     }
     if (m_curr_char == '\n') {
         next();
         m_line++;
         m_buffer.reset();
         return true;
     }
     if (m_curr_char == '#') {
         m_buffer.reset();
         m_prev_char = 0;
         read_comment();
         return true;
     }
     return false;
 }
开发者ID:EinNarr,项目名称:z3,代码行数:18,代码来源:datalog_parser.cpp

示例13: typ_ref

void
hstcpcli::request_buf_auth(const char *secret, const char *typ)
{
  if (num_req_sent > 0 || num_req_rcvd > 0) {
    close();
    set_error(-1, "request_buf_auth: protocol out of sync");
    return;
  }
  if (typ == 0) {
    typ = "1";
  }
  const string_ref typ_ref(typ, strlen(typ));
  const string_ref secret_ref(secret, strlen(secret));
  writebuf.append_literal("A\t");
  writebuf.append(typ_ref.begin(), typ_ref.end());
  writebuf.append_literal("\t");
  writebuf.append(secret_ref.begin(), secret_ref.end());
  writebuf.append_literal("\n");
  ++num_req_bufd;
}
开发者ID:AllenWeb,项目名称:mariadb,代码行数:20,代码来源:hstcpcli.cpp

示例14: while

int
hstcpcli::read_more()
{
  const size_t block_size = 4096; // FIXME
  char *const wp = readbuf.make_space(block_size);
  int rlen;
  errno = 0;
  while ((rlen = read(fd.get(), wp, block_size)) <= 0) {
    errno_buf = errno;
    if (rlen < 0) {
      if (errno == EINTR || errno == EAGAIN)
      {
        errno = 0;
        continue;
      }
      error_str = String("read: failed", &my_charset_bin);
    } else {
      error_str = String("read: eof", &my_charset_bin);
    }
    return rlen;
  }
  readbuf.space_wrote(rlen);
  return rlen;
}
开发者ID:SunguckLee,项目名称:MariaDB,代码行数:24,代码来源:hstcpcli.cpp

示例15: set_error

int
hstcpcli::get_result(hstresult& result)
{
/*
  readbuf.swap(result.readbuf);
*/
  char *const wp = result.readbuf.make_space(response_end_offset);
  memcpy(wp, readbuf.begin(), response_end_offset);
  result.readbuf.space_wrote(response_end_offset);
  result.response_end_offset = response_end_offset;
  result.num_flds = num_flds;
  result.cur_row_offset = cur_row_offset;
  if (result.flds.max_element < num_flds)
  {
    if (allocate_dynamic(&result.flds, num_flds))
      return set_error(-1, "out of memory");
  }
  result.flds.elements = num_flds;
  return 0;
}
开发者ID:SunguckLee,项目名称:MariaDB,代码行数:20,代码来源:hstcpcli.cpp


注:本文中的string_buffer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。