1 martin 1.18 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.19 //
|
3 martin 1.18 // 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 martin 1.19 //
|
10 martin 1.18 // 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 martin 1.19 //
|
17 martin 1.18 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.19 //
|
20 martin 1.18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.19 // 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 martin 1.19 //
|
28 martin 1.18 //////////////////////////////////////////////////////////////////////////
|
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 r.kieninger 1.19.4.2 CMPI_Object::CMPI_Object(SCMOInstance* si, Boolean isInstance)
57 {
58 CMPI_ThreadContext::addObject(this);
59 hdl = (void*)si;
60 if (isInstance)
61 {
62 ftab = CMPI_Instance_Ftab;
63 }
64 else
65 {
66 ftab = CMPI_ObjectPath_Ftab;
67 }
68 }
69
|
70 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CIMObjectPath* cop)
71 {
72 CMPI_ThreadContext::addObject(this);
73 hdl = (void*)cop;
74 ftab = CMPI_ObjectPath_Ftab;
|
75 schuur 1.1 }
76
|
77 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CIMDateTime* cdt)
78 {
79 CMPI_ThreadContext::addObject(this);
80 hdl = (void*)cdt;
81 ftab = CMPI_DateTime_Ftab;
|
82 schuur 1.1 }
83
|
84 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CIMError* cer)
85 {
86 CMPI_ThreadContext::addObject(this);
87 hdl = (void*)cer;
88 ftab = CMPI_Error_Ftab;
|
89 dave.sudlik 1.15 }
90
|
91 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(const String& str)
92 {
93 CMPI_ThreadContext::addObject(this);
94 const CString st = str.getCString();
95 hdl = (void*)strdup((const char*)st);
96 ftab = CMPI_String_Ftab;
|
97 schuur 1.1 }
98
|
99 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(const char *str)
100 {
101 CMPI_ThreadContext::addObject(this);
|
102 r.kieninger 1.19.4.4 hdl = str ? (void*)strdup(str) : (void*)strdup("");
|
103 venkat.puvvada 1.16 ftab = CMPI_String_Ftab;
|
104 schuur 1.1 }
105
|
106 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(Array<CIMParamValue> *args)
107 {
108 CMPI_ThreadContext::addObject(this);
109 hdl = (void*)args;
110 ftab = CMPI_Args_Ftab;
|
111 schuur 1.1 }
112
|
113 thilo.boehm 1.19.4.1 CMPI_Object::CMPI_Object(CMPI_Array *arr)
|
114 venkat.puvvada 1.16 {
115 CMPI_ThreadContext::addObject(this);
|
116 thilo.boehm 1.19.4.1 hdl = (void*)arr;
|
117 venkat.puvvada 1.16 ftab = CMPI_Array_Ftab;
|
118 schuur 1.1 }
119
|
120 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPISelectCond *dta)
121 {
122 CMPI_ThreadContext::addObject(this);
123 hdl = (void*)dta;
124 ftab = CMPI_SelectCond_Ftab;
|
125 schuur 1.1 }
126
|
127 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPISubCond *dta)
128 {
|
129 konrad.r 1.8 CMPI_ThreadContext::addObject(this);
|
130 venkat.puvvada 1.16 hdl = (void*)dta;
131 ftab = CMPI_SubCond_Ftab;
|
132 konrad.r 1.8 }
|
133 r.kieninger 1.10
|
134 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPIPredicate *dta)
135 {
136 CMPI_ThreadContext::addObject(this);
137 hdl = (void*)dta;
138 ftab = CMPI_Predicate_Ftab;
|
139 konrad.r 1.8 }
140
|
141 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPI_ObjEnumeration *dta)
142 {
143 CMPI_ThreadContext::addObject(this);
144 hdl = (void*)dta;
145 ftab = CMPI_ObjEnumeration_Ftab;
|
146 r.kieninger 1.11 }
147
|
148 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPI_InstEnumeration *dta)
149 {
150 CMPI_ThreadContext::addObject(this);
151 hdl = (void*)dta;
152 ftab = CMPI_InstEnumeration_Ftab;
|
153 r.kieninger 1.11 }
154
|
155 venkat.puvvada 1.16 CMPI_Object::CMPI_Object(CMPI_OpEnumeration *dta)
156 {
157 CMPI_ThreadContext::addObject(this);
158 hdl = (void*)dta;
159 ftab = CMPI_OpEnumeration_Ftab;
|
160 schuur 1.1 }
161
|
162 venkat.puvvada 1.16 CMPI_Object::~CMPI_Object()
163 {
164 }
165
166 void CMPI_Object::unlinkAndDelete()
167 {
168 CMPI_ThreadContext::remObject(this);
169 delete this;
170 }
171
172 void CMPI_Object::unlink()
173 {
174 CMPI_ThreadContext::remObject(this);
|
175 schuur 1.5 }
176
|
177 schuur 1.1 PEGASUS_NAMESPACE_END
178
179
180
181
|