(file) Return to CMPI_Object.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / CMPI

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2