您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ Data_Wrap_Struct函数代码示例

51自学网 2021-06-01 20:25:11
  C++
这篇教程C++ Data_Wrap_Struct函数代码示例写得很实用,希望能帮到您。

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

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

示例1: Data_Wrap_Struct

inline VALUE wrap< CEGUI::FrameComponent >(CEGUI::FrameComponent *framecomponent ){	return Data_Wrap_Struct(rb_cCeguiFrameComponent, NULL, NULL, framecomponent);}
开发者ID:Hanmac,项目名称:libcegui-ruby,代码行数:4,


示例2: cState_s_allocate

static VALUE cState_s_allocate(VALUE klass){    JSON_Generator_State *state = State_allocate();    return Data_Wrap_Struct(klass, NULL, State_free, state);}
开发者ID:chetstone,项目名称:json,代码行数:5,


示例3: connection_parent_context_alloc

static VALUE connection_parent_context_alloc(VALUE klass) {    redisParentContext *pc = malloc(sizeof(*pc));    pc->context = NULL;    pc->timeout = NULL;    return Data_Wrap_Struct(klass, parent_context_mark, parent_context_free, pc);}
开发者ID:redis,项目名称:hiredis-rb,代码行数:6,


示例4: rb_cogl_program_allocate

static VALUErb_cogl_program_allocate (VALUE klass){  return Data_Wrap_Struct (klass, NULL, rb_cogl_program_free, NULL);}
开发者ID:orospakr,项目名称:rbclutter,代码行数:5,


示例5: new_object

VALUEnew_object(int blocksize){  CvMemStorage *storage = cvCreateMemStorage(blocksize);  return Data_Wrap_Struct(rb_klass, 0, free, storage);}
开发者ID:Fuj18,项目名称:ruby-opencv,代码行数:6,


示例6: fs_watcher_init

static VALUEfs_watcher_init(VALUE arg) {	FSWatcher *watcher = (FSWatcher *) arg;	struct kevent *events;	VALUE filename;	unsigned int i;	uint32_t fflags;	VALUE filenum;	struct stat buf;	int fd;		/* Open each file in the filenames list and add each one to the events array. */		/* +2 for the termination pipe and the interruption pipe. */	events = alloca((RARRAY_LEN(watcher->filenames) + 2) * sizeof(struct kevent));	watcher->fds = malloc(RARRAY_LEN(watcher->filenames) * sizeof(int));	if (watcher->fds == NULL) {		rb_raise(rb_eNoMemError, "Cannot allocate memory.");		return Qnil;	}	for (i = 0; i < RARRAY_LEN(watcher->filenames); i++) {		filename = rb_ary_entry(watcher->filenames, i);		if (TYPE(filename) != T_STRING) {			filename = rb_obj_as_string(filename);		}				if (stat(RSTRING_PTR(filename), &buf) == -1) {			watcher->preparation_error = 1;			goto end;		}				#ifdef O_EVTONLY			fd = open(RSTRING_PTR(filename), O_EVTONLY);		#else			fd = open(RSTRING_PTR(filename), O_RDONLY);		#endif		if (fd == -1) {			watcher->preparation_error = 1;			goto end;		}				watcher->fds[i] = fd;		watcher->fds_len++;		fflags = NOTE_WRITE | NOTE_EXTEND | NOTE_RENAME | NOTE_DELETE | NOTE_REVOKE;		EV_SET(&events[i], fd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_CLEAR,			fflags, 0, 0);	}		watcher->events_len = watcher->fds_len;		/* Create pipes for inter-thread communication. */		if (pipe(watcher->notification_fd) == -1) {		rb_sys_fail("pipe()");		return Qnil;	}	if (pipe(watcher->interruption_fd) == -1) {		rb_sys_fail("pipe()");		return Qnil;	}		/* Create a kqueue and register all events. */		watcher->kq = kqueue();	if (watcher->kq == -1) {		rb_sys_fail("kqueue()");		return Qnil;	}		if (watcher->termination_pipe != Qnil) {		filenum = rb_funcall(watcher->termination_pipe,			rb_intern("fileno"), 0);		EV_SET(&events[watcher->events_len], NUM2INT(filenum),			EVFILT_READ, EV_ADD | EV_ENABLE | EV_CLEAR, 0, 0, 0);		watcher->termination_fd = NUM2INT(filenum);		watcher->events_len++;	}	EV_SET(&events[watcher->events_len], watcher->interruption_fd[0],		EVFILT_READ, EV_ADD | EV_ENABLE | EV_CLEAR, 0, 0, 0);	watcher->events_len++;		if (kevent(watcher->kq, events, watcher->events_len, NULL, 0, NULL) == -1) {		rb_sys_fail("kevent()");		return Qnil;	}	end:	if (watcher->preparation_error) {		for (i = 0; i < watcher->fds_len; i++) {			close(watcher->fds[i]);		}		free(watcher->fds);		watcher->fds = NULL;		watcher->fds_len = 0;	}	return Data_Wrap_Struct(watcher->klass, NULL, fs_watcher_free, watcher);}
开发者ID:SpoBo,项目名称:passenger,代码行数:97,


示例7: allocate

static VALUE allocate(VALUE klass){  return Data_Wrap_Struct(klass, NULL, deallocate, NULL);}
开发者ID:a-ramamurthy,项目名称:rails-decal-proj-2,代码行数:4,


示例8: audio_stream_alloc

// Allocate objectVALUE audio_stream_alloc(VALUE klass) {	AudioStreamInternal * internal = (AudioStreamInternal *)av_mallocz(sizeof(AudioStreamInternal));	if (!internal) rb_raise(rb_eNoMemError, "Failed to allocate internal structure");	return Data_Wrap_Struct(klass, audio_stream_mark, audio_stream_free, (void *)internal);}
开发者ID:abronte,项目名称:ruby-ffmpeg,代码行数:7,


示例9: virtualmachine_initialize

VALUE virtualmachine_initialize(VALUE self, VALUE vmname, VALUE memsize){	VALUE vctx, vvme;	struct vmctx *ctx;	struct vm_exit *vme;	uint64_t *gdt, *pt4, *pt3, *pt2;	int i, err;	_vm_create(StringValuePtr(vmname));	ctx = _vm_open(StringValuePtr(vmname));	vctx = Data_Wrap_Struct(rb_cVMCtx, NULL, vmctx_free, ctx);	vme = (struct vm_exit *)calloc(1, sizeof(*vme));	vvme = Data_Wrap_Struct(rb_cVMCtx, NULL, vme_free, vme);	rb_iv_set(self, "@ctx", vctx);	rb_iv_set(self, "@vmname", vmname);	rb_iv_set(self, "@memsize", memsize);	rb_iv_set(self, "@vmexit", vvme);	_vm_setup_memory(ctx, FIX2INT(memsize) * MB, VM_MMAP_ALL);	pt4 = _vm_map_gpa(ctx, ADDR_PT4, sizeof(uint64_t) * 512);	pt3 = _vm_map_gpa(ctx, ADDR_PT3, sizeof(uint64_t) * 512);	pt2 = _vm_map_gpa(ctx, ADDR_PT2, sizeof(uint64_t) * 512);	gdt = _vm_map_gpa(ctx, ADDR_GDT, sizeof(uint64_t) * 3);	bzero(pt4, PAGE_SIZE);	bzero(pt3, PAGE_SIZE);	bzero(pt2, PAGE_SIZE);	for (i = 0; i < 512; i++) {		pt4[i] = (uint64_t)ADDR_PT3;		pt4[i] |= PG_V | PG_RW | PG_U;		pt3[i] = (uint64_t)ADDR_PT2;		pt3[i] |= PG_V | PG_RW | PG_U;		pt2[i] = i * (2 * 1024 * 1024);		pt2[i] |= PG_V | PG_RW | PG_PS | PG_U;	}	gdt[GUEST_NULL_SEL] = 0;	gdt[GUEST_CODE_SEL] = 0x0020980000000000;	gdt[GUEST_DATA_SEL] = 0x0000900000000000;	_vm_set_desc(ctx, 0, VM_REG_GUEST_CS, 0, 0, 0x0000209B);	_vm_set_desc(ctx, 0, VM_REG_GUEST_DS, 0, 0, 0x00000093);	_vm_set_desc(ctx, 0, VM_REG_GUEST_ES, 0, 0, 0x00000093);	_vm_set_desc(ctx, 0, VM_REG_GUEST_FS, 0, 0, 0x00000093);	_vm_set_desc(ctx, 0, VM_REG_GUEST_GS, 0, 0, 0x00000093);	_vm_set_desc(ctx, 0, VM_REG_GUEST_SS, 0, 0, 0x00000093);	_vm_set_desc(ctx, 0, VM_REG_GUEST_TR, 0, 0, 0x0000008b);	_vm_set_desc(ctx, 0, VM_REG_GUEST_LDTR, 0, 0, DESC_UNUSABLE);	_vm_set_desc(ctx, 0, VM_REG_GUEST_GDTR, ADDR_GDT, GUEST_GDTR_LIMIT, 0);	_vm_set_register(ctx, 0, VM_REG_GUEST_CS, GSEL(GUEST_CODE_SEL, SEL_KPL));	_vm_set_register(ctx, 0, VM_REG_GUEST_DS, GSEL(GUEST_DATA_SEL, SEL_KPL));	_vm_set_register(ctx, 0, VM_REG_GUEST_ES, GSEL(GUEST_DATA_SEL, SEL_KPL));	_vm_set_register(ctx, 0, VM_REG_GUEST_FS, GSEL(GUEST_DATA_SEL, SEL_KPL));	_vm_set_register(ctx, 0, VM_REG_GUEST_GS, GSEL(GUEST_DATA_SEL, SEL_KPL));	_vm_set_register(ctx, 0, VM_REG_GUEST_SS, GSEL(GUEST_DATA_SEL, SEL_KPL));	_vm_set_register(ctx, 0, VM_REG_GUEST_TR, 0);	_vm_set_register(ctx, 0, VM_REG_GUEST_LDTR, 0);	_vm_set_register(ctx, 0, VM_REG_GUEST_CR0, CR0_PG | CR0_PE | CR0_NE);	_vm_set_register(ctx, 0, VM_REG_GUEST_CR3, ADDR_PT4);	_vm_set_register(ctx, 0, VM_REG_GUEST_CR4, CR4_PAE | CR4_VMXE);	_vm_set_register(ctx, 0, VM_REG_GUEST_EFER, EFER_LMA | EFER_LME);	_vm_set_register(ctx, 0, VM_REG_GUEST_RFLAGS, 0x2);	_vm_set_register(ctx, 0, VM_REG_GUEST_RSP, ADDR_STACK);	return self;}
开发者ID:syuu1228,项目名称:ruby-virtualmachine,代码行数:69,


示例10: allocate

static VALUE allocate(VALUE klass){  alpm_handle_t* p_alpm = NULL;  VALUE obj = Data_Wrap_Struct(klass, 0, deallocate, p_alpm);  return obj;}
开发者ID:Quintus,项目名称:ruby-alpm,代码行数:6,


示例11: fdbm_alloc

static VALUEfdbm_alloc(VALUE klass){    return Data_Wrap_Struct(klass, 0, free_dbm, 0);}
开发者ID:2220142,项目名称:ruby,代码行数:5,


示例12: ra_sound_allocate

static VALUE ra_sound_allocate(VALUE klass) {    RA_SOUND *snd = ALLOC(RA_SOUND);    memset(snd, 0, sizeof(RA_SOUND));    VALUE self = Data_Wrap_Struct(klass, ra_sound_mark, ra_sound_free, snd);    return self;}
开发者ID:adamggg,项目名称:ruby-audio,代码行数:6,


示例13: rxml_xpath_context_alloc

static VALUE rxml_xpath_context_alloc(VALUE klass){  return Data_Wrap_Struct(cXMLXPathContext, rxml_xpath_context_mark, rxml_xpath_context_free, NULL);}
开发者ID:boutil,项目名称:libxml-ruby,代码行数:4,


示例14: rb_binding_new_from_binding

VALUErb_binding_new_from_binding(rb_vm_binding_t *bind){    return Data_Wrap_Struct(rb_cBinding, NULL, NULL, bind);}
开发者ID:MSch,项目名称:MacRuby,代码行数:5,


示例15: rb_allocate

VALUErb_allocate(VALUE klass){  CvMemStorage *storage = cvCreateMemStorage();  return Data_Wrap_Struct(klass, 0, free, storage);}
开发者ID:Fuj18,项目名称:ruby-opencv,代码行数:6,


示例16: match_alloc

static VALUEmatch_alloc( VALUE klass ) {  struct ofp_match *match = xmalloc( sizeof( struct ofp_match ) );  return Data_Wrap_Struct( klass, NULL, xfree, match );}
开发者ID:RnD-Labs,项目名称:trema-edge,代码行数:5,


示例17: allocate

static VALUE allocate(VALUE klass){  JohnsonRuntime* runtime = calloc(1L, sizeof(JohnsonRuntime));  return Data_Wrap_Struct(klass, 0, deallocate, runtime);}
开发者ID:ripta,项目名称:johnson,代码行数:5,


示例18: wkhtml_topdf_objectsettings_alloc

/** WkHtml::ToPdf::ObjectSettings*/VALUE wkhtml_topdf_objectsettings_alloc(VALUE self) {  wkhtmltopdf_object_settings* settings = wkhtmltopdf_create_object_settings();  return Data_Wrap_Struct(self, NULL, wkhtmltopdf_destroy_object_settings, settings);}
开发者ID:carsonreinke,项目名称:wkhtml,代码行数:7,


示例19: cr_font_face_allocate

static VALUEcr_font_face_allocate (VALUE klass){  return Data_Wrap_Struct (klass, NULL, cr_font_face_free, NULL);}
开发者ID:rcairo,项目名称:rcairo,代码行数:5,


示例20: wkhtml_toimage_globalsettings_alloc

VALUE wkhtml_toimage_globalsettings_alloc(VALUE self) {  wkhtmltoimage_global_settings* settings = wkhtmltoimage_create_global_settings();  return Data_Wrap_Struct(self, NULL, wkhtml_toimage_globalsettings_free, settings); }
开发者ID:carsonreinke,项目名称:wkhtml,代码行数:4,


示例21: rugged_index_new

VALUE rugged_index_new(VALUE klass, VALUE owner, git_index *index){	VALUE rb_index = Data_Wrap_Struct(klass, NULL, &rb_git_index__free, index);	rugged_set_owner(rb_index, owner);	return rb_index;}
开发者ID:CODECOMMUNITY,项目名称:rugged,代码行数:6,


示例22: Unpacker_alloc

static VALUEUnpacker_alloc(VALUE klass){	unpacker_t *ptr = ALLOC(unpacker_t);	return Data_Wrap_Struct(klass, unpacker_mark, -1, ptr);}
开发者ID:ksss,项目名称:AsciiPack,代码行数:6,


示例23: ruby_xslt_stylesheet_alloc

static VALUEruby_xslt_stylesheet_alloc(VALUE klass) {  return Data_Wrap_Struct(cXSLTStylesheet,                          NULL, ruby_xslt_stylesheet_free,                          NULL);}
开发者ID:sshao,项目名称:libxslt-ruby,代码行数:6,


示例24: do_postgres_full_connect

//.........这里部分代码省略.........  const char *search_path = data_objects_get_uri_option(r_query, "search_path");  db = PQsetdbLogin(    host,    port,    NULL,    NULL,    database,    user,    password  );  if (PQstatus(db) == CONNECTION_BAD) {    rb_raise(eDO_ConnectionError, "%s", PQerrorMessage(db));  }  PGresult *result;  if (search_path) {    char *search_path_query;    if (!(search_path_query = calloc(256, sizeof(char)))) {      rb_memerror();    }    snprintf(search_path_query, 256, "set search_path to %s;", search_path);    r_query = rb_str_new2(search_path_query);    result = do_postgres_cCommand_execute(Qnil, self, db, r_query);    if (PQresultStatus(result) != PGRES_COMMAND_OK) {      free(search_path_query);      do_postgres_raise_error(self, result, r_query);    }    free(search_path_query);  }  const char *backslash_off = "SET backslash_quote = off";  const char *standard_strings_on = "SET standard_conforming_strings = on";  const char *warning_messages = "SET client_min_messages = warning";  const char *date_format = "SET datestyle = ISO";  VALUE r_options;  r_options = rb_str_new2(backslash_off);  result = do_postgres_cCommand_execute(Qnil, self, db, r_options);  if (PQresultStatus(result) != PGRES_COMMAND_OK) {    rb_warn("%s", PQresultErrorMessage(result));  }  r_options = rb_str_new2(standard_strings_on);  result = do_postgres_cCommand_execute(Qnil, self, db, r_options);  if (PQresultStatus(result) != PGRES_COMMAND_OK) {    rb_warn("%s", PQresultErrorMessage(result));  }  r_options = rb_str_new2(warning_messages);  result = do_postgres_cCommand_execute(Qnil, self, db, r_options);  if (PQresultStatus(result) != PGRES_COMMAND_OK) {    rb_warn("%s", PQresultErrorMessage(result));  }  r_options = rb_str_new2(date_format);  result = do_postgres_cCommand_execute(Qnil, self, db, r_options);  if (PQresultStatus(result) != PGRES_COMMAND_OK) {    rb_warn("%s", PQresultErrorMessage(result));  }  VALUE encoding = rb_iv_get(self, "@encoding");#ifdef HAVE_PQSETCLIENTENCODING  VALUE pg_encoding = rb_hash_aref(data_objects_const_get(mDO_PostgresEncoding, "MAP"), encoding);  if (pg_encoding != Qnil) {    if (PQsetClientEncoding(db, rb_str_ptr_readonly(pg_encoding))) {      rb_raise(eDO_ConnectionError, "Couldn't set encoding: %s", rb_str_ptr_readonly(encoding));    }    else {#ifdef HAVE_RUBY_ENCODING_H      rb_iv_set(self, "@encoding_id", INT2FIX(rb_enc_find_index(rb_str_ptr_readonly(encoding))));#endif      rb_iv_set(self, "@pg_encoding", pg_encoding);    }  }  else {    rb_warn("Encoding %s is not a known Ruby encoding for PostgreSQL/n", rb_str_ptr_readonly(encoding));    rb_iv_set(self, "@encoding", rb_str_new2("UTF-8"));#ifdef HAVE_RUBY_ENCODING_H    rb_iv_set(self, "@encoding_id", INT2FIX(rb_enc_find_index("UTF-8")));#endif    rb_iv_set(self, "@pg_encoding", rb_str_new2("UTF8"));  }#endif  rb_iv_set(self, "@connection", Data_Wrap_Struct(rb_cObject, 0, 0, db));}
开发者ID:alloy,项目名称:do,代码行数:101,


示例25: helium_rb_allocate

static VALUE helium_rb_allocate(VALUE klass){  return Data_Wrap_Struct(klass, helium_rb_mark, helium_free, helium_alloc());}
开发者ID:helium,项目名称:rbhelium,代码行数:4,


示例26: rkrb5_princ_allocate

// Allocation function for the Kerberos::Krb5::Keytab class.static VALUE rkrb5_princ_allocate(VALUE klass){  RUBY_KRB5_PRINC* ptr = malloc(sizeof(RUBY_KRB5_PRINC));  memset(ptr, 0, sizeof(RUBY_KRB5_PRINC));  return Data_Wrap_Struct(klass, 0, rkrb5_princ_free, ptr);}
开发者ID:Matoch,项目名称:rkerberos,代码行数:6,


示例27: frostbitten_message_allocate

VALUE frostbitten_message_allocate (VALUE klass) {	fb_message *msg = ruby_xmalloc(sizeof(fb_message));	return Data_Wrap_Struct(klass, frostbitten_message_mark, frostbitten_message_deallocate, msg);}
开发者ID:mrevilme,项目名称:frostbitten,代码行数:4,


示例28: t_init

static VALUE t_init(VALUE self) {  Clist *st = clist_new();  VALUE stv = Data_Wrap_Struct(cArrayList, 0, free_clist, st);  rb_iv_set(self, "@clist", stv);  return self;}
开发者ID:hmoody87,项目名称:noyes,代码行数:6,



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


C++ Data_copy函数代码示例
C++ Data_Make_Struct函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。