本文整理汇总了C++中rb_intern函数的典型用法代码示例。如果您正苦于以下问题:C++ rb_intern函数的具体用法?C++ rb_intern怎么用?C++ rb_intern使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rb_intern函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main( int argc, char** argv )
{
int state = 0;
int rc = 0;
int opt_mv = 0;
crate_app ca;
/** startup items from ruby's original main.c */
#ifdef _WIN32
NtInitialize(&argc, &argv);
#endif
#if defined(__MACOS__) && defined(__MWERKS__)
argc = ccommand(&argv);
#endif
/* setup ruby */
ruby_init();
ruby_script( argv[0] );
ruby_init_loadpath();
/* strip out the crate specific arguments from argv using --crate- */
opt_mv = crate_init_from_options( &ca, argc, argv );
argc -= opt_mv;
argv += opt_mv;
/* printf("crate file : %s\n", ca.file_name); */
/* printf("crate class : %s\n", ca.class_name); */
/* printf("crate method: %s\n", ca.method_name); */
/* make ARGV available */
ruby_set_argv( argc, argv );
/* initialize all extensions */
Init_ext();
/* load up the amalgalite libs */
am_bootstrap_lift( cARB, Qnil );
/* remove the current LOAD_PATH */
rb_ary_clear( rb_gv_get( "$LOAD_PATH" ) );
/* invoke the class / method passing in ARGV and ENV */
rb_protect( crate_wrap_app, (VALUE)&ca, &state );
/* check the results */
if ( state ) {
/* exception was raised, check the $! var */
VALUE lasterr = rb_gv_get("$!");
/* system exit was called so just propogate that up to our exit */
if ( rb_obj_is_instance_of( lasterr, rb_eSystemExit ) ) {
rc = NUM2INT( rb_attr_get( lasterr, rb_intern("status") ) );
/*printf(" Caught SystemExit -> $? will be %d\n", rc ); */
} else {
/* some other exception was raised so dump that out */
VALUE klass = rb_class_path( CLASS_OF( lasterr ) );
VALUE message = rb_obj_as_string( lasterr );
VALUE backtrace = rb_funcall( lasterr, rb_intern("backtrace"), 0 );
fprintf( stderr, "%s: %s\n", RSTRING( klass )->ptr, RSTRING( message )->ptr );
rb_iterate( rb_each, backtrace, dump_backtrace, Qnil );
rc = state;
}
}
free( ca.file_name );
free( ca.class_name );
free( ca.method_name );
/* shut down ruby */
ruby_finalize();
/* exit the program */
exit( rc );
}
示例2: syserr_errno
static VALUE
syserr_errno(VALUE self)
{
return rb_attr_get(self, rb_intern("errno"));
}
示例3: rb_exc_new_str
VALUE
rb_exc_new_str(VALUE etype, VALUE str)
{
StringValue(str);
return rb_funcall(etype, rb_intern("new"), 1, str);
}
示例4: rldap_search
static VALUE rldap_search(int argc, VALUE *argv, VALUE obj)
{
RLDAP_WRAP *wrapper;
char *base, *filter;
int retval, count, i, scope;
LDAPMessage *res, *msg;
VALUE ary, rbase, rfilter, rscope;
ID iscope;
rb_scan_args(argc, argv, "21", &rbase, &rfilter, &rscope);
switch(TYPE(rscope)) {
case T_NIL:
scope = LDAP_SCOPE_SUBTREE;
break;
case T_FIXNUM:
scope = FIX2INT(rscope);
break;
case T_SYMBOL:
case T_STRING:
iscope = rb_to_id(rscope);
if (iscope == rb_intern("subtree"))
scope = LDAP_SCOPE_SUBTREE;
if (iscope == rb_intern("base"))
scope = LDAP_SCOPE_BASE;
if (iscope == rb_intern("one"))
scope = LDAP_SCOPE_ONE;
break;
default:
rb_raise(rb_eTypeError, "not a valid scope");
break;
}
wrapper = get_wrapper(obj);
base = StringValuePtr(rbase);
filter = StringValuePtr(rfilter);
retval = ldap_search_ext_s(wrapper->ld, base, scope, filter, NULL, 0, NULL, NULL, NULL, 0, &res);
if (retval != LDAP_SUCCESS)
rldap_raise(retval);
count = ldap_count_entries(wrapper->ld, res);
if (count == -1) {
int errno;
ldap_get_option(wrapper->ld, LDAP_OPT_RESULT_CODE, &errno);
rldap_raise(errno);
}
ary = rb_ary_new2((long)count);
msg = ldap_first_entry(wrapper->ld, res);
for (i=0; i<count; i++) {
rb_ary_store(ary, (long)i, ldapmessage2obj(wrapper->ld, msg));
msg = ldap_next_entry(wrapper->ld, msg);
}
return ary;
}
示例5: name_err_name
static VALUE
name_err_name(VALUE self)
{
return rb_attr_get(self, rb_intern("name"));
}
示例6: RHO_TRACE
jobject event_cast<jobject, VALUE>(VALUE rEvent)
{
if (NIL_P(rEvent))
return NULL;
RHO_TRACE("eventFromRuby (1)");
JNIEnv *env = jnienv();
if (!init_event_stuff(env))
return NULL;
RHO_TRACE("eventFromRuby (2)");
VALUE rId = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_ID));
if (NIL_P(rId))
rId = rb_str_new2("");
Check_Type(rId, T_STRING);
RHO_TRACE("eventFromRuby (3)");
jmethodID mid = getJNIClassMethod(env, clsEvent, "<init>", "(Ljava/lang/String;)V");
if (!mid) return NULL;
jhstring jhId = rho_cast<jstring>(env, rId);
jobject jEvent = env->NewObject(clsEvent, mid, jhId.get());
if (!jEvent) return NULL;
RHO_TRACE("eventFromRuby (4)");
VALUE rTitle = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_TITLE));
if (!NIL_P(rTitle))
{
Check_Type(rTitle, T_STRING);
jhstring jhTitle = rho_cast<jstring>(env, rTitle);
env->SetObjectField(jEvent, fidTitle, jhTitle.get());
}
RHO_TRACE("eventFromRuby (5)");
VALUE rStartDate = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_START_DATE));
if (!NIL_P(rStartDate))
env->SetObjectField(jEvent, fidStartDate, date_cast<jobject>(rStartDate));
RHO_TRACE("eventFromRuby (6)");
VALUE rEndDate = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_END_DATE));
if (!NIL_P(rEndDate))
env->SetObjectField(jEvent, fidEndDate, date_cast<jobject>(rEndDate));
RHO_TRACE("eventFromRuby (7)");
VALUE rLastModified = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_LAST_MODIFIED));
if (!NIL_P(rLastModified))
env->SetObjectField(jEvent, fidLastModified, date_cast<jobject>(rLastModified));
RHO_TRACE("eventFromRuby (8)");
VALUE rLocation = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_LOCATION));
if (!NIL_P(rLocation))
{
Check_Type(rLocation, T_STRING);
jhstring jhLocation = rho_cast<jstring>(env, rLocation);
env->SetObjectField(jEvent, fidLocation, jhLocation.get());
}
RHO_TRACE("eventFromRuby (9)");
VALUE rNotes = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_NOTES));
if (!NIL_P(rNotes))
{
Check_Type(rNotes, T_STRING);
jhstring jhNotes = rho_cast<jstring>(env, rNotes);
env->SetObjectField(jEvent, fidNotes, jhNotes.get());
}
RHO_TRACE("eventFromRuby privacy");
VALUE rPrivacy = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_PRIVACY));
if (!NIL_P(rPrivacy))
{
Check_Type(rPrivacy, T_STRING);
jhstring jhPrivacy = rho_cast<jstring>(env, rPrivacy);
env->SetObjectField(jEvent, fidPrivacy, jhPrivacy.get());
}
RHO_TRACE("eventFromRuby recurrence");
VALUE rRecurrence = rb_hash_aref(rEvent, rb_str_new2(RUBY_EV_RECURRENCE));
if (!NIL_P(rRecurrence)) {
Check_Type(rRecurrence, T_HASH);
VALUE rFrequency = rb_hash_aref(rRecurrence, rb_str_new2(RUBY_EV_RECURRENCE_FREQUENCY));
Check_Type(rFrequency, T_STRING);
const char *frequency = RSTRING_PTR(rFrequency);
if ( strcasecmp(frequency, RUBY_EV_RECURRENCE_FREQUENCY_DAILY) != 0
&& strcasecmp(frequency, RUBY_EV_RECURRENCE_FREQUENCY_WEEKLY) != 0
&& strcasecmp(frequency, RUBY_EV_RECURRENCE_FREQUENCY_MONTHLY) != 0
&& strcasecmp(frequency, RUBY_EV_RECURRENCE_FREQUENCY_YEARLY) != 0)
{
rb_raise(rb_eArgError, "Wrong recurrence frequency: %s", frequency);
}
jhstring jhFreq = rho_cast<jstring>(env, rFrequency);
env->SetObjectField(jEvent, fidFrequency, jhFreq.get());
VALUE rInterval = rb_hash_aref(rRecurrence, rb_str_new2(RUBY_EV_RECURRENCE_INTERVAL));
rInterval = rb_funcall(rInterval, rb_intern("to_i"), 0);
int interval = NUM2INT(rInterval);
env->SetIntField(jEvent, fidInterval, interval);
RAWTRACE1("eventFromRuby recurrence interval: %d", interval);
VALUE rUntilDate = rb_hash_aref(rRecurrence, rb_str_new2(RUBY_EV_RECURRENCE_END));
//.........这里部分代码省略.........
示例7: NIO_Selector_initialize
/* Create a new selector. This is more or less the pure Ruby version
translated into an MRI cext */
static VALUE NIO_Selector_initialize(int argc, VALUE *argv, VALUE self)
{
ID backend_id;
VALUE backend;
VALUE lock;
struct NIO_Selector *selector;
unsigned int flags = 0;
Data_Get_Struct(self, struct NIO_Selector, selector);
rb_scan_args(argc, argv, "01", &backend);
if(backend != Qnil) {
if(!rb_ary_includes(NIO_Selector_supported_backends(CLASS_OF(self)), backend)) {
rb_raise(rb_eArgError, "unsupported backend: %s",
RSTRING_PTR(rb_funcall(backend, rb_intern("inspect"), 0)));
}
backend_id = SYM2ID(backend);
if(backend_id == rb_intern("epoll")) {
flags = EVBACKEND_EPOLL;
} else if(backend_id == rb_intern("poll")) {
flags = EVBACKEND_POLL;
} else if(backend_id == rb_intern("kqueue")) {
flags = EVBACKEND_KQUEUE;
} else if(backend_id == rb_intern("select")) {
flags = EVBACKEND_SELECT;
} else if(backend_id == rb_intern("port")) {
flags = EVBACKEND_PORT;
} else {
rb_raise(rb_eArgError, "unsupported backend: %s",
RSTRING_PTR(rb_funcall(backend, rb_intern("inspect"), 0)));
}
}
/* Ensure the selector loop has not yet been initialized */
assert(!selector->ev_loop);
selector->ev_loop = ev_loop_new(flags);
if(!selector->ev_loop) {
rb_raise(rb_eIOError, "error initializing event loop");
}
ev_io_start(selector->ev_loop, &selector->wakeup);
rb_ivar_set(self, rb_intern("selectables"), rb_hash_new());
rb_ivar_set(self, rb_intern("lock_holder"), Qnil);
lock = rb_class_new_instance(0, 0, rb_const_get(rb_cObject, rb_intern("Mutex")));
rb_ivar_set(self, rb_intern("lock"), lock);
rb_ivar_set(self, rb_intern("lock_holder"), Qnil);
return Qnil;
}
示例8: NIO_Selector_is_empty
/* True if there are monitors on the loop */
static VALUE NIO_Selector_is_empty(VALUE self)
{
VALUE selectables = rb_ivar_get(self, rb_intern("selectables"));
return rb_funcall(selectables, rb_intern("empty?"), 0) == Qtrue ? Qtrue : Qfalse;
}
示例9: Init_Enumerator
void
Init_Enumerator(void)
{
id_rewind = rb_intern("rewind");
id_each = rb_intern("each");
id_call = rb_intern("call");
id_size = rb_intern("size");
id_yield = rb_intern("yield");
id_new = rb_intern("new");
id_initialize = rb_intern("initialize");
id_next = rb_intern("next");
id_result = rb_intern("result");
id_lazy = rb_intern("lazy");
id_eqq = rb_intern("===");
id_receiver = rb_intern("receiver");
id_arguments = rb_intern("arguments");
id_memo = rb_intern("memo");
id_method = rb_intern("method");
id_force = rb_intern("force");
id_to_enum = rb_intern("to_enum");
sym_each = ID2SYM(id_each);
sym_cycle = ID2SYM(rb_intern("cycle"));
InitVM(Enumerator);
}
示例10: rb_fastadd_add_one
static VALUE rb_fastadd_add_one(int argc, VALUE *argv, VALUE self)
{
int n = NUM2INT(rb_funcall(self, rb_intern("n"), 0));
return INT2NUM(n + 1);
}
示例11: GravityFind
/* GravityFind {{{ */
static VALUE
GravityFind(char *source,
int flags)
{
int ngravities = 0;
char **gravities = NULL;
VALUE ret = Qnil;
subSubtlextConnect(NULL); ///< Implicit open connection
/* Get gravity list */
if((gravities = subSharedPropertyGetStrings(display, DefaultRootWindow(display),
XInternAtom(display, "SUBTLE_GRAVITY_LIST", False), &ngravities)))
{
int i, selid = -1;
XRectangle geometry = { 0 };
char buf[30] = { 0 };
VALUE klass_grav = Qnil, klass_geom = Qnil, meth = Qnil;
VALUE gravity = Qnil, geom = Qnil;
regex_t *preg = NULL;
/* Fetch data */
klass_grav = rb_const_get(mod, rb_intern("Gravity"));
klass_geom = rb_const_get(mod, rb_intern("Geometry"));
meth = rb_intern("new");
/* Create if source is given */
if(source)
{
if(isdigit(source[0])) selid = atoi(source);
preg = subSharedRegexNew(source);
}
/* Create gravity list */
for(i = 0; i < ngravities; i++)
{
sscanf(gravities[i], "%hdx%hd+%hd+%hd#%s", &geometry.x, &geometry.y,
&geometry.width, &geometry.height, buf);
/* Check if gravity matches */
if(!source || (source && (selid == i || (-1 == selid &&
((flags & SUB_MATCH_EXACT && 0 == strcmp(source, buf)) ||
(preg && !(flags & SUB_MATCH_EXACT) &&
subSharedRegexMatch(preg, buf)))))))
{
/* Create new gravity */
gravity = rb_funcall(klass_grav, meth, 1, rb_str_new2(buf));
geom = rb_funcall(klass_geom, meth, 4, INT2FIX(geometry.x),
INT2FIX(geometry.y), INT2FIX(geometry.width),
INT2FIX(geometry.height));
rb_iv_set(gravity, "@id", INT2FIX(i));
rb_iv_set(gravity, "@geometry", geom);
ret = subSubtlextOneOrMany(gravity, ret);
}
}
if(preg) subSharedRegexKill(preg);
XFreeStringList(gravities);
}
else rb_raise(rb_eStandardError, "Failed getting gravity list");
return NIL_P(ret) ? rb_ary_new() : ret;
} /* }}} */
示例12: rb_hash_delete
static VALUE
rb_hash_delete(VALUE hash, VALUE key)
{
return rb_funcall(hash, rb_intern("delete"), 1, key);
}
示例13: exit_status
static VALUE
exit_status(VALUE exc, SEL sel)
{
return rb_attr_get(exc, rb_intern("status"));
}
示例14: dtracebufdata_record
/*
* Returns the record in this DtraceBufdata. Records are returned as
* either DtraceRecords or DtraceStackRecords as appropriate for the
* type of action.
*/
VALUE dtracebufdata_record(VALUE self)
{
dtrace_bufdata_t *bufdata;
const dtrace_recdesc_t *rec;
dtrace_actkind_t act = DTRACEACT_NONE;
const char *s;
VALUE v = Qnil;
VALUE dtracerecord;
VALUE dtraceaggdata;
VALUE dtracerecdesc;
Data_Get_Struct(self, dtrace_bufdata_t, bufdata);
if (bufdata->dtbda_aggdata) {
dtraceaggdata = Data_Wrap_Struct(cDtraceAggData, 0, NULL, (dtrace_bufdata_t *)bufdata);
return dtraceaggdata;
}
s = bufdata->dtbda_buffered;
if (s == NULL) {
return Qnil;
}
rec = bufdata->dtbda_recdesc;
if (rec) {
act = rec->dtrd_action;
}
switch (act) {
case DTRACEACT_DIFEXPR:
/* trace() action */
break;
case DTRACEACT_PRINTF:
/* printf action, not available in probedata */
v = rb_str_new2(s);
dtracerecord = rb_class_new_instance(0, NULL, rb_path2class("Dtrace::PrintfRecord"));
rb_iv_set(dtracerecord, "@from", rb_str_new2("bufdata"));
rb_iv_set(dtracerecord, "@value", v);
return (dtracerecord);
break;
case DTRACEACT_STACK:
case DTRACEACT_USTACK:
case DTRACEACT_JSTACK:
/* stand-alone stack(), ustack(), or jstack() action */
v = rb_str_new2(s);
dtracerecord = rb_class_new_instance(0, NULL, rb_path2class("Dtrace::StackRecord"));
rb_iv_set(dtracerecord, "@from", rb_str_new2("bufdata"));
rb_funcall(dtracerecord, rb_intern("parse"), 1, v);
return (dtracerecord);
break;
case DTRACEACT_USYM:
case DTRACEACT_UADDR:
case DTRACEACT_UMOD:
case DTRACEACT_SYM:
case DTRACEACT_MOD:
v = rb_str_new2(s);
break;
case DTRACEACT_PRINTA:
v = rb_str_new2(s);
break;
default:
/*
* The record handle defers nothing else to this
* bufhandler.
*/
break;
}
if (!NIL_P(v)) {
dtracerecord = rb_class_new_instance(0, NULL, rb_path2class("Dtrace::Record"));
rb_iv_set(dtracerecord, "@value", v);
rb_iv_set(dtracerecord, "@action", INT2FIX(act));
rb_iv_set(dtracerecord, "@from", rb_str_new2("bufdata"));
return (dtracerecord);
}
else {
return Qnil;
}
}
示例15: dict_each_key
static void
dict_each_key (const char *key, xmmsv_t *value, void *udata)
{
rb_yield (ID2SYM (rb_intern (key)));
}