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

C++ buffer_alloc函数代码示例

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

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



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

示例1: vmFileClassInitCallback

static vmVariant vmFileClassInitCallback(vmRuntimeContext context,vmClass * clazz,vmObject * object,vmVariantList args,InvokeTickDeclare){
    vmFile * file = (vmFile *) object;
    vmVariant rs=  {vmVariantTypeVoid,0};
    hbuffer_t bPath = buffer_alloc(128, 128);
    hbuffer_t bMode = buffer_alloc(32, 32);
    vmVariant path = vmVariantListGet(args, 0);
    vmVariant mode = vmVariantListGet(args, 1);
    
    vmVariantToString(context, path, bPath);
    vmVariantToString(context, mode, bMode);
    
    
    if(buffer_length(bPath) ==0){
        rs = vmRuntimeContextException(context, 0, "not found argument 1 file path");
    }
    
    if(rs.type == vmVariantTypeVoid){
        file->file = fopen(buffer_to_str(bPath), buffer_to_str(bMode));
    }
    
    if(!file->file){
        rs = vmRuntimeContextException(context, 0, "not found argument 2 file mode");
    }
    
    buffer_dealloc(bPath);
    buffer_dealloc(bMode);

    file->uniqueKeys.flush = vmRuntimeContextGetUniqueKey(context, "flush");
    file->uniqueKeys.read = vmRuntimeContextGetUniqueKey(context, "read");
    file->uniqueKeys.write = vmRuntimeContextGetUniqueKey(context, "write");
    file->uniqueKeys.seek = vmRuntimeContextGetUniqueKey(context, "seek");
    file->uniqueKeys.pos = vmRuntimeContextGetUniqueKey(context, "pos");
    
    return rs;
}
开发者ID:hailongz,项目名称:c,代码行数:35,代码来源:hvmfile.c


示例2: makebuffer

BUFFER *set_table_cmap( void ) {

  BUFFER *cmap_buf = makebuffer( sizeof( OTF_TABLE_CMAP ) +
                                 sizeof( OTF_CMAP_FORMAT4_ENCTABLE ) +
                                 sizeof( OTF_CMAP_FORMAT6_ENCTABLE ) );
  OTF_TABLE_CMAP *t_cmaptable =
      buffer_alloc( cmap_buf, sizeof( OTF_TABLE_CMAP ) );
  t_cmaptable->version = 0;
  t_cmaptable->numTables = htons( 3 );
  t_cmaptable->record1.platformID = 0;
  t_cmaptable->record1.encodingID = htons( 3 );
  t_cmaptable->record2.platformID = htons( 1 );
  t_cmaptable->record2.encodingID = 0;
  t_cmaptable->record3.platformID = htons( 3 );
  t_cmaptable->record3.encodingID = htons( 1 );

  OTF_CMAP_FORMAT4_ENCTABLE *t_cmap_encode4 =
      buffer_alloc( cmap_buf, sizeof( OTF_CMAP_FORMAT4_ENCTABLE ) );
  t_cmap_encode4->format = htons( 4 );
  t_cmap_encode4->length = htons( 40 );
  t_cmap_encode4->segCountX2 = htons( 6 );
  t_cmap_encode4->searchRange = htons( 4 );
  t_cmap_encode4->entrySelector = htons( 1 );
  t_cmap_encode4->rangeShift = htons( 2 );
  t_cmap_encode4->endCount1 = htons( 32 );
  t_cmap_encode4->endCount2 = htons( 46 );
  t_cmap_encode4->endCount3 = htons( 65535 );
  t_cmap_encode4->startCount1 = htons( 32 );
  t_cmap_encode4->startCount2 = htons( 46 );
  t_cmap_encode4->startCount3 = htons( 65535 );
  t_cmap_encode4->idDelta1 = htons( -31 );
  t_cmap_encode4->idDelta2 = htons( -44 );
  t_cmap_encode4->idDelta3 = htons( 1 );

  OTF_CMAP_FORMAT6_ENCTABLE *t_cmap_encode6 =
      buffer_alloc( cmap_buf, sizeof( OTF_CMAP_FORMAT6_ENCTABLE ) );
  t_cmap_encode6->format = htons( 6 );
  t_cmap_encode6->length = htons( 86 );
  t_cmap_encode6->firstCode = htons( 9 );
  t_cmap_encode6->entryCount = htons( 38 );
  t_cmap_encode6->entry[0] = htons( 1 );
  t_cmap_encode6->entry[4] = htons( 1 );
  t_cmap_encode6->entry[23] = htons( 1 );
  t_cmap_encode6->entry[37] = htons( 2 );

  /* Record one and three point at the same character. Record two is offset
   * immediatly following record one. */
  t_cmaptable->record1.offset = htonl( sizeof( OTF_TABLE_CMAP ) );
  t_cmaptable->record2.offset =
      htonl( sizeof( OTF_TABLE_CMAP ) + sizeof( OTF_CMAP_FORMAT4_ENCTABLE ) );
  t_cmaptable->record3.offset = htonl( sizeof( OTF_TABLE_CMAP ) );

  return cmap_buf;
}
开发者ID:Aeyoun,项目名称:fluxfonts,代码行数:54,代码来源:cmap.c


示例3: scan_full_array

//Scans the full the Cog and returns iterator.
iterator scan_full_array( struct cog *cog) {
  if( cog->type == COG_BTREE )
    {
      struct cog *a = cog->data.btree.lhs;
      struct cog *b = cog->data.btree.rhs;
      return iter_concat(
      scan_full_array(a),
      scan_full_array(b)
    );      
    }
  if( cog->type == COG_CONCAT )
    {
      struct cog *a = cog->data.concat.lhs;
      struct cog *b = cog->data.concat.rhs;
      return iter_concat(
      scan_full_array(a),
      scan_full_array(b)
    );
    }
  if( cog->type == COG_SORTEDARRAY )
    {
      int start = cog->data.array.start;
      int len = cog->data.array.len;
      struct record *in = buffer_start(cog->data.array.records, start);
      struct buffer *out = buffer_alloc(cog->data.sortedarray.len + 1);
      int i, tgt;
      iterator ret;
      for(i = 0, tgt = 0; i < len; i++){
        record_copy(&(in[i]), &(out->data[tgt]));
        tgt++;
      }
      ret = array_iter_alloc(out, 0, tgt);
      return ret;
    }
  if( cog->type == COG_ARRAY )
    {
      int start = cog->data.array.start;
      int len = cog->data.array.len;
      struct record *in = buffer_start(cog->data.array.records, start);
      struct buffer *out = buffer_alloc(cog->data.array.len );
      int i, tgt;
      iterator ret;
      for(i = 0, tgt = 0; i < len; i++){
        record_copy(&(in[i]), &(out->data[tgt]));
        tgt++;
      }
      ret = array_iter_alloc(out, 0, tgt);
      return ret;
    }
    fprintf(stderr, "Invalid Cog Type %d\n", cog->type);
    exit(-1);
}
开发者ID:agsimeonov,项目名称:jitd,代码行数:53,代码来源:cog.c


示例4: buffer_alloc

 Value * CDExpNotEqual::sql(const char * prefix,const char * suffix){
     InvokeTickBegin
     hbuffer_t buf = buffer_alloc(128, 128);
     Value * v = NULL;
     
     buffer_append_str(buf, "(");
     
     v = _left->sql(prefix, suffix);
     
     if(v){
         buffer_append_str(buf, v->stringValue());
     }
     
     buffer_append_str(buf, " <= ");
     
     v = _right->sql(prefix, suffix);
     
     if(v){
         buffer_append_str(buf, v->stringValue());
     }
     
     
     buffer_append_str(buf, ")");
     
     
     v = (Value *)(new Value(buffer_to_str(buf)))->autorelease();
     
     buffer_dealloc(buf);
     
     return v;
 }
开发者ID:hailongz,项目名称:cpp,代码行数:31,代码来源:CDExpNotEqual.cpp


示例5: getFilePathV

 Value * Bundle::getStringContentV(const char * format,va_list va){
     Value * path = getFilePathV(format,va);
     
     if(_parent){
         return _parent->getStringContent(path->stringValue());
     }
     
     Value * v = NULL;
     InvokeTickBegin
     hbuffer_t content = buffer_alloc(512, 512);
     FILE * f = fopen(path->stringValue(), "r");
     char buffer[1024];
     int len;
     
     if(f){
         while((len = fread(buffer, 1, sizeof(buffer), f)) >0){
             buffer_append(content, buffer, len);
         }
         fclose(f);
     }
     
     v = Value::newValue(buffer_to_str(content));
     
     buffer_dealloc(content);
     
     return v;
 }
开发者ID:hailongz,项目名称:cpp,代码行数:27,代码来源:Bundle.cpp


示例6: BLI_buffer_resize

void BLI_buffer_resize(BLI_Buffer *buffer, const size_t new_count)
{
	if (UNLIKELY(new_count > buffer->alloc_count)) {
		if (buffer->flag & BLI_BUFFER_USE_STATIC) {
			void *orig = buffer->data;

			buffer->data = buffer_alloc(buffer, new_count);
			memcpy(buffer->data, orig, buffer->elem_size * buffer->count);
			buffer->alloc_count = new_count;
			buffer->flag &= ~BLI_BUFFER_USE_STATIC;
		}
		else {
			if (buffer->alloc_count && (new_count < buffer->alloc_count * 2)) {
				buffer->alloc_count *= 2;
			}
			else {
				buffer->alloc_count = new_count;
			}

			buffer->data = buffer_realloc(buffer, buffer->alloc_count);
		}
	}

	buffer->count = new_count;
}
开发者ID:DarkDefender,项目名称:blender-npr-tess2,代码行数:25,代码来源:buffer.c


示例7: subst_list_filtered_fprintf

/**
   This function writes a filtered version of string to a file.
*/
void subst_list_filtered_fprintf(const subst_list_type * subst_list , const char * string , FILE * stream) {
  buffer_type * buffer = buffer_alloc( strlen(string) + 1 );
  buffer_fwrite( buffer , string , 1 , strlen( string ) + 1);
  subst_list_update_buffer(subst_list , buffer);
  buffer_stream_fwrite_n( buffer , 0 , -1 , stream );  /* -1: The trailing \0 is not explicitly written to file. */
  buffer_free(buffer);
}
开发者ID:akva2,项目名称:ResInsight,代码行数:10,代码来源:subst_list.c


示例8: register_put

bool register_put(Register *reg, Text *txt, Filerange *range) {
	size_t len = range->end - range->start;
	if (!buffer_alloc((Buffer*)reg, len))
		return false;
	reg->len = text_bytes_get(txt, range->start, len, reg->data);
	return true;
}
开发者ID:dduros1,项目名称:automated-detection-thesis,代码行数:7,代码来源:register.c


示例9: list_split_str

void list_split_str(hlist_t hlist, hcchar * str,hcchar *split_chars,InvokeTickDeclare){
	if(hlist && str && split_chars){
		hchar * p = (hchar *)str;
		hchar *s = NULL;
		hbuffer_t buffer = buffer_alloc(1024, 1024);
		
		while(*p !='\0'){
			if(list_split_str_exist_char(split_chars,p,InvokeTickArg) ){
				if(buffer_length(buffer) > 0){
					s = NULL;
					str_cpy(&s, buffer_to_str(buffer));
					list_add(hlist, s,InvokeTickArg);
					buffer_clear(buffer);
				}
			}
			else{
				buffer_append(buffer, p, 1);
			}
			p++;
		}
		
		if(buffer_length(buffer) >0){
			s = NULL;
			str_cpy(&s, buffer_to_str(buffer));
			list_add(hlist, s,InvokeTickArg);
		}
		
		buffer_dealloc(buffer);
	}
}
开发者ID:hailongz,项目名称:c,代码行数:30,代码来源:hlist.c


示例10: buffer_alloc

/**
 * Allocate a buffer for a dot-matrix page.
 * This is only done once per page at initialization.
 */
static struct buffer *asciidmd_alloc (void)
{
	struct buffer *buf = buffer_alloc (128 * 32 / 8);
	buf->width = 128 / 8;
	buf->height = 32;
	return buf;
}
开发者ID:CardonaPinball,项目名称:freewpc,代码行数:11,代码来源:asciidmd.c


示例11: vmSqliteClassInitCallback

static vmVariant vmSqliteClassInitCallback(vmRuntimeContext context,vmClass * clazz,vmObject * object,vmVariantList args,InvokeTickDeclare){
    vmVariant rs=  {vmVariantTypeVoid,0};
    vmSqlite * sqlite = (vmSqlite *) object;
    hbuffer_t file = buffer_alloc(128, 128);
    
    vmVariantToString(context, vmVariantListGet(args, 0), file);
    
    if(sqlite3_open(buffer_to_str(file), & sqlite->_sqlite)){
        
        rs = vmRuntimeContextException(context, sqlite3_errcode(sqlite->_sqlite), sqlite3_errmsg(sqlite->_sqlite));
        sqlite3_close(sqlite->_sqlite);
        
        sqlite->_sqlite = NULL;
    }
    
    buffer_dealloc(file);
    
    sqlite->uniqueKeys.exec = vmRuntimeContextGetUniqueKey(context, "exec");
    sqlite->uniqueKeys.query = vmRuntimeContextGetUniqueKey(context, "query");
    sqlite->uniqueKeys.lastRowId = vmRuntimeContextGetUniqueKey(context, "lastRowId");
    sqlite->uniqueKeys.encode = vmRuntimeContextGetUniqueKey(context, "encode");
    sqlite->uniqueKeys.sql = vmRuntimeContextGetUniqueKey(context, "sql");

    return rs;
}
开发者ID:hailongz,项目名称:c,代码行数:25,代码来源:hvmsqlite.c


示例12: hdata_print_json

void hdata_print_json(const hdata_class_t * data_class,hdata_t data,InvokeTickDeclare){
	if(data_class && DATA_STRUCT_ASSET(data)){
		hbuffer_t buffer = buffer_alloc(1024,  1024);
		hdata_write_json(data_class, data, buffer, hbool_true,InvokeTickArg);
		hlog("\n\n%s\n\n",buffer_to_str(buffer));
		buffer_dealloc(buffer);
	}
}
开发者ID:hailongz,项目名称:c,代码行数:8,代码来源:hdata.c


示例13: register_append

bool register_append(Register *reg, Text *txt, Filerange *range) {
	size_t rem = reg->size - reg->len;
	size_t len = range->end - range->start;
	if (len > rem && !buffer_alloc((Buffer*)reg, reg->size + len - rem))
		return false;
	reg->len += text_bytes_get(txt, range->start, len, reg->data + reg->len);
	return true;
}
开发者ID:dduros1,项目名称:automated-detection-thesis,代码行数:8,代码来源:register.c


示例14: vmBinaryInit

hbool vmBinaryInit(vmBinary * binary,InvokeTickDeclare){
    mem_memset(binary, 0, sizeof(vmBinary));
    binary->uniqueKeys = buffer_alloc(1024, 1024);
    binary->classMetas = vmCompileObjectArrayCreate();
    binary->operatorMetas = vmCompileObjectArrayCreate();
    
    return hbool_true;
}
开发者ID:hailongz,项目名称:c,代码行数:8,代码来源:hvermin_bin.c


示例15: enkf_fs_fwrite_restart_kw_list

void enkf_fs_fwrite_restart_kw_list(enkf_fs_type * enkf_fs , int report_step , int iens, const stringlist_type * kw_list) {
  buffer_type * buffer = buffer_alloc(1024);
  stringlist_buffer_fwrite( kw_list , buffer );
  {
    fs_driver_type * driver = enkf_fs->index;
    driver->save_node(driver , "kw_list" , report_step , iens , buffer);
  }
  buffer_free( buffer );
}
开发者ID:shulNN,项目名称:ert,代码行数:9,代码来源:enkf_fs.c


示例16: enkf_fs_fread_restart_kw_list

void enkf_fs_fread_restart_kw_list(enkf_fs_type * enkf_fs , int report_step , int iens, stringlist_type * kw_list) {
  buffer_type * buffer = buffer_alloc(1024);
  {
    fs_driver_type * driver = enkf_fs->index;
    driver->load_node(driver , "kw_list" , report_step , iens , buffer);
  }
  stringlist_buffer_fread( kw_list , buffer );
  buffer_free( buffer );
}
开发者ID:shulNN,项目名称:ert,代码行数:9,代码来源:enkf_fs.c


示例17: buffer_check_limits

static inline void
buffer_check_limits(struct real_buffer *buf, size_t pos, size_t data_size)
{
	unsigned int extra;
	size_t new_size;

	if (unlikely((size_t)-1 - pos < data_size)) {
		i_panic("Buffer write out of range (%"PRIuSIZE_T
			" + %"PRIuSIZE_T")", pos, data_size);
	}
	new_size = pos + data_size;

	if (new_size > buf->used && buf->used < buf->dirty) {
		/* clear used..dirty area */
		size_t max = I_MIN(I_MIN(buf->alloc, buf->dirty), new_size);

		memset(buf->w_buffer + buf->used, 0, max - buf->used);
	}

	/* always keep +1 byte allocated available in case str_c() is called
	   for this buffer. this is mainly for cases where the buffer is
	   allocated from data stack, and str_c() is called in a separate stack
	   frame. */
	extra = buf->dynamic ? 1 : 0;
	if (new_size + extra > buf->alloc) {
		if (unlikely(!buf->dynamic)) {
			i_panic("Buffer full (%"PRIuSIZE_T" > %"PRIuSIZE_T", "
				"pool %s)", pos + data_size, buf->alloc,
				buf->pool == NULL ? "<none>" :
				pool_get_name(buf->pool));
		}

		buffer_alloc(buf, pool_get_exp_grown_size(buf->pool, buf->alloc,
							  new_size + extra));
	}
#if 0
	else if (new_size > buf->used && buf->alloced &&
		 !buf->pool->alloconly_pool && !buf->pool->datastack_pool) {
		void *new_buf;

		/* buffer's size increased: move the buffer's memory elsewhere.
		   this should help catch bugs where old pointers are tried to
		   be used to access the buffer's memory */
		new_buf = p_malloc(buf->pool, buf->alloc);
		memcpy(new_buf, buf->w_buffer, buf->alloc);
		p_free(buf->pool, buf->w_buffer);

		buf->w_buffer = new_buf;
		buf->r_buffer = new_buf;
	}
#endif

	if (new_size > buf->used)
		buf->used = new_size;
	i_assert(buf->used <= buf->alloc);
}
开发者ID:jwm,项目名称:dovecot-notmuch,代码行数:56,代码来源:buffer.c


示例18: main

int main(int argc, char **argv)
{
  if(argc != 2) exit(EXIT_FAILURE);

  buffer_t *in = buffer_alloc(10);
  buffer_t *buf = buffer_alloc(10);
  // gzFile f = gzopen(argv[1],"r");
  FILE *f = fopen(argv[1],"r");
  if(f == NULL) exit(EXIT_FAILURE);

  int i;
  for(i = 0; freadline_buf(f,in,buf) > 0; i++)
  {
    printf("line %i: '%s'\n", i, buf->b);
  }

  fclose(f);
  buffer_destroy(buf);
}
开发者ID:iqbal-lab,项目名称:cortex,代码行数:19,代码来源:buffered_input.c


示例19: p_new

buffer_t *buffer_create_dynamic(pool_t pool, size_t init_size)
{
	struct real_buffer *buf;

	buf = p_new(pool, struct real_buffer, 1);
	buf->pool = pool;
	buf->dynamic = TRUE;
	buffer_alloc(buf, init_size);
	return (buffer_t *)buf;
}
开发者ID:jwm,项目名称:dovecot-notmuch,代码行数:10,代码来源:buffer.c


示例20: buffer_alloc

/**
 * Acquire a random array cog.
 *
 * @param size - size of the array
 * @param range - key range
 * @return a random array cog
 */
cog *getRandomArray(int size, int range) {
  buffer buffer = buffer_alloc(size);

  for(int i = 0; i < size; i++){
    buffer->data[i].key = rand() % range;
    buffer->data[i].value = rand();
  }

  return make_array(0, size, buffer);;
}
开发者ID:agsimeonov,项目名称:jitd,代码行数:17,代码来源:util.c



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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