Class: OPCUA::Server::TypeTopNode
- Defined in:
- ext/opcua/server/server.c
Instance Method Summary collapse
-
#add_object_type(name) ⇒ Object
{{{.
-
#add_reference_type(name, type) ⇒ Object
{{{.
-
#folder ⇒ Object
{{{.
Methods inherited from Node
#description, #description=, #exists?, #id, #name, #to_s
Instance Method Details
#add_object_type(name) ⇒ Object
{{{
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'ext/opcua/server/server.c', line 71
static VALUE node_add_object_type(VALUE self, VALUE name) { //{{{
node_struct *ns;
Data_Get_Struct(self, node_struct, ns);
if (!ns->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
VALUE str = rb_obj_as_string(name);
if (NIL_P(str) || TYPE(str) != T_STRING)
rb_raise(rb_eTypeError, "cannot convert obj to string");
char *nstr = (char *)StringValuePtr(str);
UA_NodeId n = UA_NODEID_NUMERIC(ns->master->default_ns, nodecounter++);
UA_ObjectTypeAttributes dtAttr = UA_ObjectTypeAttributes_default;
dtAttr.displayName = UA_LOCALIZEDTEXT("en-US", nstr);
UA_Server_addObjectTypeNode(ns->master->master,
n,
ns->id,
UA_NODEID_NUMERIC(0, UA_NS0ID_HASSUBTYPE),
UA_QUALIFIEDNAME(ns->master->default_ns, nstr),
dtAttr,
NULL,
NULL);
return node_wrap(cTypeSubNode,node_alloc(ns->master,n));
}
|
#add_reference_type(name, type) ⇒ Object
{{{
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'ext/opcua/server/server.c', line 97
static VALUE node_add_reference_type(VALUE self, VALUE name, VALUE type) { //{{{
node_struct *ns;
Data_Get_Struct(self, node_struct, ns);
if (!ns->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
VALUE str = rb_obj_as_string(name);
if (NIL_P(str) || TYPE(str) != T_STRING)
rb_raise(rb_eTypeError, "cannot convert arg 1 to string");
char *nstr = (char *)StringValuePtr(str);
if (TYPE(type) != T_FIXNUM)
rb_raise(rb_eTypeError, "cannot convert arg 2 to integer");
UA_NodeId n = UA_NODEID_NUMERIC(ns->master->default_ns, nodecounter++);
UA_ReferenceTypeAttributes rtAttr = UA_ReferenceTypeAttributes_default;
rtAttr.displayName = UA_LOCALIZEDTEXT("en-US", nstr);
UA_Server_addReferenceTypeNode(ns->master->master,
n,
ns->id,
UA_NODEID_NUMERIC(0, NUM2INT(type)),
UA_QUALIFIEDNAME(ns->master->default_ns, nstr),
rtAttr,
NULL,
NULL);
return node_wrap(cReferenceSubNode,node_alloc(ns->master,n));
}
|
#folder ⇒ Object
{{{
65 66 67 68 69 70 |
# File 'ext/opcua/server/server.c', line 65
static VALUE node_type_folder(VALUE self) { //{{{
node_struct *ns;
Data_Get_Struct(self, node_struct, ns);
if (!ns->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
return node_wrap(cTypeTopNode, node_alloc(ns->master, UA_NODEID_NUMERIC(0, UA_NS0ID_FOLDERTYPE)));
}
|