sfcc 0.1.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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);