1 martin 1.18 //%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 martin 1.18 // 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 schuur 1.1 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
|
32 schuur 1.4 #include "CMPI_Version.h"
|
33 schuur 1.2
|
34 schuur 1.1 #include "CMPI_Object.h"
35 #include "CMPI_ThreadContext.h"
36 #include "CMPI_Ftabs.h"
37
|
38 schuur 1.3 #include <string.h>
39
|
40 schuur 1.1 PEGASUS_USING_STD;
41 PEGASUS_NAMESPACE_BEGIN
42
|
43 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPI_Object *obj)
44 {
45 hdl = obj->hdl;
46 ftab = obj->ftab;
|
47 schuur 1.1 }
|
48 konrad.r 1.12 // Add a flag here?
|
49 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CIMInstance* ci)
50 {
51 CMPI_ThreadContext::addObject(this);
52 hdl = (void*)ci;
53 ftab = CMPI_Instance_Ftab;
|
54 schuur 1.1 }
55
|
56 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CIMObjectPath* cop)
57 {
58 CMPI_ThreadContext::addObject(this);
59 hdl = (void*)cop;
60 ftab = CMPI_ObjectPath_Ftab;
|
61 schuur 1.1 }
62
|
63 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CIMDateTime* cdt)
64 {
65 CMPI_ThreadContext::addObject(this);
66 hdl = (void*)cdt;
67 ftab = CMPI_DateTime_Ftab;
|
68 schuur 1.1 }
69
|
70 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CIMError* cer)
71 {
72 CMPI_ThreadContext::addObject(this);
73 hdl = (void*)cer;
74 ftab = CMPI_Error_Ftab;
|
75 dave.sudlik 1.15 }
76
|
77 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(const String& str)
78 {
79 CMPI_ThreadContext::addObject(this);
80 const CString st = str.getCString();
81 hdl = (void*)strdup((const char*)st);
82 ftab = CMPI_String_Ftab;
|
83 schuur 1.1 }
84
|
85 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(const char *str)
86 {
87 CMPI_ThreadContext::addObject(this);
88 hdl = (void*)strdup(str);
89 ftab = CMPI_String_Ftab;
|
90 schuur 1.1 }
91
|
92 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(Array<CIMParamValue> *args)
93 {
94 CMPI_ThreadContext::addObject(this);
95 hdl = (void*)args;
96 ftab = CMPI_Args_Ftab;
|
97 schuur 1.1 }
98
|
99 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPIData *dta)
100 {
101 CMPI_ThreadContext::addObject(this);
102 hdl = (void*)dta;
103 ftab = CMPI_Array_Ftab;
|
104 schuur 1.1 }
105
|
106 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPISelectCond *dta)
107 {
108 CMPI_ThreadContext::addObject(this);
109 hdl = (void*)dta;
110 ftab = CMPI_SelectCond_Ftab;
|
111 schuur 1.1 }
112
|
113 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPISubCond *dta)
114 {
|
115 konrad.r 1.8 CMPI_ThreadContext::addObject(this);
|
116 venkat.puvvada 1.16 hdl = (void*)dta;
117 ftab = CMPI_SubCond_Ftab;
|
118 konrad.r 1.8 }
|
119 r.kieninger 1.10
|
120 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPIPredicate *dta)
121 {
122 CMPI_ThreadContext::addObject(this);
123 hdl = (void*)dta;
124 ftab = CMPI_Predicate_Ftab;
|
125 konrad.r 1.8 }
126
|
127 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPI_ObjEnumeration *dta)
128 {
129 CMPI_ThreadContext::addObject(this);
130 hdl = (void*)dta;
131 ftab = CMPI_ObjEnumeration_Ftab;
|
132 r.kieninger 1.11 }
133
|
134 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPI_InstEnumeration *dta)
135 {
136 CMPI_ThreadContext::addObject(this);
137 hdl = (void*)dta;
138 ftab = CMPI_InstEnumeration_Ftab;
|
139 r.kieninger 1.11 }
140
|
141 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPI_OpEnumeration *dta)
142 {
143 CMPI_ThreadContext::addObject(this);
144 hdl = (void*)dta;
145 ftab = CMPI_OpEnumeration_Ftab;
|
146 schuur 1.1 }
147
|
148 venkat.puvvada 1.16 CMPI_Object::~CMPI_Object()
149 {
150 }
151
152 void CMPI_Object::unlinkAndDelete()
153 {
154 CMPI_ThreadContext::remObject(this);
155 delete this;
156 }
157
158 void CMPI_Object::unlink()
159 {
160 CMPI_ThreadContext::remObject(this);
|
161 schuur 1.5 }
162
|
163 schuur 1.1 PEGASUS_NAMESPACE_END
164
165
166
167
|