• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ buffer_add函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: bash_case

/* generate a CASE statment */
void
bash_case (buffer_t * buf, char *str, size_t len)
{
  static char err_msg[] =
    "echo 'error: missing expression for case'\nexit 99\n";
  static char case_start[] = "case ";
  static char case_end[] = " in\n";
  /*
     create a bogus case condition, nul+esc+eof, so nl+;;+nl
     can be prepended to each when/otherwise/endcase, which
     eliminates the need for ;; or <% ;; %> in the page source
   */
  static char case_bogus[] = "\"\\000\\040\\004\") :\n";

  if (len == 0)
    {
      buffer_add (buf, err_msg, strlen (err_msg));
    }
  else
    {
      buffer_add (buf, case_start, strlen (case_start));
      buffer_add (buf, str, len);
      buffer_add (buf, case_end, strlen (case_end));
      buffer_add (buf, case_bogus, strlen (case_bogus));
    }
}
开发者ID:WhitePatches,项目名称:snake-os,代码行数:27,代码来源:h_bash.c


示例2: subshell_translate

void subshell_translate(buffer_t* buf, char* str, size_t len) {
	static char echo_start[] = "echo -n \"";
	static char echo_end[] = "\"\n";
	short hash;
	lstr* i;
	char* text = NULL;

	if(len == 0) {
		return;
	}
	str = trim(str);
	if(!*str) {
		return;
	}
	if(language != NULL && translations > 0) {
		hash = generateHash(str);
		i = ltable[hash];
		while(text == NULL && i != NULL) {
			if(strcmp(str, i->msgid) == 0) {
				text = i->msgstr;
			} else {
				i = i->next;
			}
		}
	}
	if(text == NULL) {
		text = str;
	}
	buffer_add(buf, echo_start, strlen(echo_start));
	buffer_add(buf, text, strlen(text));
	buffer_add(buf, echo_end, strlen(echo_end));
}
开发者ID:kagera,项目名称:cbsi,代码行数:32,代码来源:subshell.c


示例3: lua_echo

/* Run the echo command in a subshell */
void
lua_echo (buffer_t * buf, char *str, size_t len)
{
  static char echo_start[] = " io.write(";
  char quote[200] = "]=]";	/* 197 nested comments is a problem */

  if (len == 0)
    return;

  /* figure out if the string uses ]] ]=] ]==] etc in it */
  while ((strstr (str, quote)) && (strlen (quote) < 198))
    {
      memmove (quote + strlen (quote) - 1, quote + strlen (quote) - 2, 3);
    }

  /* As of 5.1, nested comments are depreciated... sigh */
  quote[0] = '[';
  quote[strlen (quote) - 1] = quote[0];
  while ((strstr (str, quote)) && (strlen (quote) < 198))
    {
      memmove (quote + strlen (quote) - 1, quote + strlen (quote) - 2, 3);
    }

  buffer_add (buf, echo_start, strlen (echo_start));
  buffer_add (buf, quote, strlen (quote));
  buffer_add (buf, str, len);
  quote[0] = ']';
  quote[strlen (quote) - 1] = quote[0];
  buffer_add (buf, quote, strlen (quote));
  buffer_add (buf, ")\n", 2);

}
开发者ID:xunmengdeganjue,项目名称:workTest,代码行数:33,代码来源:h_lua.c


示例4: main

/**
 * Main function for this unit test
 *
 *
 * @return 0 if test passed
 */
int main()
{
	t_buffer *buffer;
	t_buffer buffer2;

	buffer = buffer_create(NULL);
	XTEST(buffer != NULL);
	XTEST(buffer_add(buffer, "123456789", 9) == 9);
	check_buf(buffer, 123456789);
	buffer_erase(buffer, buffer_size(buffer));
	XTEST(buffer_add(buffer, "1", 1) == 1);
	check_buf(buffer, 1);
	buffer_erase(buffer, buffer_size(buffer));
	XTEST(buffer_add(buffer, "-12345678", 9) == 9);
	check_buf(buffer, -12345678);
	buffer_erase(buffer, buffer_size(buffer));
	buffer_destroy(buffer);
	strtobuffer(&buffer2, "987654321");
	check_buf(&buffer2, 987654321);
	strtobuffer(&buffer2, "0");
	check_buf(&buffer2, 0);
	strtobuffer(&buffer2, "-987654321");
	check_buf(&buffer2, -987654321);
	XPASS();
}
开发者ID:dyu,项目名称:librinoo,代码行数:31,代码来源:buffer_tolong.c


示例5: http_encode_uri

char * http_encode_uri(const char *uri, size_t len, int space_as_plus) {
  struct buffer *buf = buffer_new();
  if (buf == NULL) return (NULL);

  const char *p, *end;
  char *result;

  if (len >= 0) end = uri+len;
  else end = uri+strlen(uri);

  for (p = uri; p < end; p++) {
    if (CHAR_IS_UNRESERVED(*p)) {
      buffer_add(buf, p, 1);
    } else if (*p == ' ' && space_as_plus) {
      buffer_add(buf, "+", 1);
    } else {
      buffer_add_printf(buf, "%%%02X", (unsigned char)(*p));
    }
  }
  buffer_add(buf, "", 1); /* NUL-terminator. */
  result = malloc(buf->len);
  if (!result) return NULL;
  buffer_remove(buf, result, buf->len);
  buffer_free(buf);

  return (result);
}
开发者ID:angryfoxsu,项目名称:sphinx-http-api,代码行数:27,代码来源:http.c


示例6: pcp_keysig2blob

void pcp_keysig2blob(Buffer *b, pcp_keysig_t *s) {
  buffer_add8(b, s->type);
  buffer_add32be(b, s->size);
  buffer_add(b, s->id, 17);
  buffer_add(b, s->checksum, LSHA);
  buffer_add(b, s->blob, s->size);
}
开发者ID:TLINDEN,项目名称:pcp,代码行数:7,代码来源:keysig.c


示例7: lua_eval

/* do an evaluation */
void
lua_eval (buffer_t * buf, char *str, size_t len)
{
  static char start[] = " io.write(tostring(";
  static char end[] = "))\n";
  if (len == 0)
    return;

  buffer_add (buf, start, strlen (start));
  buffer_add (buf, str, len);
  buffer_add (buf, end, strlen (end));
}
开发者ID:xunmengdeganjue,项目名称:workTest,代码行数:13,代码来源:h_lua.c


示例8: oilsAuthLoginVerifyPassword

static int oilsAuthLoginVerifyPassword(const osrfMethodContext* ctx, 
    int user_id, const char* username, const char* password) {

    // build the cache key
    growing_buffer* gb = buffer_init(64); // free me
    buffer_add(gb, OILS_AUTH_CACHE_PRFX);
    buffer_add(gb, username);
    buffer_add(gb, OILS_AUTH_COUNT_SFFX);
    char* countkey = buffer_release(gb); // free me

    jsonObject* countobject = osrfCacheGetObject(countkey); // free me

    long failcount = 0;
    if (countobject) {
        failcount = (long) jsonObjectGetNumber(countobject);

        if (failcount >= _oilsAuthBlockCount) {
            // User is blocked.  Don't waste any more CPU cycles on them.

            osrfLogInfo(OSRF_LOG_MARK, 
                "oilsAuth found too many recent failures for '%s' : %i, "
                "forcing failure state.", username, failcount);

            jsonObjectFree(countobject);
            free(countkey);   
            return 0;
        }
    }

    int verified = oilsAuthLoginCheckPassword(user_id, password);

    if (!verified) { // login failed.  increment failure counter.
        failcount++;

        if (countobject) {
            // append to existing counter
            jsonObjectSetNumber(countobject, failcount);

        } else { 
            // first failure, create a new counter
            countobject = jsonNewNumberObject((double) failcount);
        }

        osrfCachePutObject(countkey, countobject, _oilsAuthBlockTimeout);
    }

    jsonObjectFree(countobject); // NULL OK
    free(countkey);

    return verified;
}
开发者ID:IISH,项目名称:Evergreen,代码行数:51,代码来源:oils_auth.c


示例9: subshell_eval

void subshell_eval(buffer_t* buf, char* str, size_t len) {
	static char echo_start[] = "echo -n ";
	static char echo_end[] = "\n";

	if(len == 0) {
		return;
	}
	str = trim(str);
	if(!*str) {
		return;
	}
	buffer_add(buf, echo_start, strlen(echo_start));
	buffer_add(buf, str, len);
	buffer_add(buf, echo_end, strlen(echo_end));
}
开发者ID:kagera,项目名称:cbsi,代码行数:15,代码来源:subshell.c


示例10: load_query

static char* load_query( const char* filename ) {
	FILE* fp;

	// Sanity check
	if( ! filename || ! *filename ) {
		fprintf( stderr, "Name of query file is empty or missing\n" );
		return NULL;
	}

	// Open query file, or use standard input
	if( ! strcmp( filename, "-" ) )
		fp = stdin;
	else {
		fp = fopen( filename, "r" );
		if( !fp ) {
			fprintf( stderr, "Unable to open query file \"%s\"\n", filename );
			return NULL;
		}
	}

	// Load file into a growing_buffer
	size_t num_read;
	char buf[ BUFSIZ + 1 ];
	growing_buffer* gb = buffer_init( sizeof( buf ) );

	while( ( num_read = fread( buf, 1, sizeof( buf ) - 1, fp ) ) ) {
		buf[ num_read ] = '\0';
		buffer_add( gb, buf );
	}

	if( fp != stdin )
		fclose( fp );

	return buffer_release( gb );
}
开发者ID:CloCkWeRX,项目名称:Evergreen,代码行数:35,代码来源:test_json_query.c


示例11: pthread_mutex_lock

void *producer_function(void *b)
{
  buffer *buff = (buffer *)b;

  int i;
  for (i = 0; i < 100; i++)
    {
      pthread_mutex_lock(buff->mut);
      if(buff->full)
	{
	  printf("buffer full, waiting...\n");
	  pthread_cond_wait(buff->notFull, buff->mut);
	}

      int random = generate_random_number(RANDOM_NUMBER_UPPER_LIMIT);

      buffer_add(buff, random);

      printf("produced %d\n", random);

      pthread_mutex_unlock(buff->mut);

      /* Sleep either 1s or 4s (50% chance for each) */
      if (generate_random_number(99) < 50)
	{
	  usleep(1000000);
	}
      else 
	{
	  usleep(4000000);
	}
    }

  return NULL;
}
开发者ID:drusk,项目名称:archive,代码行数:35,代码来源:prodcons.c


示例12: _escape_xml

static char* _escape_xml (const char* text) {
	growing_buffer* b = buffer_init(256);
	int len = strlen(text);
	int i;
	for (i = 0; i < len; i++) {
		if (text[i] == '&')
			buffer_add(b,"&amp;");
		else if (text[i] == '<')
			buffer_add(b,"&lt;");
		else if (text[i] == '>')
			buffer_add(b,"&gt;");
		else
			buffer_add_char(b,text[i]);
	}
	return buffer_release(b);
}
开发者ID:StephenGWills,项目名称:OpenSRF,代码行数:16,代码来源:osrf_json_xml.c


示例13: producer_operation

static void producer_operation(int sfd)
{
	while(status_on)
	{	
		int peer_sfd = accept(sfd,NULL,NULL);                           
		if(peer_sfd<0) 
		{
			print_log(WARNING,"\nACCEPT FAILED MAY BE BECAUSE OF INTERRUPT");
			continue;
		}
		if(pthread_mutex_lock(&buffer_lock_mtx)!=0)
			print_log(WARNING,"\nthere is error in lock prod");
		while(is_buffer_full()) 
		{
			if(pthread_cond_wait(&buffer_not_full_cond,&buffer_lock_mtx)!=0)
				print_log(WARNING,"\nthere is error in wait prod");
		}

		buffer_add(peer_sfd);				

		if(pthread_cond_broadcast(&buffer_not_empty_cond)!=0)
			print_log(WARNING,"\nthere is error in broadcast");
		if(pthread_mutex_unlock(&buffer_lock_mtx)!=0)
			print_log(WARNING,"\nthere is erorr in unlock");
	}
	destroy_buffer();
}
开发者ID:SylvanHuang,项目名称:Http-Server,代码行数:27,代码来源:server.c


示例14: connection_on_read_callback

static void
connection_on_read_callback(uv_stream_t *stream, ssize_t nRead, const uv_buf_t *buf)
{
    Client *client = stream->data;

    assert(client != NULL);

    if(nRead == UV_EOF)
    {
        // TODO: exit client due to connection closed, probably get consolidated
        // with below
        client_free(client);
        return;
    }
    else if(nRead < 0)
    {
        // TODO: exit client due to read error
        client_free(client);
        return;
    }

    buffer_add(client->ReadBuffer, buf->base, (size_t)nRead);

    client_process_read_buffer(client);

    Free(buf->base);
}
开发者ID:cryogen,项目名称:oftc-ircd,代码行数:27,代码来源:connection.c


示例15: labelset_add

int labelset_add(unsigned char* labelset, unsigned long* labelset_len, const unsigned long labelset_maxlen,
              const unsigned char* label, const unsigned char label_len)
{
  unsigned char* bufptr;
  if (labelset_len == NULL)
    return -1;
  if (*labelset_len > LABELSETMAXLEN || labelset_maxlen > LABELSETMAXLEN)
    return -1;
  if (*labelset_len >= labelset_maxlen || *labelset_len + label_len + 1 > labelset_maxlen)
    return -1;
  if (*labelset_len < 3 || labelset_maxlen < 4)
    return -1;
  if (label_len > LABELMAXLEN)
    return -1;

  labelset[0]++;
  labelset[*labelset_len] = label_len;
  bufptr = labelset + *labelset_len + 1;
  bufptr = buffer_add(bufptr, labelset + labelset_maxlen, label, label_len);
  if (bufptr == NULL)
    return -1;
  if (bufptr - labelset >= labelset_maxlen)
    return -1;
  if (bufptr - labelset != *labelset_len + 1 + label_len)
    return -1;

  *labelset_len += (1 + label_len);
  return 0;
}
开发者ID:Shyamranny,项目名称:curve25519-java,代码行数:29,代码来源:gen_labelset.c


示例16: buffer_poll

/* Fill buffers from socket based on poll results. */
int
buffer_poll(struct pollfd *pfd, struct buffer *in, struct buffer *out)
{
	ssize_t	n;

	if (pfd->revents & (POLLERR|POLLNVAL|POLLHUP))
		return (-1);
	if (pfd->revents & POLLIN) {
		buffer_ensure(in, BUFSIZ);
		n = read(pfd->fd, BUFFER_IN(in), BUFFER_FREE(in));
		if (n == 0)
			return (-1);
		if (n == -1) {
			if (errno != EINTR && errno != EAGAIN)
				return (-1);
		} else
			buffer_add(in, n);
	}
	if (BUFFER_USED(out) > 0 && pfd->revents & POLLOUT) {
		n = write(pfd->fd, BUFFER_OUT(out), BUFFER_USED(out));
		if (n == -1) {
			if (errno != EINTR && errno != EAGAIN)
				return (-1);
		} else
			buffer_remove(out, n);
	}
	return (0);
}
开发者ID:ThomasAdam,项目名称:tmux-ARCHIVED,代码行数:29,代码来源:buffer-poll.c


示例17: client_handle

/* s is the file descriptor of a client that has
 * pending data. Turn it back into a struct client
 * using the lookup table.
 * Read data up to 256 characters from the socket.
 * Returns the status of the client, true for alive
 * or false for dead.
 */
int client_handle(int s)
{
	client *c;
	char buf[256];
	int r;

	c = clients[s];
	
	/* Read up to 256 bytes from the client */
	r = socket_read(s, buf, 256);
	if(r == 0)
	{
		/* 0 bytes read means the client has disconnected */
		client_destroy(s);
		return 0;
	}

	/* Returns whether the buffer has something useful in it */
	r = buffer_add(c->buffer, buf, r); 
	if(r)
	{
	//	printf("Client %d said '%s'\n", s, buffer_get(c->buffer));
		parse(s, c);

	}
	return 1;
}
开发者ID:Happy0,项目名称:Diablo-MUD,代码行数:34,代码来源:client.c


示例18: append_msg

/**
	@brief Add a message to an output buffer.
	@param outbuf Pointer to the output buffer.
	@param msg Pointer to the message to be added, in the form of a JSON string.

	Since the output buffer is in the form of a JSON array, prepend a left bracket to the
	first message, and a comma to subsequent ones.

	Used only by servers to respond to clients.
*/
static inline void append_msg( growing_buffer* outbuf, const char* msg ) {
	if( outbuf && msg ) {
		char prefix = buffer_length( outbuf ) > 0 ? ',' : '[';
		buffer_add_char( outbuf, prefix );
		buffer_add( outbuf, msg );
	}
}
开发者ID:gchrlsyslib,项目名称:OpenSRF,代码行数:17,代码来源:osrf_application.c


示例19: assert

/*
 * Trunk an initial buffer into several pieces upon two separators
 * Careful returned list must then be free with list_free()
 */
list *list_explode_start_end(char separator_start, char separator_end, buffer * value)
{
    list *l;
    size_t i;
    buffer *buf;

    assert(value);

    l = list_init();

    /* If first char doesn't match separator, list contains only one element */
    if (value->buf[0] != separator_start) {
        list_add_by_copy(l, value);
        return l;
    }

    buf = buffer_init();

    for (i = 1 ; i < value->use ; i++)
             if (value->buf[i] == separator_end)   { list_add(l, buf); }
        else if (value->buf[i] != separator_start) { buffer_add(buf, value->buf[i]); }
        else     /* separator_start */             { buf = buffer_init(); }

    return l;
}
开发者ID:aboudreault,项目名称:tinyows,代码行数:29,代码来源:list.c


示例20: io_vwriteline

/* Write a line to the io write buffer from a va_list. */
void
io_vwriteline(struct io *io, const char *fmt, va_list ap)
{
    int	 n;
    va_list	 aq;

    if (io->error != NULL)
        return;

    IO_DEBUG(io, "in: wr: used=%zu, free=%zu",
             BUFFER_USED(io->wr), BUFFER_FREE(io->wr));

    if (fmt != NULL) {
        va_copy(aq, ap);
        n = xvsnprintf(NULL, 0, fmt, aq);
        va_end(aq);

        buffer_ensure(io->wr, n + 1);
        xvsnprintf(BUFFER_IN(io->wr), n + 1, fmt, ap);
        buffer_add(io->wr, n);
    } else
        n = 0;
    io_write(io, io->eol, strlen(io->eol));

    IO_DEBUG(io, "out: %zu bytes, wr: used=%zu, free=%zu",
             n + strlen(io->eol), BUFFER_USED(io->wr), BUFFER_FREE(io->wr));
}
开发者ID:mbeck-,项目名称:fdm,代码行数:28,代码来源:io.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ buffer_add_ssh_string函数代码示例发布时间:2022-05-30
下一篇:
C++ bufferPrintf函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap