1 karl 1.9 //%2005////////////////////////////////////////////////////////////////////////
|
2 schuur 1.1 //
|
3 karl 1.7 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 schuur 1.1 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.7 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.9 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 schuur 1.1 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy
13 // of this software and associated documentation files (the "Software"), to
14 // deal in the Software without restriction, including without limitation the
15 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16 // sell copies of the Software, and to permit persons to whom the Software is
17 // furnished to do so, subject to the following conditions:
|
18 r.kieninger 1.11 //
|
19 schuur 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
20 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
22 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
25 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //==============================================================================
29 //
30 // Author: Adrian Schuur, schuur@de.ibm.com
31 //
32 // Modified By:
33 //
34 //%/////////////////////////////////////////////////////////////////////////////
35
|
36 schuur 1.4 #include "CMPI_Version.h"
|
37 schuur 1.2
|
38 schuur 1.1 #include "CMPI_Object.h"
39 #include "CMPI_ThreadContext.h"
40 #include "CMPI_Ftabs.h"
41
|
42 schuur 1.3 #include <string.h>
43
|
44 schuur 1.1 PEGASUS_USING_STD;
45 PEGASUS_NAMESPACE_BEGIN
46
47 CMPI_Object::CMPI_Object(CMPI_Object *obj) {
48 hdl=obj->hdl;
49 ftab=obj->ftab;
50 priv=obj->priv;
51 }
|
52 konrad.r 1.12 // Add a flag here?
|
53 schuur 1.1 CMPI_Object::CMPI_Object(CIMInstance* ci) {
54 CMPI_ThreadContext::addObject(this);
55 hdl=(void*)ci;
56 ftab=CMPI_Instance_Ftab;
57 priv=NULL;
58 }
59
60 CMPI_Object::CMPI_Object(CIMObjectPath* cop) {
61 CMPI_ThreadContext::addObject(this);
62 hdl=(void*)cop;
63 ftab=CMPI_ObjectPath_Ftab;
64 }
65
66 CMPI_Object::CMPI_Object(CIMDateTime* cdt) {
67 CMPI_ThreadContext::addObject(this);
68 hdl=(void*)cdt;
69 ftab=CMPI_DateTime_Ftab;
70 }
71
72 CMPI_Object::CMPI_Object(const String& str) {
73 CMPI_ThreadContext::addObject(this);
74 schuur 1.1 const CString st=str.getCString();
75 hdl=(void*)strdup((const char*)st);
76 ftab=CMPI_String_Ftab;
77 }
78
|
79 konrad.r 1.13 CMPI_Object::CMPI_Object(const char *str) {
|
80 schuur 1.1 CMPI_ThreadContext::addObject(this);
|
81 konrad.r 1.13 hdl=(void*)strdup(str);
|
82 schuur 1.1 ftab=CMPI_String_Ftab;
83 }
84
85 CMPI_Object::CMPI_Object(Array<CIMParamValue> *args) {
86 CMPI_ThreadContext::addObject(this);
87 hdl=(void*)args;
88 ftab=CMPI_Args_Ftab;
89 }
90
91 CMPI_Object::CMPI_Object(CMPIData *dta) {
92 CMPI_ThreadContext::addObject(this);
93 hdl=(void*)dta;
94 ftab=CMPI_Array_Ftab;
95 }
96
97 CMPI_Object::CMPI_Object(CMPISelectCond *dta) {
98 CMPI_ThreadContext::addObject(this);
99 hdl=(void*)dta;
100 ftab=CMPI_SelectCond_Ftab;
101 }
102
|
103 konrad.r 1.8 CMPI_Object::CMPI_Object(CMPISubCond *dta) {
104 CMPI_ThreadContext::addObject(this);
105 hdl=(void*)dta;
106 ftab=CMPI_SubCond_Ftab;
107 }
|
108 r.kieninger 1.10
|
109 konrad.r 1.8 CMPI_Object::CMPI_Object(CMPIPredicate *dta) {
110 CMPI_ThreadContext::addObject(this);
111 hdl=(void*)dta;
112 ftab=CMPI_Predicate_Ftab;
113 }
114
|
115 r.kieninger 1.11 CMPI_Object::CMPI_Object(CMPI_ObjEnumeration *dta) {
116 CMPI_ThreadContext::addObject(this);
117 hdl=(void*)dta;
118 ftab=CMPI_ObjEnumeration_Ftab;
119 }
120
121 CMPI_Object::CMPI_Object(CMPI_InstEnumeration *dta) {
|
122 r.kieninger 1.10 CMPI_ThreadContext::addObject(this);
123 hdl=(void*)dta;
|
124 r.kieninger 1.11 ftab=CMPI_InstEnumeration_Ftab;
125 }
126
127 CMPI_Object::CMPI_Object(CMPI_OpEnumeration *dta) {
128 CMPI_ThreadContext::addObject(this);
129 hdl=(void*)dta;
130 ftab=CMPI_OpEnumeration_Ftab;
|
131 r.kieninger 1.10 }
132
|
133 schuur 1.1 CMPI_Object::~CMPI_Object() {
134 if (ftab==CMPI_Instance_Ftab) {
135 char **list=(char**)priv;
136 if (priv) {
137 while (*list) {
138 free (*list);
139 list++;
140 }
141 free(priv);
142 }
143 priv=NULL;
144 }
145 }
146
147 void CMPI_Object::unlinkAndDelete() {
148 CMPI_ThreadContext::remObject(this);
149 delete this;
150 }
151
|
152 schuur 1.5 void CMPI_Object::unlink() {
153 CMPI_ThreadContext::remObject(this);
154 }
155
|
156 schuur 1.1 PEGASUS_NAMESPACE_END
157
158
159
160
|