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

C++ buffer_new函数代码示例

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

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



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

示例1: Destroy

bool CPeerBase::Accept(socket_t fd_accept)
{
	struct sockaddr_in peer;

	if ((m_fd = socket_accept(fd_accept, &peer)) == INVALID_SOCKET)
	{
		Destroy();
		return false;
	} 

	//socket_block(m_fd);
	socket_sndbuf(m_fd, 233016);
	socket_rcvbuf(m_fd, 233016);

	strlcpymt(m_host, inet_ntoa(peer.sin_addr), sizeof(m_host));
	m_outBuffer = buffer_new(DEFAULT_PACKET_BUFFER_SIZE);
	m_inBuffer = buffer_new(MAX_INPUT_LEN);

	if (!m_outBuffer || !m_inBuffer)
	{
		Destroy();
		return false;
	}

	fdwatch_add_fd(m_fdWatcher, m_fd, this, FDW_READ, false);

	OnAccept();
	sys_log(0, "ACCEPT FROM %s", inet_ntoa(peer.sin_addr));
	return true;
}
开发者ID:adi97ida,项目名称:Server,代码行数:30,代码来源:PeerBase.cpp


示例2: xmalloc

connection *connection_new(enum connection_status status, int fd)
{
  // Allocate memory
  connection *c = xmalloc(sizeof(connection));

  // Get connection timestamp
  struct timeval connecttime;
  gettimeofday(&connecttime, NULL);

  // Fill in fields
  c->status          = status;
  c->version         = CONNECTION_VERSION_1_2;
  c->error           = 0;
  c->fd              = fd;
  c->inheartbeat     = 0;
  c->outheartbeat    = 0;
  c->readtime        = connecttime;
  c->writetime       = connecttime;
  c->inbuffer        = buffer_new(4096);
  c->outbuffer       = buffer_new(4096);
  c->frameparser     = frameparser_new();
  c->frameserializer = frameserializer_new();

  return c;
}
开发者ID:karlpilkington,项目名称:ministompd,代码行数:25,代码来源:connection.c


示例3: main

int
main(int argc, char **argv, const char *ZEBRA_VTYSH_PATH)
{
  struct buffer *b1, *b2;
  int n;
  char junk[3];
  char c = 'a';

  memory_init();
  
  if ((argc != 2) || (sscanf(argv[1], "%d%1s", &n, junk) != 1))
    {
      fprintf(stderr, "Usage: %s <number of chars to simulate>\n", *argv);
      return 1;
    }

  b1 = buffer_new(0);
  b2 = buffer_new(1024);
  
  while (n-- > 0)
    {
      buffer_put(b1, &c, 1);
      buffer_put(b2, &c, 1);
      if (c++ == 'z')
        c = 'a';
      buffer_reset(b1);
      buffer_reset(b2);
    }
  buffer_free(b1);
  buffer_free(b2);
  return 0;
}
开发者ID:rickb59,项目名称:quagga-vrf,代码行数:32,代码来源:test-buffer.c


示例4: TEST

TEST(Buffer, UTF8)
{
	buffer * buf, * utf8;
	unsigned char* copy;
	size_t len;

	buf = buffer_new(1);
	buffer_append_string(buf, "诶");
	EXPECT_EQ(buf->size, 5);
	EXPECT_EQ(buf->used, 3);
	
	len = buf->used;
	copy = (unsigned char*) malloc(len + 1);
	memcpy( copy, buf->data, len);
	copy[len] = '\0';
	buffer_destroy(buf);
	
	buf = buffer_new(len);
	buffer_append_data(buf, copy, len);
	utf8 = buffer_to_buffer_utf8(buf);
	buffer_destroy(buf);
	EXPECT_EQ(utf8->used, len * 2);

	buf = buffer_utf8_to_buffer(utf8);
	EXPECT_EQ(buf->used, len);
	EXPECT_TRUE(strcmp((char*)buf->data, (char*)copy) == 0);
	EXPECT_EQ(buf->size, 4);
	EXPECT_EQ(buf->used, 3);
	
	buffer_destroy(buf);
	buffer_destroy(utf8);
	free(copy);
	
}
开发者ID:paraboul,项目名称:libapenetwork,代码行数:34,代码来源:unittest_buffer.cpp


示例5: calloc

struct fast_session *fast_session_new(struct fast_session_cfg *cfg)
{
	struct fast_session *self = calloc(1, sizeof *self);
	struct stat statbuf;

	if (!self)
		return NULL;

	self->rx_buffer		= buffer_new(FAST_RECV_BUFFER_SIZE);
	if (!self->rx_buffer) {
		fast_session_free(self);
		return NULL;
	}

	self->tx_message_buffer		= buffer_new(FAST_TX_BUFFER_SIZE);
	if (!self->tx_message_buffer) {
		fast_session_free(self);
		return NULL;
	}

	self->tx_pmap_buffer		= buffer_new(FAST_TX_BUFFER_SIZE);
	if (!self->tx_pmap_buffer) {
		fast_session_free(self);
		return NULL;
	}

	self->rx_messages	= fast_message_new(FAST_TEMPLATE_MAX_NUMBER);
	if (!self->rx_messages) {
		fast_session_free(self);
		return NULL;
	}

	if (cfg->preamble_bytes > FAST_PREAMBLE_MAX_BYTES) {
		fast_session_free(self);
		return NULL;
	} else
		self->preamble.nr_bytes = cfg->preamble_bytes;

	if (fstat(cfg->sockfd, &statbuf))
		return NULL;

	if (!S_ISSOCK(statbuf.st_mode)) {
		self->send = xwritev0;
		self->recv = buffer_nread0;
	} else {
		self->send = sendmsg;
		self->recv = buffer_recv;
	}

	self->sockfd		= cfg->sockfd;
	self->reset		= cfg->reset;
	self->rx_message	= NULL;
	self->last_tid		= 0;
	self->nr_messages	= 0;

	return self;
}
开发者ID:natewave,项目名称:libtrading,代码行数:57,代码来源:fast_session.c


示例6: log_error

tcp_connection_t* tcp_connection_new
(
    loop_t *loop, int fd, on_data_f datacb, on_close_f closecb, void* userdata, const inetaddr_t *peer_addr
)
{
    tcp_connection_t *connection;
    struct sockaddr_in addr;
    socklen_t addr_len;
    
    struct linger linger_info;
    int flag;

    if (NULL == loop || fd < 0 || NULL == datacb || NULL == closecb || NULL == peer_addr)
    {
        log_error("tcp_connection_new: bad loop(%p) or bad fd(%d) or bad datacb(%p) or bad closecb(%p) or bad peer_addr(%p)", 
            loop, fd, datacb, closecb, peer_addr);
        return NULL;
    }

    connection = (tcp_connection_t*)malloc(sizeof(*connection));
	memset(connection, 0, sizeof(*connection));

    flag = 1;
    setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &flag, sizeof(flag));
    
    memset(&linger_info, 0, sizeof(linger_info));
    linger_info.l_onoff = 1;
    linger_info.l_linger = 3;
    setsockopt(fd, SOL_SOCKET, SO_LINGER, &linger_info, sizeof(linger_info));

    connection->loop = loop;
    connection->fd = fd;
    connection->datacb = datacb;
    connection->closecb = closecb;
    connection->userdata = userdata;

    connection->channel = channel_new(fd, loop, connection_onevent, connection);

    connection->in_buffer = buffer_new(4096);
    connection->out_buffer = buffer_new(4096);

    connection->is_in_callback = 0;
    connection->is_alive = 1;
    connection->is_connected = 1;
    connection->need_closed_after_sent_done = 0;
    connection->peer_addr = *peer_addr;

    memset(&addr, 0, sizeof(addr));
    addr_len = sizeof(addr);
    getsockname(fd, (struct sockaddr*)&addr, &addr_len);
    inetaddr_init(&connection->local_addr, &addr);

    channel_setevent(connection->channel, EPOLLIN);

    return connection;
}
开发者ID:github188,项目名称:tinylib,代码行数:56,代码来源:tcp_connection.c


示例7: define_pair_procedures

/* Define procedures cadr, caddr, etc. */
static void define_pair_procedures(env_hashtable *env)
{
    buffer *a = buffer_new(""),
           *b = buffer_new("x");
           
    define_recursive(a, b, 0, env);
    
    buffer_free(a);
    buffer_free(b);
}
开发者ID:medici,项目名称:Scheme-1,代码行数:11,代码来源:init.c


示例8: tunet_init

VOID tunet_init()
{
	main_socket_buffer = buffer_new(1024);
	keepalive_socket_buffer = buffer_new(1024);
	logout_socket_buffer = buffer_new(1024);

	thread_tunet = NULL;
	keepalive_timeout = os_tick_new(5 * 60 * 1000, FALSE);

	tunet_state = TUNET_STATE_NONE;
}
开发者ID:alick,项目名称:mytunet,代码行数:11,代码来源:tunet.c


示例9: inet_ntoa

bool DESC::Setup(LPFDWATCH _fdw, socket_t _fd, const struct sockaddr_in & c_rSockAddr, DWORD _handle, DWORD _handshake)
{
	m_lpFdw		= _fdw;
	m_sock		= _fd;

	m_stHost		= inet_ntoa(c_rSockAddr.sin_addr);
	m_wPort			= c_rSockAddr.sin_port;
	m_dwHandle		= _handle;

	//if (LC_IsEurope() == true || LC_IsNewCIBN())
	//	m_lpOutputBuffer = buffer_new(DEFAULT_PACKET_BUFFER_SIZE * 2);
	//else
	//NOTE: 이걸 나라별로 다르게 잡아야할 이유가 있나?
	m_lpOutputBuffer = buffer_new(DEFAULT_PACKET_BUFFER_SIZE * 2);

	m_iMinInputBufferLen = MAX_INPUT_LEN >> 1;
	m_lpInputBuffer = buffer_new(MAX_INPUT_LEN);

	m_SockAddr = c_rSockAddr;

	fdwatch_add_fd(m_lpFdw, m_sock, this, FDW_READ, false);

	// Ping Event 
	desc_event_info* info = AllocEventInfo<desc_event_info>();

	info->desc = this;
	assert(m_pkPingEvent == NULL);

	m_pkPingEvent = event_create(ping_event, info, ping_event_second_cycle);

#ifndef _IMPROVED_PACKET_ENCRYPTION_
	if (LC_IsEurope())	
	{
		thecore_memcpy(m_adwEncryptionKey, "1234abcd5678efgh", sizeof(DWORD) * 4);
		thecore_memcpy(m_adwDecryptionKey, "1234abcd5678efgh", sizeof(DWORD) * 4);
	}
	else
	{
		thecore_memcpy(m_adwEncryptionKey, "testtesttesttest", sizeof(DWORD) * 4);
		thecore_memcpy(m_adwDecryptionKey, "testtesttesttest", sizeof(DWORD) * 4);
	}
#endif // _IMPROVED_PACKET_ENCRYPTION_

	// Set Phase to handshake
	SetPhase(PHASE_HANDSHAKE);
	StartHandshake(_handshake);

	sys_log(0, "SYSTEM: new connection from [%s] fd: %d handshake %u output input_len %d, ptr %p",
			m_stHost.c_str(), m_sock, m_dwHandshake, buffer_size(m_lpInputBuffer), this);

	Log("SYSTEM: new connection from [%s] fd: %d handshake %u ptr %p", m_stHost.c_str(), m_sock, m_dwHandshake, this);
	return true;
}
开发者ID:ronniwe,项目名称:Varios,代码行数:53,代码来源:desc.cpp


示例10: ape_array_add_n

void ape_array_add_n(ape_array_t *array, const char *key, int klen, const char *value, int vlen)
{
	buffer *k, *v;
	
	k = buffer_new(klen+1);
	v = buffer_new(vlen+1);
	
	buffer_append_string_n(k, key, klen);
	buffer_append_string_n(v, value, vlen);
	
	ape_array_add_b(array, k, v);
}
开发者ID:bigmaliang,项目名称:APE-Server-v2,代码行数:12,代码来源:ape_array.c


示例11: buffer_new

Buffer *pcp_keyblob(void *k, int type) {
  if(type == PCP_KEY_TYPE_PUBLIC) {
    Buffer *b = buffer_new(PCP_RAW_PUBKEYSIZE, "bp");
    pcp_pubkeyblob(b, (pcp_pubkey_t *)k);
    return b;
  }
  else {
    Buffer *b = buffer_new(PCP_RAW_KEYSIZE, "bs");
    pcp_seckeyblob(b, (pcp_key_t *)k);
    return b;
  }
}
开发者ID:aloisdg,项目名称:pcp,代码行数:12,代码来源:key.c


示例12: ccnet_packet_io_new

CcnetPacketIO*
ccnet_packet_io_new (evutil_socket_t fd)
{
    CcnetPacketIO *io;

    io = g_malloc (sizeof(CcnetPacketIO));
    io->fd = fd;
    io->buffer = buffer_new ();
    io->in_buf = buffer_new ();
   
    return io;
}
开发者ID:9thsector,项目名称:ccnet,代码行数:12,代码来源:packet-io.c


示例13: handle_connect_addr

int 
handle_connect_addr(struct ludis_handle *h, const struct net_addr addr)
{
    int fd;

    if ((fd = fd_connect_addr(addr)) < 0)
        return fd;

    h->fd = fd;
    h->rb = buffer_new(0);
    h->wb = buffer_new(0);

    return LUDIS_OK;
}
开发者ID:simonz05,项目名称:ludis,代码行数:14,代码来源:handle.c


示例14: handle_connect_gai

int 
handle_connect_gai(struct ludis_handle *h, int family, const char *host, 
                   int port, struct net_addr *addr) 
{
    int fd;

    if ((fd = fd_connect_gai(family, host, port, addr)) < 0)
        return fd;

    h->fd = fd;
    h->rb = buffer_new(0);
    h->wb = buffer_new(0);

    return LUDIS_OK;
}
开发者ID:simonz05,项目名称:ludis,代码行数:15,代码来源:handle.c


示例15:

BUFFER *buffer_append(BUFFER *buf, BYTE *newdata, INT len)
{
	BYTE *p;
	INT newlen;
	
	if (len <= 0) return buf;
	if (!buf) buf = buffer_new(len);

	if (len + buf->len > buf->allocated_len)
	{
		newlen = (len + buf->len) * 3 / 2 + 1;
		p = (BYTE *)os_new(CHAR, newlen);
		buf->allocated_len = newlen;
		memcpy(p, buf->data, buf->len);
	}
	else
	{
		p = buf->data;
	}

	memcpy(p + buf->len, newdata, len);

	if (buf->data != p)
	{
		os_free(buf->data);
		buf->data = p;
	}

	buf->len += len;
	return buf;
}
开发者ID:frankpzh,项目名称:Project-archive,代码行数:31,代码来源:os.c


示例16: buffer_new

/* this is a public key in openssh's format */
static STRING *make_rsa1_string(STRING *e, STRING *n){
  BUFFER *buffer = NULL;
  STRING *rsa = NULL;
  STRING *ret = NULL;

  buffer = buffer_new();
  rsa = string_from_char("ssh-rsa1");

  if (buffer_add_ssh_string(buffer, rsa) < 0) {
    goto error;
  }
  if (buffer_add_ssh_string(buffer, e) < 0) {
    goto error;
  }
  if (buffer_add_ssh_string(buffer, n) < 0) {
    goto error;
  }

  ret = string_new(buffer_get_len(buffer));
  if (ret == NULL) {
    goto error;
  }

  string_fill(ret, buffer_get(buffer), buffer_get_len(buffer));
error:
  buffer_free(buffer);
  string_free(rsa);

  return ret;
}
开发者ID:BackupTheBerlios,项目名称:libssh-svn,代码行数:31,代码来源:kex.c


示例17: test_boe_replay_complete

void test_boe_replay_complete(void)
{
	struct boe_message *msg = (void *) recv_buffer;
	struct buffer *buf;
	int fd;

	buf = buffer_new(1024);

	fd = open(DATA_PATH "replay-complete-message.bin", O_RDONLY);
	fail_if(fd < 0);

	fail_if(buffer_xread(buf, fd) < 0);

	fail_if(boe_message_decode(buf, msg, BOE_MAX_MESSAGE_LEN) < 0);

	assert_int_equals(BOE_MAGIC, msg->header.StartOfMessage);
	assert_int_equals(8, msg->header.MessageLength);
	assert_int_equals(ReplayComplete, msg->header.MessageType);
	assert_int_equals(0, msg->header.MatchingUnit);
	assert_int_equals(0, msg->header.SequenceNumber);

	buffer_delete(buf);

	fail_if(close(fd) < 0);
}
开发者ID:JerJohn15,项目名称:libtrading,代码行数:25,代码来源:boe-test.c


示例18: buffer_new_read

static buffer_t *
buffer_new_read(const void *data, zip_uint64_t length, int free_data)
{
    buffer_t *buffer;

    if ((buffer = buffer_new(length)) == NULL) {
	return NULL;
    }

    buffer->size = length;

    if (length > 0) {
	if ((buffer->fragments = malloc(sizeof(*(buffer->fragments)))) == NULL) {
	    buffer_free(buffer);
	    return NULL;
	}
	buffer->fragments_capacity = 1;

	buffer->nfragments = 1;
	buffer->fragments[0] = (zip_uint8_t *)data;
	buffer->free_data = free_data;
    }

    return buffer;
}
开发者ID:AxiosCros,项目名称:php-src,代码行数:25,代码来源:zip_source_buffer.c


示例19: channel_request_subsystem

/**
 * @brief Request a subsystem (for example "sftp").
 *
 * @param channel       The channel to send the request.
 *
 * @param system        The subsystem to request (for example "sftp").
 *
 * @return SSH_SUCCESS on success, SSH_ERROR on error.
 *
 * @warning You normally don't have to call it for sftp, see sftp_new().
 */
int channel_request_subsystem(CHANNEL *channel, const char *sys) {
  BUFFER *buffer = NULL;
  STRING *subsystem = NULL;
  int rc = SSH_ERROR;

  buffer = buffer_new();
  if (buffer == NULL) {
    goto error;
  }

  subsystem = string_from_char(sys);
  if (subsystem == NULL) {
    goto error;
  }

  if (buffer_add_ssh_string(buffer, subsystem) < 0) {
    goto error;
  }

  rc = channel_request(channel, "subsystem", buffer, 1);
error:
  buffer_free(buffer);
  string_free(subsystem);

  return rc;
}
开发者ID:BackupTheBerlios,项目名称:libssh-svn,代码行数:37,代码来源:channels.c


示例20: channel_change_pty_size

/**
 * @brief Change the size of the terminal associated to a channel.
 *
 * @param channel       The channel to change the size.
 *
 * @param cols          The new number of columns.
 *
 * @param rows          The new number of rows.
 *
 * @warning Do not call it from a signal handler if you are not
 * sure any other libssh function using the same channel/session
 * is running at same time (not 100% threadsafe).
 */
int channel_change_pty_size(CHANNEL *channel, int cols, int rows) {
  SSH_SESSION *session = channel->session;
  BUFFER *buffer = NULL;
  int rc = SSH_ERROR;

  enter_function();

#ifdef HAVE_SSH1
  if (channel->version == 1) {
    rc = channel_change_pty_size1(channel,cols,rows);
    leave_function();
    return rc;
  }
#endif

  buffer = buffer_new();
  if (buffer == NULL) {
    goto error;
  }

  if (buffer_add_u32(buffer, htonl(cols)) < 0 ||
      buffer_add_u32(buffer, htonl(rows)) < 0 ||
      buffer_add_u32(buffer, 0) < 0 ||
      buffer_add_u32(buffer, 0) < 0) {
    goto error;
  }

  rc = channel_request(channel, "window-change", buffer, 0);
error:
  buffer_free(buffer);

  leave_function();
  return rc;
}
开发者ID:BackupTheBerlios,项目名称:libssh-svn,代码行数:47,代码来源:channels.c



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C++ buffer_ptr函数代码示例发布时间:2022-05-30
下一篇:
C++ buffer_locked函数代码示例发布时间: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