本文整理汇总了C++中buffer_alloc函数的典型用法代码示例。如果您正苦于以下问题:C++ buffer_alloc函数的具体用法?C++ buffer_alloc怎么用?C++ buffer_alloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了buffer_alloc函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}
示例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;
}
示例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);
}
示例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;
}
示例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);
}
}
示例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;
}
示例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;
}
示例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);
}
}
示例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;
}
示例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;
}
示例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 );
}