Add bsdcontrol_feature_find_by_name
This commit is contained in:
parent
3662599891
commit
e6a48c3216
4 changed files with 17 additions and 13 deletions
|
@ -40,12 +40,3 @@ bsdcontrol_open(VALUE path)
|
|||
}
|
||||
return fd;
|
||||
}
|
||||
|
||||
hbsdctrl_feature_t *
|
||||
bsdcontrol_find_feature(hbsdctrl_ctx_t *ctx, VALUE rbfeature)
|
||||
{
|
||||
VALUE name;
|
||||
name = rb_funcall(rbfeature, rb_intern("name"), 0);
|
||||
Check_Type(name, T_STRING);
|
||||
return hbsdctrl_ctx_find_feature_by_name(ctx, RSTRING_PTR(name));
|
||||
}
|
||||
|
|
|
@ -3,4 +3,3 @@
|
|||
#include <libhbsdcontrol.h>
|
||||
|
||||
int bsdcontrol_open(VALUE);
|
||||
hbsdctrl_feature_t* bsdcontrol_find_feature(hbsdctrl_ctx_t*, VALUE);
|
||||
|
|
|
@ -20,7 +20,7 @@ bsdcontrol_feature_status(VALUE self, VALUE path)
|
|||
rbcontext = rb_funcall(self, rb_intern("context"), 0);
|
||||
fd = bsdcontrol_open(path);
|
||||
ctx = bsdcontrol_context_unwrap(rbcontext);
|
||||
feature = bsdcontrol_find_feature(ctx, self);
|
||||
feature = bsdcontrol_feature_find_by_name(ctx, self);
|
||||
errno = 0;
|
||||
if (feature->hf_get(ctx, feature, &fd, &state) == RES_FAIL)
|
||||
{
|
||||
|
@ -51,7 +51,7 @@ bsdcontrol_feature_set(VALUE self, VALUE path, VALUE rbstate)
|
|||
rbcontext = rb_funcall(self, rb_intern("context"), 0);
|
||||
fd = bsdcontrol_open(path);
|
||||
ctx = bsdcontrol_context_unwrap(rbcontext);
|
||||
feature = bsdcontrol_find_feature(ctx, self);
|
||||
feature = bsdcontrol_feature_find_by_name(ctx, self);
|
||||
state = NUM2INT(rbstate);
|
||||
errno = 0;
|
||||
if (feature->hf_apply(ctx, feature, &fd, &state) == RES_FAIL)
|
||||
|
@ -80,7 +80,7 @@ bsdcontrol_feature_sysdef(VALUE self, VALUE path)
|
|||
rbcontext = rb_funcall(self, rb_intern("context"), 0);
|
||||
fd = bsdcontrol_open(path);
|
||||
ctx = bsdcontrol_context_unwrap(rbcontext);
|
||||
feature = bsdcontrol_find_feature(ctx, self);
|
||||
feature = bsdcontrol_feature_find_by_name(ctx, self);
|
||||
errno = 0;
|
||||
if (feature->hf_unapply(ctx, feature, &fd, NULL) == RES_FAIL)
|
||||
{
|
||||
|
@ -94,3 +94,12 @@ bsdcontrol_feature_sysdef(VALUE self, VALUE path)
|
|||
return Qtrue;
|
||||
}
|
||||
}
|
||||
|
||||
hbsdctrl_feature_t *
|
||||
bsdcontrol_feature_find_by_name(hbsdctrl_ctx_t *ctx, VALUE rbfeature)
|
||||
{
|
||||
VALUE name;
|
||||
name = rb_funcall(rbfeature, rb_intern("name"), 0);
|
||||
Check_Type(name, T_STRING);
|
||||
return hbsdctrl_ctx_find_feature_by_name(ctx, RSTRING_PTR(name));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
#include <ruby.h>
|
||||
#include <libhbsdcontrol.h>
|
||||
|
||||
VALUE bsdcontrol_feature_status(VALUE, VALUE);
|
||||
VALUE bsdcontrol_feature_set(VALUE,VALUE,VALUE);
|
||||
VALUE bsdcontrol_feature_sysdef(VALUE, VALUE);
|
||||
hbsdctrl_feature_t* bsdcontrol_feature_find_by_name(hbsdctrl_ctx_t*, VALUE);
|
||||
|
|
Loading…
Reference in a new issue