Return to CMPI_Object.cpp CVS log | Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / CMPI |
1 schuur 1.1 //%2003//////////////////////////////////////////////////////////////////////// 2 // 3 // 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 // IBM Corp.; EMC Corporation, The Open Group. 7 // 8 // Permission is hereby granted, free of charge, to any person obtaining a copy 9 // of this software and associated documentation files (the "Software"), to 10 // deal in the Software without restriction, including without limitation the 11 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 12 // sell copies of the Software, and to permit persons to whom the Software is 13 // furnished to do so, subject to the following conditions: 14 // 15 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN 16 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED 17 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 18 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 19 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 21 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 schuur 1.1 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 // 24 //============================================================================== 25 // 26 // Author: Adrian Schuur, schuur@de.ibm.com 27 // 28 // Modified By: 29 // 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 CMPI_Object::CMPI_Object(CMPI_Object *obj) { 44 hdl=obj->hdl; 45 ftab=obj->ftab; 46 priv=obj->priv; 47 } 48 49 CMPI_Object::CMPI_Object(void* obj, void *fTab) { 50 hdl=obj; 51 ftab=fTab; 52 priv=NULL; 53 } 54 55 CMPI_Object::CMPI_Object(CIMInstance* ci) { 56 CMPI_ThreadContext::addObject(this); 57 hdl=(void*)ci; 58 ftab=CMPI_Instance_Ftab; 59 priv=NULL; 60 // cerr<<"--- CMPI_Object::CMPI_Object(CIMInstance *obj)"<<endl; 61 schuur 1.1 } 62 63 CMPI_Object::CMPI_Object(CIMObjectPath* cop) { 64 CMPI_ThreadContext::addObject(this); 65 hdl=(void*)cop; 66 ftab=CMPI_ObjectPath_Ftab; 67 } 68 69 CMPI_Object::CMPI_Object(CIMDateTime* cdt) { 70 CMPI_ThreadContext::addObject(this); 71 hdl=(void*)cdt; 72 ftab=CMPI_DateTime_Ftab; 73 } 74 75 CMPI_Object::CMPI_Object(const String& str) { 76 CMPI_ThreadContext::addObject(this); 77 const CString st=str.getCString(); 78 hdl=(void*)strdup((const char*)st); 79 ftab=CMPI_String_Ftab; 80 } 81 82 schuur 1.1 CMPI_Object::CMPI_Object(char *str) { 83 CMPI_ThreadContext::addObject(this); 84 hdl=(void*)strdup((const char*)str); 85 ftab=CMPI_String_Ftab; 86 } 87 88 CMPI_Object::CMPI_Object(Array<CIMParamValue> *args) { 89 CMPI_ThreadContext::addObject(this); 90 hdl=(void*)args; 91 ftab=CMPI_Args_Ftab; 92 } 93 94 CMPI_Object::CMPI_Object(CMPIData *dta) { 95 CMPI_ThreadContext::addObject(this); 96 hdl=(void*)dta; 97 ftab=CMPI_Array_Ftab; 98 } 99 100 CMPI_Object::CMPI_Object(CMPISelectCond *dta) { 101 CMPI_ThreadContext::addObject(this); 102 hdl=(void*)dta; 103 schuur 1.1 ftab=CMPI_SelectCond_Ftab; 104 } 105 106 CMPI_Object::~CMPI_Object() { 107 if (ftab==CMPI_Instance_Ftab) { 108 // cerr<<"--- CMPI_Object::~CMPI_Object()"<<endl; 109 char **list=(char**)priv; 110 if (priv) { 111 while (*list) { 112 // cerr<<"--- freeing "<<*list<<endl; 113 free (*list); 114 list++; 115 } 116 free(priv); 117 } 118 priv=NULL; 119 } 120 } 121 122 void CMPI_Object::unlinkAndDelete() { 123 CMPI_ThreadContext::remObject(this); 124 schuur 1.1 delete this; 125 } 126 | ||
127 schuur 1.5 void CMPI_Object::unlink() { 128 CMPI_ThreadContext::remObject(this); 129 } 130 | ||
131 schuur 1.1 PEGASUS_NAMESPACE_END 132 133 134 135 |
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |