wsman-epr.i end point reference declarations for openwsman swig bindings EndPointReference
%rename(EndPointReference) epr_t; %nodefault epr_t;
struct epr_t {}; without empty struct, the %rename isn't executed.
typedef struct {} epr_t;
/*
Document-class: EndPointReference The EndPointReference is a stub to proxy server-side operations Each WS-Management operation (Get, Enumerate, Invoke, ...) has an associated end point reference, providing the actual implementation of the operation. /
%extend epr_t { if defined(SWIGRUBY)
/* Create EndPointReference from URI (String) or XML (XmlNode or XmlDoc) call-seq: EndPointReference.new(uri, address, { key=>value, ...}) EndPointReference.new(uri) EndPointReference.new(xml) / epr_t( VALUE uri, VALUE address = Qnil, VALUE selectors = Qnil) { KLASS_DECL(SwigClassXmlNode,SWIGTYPE_p___WsXmlNode); KLASS_DECL(SwigClassXmlDoc,SWIGTYPE_p__WsXmlDoc); if (!NIL_P(address) || !NIL_P(selectors)) { const char *uri_s = as_string(uri); const char *address_s = as_string(address); return epr_create(uri_s, value2hash(NULL,selectors,1), address_s); } else if (CLASS_OF(uri) == KLASS_OF(SwigClassXmlNode)) { WsXmlNodeH node; SWIG_ConvertPtr(uri, (void **)&node, SWIGTYPE_p___WsXmlNode, 0); return my_epr_deserialize(node); } else if (CLASS_OF(uri) == KLASS_OF(SwigClassXmlDoc)) { WsXmlDocH doc; WsXmlNodeH node; SWIG_ConvertPtr(uri, (void **)&doc, SWIGTYPE_p__WsXmlDoc, 0); node = ws_xml_get_soap_body(doc); if (node == NULL) node = ws_xml_get_doc_root(doc); return my_epr_deserialize(node); } else { return epr_from_string(as_string(uri)); } }
else
epr_t( const char *uri, const char *address) { return epr_create( uri, NULL, address); } epr_t( const char *uri ) { return epr_from_string( uri ); }
endif
~epr_t() { epr_destroy( $self ); }
if defined(SWIGRUBY)
%newobject clone; /* clone the EndPointReference instance / epr_t *clone(const epr_t *epr) { return epr_copy(epr); }
endif
/* Add selector as key/value pair / void add_selector(const char *name, const char *text) { epr_add_selector_text($self, name, text); } /* Serialization XML-serialize EndPointReference as child (with namespace and name) of node / int serialize( WsXmlNodeH node, const char *ns, const char *epr_node_name, int embedded) { return epr_serialize(node, ns, epr_node_name, $self, embedded); }
if defined(SWIGRUBY)
%alias cmp "=="; %typemap(out) int cmp "$result = ($1 == 0) ? Qtrue : Qfalse;";
endif
/* Compare two EndPointReferences / int cmp(const epr_t *epr2) { return epr_cmp($self, epr2); } /* String representation (XML syntax) / char *to_xml( const char *ns = NULL, const char *epr_node_name = NULL) { return epr_to_txt($self, ns?ns:XML_NS_ADDRESSING, epr_node_name?epr_node_name:WSA_EPR); }
if defined(SWIGJAVA)
%rename("toString") string();
endif if defined(SWIGRUBY)
%rename("to_s") string();
endif
%newobject string; /* String representation (<uri>?<selector>,<selector>,...) / char *string() { return epr_to_string($self); } /* Number of selectors / int selector_count(void) { return epr_selector_count($self); } /* The resource URI associated to this EndPointReference / char *resource_uri(void) { return epr_get_resource_uri($self); }
if defined(SWIGRUBY)
/* Get value of selector by name epr#selector converts any value passed to String ==== Shortcut epr.selector("name") can also be abbreviated as epr.name ==== Examples epr.selector("name") epr.selector(value) epr.name / char *selector(VALUE v) { const char *name = as_string(v);
else
/* get value of selector by name / char *selector(const char* name) {
endif
return wsman_epr_selector_by_name($self, name); }
if !defined(SWIGJAVA) /* Target_* undefined for Java in openwsman.i */
/* Return list of selector names /
if defined(SWIGRUBY)
VALUE selector_names(void) {
endif if defined(SWIGPYTHON)
PyObject *selector_names(void) {
endif if defined(SWIGPERL)
AV *selector_names(void) {
endif
int i; Target_Type ary = Target_SizedArray($self->refparams.selectorset.count); key_value_t *p = $self->refparams.selectorset.selectors; for (i = 0; i < $self->refparams.selectorset.count; i++) { Target_ListSet(ary, i, SWIG_FromCharPtr(p->key)); ++p; }
if defined(SWIGPERL)
return (AV *)ary;
else
return ary;
endif
}
endif
if defined(SWIGRUBY)
/* enumerate over selectors as key,value pairs call-seq: epr.each { |key,value| ... } / void each() { int i; key_value_t *p = NULL; VALUE value, ary; p = $self->refparams.selectorset.selectors; for (i = 0; i < $self->refparams.selectorset.count; i++) { ary = rb_ary_new2(2); rb_ary_store(ary, 0, SWIG_FromCharPtr(p->key)); if (p->type == 0) { value = SWIG_FromCharPtr(p->v.text); } else { value = SWIG_NewPointerObj((void*) p->v.epr, SWIGTYPE_p_epr_t, 0); } rb_ary_store(ary, 1, value); rb_yield(ary); p++; } }
endif
%newobject classname; /* Classname of EPR / char *classname(void) { return uri_classname($self->refparams.uri); } %newobject namespace; /* Namespace of EPR / char *namespace(void) { char *classname; int classnamelen, namespacelen; const char *prefix; const char *uri; /* try to get namespace from selectors (WS-Management style) */ char *ns = get_cimnamespace_from_selectorset(&($self->refparams.selectorset)); if (ns) { return strdup(ns); } /* WMI style? - extract namespace from uri */ uri = $self->refparams.uri; prefix = epr_prefix(uri); if (prefix == NULL) { return NULL; /* bad classname in URI */ } classname = uri_classname(uri); if (classname == NULL) return NULL; /* bad URI */ classnamelen = strlen(classname); free(classname); namespacelen = strlen(uri) - classnamelen - strlen(prefix) - 2; /* drop enclosing slashes */ if (namespacelen <= 0) return strdup(""); /* copy after prefix slash (+ 1) */ return strndup(uri + strlen(prefix) + 1, namespacelen); } %newobject prefix; /* Prefix of EPR / char *prefix(void) { return epr_prefix($self->refparams.uri); }
}