sfcc 0.1.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,27 @@
1
+ == 0.4.0
2
+
3
+ * support https access
4
+ * extend Client.connect API for https data
5
+ * allow mix of uri and explicit paraters in Client.connect
6
+
7
+ == 0.3.1
8
+
9
+ * simplify properties access for Instance and ObjectPath
10
+
11
+ == 0.3.0
12
+
13
+ * use sfcc 'new' api
14
+ * link against libcimcclient
15
+
16
+ == 0.2.0
17
+
18
+ * fix Client.connect for URI
19
+ * transparently convert Ruby values to string whereever needed
20
+
21
+ == 0.1.3
22
+
23
+ * fix finding libcmpisfcc for sblim-sfcc-2.2.3
24
+
1
25
  == 0.1.2
2
26
 
3
27
  * build with ruby 1.9
@@ -10,6 +10,22 @@ ruby-sfcc provides the SBLIM client API ( http://sblim.wiki.sourceforge.net/Sfcc
10
10
  You can use it to connect to any CIMOM talking CIM-XML, but it can take advantage of
11
11
  sfcb CIMOM by connecting using a native interface.
12
12
 
13
+ == Requirements
14
+
15
+ === Ruby interpreters
16
+
17
+ ruby-sfcc has been built and the testsuite ran against:
18
+
19
+ * ruby 1.8.7
20
+ * ruby 1.9.2
21
+ * rubinius HEAD (what will be 1.1 soon)
22
+
23
+ === sblim
24
+
25
+ ruby-sfcc has been built and the testsuite ran against:
26
+
27
+ * sblim-sfcc 2.2.1
28
+
13
29
  == Quick Start
14
30
 
15
31
  You can create a gem by running rake gem.
@@ -2,9 +2,10 @@
2
2
  #include "cim_class.h"
3
3
 
4
4
  static void
5
- dealloc(CMPIConstClass *cimclass)
5
+ dealloc(CIMCClass *c)
6
6
  {
7
- SFCC_DEC_REFCOUNT(cimclass);
7
+ /* fprintf(stderr, "Sfcc_dealloc_cim_class %p\n", c); */
8
+ c->ft->release(c);
8
9
  }
9
10
 
10
11
  /**
@@ -15,13 +16,96 @@ dealloc(CMPIConstClass *cimclass)
15
16
  */
16
17
  static VALUE class_name(VALUE self)
17
18
  {
18
- CMPIConstClass *cimclass = NULL;
19
- CMPIString *classname;
20
- Data_Get_Struct(self, CMPIConstClass, cimclass);
21
- classname = cimclass->ft->getClassName(cimclass, NULL);
22
- return rb_str_new2(classname->ft->getCharPtr(classname, NULL));
19
+ CIMCClass *cimclass;
20
+ const char *classname;
21
+ Data_Get_Struct(self, CIMCClass, cimclass);
22
+ classname = cimclass->ft->getCharClassName(cimclass);
23
+ return rb_str_new2(classname);
23
24
  }
24
25
 
26
+ /**
27
+ * call-seq:
28
+ * superclass_name()
29
+ *
30
+ * gets the superclass name
31
+ */
32
+ static VALUE superclass_name(VALUE self)
33
+ {
34
+ CIMCClass *cimclass;
35
+ const char *classname;
36
+ Data_Get_Struct(self, CIMCClass, cimclass);
37
+ classname = cimclass->ft->getCharSuperClassName(cimclass);
38
+ return rb_str_new2(classname);
39
+ }
40
+
41
+
42
+ /**
43
+ * call-seq:
44
+ * keys()
45
+ *
46
+ * gets the list of keys
47
+ */
48
+ static VALUE keys(VALUE self)
49
+ {
50
+ VALUE ret;
51
+ CIMCClass *cimclass;
52
+ CIMCArray *keylist;
53
+ Data_Get_Struct(self, CIMCClass, cimclass);
54
+ keylist = cimclass->ft->getKeyList(cimclass);
55
+ ret = sfcc_cimcarray_to_rubyarray(keylist);
56
+ keylist->ft->release(keylist);
57
+ return ret;
58
+ }
59
+
60
+
61
+ /**
62
+ * call-seq:
63
+ * association?
64
+ *
65
+ * returns True if the class is an association
66
+ */
67
+ static VALUE is_association(VALUE self)
68
+ {
69
+ CIMCClass *cimclass;
70
+ CIMCBoolean is;
71
+ Data_Get_Struct(self, CIMCClass, cimclass);
72
+ is = cimclass->ft->isAssociation(cimclass);
73
+ return is ? Qtrue : Qfalse;
74
+ }
75
+
76
+
77
+ /**
78
+ * call-seq:
79
+ * abstract?
80
+ *
81
+ * returns True if the class is abstract
82
+ */
83
+ static VALUE is_abstract(VALUE self)
84
+ {
85
+ CIMCClass *cimclass;
86
+ CIMCBoolean is;
87
+ Data_Get_Struct(self, CIMCClass, cimclass);
88
+ is = cimclass->ft->isAbstract(cimclass);
89
+ return is ? Qtrue : Qfalse;
90
+ }
91
+
92
+
93
+ /**
94
+ * call-seq:
95
+ * indication?
96
+ *
97
+ * returns True if the class is an indication
98
+ */
99
+ static VALUE is_indication(VALUE self)
100
+ {
101
+ CIMCClass *cimclass;
102
+ CIMCBoolean is;
103
+ Data_Get_Struct(self, CIMCClass, cimclass);
104
+ is = cimclass->ft->isIndication(cimclass);
105
+ return is ? Qtrue : Qfalse;
106
+ }
107
+
108
+
25
109
  /**
26
110
  * call-seq:
27
111
  * property(name)
@@ -30,16 +114,16 @@ static VALUE class_name(VALUE self)
30
114
  */
31
115
  static VALUE property(VALUE self, VALUE name)
32
116
  {
33
- CMPIConstClass *ptr = NULL;
34
- CMPIStatus status;
35
- CMPIData data;
36
- memset(&status, 0, sizeof(CMPIStatus));
37
- Data_Get_Struct(self, CMPIConstClass, ptr);
38
- data = ptr->ft->getProperty(ptr, StringValuePtr(name), &status);
117
+ CIMCClass *ptr;
118
+ CIMCStatus status;
119
+ CIMCData data;
120
+ memset(&status, 0, sizeof(CIMCStatus));
121
+ Data_Get_Struct(self, CIMCClass, ptr);
122
+ data = ptr->ft->getProperty(ptr, to_charptr(name), &status);
39
123
  if ( !status.rc )
40
124
  return sfcc_cimdata_to_value(data);
41
125
 
42
- sfcc_rb_raise_if_error(status, "Can't retrieve property '%s'", StringValuePtr(name));
126
+ sfcc_rb_raise_if_error(status, "Can't retrieve property '%s'", to_charptr(name));
43
127
  return Qnil;
44
128
  }
45
129
 
@@ -55,13 +139,13 @@ static VALUE property(VALUE self, VALUE name)
55
139
  */
56
140
  static VALUE each_property(VALUE self)
57
141
  {
58
- CMPIConstClass *ptr = NULL;
59
- CMPIStatus status;
142
+ CIMCClass *ptr;
143
+ CIMCStatus status;
60
144
  int k=0;
61
145
  int num_props=0;
62
- CMPIString *property_name = NULL;
63
- CMPIData data;
64
- Data_Get_Struct(self, CMPIConstClass, ptr);
146
+ CIMCString *property_name;
147
+ CIMCData data;
148
+ Data_Get_Struct(self, CIMCClass, ptr);
65
149
 
66
150
  num_props = ptr->ft->getPropertyCount(ptr, &status);
67
151
  if (!status.rc) {
@@ -72,7 +156,7 @@ static VALUE each_property(VALUE self)
72
156
  }
73
157
  else {
74
158
  sfcc_rb_raise_if_error(status, "Can't retrieve property #%d", k);
75
- }
159
+ }
76
160
  if (property_name) CMRelease(property_name);
77
161
  }
78
162
  }
@@ -90,8 +174,9 @@ static VALUE each_property(VALUE self)
90
174
  */
91
175
  static VALUE property_count(VALUE self)
92
176
  {
93
- CMPIConstClass *ptr = NULL;
94
- Data_Get_Struct(self, CMPIConstClass, ptr);
177
+ CIMCClass *ptr;
178
+ Data_Get_Struct(self, CIMCClass, ptr);
179
+ Data_Get_Struct(self, CIMCClass, ptr);
95
180
  return UINT2NUM(ptr->ft->getPropertyCount(ptr, NULL));
96
181
  }
97
182
 
@@ -103,16 +188,16 @@ static VALUE property_count(VALUE self)
103
188
  */
104
189
  static VALUE qualifier(VALUE self, VALUE name)
105
190
  {
106
- CMPIConstClass *ptr = NULL;
107
- CMPIStatus status;
108
- CMPIData data;
109
- memset(&status, 0, sizeof(CMPIStatus));
110
- Data_Get_Struct(self, CMPIConstClass, ptr);
111
- data = ptr->ft->getQualifier(ptr, StringValuePtr(name), &status);
191
+ CIMCClass *ptr;
192
+ CIMCStatus status;
193
+ CIMCData data;
194
+ memset(&status, 0, sizeof(CIMCStatus));
195
+ Data_Get_Struct(self, CIMCClass, ptr);
196
+ data = ptr->ft->getQualifier(ptr, to_charptr(name), &status);
112
197
  if ( !status.rc )
113
198
  return sfcc_cimdata_to_value(data);
114
199
 
115
- sfcc_rb_raise_if_error(status, "Can't retrieve qualifier '%s'", StringValuePtr(name));
200
+ sfcc_rb_raise_if_error(status, "Can't retrieve qualifier '%s'", to_charptr(name));
116
201
  return Qnil;
117
202
  }
118
203
 
@@ -128,13 +213,13 @@ static VALUE qualifier(VALUE self, VALUE name)
128
213
  */
129
214
  static VALUE each_qualifier(VALUE self)
130
215
  {
131
- CMPIConstClass *ptr = NULL;
132
- CMPIStatus status;
216
+ CIMCClass *ptr;
217
+ CIMCStatus status;
133
218
  int k=0;
134
219
  int num_props=0;
135
- CMPIString *qualifier_name = NULL;
136
- CMPIData data;
137
- Data_Get_Struct(self, CMPIConstClass, ptr);
220
+ CIMCString *qualifier_name;
221
+ CIMCData data;
222
+ Data_Get_Struct(self, CIMCClass, ptr);
138
223
 
139
224
  num_props = ptr->ft->getQualifierCount(ptr, &status);
140
225
  if (!status.rc) {
@@ -145,7 +230,7 @@ static VALUE each_qualifier(VALUE self)
145
230
  }
146
231
  else {
147
232
  sfcc_rb_raise_if_error(status, "Can't retrieve qualifier #%d", k);
148
- }
233
+ }
149
234
  if (qualifier_name) CMRelease(qualifier_name);
150
235
  }
151
236
  }
@@ -163,8 +248,8 @@ static VALUE each_qualifier(VALUE self)
163
248
  */
164
249
  static VALUE qualifier_count(VALUE self)
165
250
  {
166
- CMPIConstClass *ptr = NULL;
167
- Data_Get_Struct(self, CMPIConstClass, ptr);
251
+ CIMCClass *ptr;
252
+ Data_Get_Struct(self, CIMCClass, ptr);
168
253
  return UINT2NUM(ptr->ft->getQualifierCount(ptr, NULL));
169
254
  }
170
255
 
@@ -176,17 +261,17 @@ static VALUE qualifier_count(VALUE self)
176
261
  */
177
262
  static VALUE property_qualifier(VALUE self, VALUE property_name, VALUE qualifier_name)
178
263
  {
179
- CMPIConstClass *ptr = NULL;
180
- CMPIStatus status;
181
- CMPIData data;
182
- memset(&status, 0, sizeof(CMPIStatus));
183
- Data_Get_Struct(self, CMPIConstClass, ptr);
184
- data = ptr->ft->getPropertyQualifier(ptr, StringValuePtr(property_name),
185
- StringValuePtr(qualifier_name), &status);
264
+ CIMCClass *ptr;
265
+ CIMCStatus status;
266
+ CIMCData data;
267
+ memset(&status, 0, sizeof(CIMCStatus));
268
+ Data_Get_Struct(self, CIMCClass, ptr);
269
+ data = ptr->ft->getPropQualifier(ptr, to_charptr(property_name),
270
+ to_charptr(qualifier_name), &status);
186
271
  if ( !status.rc )
187
272
  return sfcc_cimdata_to_value(data);
188
273
 
189
- sfcc_rb_raise_if_error(status, "Can't retrieve property_qualifier '%s'", StringValuePtr(qualifier_name));
274
+ sfcc_rb_raise_if_error(status, "Can't retrieve property_qualifier '%s'", to_charptr(qualifier_name));
190
275
  return Qnil;
191
276
  }
192
277
 
@@ -202,24 +287,24 @@ static VALUE property_qualifier(VALUE self, VALUE property_name, VALUE qualifier
202
287
  */
203
288
  static VALUE each_property_qualifier(VALUE self, VALUE property_name)
204
289
  {
205
- CMPIConstClass *ptr = NULL;
206
- CMPIStatus status;
290
+ CIMCClass *ptr;
291
+ CIMCStatus status;
207
292
  int k=0;
208
293
  int num_props=0;
209
- CMPIString *property_qualifier_name = NULL;
210
- CMPIData data;
211
- Data_Get_Struct(self, CMPIConstClass, ptr);
294
+ CIMCString *property_qualifier_name;
295
+ CIMCData data;
296
+ Data_Get_Struct(self, CIMCClass, ptr);
212
297
 
213
- num_props = ptr->ft->getPropertyQualifierCount(ptr, StringValuePtr(property_name), &status);
298
+ num_props = ptr->ft->getPropQualifierCount(ptr, to_charptr(property_name), &status);
214
299
  if (!status.rc) {
215
300
  for (; k < num_props; ++k) {
216
- data = ptr->ft->getPropertyQualifierAt(ptr, StringValuePtr(property_name), k, &property_qualifier_name, &status);
301
+ data = ptr->ft->getPropQualifierAt(ptr, to_charptr(property_name), k, &property_qualifier_name, &status);
217
302
  if (!status.rc) {
218
303
  rb_yield_values(2, (property_qualifier_name ? rb_str_intern(rb_str_new2(property_qualifier_name->ft->getCharPtr(property_qualifier_name, NULL))) : Qnil), sfcc_cimdata_to_value(data));
219
304
  }
220
305
  else {
221
306
  sfcc_rb_raise_if_error(status, "Can't retrieve property qualifier #%d", k);
222
- }
307
+ }
223
308
  if (property_qualifier_name) CMRelease(property_qualifier_name);
224
309
  }
225
310
  }
@@ -237,15 +322,14 @@ static VALUE each_property_qualifier(VALUE self, VALUE property_name)
237
322
  */
238
323
  static VALUE property_qualifier_count(VALUE self, VALUE property_name)
239
324
  {
240
- CMPIConstClass *ptr = NULL;
241
- Data_Get_Struct(self, CMPIConstClass, ptr);
242
- return UINT2NUM(ptr->ft->getPropertyQualifierCount(ptr, StringValuePtr(property_name), NULL));
325
+ CIMCClass *ptr;
326
+ Data_Get_Struct(self, CIMCClass, ptr);
327
+ return UINT2NUM(ptr->ft->getPropQualifierCount(ptr, to_charptr(property_name), NULL));
243
328
  }
244
329
 
245
330
  VALUE
246
- Sfcc_wrap_cim_class(CMPIConstClass *cimclass)
331
+ Sfcc_wrap_cim_class(CIMCClass *cimclass)
247
332
  {
248
- SFCC_INC_REFCOUNT(cimclass);
249
333
  return Data_Wrap_Struct(cSfccCimClass, NULL, dealloc, cimclass);
250
334
  }
251
335
 
@@ -271,4 +355,9 @@ void init_cim_class()
271
355
  rb_define_method(klass, "property_qualifier", property_qualifier, 2);
272
356
  rb_define_method(klass, "each_property_qualifier", each_property_qualifier, 1);
273
357
  rb_define_method(klass, "property_qualifier_count", property_qualifier_count, 1);
358
+ rb_define_method(klass, "superclass_name", superclass_name, 0);
359
+ rb_define_method(klass, "keys", keys, 0);
360
+ rb_define_method(klass, "association?", is_association, 0);
361
+ rb_define_method(klass, "abstract?", is_abstract, 0);
362
+ rb_define_method(klass, "indication?", is_indication, 0);
274
363
  }
@@ -7,6 +7,6 @@
7
7
  void init_cim_class();
8
8
 
9
9
  extern VALUE cSfccCimClass;
10
- VALUE Sfcc_wrap_cim_class(CMPIConstClass *cimclass);
10
+ VALUE Sfcc_wrap_cim_class(CIMCClass *cimclass);
11
11
 
12
12
  #endif
@@ -5,9 +5,10 @@
5
5
  #include "cim_instance.h"
6
6
 
7
7
  static void
8
- dealloc(CMCIClient *client)
8
+ dealloc(CIMCClient *c)
9
9
  {
10
- SFCC_DEC_REFCOUNT(client);
10
+ /* fprintf(stderr, "Sfcc_dealloc_cim_client %p\n", c); */
11
+ c->ft->release(c);
11
12
  }
12
13
 
13
14
  /**
@@ -32,28 +33,25 @@ static VALUE get_class(int argc, VALUE *argv, VALUE self)
32
33
  VALUE flags;
33
34
  VALUE properties;
34
35
 
35
- CMPIStatus status = {CMPI_RC_OK, NULL};
36
- CMPIObjectPath *op = NULL;
37
- CMCIClient *client = NULL;
38
- CMPIConstClass *cimclass = NULL;
39
- CMPIConstClass *cimclassnew = NULL;
36
+ CIMCStatus status = {CIMC_RC_OK, NULL};
37
+ CIMCObjectPath *op = NULL;
38
+ CIMCClient *client = NULL;
39
+ CIMCClass *cimclass = NULL;
40
40
  char **props;
41
41
 
42
42
  rb_scan_args(argc, argv, "12", &object_path, &flags, &properties);
43
43
 
44
44
  if (NIL_P(flags)) flags = INT2NUM(0);
45
45
 
46
- Data_Get_Struct(self, CMCIClient, client);
47
- Data_Get_Struct(object_path, CMPIObjectPath, op);
46
+ Data_Get_Struct(self, CIMCClient, client);
47
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
48
48
 
49
49
  props = sfcc_value_array_to_string_array(properties);
50
50
  cimclass = client->ft->getClass(client, op, NUM2INT(flags), props, &status);
51
51
  free(props);
52
52
 
53
53
  if (!status.rc) {
54
- cimclassnew = cimclass->ft->clone(cimclass, NULL);
55
- cimclass->ft->release(cimclass);
56
- return Sfcc_wrap_cim_class(cimclassnew);
54
+ return Sfcc_wrap_cim_class(cimclass);
57
55
  }
58
56
  sfcc_rb_raise_if_error(status, "Can't get class at %s", CMGetCharsPtr(CMObjectPathToString(op, NULL), NULL));
59
57
  return Qnil;
@@ -73,22 +71,20 @@ static VALUE class_names(int argc, VALUE *argv, VALUE self)
73
71
  VALUE object_path;
74
72
  VALUE flags;
75
73
 
76
- CMPIStatus status = {CMPI_RC_OK, NULL};
77
- CMPIObjectPath *op = NULL;
78
- CMCIClient *client = NULL;
79
- VALUE rbenm = Qnil;
74
+ CIMCStatus status = {CIMC_RC_OK, NULL};
75
+ CIMCObjectPath *op;
76
+ CIMCClient *client;
77
+ CIMCEnumeration *enm;
80
78
 
81
79
  rb_scan_args(argc, argv, "11", &object_path, &flags);
82
80
  if (NIL_P(flags)) flags = INT2NUM(0);
83
81
 
84
- Data_Get_Struct(self, CMCIClient, client);
85
- Data_Get_Struct(object_path, CMPIObjectPath, op);
82
+ Data_Get_Struct(self, CIMCClient, client);
83
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
86
84
 
87
- CMPIEnumeration *enm = client->ft->enumClassNames(client, op, NUM2INT(flags), &status);
85
+ enm = client->ft->enumClassNames(client, op, NUM2INT(flags), &status);
88
86
  if (enm && !status.rc ) {
89
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
90
- enm->ft->release(enm);
91
- return rbenm;
87
+ return Sfcc_wrap_cim_enumeration(enm);
92
88
  }
93
89
 
94
90
  sfcc_rb_raise_if_error(status, "Can't get class names");
@@ -110,25 +106,23 @@ static VALUE classes(int argc, VALUE *argv, VALUE self)
110
106
  VALUE object_path;
111
107
  VALUE flags;
112
108
 
113
- CMPIStatus status = {CMPI_RC_OK, NULL};
114
- CMPIObjectPath *op = NULL;
115
- CMCIClient *client = NULL;
116
- VALUE rbenm = Qnil;
109
+ CIMCStatus status = {CIMC_RC_OK, NULL};
110
+ CIMCObjectPath *op;
111
+ CIMCClient *client;
112
+ CIMCEnumeration *enm;
117
113
 
118
114
  rb_scan_args(argc, argv, "11", &object_path, &flags);
119
115
  if (NIL_P(flags)) flags = INT2NUM(0);
120
116
 
121
- Data_Get_Struct(self, CMCIClient, client);
122
- Data_Get_Struct(object_path, CMPIObjectPath, op);
117
+ Data_Get_Struct(self, CIMCClient, client);
118
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
123
119
 
124
- CMPIEnumeration *enm = client->ft->enumClasses(client, op, NUM2INT(flags), &status);
120
+ enm = client->ft->enumClasses(client, op, NUM2INT(flags), &status);
125
121
  if (enm && !status.rc ) {
126
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
127
- enm->ft->release(enm);
128
- return rbenm;
122
+ return Sfcc_wrap_cim_enumeration(enm);
129
123
  }
130
124
 
131
- sfcc_rb_raise_if_error(status, "Can't get classes");
125
+ sfcc_rb_raise_if_error(status, "Can't get classes, try increasing maxMsgLen in sfcb.cfg ?");
132
126
  return Qnil;
133
127
  }
134
128
 
@@ -155,17 +149,17 @@ static VALUE get_instance(int argc, VALUE *argv, VALUE self)
155
149
  VALUE flags;
156
150
  VALUE properties;
157
151
 
158
- CMPIStatus status = {CMPI_RC_OK, NULL};
159
- CMPIObjectPath *op = NULL;
160
- CMCIClient *client = NULL;
161
- CMPIInstance *ciminstance = NULL;
152
+ CIMCStatus status = {CIMC_RC_OK, NULL};
153
+ CIMCObjectPath *op;
154
+ CIMCClient *client;
155
+ CIMCInstance *ciminstance;
162
156
  char **props;
163
157
 
164
158
  rb_scan_args(argc, argv, "12", &object_path, &flags, &properties);
165
159
  if (NIL_P(flags)) flags = INT2NUM(0);
166
160
 
167
- Data_Get_Struct(self, CMCIClient, client);
168
- Data_Get_Struct(object_path, CMPIObjectPath, op);
161
+ Data_Get_Struct(self, CIMCClient, client);
162
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
169
163
 
170
164
  props = sfcc_value_array_to_string_array(properties);
171
165
 
@@ -173,7 +167,7 @@ static VALUE get_instance(int argc, VALUE *argv, VALUE self)
173
167
  free(props);
174
168
 
175
169
  if (!status.rc)
176
- return Sfcc_wrap_cim_instance(ciminstance->ft->clone(ciminstance, NULL));
170
+ return Sfcc_wrap_cim_instance(ciminstance);
177
171
 
178
172
  sfcc_rb_raise_if_error(status, "Can't get instance");
179
173
  return Qnil;
@@ -193,19 +187,20 @@ static VALUE get_instance(int argc, VALUE *argv, VALUE self)
193
187
  */
194
188
  static VALUE create_instance(VALUE self, VALUE object_path, VALUE instance)
195
189
  {
196
- CMPIStatus status = {CMPI_RC_OK, NULL};
197
- CMCIClient *ptr = NULL;
198
- CMPIObjectPath *op = NULL;
199
- CMPIObjectPath *new_op = NULL;
200
- CMPIInstance *inst = NULL;
190
+ CIMCStatus status = {CIMC_RC_OK, NULL};
191
+ CIMCClient *client;
192
+ CIMCObjectPath *op;
193
+ CIMCObjectPath *new_op;
194
+ CIMCInstance *inst;
201
195
 
202
- Data_Get_Struct(self, CMCIClient, ptr);
203
- Data_Get_Struct(object_path, CMPIObjectPath, op);
204
- Data_Get_Struct(instance, CMPIInstance, inst);
205
- new_op = ptr->ft->createInstance(ptr, op, inst, &status);
196
+ Data_Get_Struct(self, CIMCClient, client);
197
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
198
+ Data_Get_Struct(instance, CIMCInstance, inst);
199
+
200
+ new_op = client->ft->createInstance(client, op, inst, &status);
206
201
 
207
202
  if (!status.rc)
208
- return Sfcc_wrap_cim_object_path(new_op->ft->clone(new_op, NULL));
203
+ return Sfcc_wrap_cim_object_path(new_op);
209
204
 
210
205
  sfcc_rb_raise_if_error(status, "Can't create instance");
211
206
  return Qnil;
@@ -233,18 +228,18 @@ static VALUE set_instance(int argc, VALUE *argv, VALUE self)
233
228
  VALUE flags;
234
229
  VALUE properties;
235
230
 
236
- CMPIStatus status = {CMPI_RC_OK, NULL};
237
- CMPIObjectPath *op = NULL;
238
- CMPIInstance *inst = NULL;
239
- CMCIClient *client = NULL;
231
+ CIMCStatus status = {CIMC_RC_OK, NULL};
232
+ CIMCObjectPath *op;
233
+ CIMCInstance *inst;
234
+ CIMCClient *client;
240
235
  char **props;
241
236
 
242
237
  rb_scan_args(argc, argv, "22", &object_path, &instance, &flags, &properties);
243
238
  if (NIL_P(flags)) flags = INT2NUM(0);
244
239
 
245
- Data_Get_Struct(self, CMCIClient, client);
246
- Data_Get_Struct(object_path, CMPIObjectPath, op);
247
- Data_Get_Struct(instance, CMPIInstance, inst);
240
+ Data_Get_Struct(self, CIMCClient, client);
241
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
242
+ Data_Get_Struct(instance, CIMCInstance, inst);
248
243
 
249
244
  props = sfcc_value_array_to_string_array(properties);
250
245
 
@@ -264,12 +259,12 @@ static VALUE set_instance(int argc, VALUE *argv, VALUE self)
264
259
  */
265
260
  static VALUE delete_instance(VALUE self, VALUE object_path)
266
261
  {
267
- CMPIStatus status = {CMPI_RC_OK, NULL};
268
- CMPIObjectPath *op = NULL;
269
- CMCIClient *client = NULL;
262
+ CIMCStatus status = {CIMC_RC_OK, NULL};
263
+ CIMCObjectPath *op;
264
+ CIMCClient *client;
270
265
 
271
- Data_Get_Struct(self, CMCIClient, client);
272
- Data_Get_Struct(object_path, CMPIObjectPath, op);
266
+ Data_Get_Struct(self, CIMCClient, client);
267
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
273
268
 
274
269
  status = client->ft->deleteInstance(client, op);
275
270
  sfcc_rb_raise_if_error(status, "Can't delete instance '%s'", CMGetCharsPtr(CMObjectPathToString(op, NULL), NULL));
@@ -296,23 +291,21 @@ static VALUE query(VALUE self,
296
291
  VALUE query,
297
292
  VALUE lang)
298
293
  {
299
- CMPIStatus status = {CMPI_RC_OK, NULL};
300
- CMPIObjectPath *op = NULL;
301
- CMCIClient *client = NULL;
302
-
303
- Data_Get_Struct(self, CMCIClient, client);
304
- Data_Get_Struct(object_path, CMPIObjectPath, op);
305
- VALUE rbenm = Qnil;
306
-
307
- CMPIEnumeration *enm = client->ft->execQuery(client,
308
- op,
309
- StringValuePtr(query),
310
- StringValuePtr(lang),
311
- &status);
294
+ CIMCStatus status = {CIMC_RC_OK, NULL};
295
+ CIMCObjectPath *op;
296
+ CIMCClient *client;
297
+ CIMCEnumeration *enm;
298
+
299
+ Data_Get_Struct(self, CIMCClient, client);
300
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
301
+
302
+ enm = client->ft->execQuery(client,
303
+ op,
304
+ to_charptr(query),
305
+ to_charptr(lang),
306
+ &status);
312
307
  if (enm && !status.rc ) {
313
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
314
- enm->ft->release(enm);
315
- return rbenm;
308
+ return Sfcc_wrap_cim_enumeration(enm);
316
309
  }
317
310
 
318
311
  sfcc_rb_raise_if_error(status, "Can't get instances from query");
@@ -327,20 +320,18 @@ static VALUE query(VALUE self,
327
320
  */
328
321
  static VALUE instance_names(VALUE self, VALUE object_path)
329
322
  {
330
- CMPIStatus status = {CMPI_RC_OK, NULL};
331
- CMPIObjectPath *op = NULL;
332
- CMCIClient *client = NULL;
333
- VALUE rbenm = Qnil;
323
+ CIMCStatus status = {CIMC_RC_OK, NULL};
324
+ CIMCObjectPath *op;
325
+ CIMCClient *client;
326
+ CIMCEnumeration *enm;
334
327
 
335
- Data_Get_Struct(self, CMCIClient, client);
336
- Data_Get_Struct(object_path, CMPIObjectPath, op);
328
+ Data_Get_Struct(self, CIMCClient, client);
329
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
337
330
 
338
- CMPIEnumeration *enm = client->ft->enumInstanceNames(client, op, &status);
331
+ enm = client->ft->enumInstanceNames(client, op, &status);
339
332
 
340
333
  if (enm && !status.rc ) {
341
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
342
- enm->ft->release(enm);
343
- return rbenm;
334
+ return Sfcc_wrap_cim_enumeration(enm);
344
335
  }
345
336
  sfcc_rb_raise_if_error(status, "Can't get instance names");
346
337
  return Qnil;
@@ -362,7 +353,7 @@ static VALUE instance_names(VALUE self, VALUE object_path)
362
353
  * Property names.
363
354
  * Each returned Object MUST NOT include elements for any Properties
364
355
  * missing from this list
365
- *
356
+ *
366
357
  */
367
358
  static VALUE instances(int argc, VALUE *argv, VALUE self)
368
359
  {
@@ -370,28 +361,26 @@ static VALUE instances(int argc, VALUE *argv, VALUE self)
370
361
  VALUE flags;
371
362
  VALUE properties;
372
363
 
373
- CMPIStatus status = {CMPI_RC_OK, NULL};
374
- CMPIObjectPath *op = NULL;
375
- CMCIClient *client = NULL;
364
+ CIMCStatus status = {CIMC_RC_OK, NULL};
365
+ CIMCObjectPath *op;
366
+ CIMCClient *client;
367
+ CIMCEnumeration *enm;
376
368
  char **props;
377
- VALUE rbenm = Qnil;
378
369
 
379
370
  rb_scan_args(argc, argv, "12", &object_path, &flags, &properties);
380
371
  if (NIL_P(flags)) flags = INT2NUM(0);
381
372
 
382
- Data_Get_Struct(self, CMCIClient, client);
383
- Data_Get_Struct(object_path, CMPIObjectPath, op);
373
+ Data_Get_Struct(self, CIMCClient, client);
374
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
384
375
 
385
376
  props = sfcc_value_array_to_string_array(properties);
386
377
 
387
- CMPIEnumeration *enm = client->ft->enumInstances(client, op, NUM2INT(flags), props, &status);
378
+ enm = client->ft->enumInstances(client, op, NUM2INT(flags), props, &status);
388
379
 
389
380
  free(props);
390
381
 
391
382
  if (enm && !status.rc ) {
392
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
393
- enm->ft->release(enm);
394
- return rbenm;
383
+ return Sfcc_wrap_cim_enumeration(enm);
395
384
  }
396
385
 
397
386
  sfcc_rb_raise_if_error(status, "Can't get instances");
@@ -405,7 +394,7 @@ static VALUE instances(int argc, VALUE *argv, VALUE self)
405
394
  * properties=nil)
406
395
  *
407
396
  * Enumerate instances associated with the Instance defined by the +object_path+
408
- *
397
+ *
409
398
  * +object_path+ Source ObjectPath containing nameSpace, classname
410
399
  * and key components.
411
400
  *
@@ -452,35 +441,32 @@ static VALUE associators(int argc, VALUE *argv, VALUE self)
452
441
  VALUE flags;
453
442
  VALUE properties;
454
443
 
455
- CMPIStatus status = {CMPI_RC_OK, NULL};
456
- CMPIObjectPath *op = NULL;
457
- CMCIClient *client = NULL;
444
+ CIMCStatus status = {CIMC_RC_OK, NULL};
445
+ CIMCObjectPath *op;
446
+ CIMCClient *client;
458
447
  char **props;
459
- CMPIEnumeration *enm = NULL;
460
- VALUE rbenm = Qnil;
448
+ CIMCEnumeration *enm;
461
449
 
462
450
  rb_scan_args(argc, argv, "16", &object_path,
463
451
  &assoc_class, &result_class,
464
452
  &role, &result_role, &flags, &properties);
465
453
 
466
454
  if (NIL_P(flags)) flags = INT2NUM(0);
467
- Data_Get_Struct(self, CMCIClient, client);
468
- Data_Get_Struct(object_path, CMPIObjectPath, op);
455
+ Data_Get_Struct(self, CIMCClient, client);
456
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
469
457
 
470
458
  props = sfcc_value_array_to_string_array(properties);
471
459
 
472
460
  enm = client->ft->associators(client,
473
461
  op,
474
- NIL_P(assoc_class) ? NULL : StringValuePtr(assoc_class),
475
- NIL_P(result_class) ? NULL : StringValuePtr(result_class),
476
- NIL_P(role) ? NULL : StringValuePtr(role),
477
- NIL_P(result_role) ? NULL : StringValuePtr(result_role),
462
+ to_charptr(assoc_class),
463
+ to_charptr(result_class),
464
+ to_charptr(role),
465
+ to_charptr(result_role),
478
466
  NUM2INT(flags), props, &status);
479
467
  free(props);
480
468
  if (enm && !status.rc ) {
481
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
482
- enm->ft->release(enm);
483
- return rbenm;
469
+ return Sfcc_wrap_cim_enumeration(enm);
484
470
  }
485
471
 
486
472
  sfcc_rb_raise_if_error(status, "Can't get associators for '%s'", CMGetCharsPtr(CMObjectPathToString(op, NULL), NULL));
@@ -495,7 +481,7 @@ static VALUE associators(int argc, VALUE *argv, VALUE self)
495
481
  *
496
482
  * Enumerate object paths associated with the Instance defined by the
497
483
  * +object_path+
498
- *
484
+ *
499
485
  * +object_path+ Source ObjectPath containing nameSpace, classname
500
486
  * and key components.
501
487
  *
@@ -533,30 +519,27 @@ static VALUE associator_names(int argc, VALUE *argv, VALUE self)
533
519
  VALUE role;
534
520
  VALUE result_role;
535
521
 
536
- CMPIStatus status = {CMPI_RC_OK, NULL};
537
- CMPIObjectPath *op = NULL;
538
- CMCIClient *client = NULL;
539
- CMPIEnumeration *enm = NULL;
540
- VALUE rbenm = Qnil;
522
+ CIMCStatus status = {CIMC_RC_OK, NULL};
523
+ CIMCObjectPath *op;
524
+ CIMCClient *client;
525
+ CIMCEnumeration *enm;
541
526
 
542
527
  rb_scan_args(argc, argv, "14", &object_path,
543
528
  &assoc_class, &result_class,
544
529
  &role, &result_role);
545
530
 
546
- Data_Get_Struct(self, CMCIClient, client);
547
- Data_Get_Struct(object_path, CMPIObjectPath, op);
531
+ Data_Get_Struct(self, CIMCClient, client);
532
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
548
533
 
549
534
  enm = client->ft->associatorNames(client,
550
535
  op,
551
- NIL_P(assoc_class) ? NULL : StringValuePtr(assoc_class),
552
- NIL_P(result_class) ? NULL : StringValuePtr(result_class),
553
- NIL_P(role) ? NULL : StringValuePtr(role),
554
- NIL_P(result_role) ? NULL : StringValuePtr(result_role),
536
+ to_charptr(assoc_class),
537
+ to_charptr(result_class),
538
+ to_charptr(role),
539
+ to_charptr(result_role),
555
540
  &status);
556
541
  if (enm && !status.rc ) {
557
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
558
- enm->ft->release(enm);
559
- return rbenm;
542
+ return Sfcc_wrap_cim_enumeration(enm);
560
543
  }
561
544
  sfcc_rb_raise_if_error(status, "Can't get associator names for '%s'", CMGetCharsPtr(CMObjectPathToString(op, NULL), NULL));
562
545
  return Qnil;
@@ -600,33 +583,30 @@ static VALUE references(int argc, VALUE *argv, VALUE self)
600
583
  VALUE flags;
601
584
  VALUE properties;
602
585
 
603
- CMPIStatus status = {CMPI_RC_OK, NULL};
604
- CMPIObjectPath *op = NULL;
605
- CMCIClient *client = NULL;
586
+ CIMCStatus status = {CIMC_RC_OK, NULL};
587
+ CIMCObjectPath *op;
588
+ CIMCClient *client;
606
589
  char **props;
607
- CMPIEnumeration *enm = NULL;
608
- VALUE rbenm = Qnil;
590
+ CIMCEnumeration *enm;
609
591
 
610
592
  rb_scan_args(argc, argv, "14", &object_path,
611
593
  &result_class, &role,
612
594
  &flags, &properties);
613
595
 
614
596
  if (NIL_P(flags)) flags = INT2NUM(0);
615
- Data_Get_Struct(self, CMCIClient, client);
616
- Data_Get_Struct(object_path, CMPIObjectPath, op);
597
+ Data_Get_Struct(self, CIMCClient, client);
598
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
617
599
 
618
600
  props = sfcc_value_array_to_string_array(properties);
619
601
 
620
602
  enm = client->ft->references(client,
621
603
  op,
622
- NIL_P(result_class) ? NULL : StringValuePtr(result_class),
623
- NIL_P(role) ? NULL : StringValuePtr(role),
604
+ to_charptr(result_class),
605
+ to_charptr(role),
624
606
  NUM2INT(flags), props, &status);
625
607
  free(props);
626
608
  if (enm && !status.rc ) {
627
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, NULL));
628
- enm->ft->release(enm);
629
- return rbenm;
609
+ return Sfcc_wrap_cim_enumeration(enm);
630
610
  }
631
611
  sfcc_rb_raise_if_error(status, "Can't get references for '%s'", CMGetCharsPtr(CMObjectPathToString(op, NULL), NULL));
632
612
  return Qnil;
@@ -660,28 +640,25 @@ static VALUE reference_names(int argc, VALUE *argv, VALUE self)
660
640
  VALUE object_path = Qnil;
661
641
  VALUE result_class = Qnil;
662
642
  VALUE role = Qnil;
663
-
664
- CMPIStatus status = {CMPI_RC_OK, NULL};
665
- CMPIObjectPath *op = NULL;
666
- CMCIClient *client = NULL;
667
- CMPIEnumeration *enm = NULL;
668
- VALUE rbenm = Qnil;
643
+
644
+ CIMCStatus status = {CIMC_RC_OK, NULL};
645
+ CIMCObjectPath *op;
646
+ CIMCClient *client;
647
+ CIMCEnumeration *enm;
669
648
 
670
649
  rb_scan_args(argc, argv, "12", &object_path,
671
650
  &result_class, &role);
672
651
 
673
- Data_Get_Struct(self, CMCIClient, client);
674
- Data_Get_Struct(object_path, CMPIObjectPath, op);
652
+ Data_Get_Struct(self, CIMCClient, client);
653
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
675
654
 
676
655
  enm = client->ft->referenceNames(client,
677
656
  op,
678
- NIL_P(result_class) ? NULL : StringValuePtr(result_class),
679
- NIL_P(role) ? NULL : StringValuePtr(role),
657
+ to_charptr(result_class),
658
+ to_charptr(role),
680
659
  &status);
681
660
  if (enm && !status.rc ) {
682
- rbenm = Sfcc_wrap_cim_enumeration(enm->ft->clone(enm, &status));
683
- enm->ft->release(enm);
684
- return rbenm;
661
+ return Sfcc_wrap_cim_enumeration(enm);
685
662
  }
686
663
  sfcc_rb_raise_if_error(status, "Can't get reference names for '%s'", CMGetCharsPtr(CMObjectPathToString(op, NULL), NULL));
687
664
  return Qnil;
@@ -707,32 +684,32 @@ static VALUE invoke_method(VALUE self,
707
684
  VALUE argin,
708
685
  VALUE argout)
709
686
  {
710
- CMPIStatus status = {CMPI_RC_OK, NULL};
711
- CMCIClient *ptr = NULL;
712
- CMPIObjectPath *op = NULL;
713
- CMPIArgs *cmpiargsout;
687
+ CIMCStatus status = {CIMC_RC_OK, NULL};
688
+ CIMCClient *client;
689
+ CIMCObjectPath *op;
690
+ CIMCArgs *cimcargsout;
714
691
  VALUE method_name_str;
715
- char *method_name_cstr;
716
- CMPIData ret;
692
+ const char *method_name_cstr;
693
+ CIMCData ret;
717
694
  Check_Type(argin, T_HASH);
718
695
 
719
- cmpiargsout = newCMPIArgs(NULL);
696
+ cimcargsout = cimcEnv->ft->newArgs(cimcEnv, NULL);
720
697
 
721
- Data_Get_Struct(self, CMCIClient, ptr);
722
- Data_Get_Struct(object_path, CMPIObjectPath, op);
698
+ Data_Get_Struct(self, CIMCClient, client);
699
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
723
700
 
724
701
  method_name_str = rb_funcall(method_name, rb_intern("to_s"), 0);
725
- method_name_cstr = StringValuePtr(method_name_str);
726
- ret = ptr->ft->invokeMethod(ptr,
702
+ method_name_cstr = to_charptr(method_name_str);
703
+ ret = client->ft->invokeMethod(client,
727
704
  op,
728
705
  method_name_cstr,
729
706
  sfcc_hash_to_cimargs(argin),
730
- cmpiargsout,
707
+ cimcargsout,
731
708
  &status);
732
709
  if (!status.rc) {
733
- if (cmpiargsout && ! NIL_P(argout)) {
710
+ if (cimcargsout && ! NIL_P(argout)) {
734
711
  Check_Type(argout, T_HASH);
735
- rb_funcall(argout, rb_intern("merge!"), 1, sfcc_cimargs_to_hash(cmpiargsout));
712
+ rb_funcall(argout, rb_intern("merge!"), 1, sfcc_cimargs_to_hash(cimcargsout));
736
713
  }
737
714
  return sfcc_cimdata_to_value(ret);
738
715
  }
@@ -755,18 +732,18 @@ static VALUE set_property(VALUE self,
755
732
  VALUE name,
756
733
  VALUE value)
757
734
  {
758
- CMPIStatus status = {CMPI_RC_OK, NULL};
759
- CMCIClient *ptr = NULL;
760
- CMPIObjectPath *op = NULL;
761
- CMPIData data;
762
- Data_Get_Struct(self, CMCIClient, ptr);
763
- Data_Get_Struct(object_path, CMPIObjectPath, op);
735
+ CIMCStatus status = {CIMC_RC_OK, NULL};
736
+ CIMCClient *client;
737
+ CIMCObjectPath *op;
738
+ CIMCData data;
739
+ Data_Get_Struct(self, CIMCClient, client);
740
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
764
741
  data = sfcc_value_to_cimdata(value);
765
- status = ptr->ft->setProperty(ptr, op, StringValuePtr(name), &data.value, data.type);
742
+ status = client->ft->setProperty(client, op, to_charptr(name), &data.value, data.type);
766
743
 
767
744
  if ( !status.rc )
768
745
  return value;
769
- sfcc_rb_raise_if_error(status, "Can't set property '%s'", StringValuePtr(name));
746
+ sfcc_rb_raise_if_error(status, "Can't set property '%s'", to_charptr(name));
770
747
  return Qnil;
771
748
  }
772
749
 
@@ -782,30 +759,44 @@ static VALUE set_property(VALUE self,
782
759
  */
783
760
  static VALUE property(VALUE self, VALUE object_path, VALUE name)
784
761
  {
785
- CMCIClient *ptr = NULL;
786
- CMPIObjectPath *op = NULL;
787
- CMPIStatus status = {CMPI_RC_OK, NULL};
788
- CMPIData data;
789
-
790
- Data_Get_Struct(self, CMCIClient, ptr);
791
- Data_Get_Struct(object_path, CMPIObjectPath, op);
792
- data = ptr->ft->getProperty(ptr, op, StringValuePtr(name), &status);
762
+ CIMCClient *client;
763
+ CIMCObjectPath *op = NULL;
764
+ CIMCStatus status = {CIMC_RC_OK, NULL};
765
+ CIMCData data;
766
+
767
+ Data_Get_Struct(self, CIMCClient, client);
768
+ Data_Get_Struct(object_path, CIMCObjectPath, op);
769
+ data = client->ft->getProperty(client, op, to_charptr(name), &status);
793
770
  if ( !status.rc )
794
771
  return sfcc_cimdata_to_value(data);
795
772
 
796
- sfcc_rb_raise_if_error(status, "Can't retrieve property '%s'", StringValuePtr(name));
773
+ sfcc_rb_raise_if_error(status, "Can't retrieve property '%s'", to_charptr(name));
797
774
  return Qnil;
798
775
  }
799
776
 
800
- static VALUE connect(VALUE klass, VALUE host, VALUE scheme, VALUE port, VALUE user, VALUE pwd)
777
+ static VALUE connect(VALUE klass, VALUE host, VALUE scheme, VALUE port, VALUE user, VALUE pwd,
778
+ VALUE verify, VALUE trust_store, VALUE cert_file, VALUE key_file)
801
779
  {
802
- CMCIClient *client = NULL;
803
- CMPIStatus status = {CMPI_RC_OK, NULL};
804
- client = cmciConnect(NIL_P(host) ? NULL : StringValuePtr(host),
805
- NIL_P(scheme) ? NULL : StringValuePtr(scheme),
806
- NIL_P(port) ? NULL : StringValuePtr(port),
807
- NIL_P(user) ? NULL : StringValuePtr(user),
808
- NIL_P(pwd) ? NULL : StringValuePtr(pwd),
780
+ CIMCClient *client;
781
+ CIMCStatus status = {CIMC_RC_OK, NULL};
782
+ /*
783
+ * CIMCClient* (*connect2)
784
+ * (CIMCEnv *ce, const char *hn, const char *scheme, const char *port, const char *user, const char *pwd,
785
+ * int verifyMode, const char * trustStore,
786
+ * const char * certFile, const char * keyFile,
787
+ * CIMCStatus *rc);
788
+ */
789
+
790
+ client = cimcEnv->ft->connect2(cimcEnv,
791
+ to_charptr(host),
792
+ to_charptr(scheme),
793
+ to_charptr(port),
794
+ to_charptr(user),
795
+ to_charptr(pwd),
796
+ (verify == Qfalse)?0:1,
797
+ to_charptr(trust_store),
798
+ to_charptr(cert_file),
799
+ to_charptr(key_file),
809
800
  &status);
810
801
  if ( !status.rc )
811
802
  return Sfcc_wrap_cim_client(client);
@@ -814,10 +805,8 @@ static VALUE connect(VALUE klass, VALUE host, VALUE scheme, VALUE port, VALUE us
814
805
  }
815
806
 
816
807
  VALUE
817
- Sfcc_wrap_cim_client(CMCIClient *client)
808
+ Sfcc_wrap_cim_client(CIMCClient *client)
818
809
  {
819
- assert(client);
820
- SFCC_INC_REFCOUNT(client);
821
810
  return Data_Wrap_Struct(cSfccCimClient, NULL, dealloc, client);
822
811
  }
823
812
 
@@ -833,14 +822,14 @@ void init_cim_client()
833
822
  VALUE klass = rb_define_class_under(cimc, "Client", rb_cObject);
834
823
  cSfccCimClient = klass;
835
824
 
836
- rb_define_singleton_method(klass, "native_connect", connect, 5);
825
+ rb_define_singleton_method(klass, "native_connect", connect, 9);
837
826
  rb_define_method(klass, "get_class", get_class, -1);
838
827
  rb_define_method(klass, "class_names", class_names, -1);
839
828
  rb_define_method(klass, "classes", classes, -1);
840
829
  rb_define_method(klass, "get_instance", get_instance, -1);
841
830
  rb_define_method(klass, "create_instance", create_instance, 2);
842
831
  rb_define_method(klass, "set_instance", set_instance, -1);
843
- rb_define_method(klass, "delete_instance", delete_instance, 1);
832
+ rb_define_method(klass, "delete_instance", delete_instance, 1);
844
833
  rb_define_method(klass, "query", query, 3);
845
834
  rb_define_method(klass, "instance_names", instance_names, 1);
846
835
  rb_define_method(klass, "instances", instances, -1);