1 thilo.boehm 1.1.2.1 //%LICENSE////////////////////////////////////////////////////////////////
2 //
3 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 thilo.boehm 1.1.2.1 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //////////////////////////////////////////////////////////////////////////
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef _SCMOINSTANCE_H_
33 #define _SCMOINSTANCE_H_
34
35
36 #include <Pegasus/Common/Config.h>
37 #include <Pegasus/Common/Linkage.h>
38 #include <Pegasus/Common/SCMO.h>
|
39 thilo.boehm 1.1.2.2 #include <Pegasus/Common/SCMOClass.h>
|
40 r.kieninger 1.1.2.10 #include <Pegasus/Common/Union.h>
|
41 thilo.boehm 1.1.2.1
42 PEGASUS_NAMESPACE_BEGIN
43
44 #define PEGASUS_SCMB_INSTANCE_MAGIC 0xD00D1234
45
46 class SCMOClass;
47
48 class PEGASUS_COMMON_LINKAGE SCMOInstance
49 {
50 public:
51
52 /**
53 * Creating a SCMOInstance using a SCMOClass.
54 * @param baseClass A SCMOClass.
55 */
56 SCMOInstance(SCMOClass baseClass);
57
58 /**
59 * Copy constructor for the SCMO instance, used to implement refcounting.
60 * @param theSCMOClass The instance for which to create a copy
61 * @return
62 thilo.boehm 1.1.2.1 */
63 SCMOInstance(const SCMOInstance& theSCMOInstance )
64 {
65 inst.hdr = theSCMOInstance.inst.hdr;
66 Ref();
67 }
68
69 /**
70 * Destructor is decrementing the refcount. If refcount is zero, the
71 * singele chunk memory object is deallocated.
72 */
73 ~SCMOInstance()
74 {
75 Unref();
76 }
77
78 /**
79 * Builds a SCMOInstance based on this SCMOClass.
80 * The method arguments determine whether qualifiers are included,
81 * the class origin attributes are included,
82 * and which properties are included in the new instance.
83 thilo.boehm 1.1.2.1 * @param baseClass The SCMOClass of this instance.
84 * @param includeQualifiers A Boolean indicating whether qualifiers in
85 * the class definition (and its properties) are to be added to the
86 * instance. The TOINSTANCE flavor is ignored.
87 * @param includeClassOrigin A Boolean indicating whether ClassOrigin
88 * attributes are to be added to the instance.
89 * @param propertyList Is an NULL terminated array of char* to property
90 * names defining the properties that are included in the created instance.
91 * If the propertyList is NULL, all properties are included to the instance.
92 * If the propertyList is empty, no properties are added.
93 *
94 * Note that this function does NOT generate an error if a property name
95 * is supplied that is NOT in the class;
96 * it simply does not add that property to the instance.
97 *
98 */
99 SCMOInstance(
100 SCMOClass baseClass,
101 Boolean includeQualifiers,
102 Boolean includeClassOrigin,
103 const char** propertyList);
104 thilo.boehm 1.1.2.1
105 /**
106 * Builds a SCMOInstance from the given SCMOClass and copies all
107 * CIMInstance data into the new SCMOInstance.
108 * @param baseClass The SCMOClass of this instance.
109 * @param cimInstance A CIMInstace of the same class.
|
110 thilo.boehm 1.1.2.4 * @exception Exception if class name and name space does not match.
111 * @exception
112 * Exception if CIMInstance has more key bindings then the SCMOClass.
113 * @exception
114 * Exception if a key binding is not found as a key property
115 * of the SCMOClass.
116 * @exception Exception if a key binding does not match
117 * the class definition.
118 * @exception Exception if a property is not part of class definition.
119 * @exception Exception if a property does not match the class definition.
|
120 thilo.boehm 1.1.2.1 */
121 SCMOInstance(SCMOClass baseClass, const CIMInstance& cimInstance);
122
123 /**
|
124 thilo.boehm 1.1.2.4 * Builds a SCMOInstance from the given SCMOClass and copies all
125 * CIMObjectPath data into the new SCMOInstance.
126 * @param baseClass The SCMOClass of this instance.
127 * @param cimInstance A CIMObjectpath of the same class.
128 * @exception Exception if class name and name space does not match.
129 * @exception
130 * Exception if CIMInstance has more key bindings then the SCMOClass.
131 * @exception
132 * Exception if a key binding is not found as a key property
133 * of the SCMOClass.
134 * @exception Exception if a key binding does not match
135 * the class definition.
136 */
137 SCMOInstance(SCMOClass baseClass, const CIMObjectPath& cimObj);
138
139 /**
|
140 thilo.boehm 1.1.2.1 * Converts the SCMOInstance into a CIMInstance.
141 * It is a deep copy of the SCMOInstance into the CIMInstance.
142 * @param cimInstance An empty CIMInstance.
143 */
|
144 thilo.boehm 1.1.2.6 SCMO_RC getCIMInstance(CIMInstance& cimInstance) const;
|
145 thilo.boehm 1.1.2.1
146 /**
147 * Makes a deep copy of the instance.
148 * This creates a new copy of the instance.
|
149 thilo.boehm 1.1.2.5 * @param objectPathOnly If set to true, only the object path relevant parts
150 * host name and key bindings are part of the cloned instance.
|
151 thilo.boehm 1.1.2.1 * @return A new copy of the SCMOInstance object.
152 */
|
153 thilo.boehm 1.1.2.5 SCMOInstance clone(Boolean objectPathOnly = false) const;
|
154 thilo.boehm 1.1.2.1
155 /**
|
156 r.kieninger 1.1.2.9 * Retrieves the objectpath part of the SCMOInstance as an instance
157 * of class CIMObjectPath. .
158 * @param cimObj Reference to an instantiated CIMObjectPath to be
159 * populated with the data from the SCMOInstance.
160 * @return void
161 */
162 void getCIMObjectPath(CIMObjectPath& cimObj) const;
163
164 /**
|
165 thilo.boehm 1.1.2.1 * Returns the number of properties of the instance.
166 * @param Number of properties
167 */
168 Uint32 getPropertyCount() const;
169
170 /**
171 * Gets the property name, type, and value addressed by a positional index.
172 * The property name and value has to be copied by the caller !
173 * @param pos The positional index of the property
174 * @param pname Returns the property name as '\0' terminated string.
175 * Has to be copied by caller.
176 * It is set to NULL if rc != SCMO_OK.
177 * @param pvalue Returns a pointer to the value of property.
178 * The value has to be copied by the caller !
179 * It returns NULL if rc != SCMO_OK.
180 * If the value is an array, the
181 * value array is stored in continuous memory.
182 * e.g. If the CIMType is CIMTYPE_UINT32:
183 * value = (void*)Uint32[0 to size-1]
184 * If it is an array of CIMTYPE_STRING, an array
185 * of char* to the string values is returned.
186 thilo.boehm 1.1.2.1 * This array has to be freed by the caller !
187 * @param type Returns the CIMType of the property
188 * It is invalid if rc == SCMO_INDEX_OUT_OF_BOUND.
189 * @param isArray Returns if the value is an array.
190 * It is invalid if rc == SCMO_INDEX_OUT_OF_BOUND.
191 * @param size Returns the size of the array.
192 * If it is not an array, 0 is returned.
193 * It is invalid if rc == SCMO_INDEX_OUT_OF_BOUND.
194 *
195 * @return SCMO_OK
196 * SCMO_NULL_VALUE : The value is a null value.
197 * SCMO_INDEX_OUT_OF_BOUND : Given index not found
198 *
199 */
200 SCMO_RC getPropertyAt(
201 Uint32 pos,
202 const char** pname,
203 CIMType& type,
204 const void** pvalue,
205 Boolean& isArray,
206 Uint32& size ) const;
207 thilo.boehm 1.1.2.1
208 /**
|
209 marek 1.1.2.11 * Gets the property name, type, and value addressed by a positional index.
210 * The property name and value has to be copied by the caller !
211 * @param pos The positional index of the property
212 * @param pname Returns the property name as '\0' terminated string.
213 * Has to be copied by caller.
214 * It is set to NULL if rc != SCMO_OK.
215 * @param value Returns an absolute pointer to the value of property.
216 * Sub-pointers are NOT resolved!
217 * The value has to be copied by the caller !
218 * It returns NULL if rc != SCMO_OK.
219 * If the value is an array, the
220 * value array is stored in continuous memory.
221 * e.g. If the CIMType is CIMTYPE_UINT32:
222 * value = (void*)Uint32[0 to size-1]
223 * If it is an array of CIMTYPE_STRING, an array
224 * of char* to the string values is returned.
225 * This array has to be freed by the caller !
226 * @param valueBase Returns an absolute pointer to the base of value,
227 * because subsequent pointers in the value are NOT
228 * resolved.
229 * @param propDef Returns an absolute pointer to the property definition
230 marek 1.1.2.11 * Sub-pointers are NOT resolved!
231 * It is invalid if rc == SCMO_INDEX_OUT_OF_BOUND.
232 *
233 * @return SCMO_OK
234 * SCMO_NULL_VALUE : The value is a null value.
235 * SCMO_INDEX_OUT_OF_BOUND : Given index not found
236 *
237 */
238 SCMO_RC getPropertyAt(
239 Uint32 pos,
240 SCMBValue** value,
241 const char ** valueBase,
242 SCMBClassProperty ** propDef) const;
243
244 /**
|
245 thilo.boehm 1.1.2.1 * Gets the type and value of the named property.
246 * The value has to be copied by the caller !
247 * @param name The property name
248 * @param pvalue Returns a pointer to the value of property.
249 * The value has to be copied by the caller !
250 * It returns NULL if rc != SCMO_OK.
251 * If the value is an array, the
252 * value array is stored in continuous memory.
253 * e.g. If the CIMType is CIMTYPE_UINT32:
254 * value = (void*)Uint32[0 to size-1]
255 * If it is an array of CIMTYPE_STRING, an array
256 * of char* to the string values is returned.
257 * This array has to be freed by the caller !
258 * @param type Returns the CIMType of the property
259 * It is invalid if rc == SCMO_NOT_FOUND.
260 * @param isArray Returns if the value is an array.
261 * It is invalid if rc == SCMO_NOT_FOUND.
262 * @param size Returns the size of the array.
263 * If it is not an array, 0 is returned.
264 * It is invalid if rc == SCMO_NOT_FOUND.
265 *
266 thilo.boehm 1.1.2.1 * @return SCMO_OK
267 * SCMO_NULL_VALUE : The value is a null value.
268 * SCMO_NOT_FOUND : Given property name not found.
269 */
270 SCMO_RC getProperty(
271 const char* name,
272 CIMType& type,
273 const void** pvalue,
274 Boolean& isArray,
275 Uint32& size ) const;
276
277 /**
278 * Set/replace a property in the instance.
279 * If the class origin is specified, it is honored at identifying
280 * the property within the instance.
281 * Note: Only properties which are already part of the instance/class can
282 * be set/replaced.
283 * @param name The name of the property to be set.
284 * @param type The CIMType of the property
285 * @param value A pointer to property value.
286 * The value is copied into the instance
287 thilo.boehm 1.1.2.1 * If the value == NULL, a null value is assumed.
288 * If the value is an array, the
289 * value array must be stored in continuous memory.
290 * e.g. If the CIMType is CIMTYPE_UINT32:
291 * value = (void*)Uint32[0 to size-1]
292 * @param isArray Indicate that the value is an array. Default false.
293 * @param size Returns the size of the array. If not an array this
294 * this parameter is ignorer. Default 0.
295 * @param origin The class originality of the property.
296 * If NULL, then it is ignorred. Default NULL.
297 * @return SCMO_OK
298 * SCMO_NOT_SAME_ORIGIN : The property name was found, but
299 * the origin was not the same.
300 * SCMO_NOT_FOUND : Given property name not found.
301 * SCMO_WRONG_TYPE : Named property has the wrong type.
302 * SCMO_NOT_AN_ARRAY : Named property is not an array.
303 * SCMO_IS_AN_ARRAY : Named property is an array.
304 */
305 SCMO_RC setPropertyWithOrigin(
306 const char* name,
307 CIMType type,
308 thilo.boehm 1.1.2.1 void* value,
309 Boolean isArray=false,
310 Uint32 size = 0,
311 const char* origin = NULL);
312
313 /**
|
314 thilo.boehm 1.1.2.3 * Rebuild of the key bindings from the property values
|
315 thilo.boehm 1.1.2.1 * if no or incomplete key properties are set on the instance.
|
316 thilo.boehm 1.1.2.3 * @exception NoSuchProperty
|
317 thilo.boehm 1.1.2.1 */
|
318 thilo.boehm 1.1.2.2 void buildKeyBindingsFromProperties();
|
319 thilo.boehm 1.1.2.1
320 /**
321 * Set/replace a property filter on an instance.
322 * The filter is a white list of property names.
323 * A property part of the list can be accessed by name or index and
324 * is eligible to be returned to requester.
325 * Key properties can not be filtered. They are always a part of the
326 * instance. If a key property is not part of the property list,
327 * it will not be filtered out.
328 * @param propertyList Is an NULL terminated array of char* to
329 * property names
330 */
331 void setPropertyFilter(const char **propertyList);
332
333 /**
334 * Gets the hash index for the named property. Filtering is ignored.
335 * @param theName The property name
336 * @param pos Returns the hash index.
337 * @return SCMO_OK
338 * SCMO_INVALID_PARAMETER: name was a NULL pointer.
339 * SCMO_NOT_FOUND : Given property name not found.
340 thilo.boehm 1.1.2.1 */
341 SCMO_RC getPropertyNodeIndex(const char* name, Uint32& pos) const;
342
343 /**
344 * Set/replace a property in the instance at node index.
|
345 thilo.boehm 1.1.2.4 * Note: If node is filtered, the property is not set but the return value
|
346 thilo.boehm 1.1.2.1 * is still SCMO_OK.
347 * @param index The node index.
348 * @param type The CIMType of the property
349 * @param value A pointer to property value.
350 * The value is copied into the instance
351 * If the value is an array, the
352 * value array must be stored in continuous memory.
353 * e.g. If the CIMType is CIMTYPE_UINT32:
354 * value = (void*)Uint32[0 to size-1]
355 * @param isArray Indicate that the value is an array. Default false.
356 * @param size The size of the array. If not an array this
357 * this parameter is ignorer. Default 0.
358 * @return SCMO_OK
359 * SCMO_INDEX_OUT_OF_BOUND : Given index not found
360 * SCMO_WRONG_TYPE : The property at given node index
361 * has the wrong type.
362 * SCMO_NOT_AN_ARRAY : The property at given node index
363 * is not an array.
364 * SCMO_IS_AN_ARRAY : The property at given node index
365 * is an array.
366 */
367 thilo.boehm 1.1.2.1 SCMO_RC setPropertyWithNodeIndex(
368 Uint32 node,
369 CIMType type,
370 void* value,
371 Boolean isArray=false,
372 Uint32 size = 0);
373
374 /**
375 * Set/replace the named key binding
376 * @param name The key binding name.
377 * @param type The type as CIMKeyBinding::Type.
|
378 r.kieninger 1.1.2.10 * @param value The value as string.
|
379 thilo.boehm 1.1.2.1 * @return SCMO_OK
|
380 thilo.boehm 1.1.2.8 * SCMO_INVALID_PARAMETER : Given name or pvalue
381 * is a NULL pointer.
|
382 thilo.boehm 1.1.2.1 * SCMO_TYPE_MISSMATCH : Given type does not
383 * match to key binding type
384 * SCMO_NOT_FOUND : Given property name not found.
385 */
386 SCMO_RC setKeyBinding(
387 const char* name,
388 CIMKeyBinding::Type type,
389 const char* pvalue);
390
391 /**
|
392 r.kieninger 1.1.2.10 * Set/replace the named key binding using binary data
393 * @param name The key binding name.
394 * @param type The type as CIMType.
395 * @param value A pointer to the binary key value.
396 * The value is copied into the instance
397 * If the value == NULL, a null value is assumed.
398 * @return SCMO_OK
399 * SCMO_INVALID_PARAMETER : Given name or pvalue
400 * is a NULL pointer.
401 * SCMO_TYPE_MISSMATCH : Given type does not
402 * match to key binding type
403 * SCMO_NOT_FOUND : Given property name not found.
404 */
405 SCMO_RC setKeyBinding(
406 const char* name,
407 CIMType type,
408 void* keyvalue);
409
410 /**
411 * Set/replace the key binding at node
|
412 thilo.boehm 1.1.2.7 * @param node The node index of the key.
413 * @param type The type as CIMKeyBinding::Type.
414 * @parma value The value as string.
415 * @return SCMO_OK
|
416 thilo.boehm 1.1.2.8 * SCMO_INVALID_PARAMETER : Given pvalue is a NULL pointer.
|
417 thilo.boehm 1.1.2.7 * SCMO_TYPE_MISSMATCH : Given type does not
418 * match to key binding type
419 * SCMO_INDEX_OUT_OF_BOUND : Given index is our of range.
420 */
421 SCMO_RC setKeyBindingAt(
422 Uint32 node,
423 CIMKeyBinding::Type type,
424 const char* pvalue);
425
426 /**
|
427 r.kieninger 1.1.2.10 * Set/replace the key binding at node using binary data
428 * @param node The node index of the key.
429 * @param type The type as CIMType.
430 * @param value A pointer to the binary key value.
431 * The value is copied into the instance
432 * If the value == NULL, a null value is assumed.
433 * @return SCMO_OK
434 * SCMO_INVALID_PARAMETER : Given pvalue is a NULL pointer.
435 * SCMO_TYPE_MISSMATCH : Given type does not
436 * match to key binding type
437 * SCMO_INDEX_OUT_OF_BOUND : Given index is our of range.
438 */
439 SCMO_RC setKeyBindingAt(
440 Uint32 node,
441 CIMType type,
442 void* keyvalue);
443
444 /**
|
445 thilo.boehm 1.1.2.1 * Gets the key binding count.
446 * @return the number of key bindings set.
447 */
|
448 marek 1.1.2.11 Uint32 getKeyBindingCount() const;
|
449 thilo.boehm 1.1.2.1
450 /**
451 * Get the indexed key binding.
452 * @parm idx The key bining index
453 * @parm pname Returns the name.
454 * Has to be copied by caller.
455 * It is invalid if rc == SCMO_INDEX_OUT_OF_BOUND.
456 * @param type Returns the type as CIMKeyBinding::Type.
457 * It is invalid if rc == SCMO_INDEX_OUT_OF_BOUND.
458 * @parma pvalue Returns the value as string.
459 * Has to be copied by caller.
460 * It is only valid if rc == SCMO_OK.
461 * @return SCMO_OK
462 * SCMO_NULL_VALUE : The key binding is not set.
463 * SCMO_INDEX_OUT_OF_BOUND : Given index not found
464 *
465 */
466 SCMO_RC getKeyBindingAt(
467 Uint32 idx,
468 const char** pname,
469 CIMKeyBinding::Type& type,
470 thilo.boehm 1.1.2.1 const char** pvalue) const;
471
472 /**
473 * Get the named key binding.
474 * @parm name The name of the key binding.
475 * @param type Returns the type as CIMKeyBinding::Type.
476 * It is invalid if rc == SCMO_INDEX_OUT_OF_BOUND.
477 * @parma value Returns the value as string.
478 * Has to be copied by caller.
479 * It is only valid if rc == SCMO_OK.
480 * @return SCMO_OK
481 * SCMO_NULL_VALUE : The key binding is not set.
482 * SCMO_NOT_FOUND : Given property name not found.
483 */
484 SCMO_RC getKeyBinding(
485 const char* name,
486 CIMKeyBinding::Type& ptype,
487 const char** pvalue) const;
488
489 /**
490 * Determines whether the object has been initialized.
491 thilo.boehm 1.1.2.1 * @return True if the object has not been initialized, false otherwise.
492 */
493 Boolean isUninitialized( ) const {return (inst.base == NULL); };
494
495 /**
496 * Determies if two objects are referencing to the same instance
497 * @return True if the objects are referencing to the some instance.
498 */
499 Boolean isSame(SCMOInstance& theInstance) const;
500
501 /**
502 * Get the host name of the instance. The caller has to make a copy !
503 * @return The host name as UTF8.
504 */
505 const char* getHostName() const;
506
507 /**
508 * Sets the provided host name at the instance.
509 * @param hostName The host name as UTF8.
510 */
511 void setHostName(const char* hostName);
512 thilo.boehm 1.1.2.1
513 /**
|
514 marek 1.1.2.11 * Get the class name of the instance. The caller has to make a copy !
|
515 thilo.boehm 1.1.2.1 * @return The class name as UTF8.
516 */
517 const char* getClassName() const;
518
519 /**
|
520 marek 1.1.2.11 * Get the class name of the instance. The caller has to make a copy !
521 * @return The class name as UTF8. Return length of result string.
522 */
523 const char* getClassName_l(Uint64 & length) const;
524
525 /**
|
526 thilo.boehm 1.1.2.1 * Get the name space of the instance. The caller has to make a copy !
527 * @return The name space as UTF8.
528 */
529 const char* getNameSpace() const;
530
531 /**
532 * To indicate the export processing ( eg. XMLWriter )
533 * to include qualifiers for this instance.
534 */
535 void includeQualifiers()
536 {
537 inst.hdr->flags.includeQualifiers = true;
538 };
539
540 /**
541 * To indicate the export processing ( eg. XMLWriter )
542 * to NOT to include (exclude) qualifiers for this instance.
543 */
544 void excludeQualifiers()
545 {
546 inst.hdr->flags.includeQualifiers = false;
547 thilo.boehm 1.1.2.1 }
548
549 /**
550 * To indicate the export processing ( eg. XMLWriter )
551 * to include class origins for this instance.
552 */
553 void includeClassOrigins()
554 {
555 inst.hdr->flags.includeClassOrigin = true;
556 };
557
558 /**
559 * To indicate the export processing ( eg. XMLWriter )
560 * to NOT to include (exclude) class origins for this instance.
561 */
562 void excludeClassOrigins()
563 {
564 inst.hdr->flags.includeClassOrigin = false;
565 }
566
567 private:
568 thilo.boehm 1.1.2.1
569 void Ref()
570 {
571 inst.hdr->refCount++;
572 // printf("\ninst.hdr->refCount=%u\n",inst.hdr->refCount.get());
573 };
574
575 void Unref()
576 {
577 if (inst.hdr->refCount.decAndTestIfZero())
578 {
579 // printf("\ninst.hdr->refCount=%u\n",inst.hdr->refCount.get());
580 // The class has also be dereferenced.
581 delete inst.hdr->theClass;
582 free(inst.base);
583 inst.base=NULL;
584 }
585 else
586 {
587 // printf("\ninst.hdr->refCount=%u\n",inst.hdr->refCount.get());
588 }
589 thilo.boehm 1.1.2.1
590 };
591 /**
592 * A SCMOInstance can only be created by a SCMOClass
593 */
594 SCMOInstance();
595
596 void _initSCMOInstance(
597 SCMOClass* pClass,
598 Boolean inclQual,
599 Boolean inclOrigin);
600
601
602 SCMO_RC _getPropertyAtNodeIndex(
603 Uint32 pos,
604 const char** pname,
605 CIMType& type,
606 const void** pvalue,
607 Boolean& isArray,
608 Uint32& size ) const;
609
610 thilo.boehm 1.1.2.1 void _setPropertyAtNodeIndex(
611 Uint32 pos,
612 CIMType type,
613 void* value,
614 Boolean isArray,
615 Uint32 size);
616
|
617 thilo.boehm 1.1.2.4 void _setCIMValueAtNodeIndex(Uint32 node, CIMValueRep* valRep);
618
|
619 thilo.boehm 1.1.2.6 void _getCIMValueFromSCMBValue(
620 CIMValue& cimV,
621 const SCMBValue& scmbV,
622 const char * base) const;
623
624 CIMProperty _getCIMPropertyAtNodeIndex(Uint32 nodeIdx) const;
625
|
626 thilo.boehm 1.1.2.4 void _setCIMObjectPath(const CIMObjectPath& cimObj);
627
|
628 thilo.boehm 1.1.2.1 void* _getSCMBUnion(
629 CIMType type,
630 Boolean isArray,
631 Uint32 size,
632 Uint64 start,
633 char* base) const;
634
635 void _setSCMBUnion(
636 void* value,
637 CIMType type,
638 Boolean isArray,
639 Uint32 size,
640 Uint64 start);
641
|
642 thilo.boehm 1.1.2.4 static void _setUnionValue(
643 Uint64 start,
644 SCMBMgmt_Header** pmem,
645 CIMType type,
646 Union& u);
647
648 static void _setArrayValue(
649 Uint64 start,
650 SCMBMgmt_Header** pmem,
651 CIMType type,
652 Uint32& n,
653 Union& u);
654
|
655 thilo.boehm 1.1.2.1 SCMO_RC _getKeyBindingAtNodeIndex(
656 Uint32 pos,
657 const char** pname,
658 CIMKeyBinding::Type& ptype,
659 const char** pvalue) const;
660
|
661 marek 1.1.2.11 SCMO_RC _getKeyBindingAtNodeIndex_l(
662 Uint32 node,
663 const char** pname,
664 Uint32 & pnameLen,
665 CIMKeyBinding::Type& type,
666 const char** pvalue,
667 Uint32 & pvalueLen) const;
668
|
669 thilo.boehm 1.1.2.5 void _copyKeyBindings(SCMOInstance& targetInst) const;
670
|
671 thilo.boehm 1.1.2.1 Uint32 _initPropFilterWithKeys();
672
673 void _setPropertyInPropertyFilter(Uint32 i);
674
675 Boolean _isPropertyInFilter(Uint32 i) const;
676
677 void _clearPropertyFilter();
678
|
679 thilo.boehm 1.1.2.3 void _setKeyBindingFromSCMBUnion(
|
680 thilo.boehm 1.1.2.4 CIMType type,
|
681 thilo.boehm 1.1.2.3 SCMBUnion& u,
682 SCMBDataPtr& keyNode);
|
683 thilo.boehm 1.1.2.2
|
684 thilo.boehm 1.1.2.1 union{
685 // To access the instance main structure
686 SCMBInstance_Main *hdr;
687 // To access the memory management header
688 SCMBMgmt_Header *mem;
689 // Generic access pointer
690 char *base;
691 }inst;
692
693 friend class SCMOClass;
694 friend class SCMODump;
|
695 marek 1.1.2.11 friend class SCMOXmlWriter;
|
696 thilo.boehm 1.1.2.1 };
697
698
699 PEGASUS_NAMESPACE_END
700
701
702 #endif
|