本文整理汇总了C++中buffer::append方法的典型用法代码示例。如果您正苦于以下问题:C++ buffer::append方法的具体用法?C++ buffer::append怎么用?C++ buffer::append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类buffer
的用法示例。
在下文中一共展示了buffer::append方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: append
static void append(buffer &json, const char *key, const std::string &value)
{
json.append("\"" , 1);
json.append( key, strlen(key) ); //"key"
json.append("\":", 2);
append(json, value);
}
示例2: append
static void append(buffer &json, const Seq &value)
{
json.append("[", 1);
for(const auto &v : value)
{
json_traits<type_t>::append(json, v);
}
json.erase_last_comma();
json.append("],", 2);
}
示例3: append
static void append(buffer &json, const char &value,
const bool&, const unsigned&, unsigned&)
{
if( std::isgraph(value) )
{
char c[4] = {'"', value, '"', ','};
json.append(c, 4);
}
else
json.append("null,", 5);
}
示例4: to_string
bool xml_document::to_string(buffer& buf, bool pretty_print, bool nul_terminate) const
{
if (_M_used == 0) {
return nul_terminate ? buf.append((char) 0) : true;
}
if (!to_string(buf, pretty_print, _M_nodes, 0)) {
return false;
}
return nul_terminate ? buf.append((char) 0) : true;
}
示例5: append
static void append(buffer &json, const std::string &value)
{
if(! value.empty() ) //:"value"
{
json.append("\"", 1);
json.append( value.c_str(), value.length() );
json.append("\",", 2);
}
else //:null
{
json.append( "null,", 5);
}
}
示例6:
static inline void make_json(const bool &pretty, const unsigned &indent, unsigned &level,
buffer &json, const std::string &keys, const T& val, const Types& ...values)
{
std::string::size_type pos = keys.find(',');
if(pretty)
{
json.append("\n", 1);
json.append(' ', indent * level);
}
type::json_traits<T>::append(json, keys.substr(0, pos).c_str() , val, pretty, indent, level);
make_json(pretty, indent, level, json, keys.substr(pos+1, keys.length()-1 ).c_str() ,values...);
}
示例7: node_to_string
bool xml_document::node_to_string(buffer& buf, bool pretty_print, const struct node* node, unsigned depth) const
{
if (pretty_print) {
for (unsigned i = 0; i < depth; i++) {
if (!buf.append('\t')) {
return false;
}
}
}
switch (node->type) {
case DOCTYPE_NODE:
return buf.format("<!DOCTYPE %.*s>", node->len, _M_buf.data() + node->text);
case PROCESSING_INSTRUCTION_NODE:
return buf.format("<?%.*s?>", node->len, _M_buf.data() + node->text);
case COMMENT_NODE:
return buf.format("<!-- %.*s -->", node->len, _M_buf.data() + node->text);
case ELEMENT_NODE:
if (!buf.format("<%.*s", node->len, _M_buf.data() + node->text)) {
return false;
}
if (node->attributes) {
const char* name;
size_t namelen;
const char* value;
size_t valuelen;
for (size_t i = 0; node->attributes->get(i, name, namelen, value, valuelen); i++) {
char quotes = (memchr(value, '"', valuelen)) ? '\'' : '"';
if (!buf.format(" %.*s=%c%.*s%c", namelen, name, quotes, valuelen, value, quotes)) {
return false;
}
}
}
if (node->child > 0) {
return buf.append('>');
} else {
return buf.append("/>", 2);
}
case TEXT_NODE:
return buf.format("%.*s", node->len, _M_buf.data() + node->text);
default:
return false;
}
}
示例8: if
stream::state_t
socks5_proxy::send( buffer &in_buf, buffer &out_buf )
{
if ( m_state == stream::state_t::handshaking )
{
if ( !m_sent_greeting )
{
if ( proxy::manager::shared().authorization().size() > 0 )
{
out_buf.size( 4 );
out_buf.put( 0, 0x05 );
out_buf.put( 1, 0x02 );
out_buf.put( 2, 0x00 );
out_buf.put( 3, 0x02 );
}
else
{
out_buf.size( 3 );
out_buf.put( 0, 0x05 );
out_buf.put( 1, 0x01 );
out_buf.put( 2, 0x00 );
}
m_sent_greeting = true;
}
m_send_queue.append( in_buf );
m_state5 = waiting_for_opening_response;
m_state = stream::state_t::connected;
}
else if ( m_state5 != connected )
{
m_send_queue.append( in_buf );
}
else
{
out_buf = std::move( in_buf );
}
return m_state;
}
示例9:
JSONPACK_API_BEGIN_NAMESPACE
////============================== MAKE_JSON ==============================================
static inline void make_json(buffer &json, const std::string &UNUSED(key) )
{
json.erase_last_comma();
json.append("}\0", 2);
}
示例10: list_cases_on
unsigned list_cases_on(vm_obj const & o, buffer<vm_obj> & data) {
if (is_simple(o)) {
return 0;
} else if (is_constructor(o)) {
data.append(csize(o), cfields(o));
return 1;
} else {
lean_assert(is_external(o));
if (auto l = dynamic_cast<vm_list<name>*>(to_external(o))) {
return list_cases_on_core(l->m_val, data);
} else if (auto l = dynamic_cast<vm_list<expr>*>(to_external(o))) {
return list_cases_on_core(l->m_val, data);
} else if (auto l = dynamic_cast<vm_list<level>*>(to_external(o))) {
return list_cases_on_core(l->m_val, data);
} else {
lean_unreachable();
}
}
}