00001 /* 00002 * 00003 * $Id: CmpiObjectPath.h,v 1.3 2008/07/09 19:36:59 tyreld Exp $ 00004 * 00005 * (C) Copyright IBM Corp. 2003, 2005, 2008 00006 * 00007 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE 00008 * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 00009 * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 00010 * 00011 * You can obtain a current copy of the Eclipse Public License from 00012 * http://www.opensource.org/licenses/eclipse-1.0.txt 00013 * 00014 * Author: Adrian Schuur <schuur@de.ibm.com> 00015 * Contributors: Heidi Neumann, heidineu@de.ibm.com 00016 * Angel Nunez Mencias, anunez@de.ibm.com 00017 * Viktor Mihajlovski, mihajlov@de.ibm.com 00018 * 00019 * Description: CMPI Object Path Definitions 00020 * 00021 */ 00022 00023 #ifndef _CmpiObjectPath_h_ 00024 #define _CmpiObjectPath_h_ 00025 00026 #include "cmpidt.h" 00027 #include "cmpift.h" 00028 00029 #include "Linkage.h" 00030 #include "CmpiObject.h" 00031 #include "CmpiBroker.h" 00032 #include "CmpiStatus.h" 00033 #include "CmpiData.h" 00034 #include "CmpiBaseMI.h" 00035 00036 00042 class CMPI_PROVIDER_LINKAGE CmpiObjectPath : public CmpiObject { 00043 friend class CmpiBroker; 00044 friend class CmpiResult; 00045 friend class CmpiInstance; 00046 friend class CmpiInstanceMI; 00047 friend class CmpiMethodMI; 00048 friend class CmpiAssociationMI; 00049 friend class CmpiPropertyMI; 00050 friend class CmpiIndicationMI; 00051 friend class CmpiData; 00052 protected: 00053 00054 private: 00055 00058 //CmpiObjectPath() {} 00059 void *makeObjectPath(CMPIBroker *mb, const char *ns, const char *cls); 00060 void *makeObjectPath(CMPIBroker *mb, const CmpiString& ns, const char *cls); 00061 CmpiBoolean doClassPathIsA(CMPIBroker *mb, const char *className) const; 00062 public: 00063 00070 CmpiObjectPath(const char *ns, const char *cls); 00071 CmpiObjectPath(const CmpiString &ns, const char *cls); 00072 00075 CmpiObjectPath(CMPIObjectPath* c); 00076 00079 CMPIObjectPath *getEnc() const; 00080 00086 CmpiBoolean classPathIsA(const char *className) const; 00087 00092 CmpiString getHostname() const; 00093 00097 void setHostname(const char* hn); 00098 void setHostname(CmpiString hn); 00099 00104 CmpiString getNameSpace() const; 00105 00109 void setNameSpace(const char* ns); 00110 void setNameSpace(CmpiString ns); 00111 00116 CmpiString getClassName() const; 00117 00121 void setClassName(const char* hn); 00122 void setClassName(CmpiString hn); 00123 00128 unsigned int getKeyCount() const; 00129 00135 CmpiData getKey(const char* name) const; 00136 00143 CmpiData getKey(const int index, CmpiString *name=NULL) const; 00144 00150 void setKey(const char* name, const CmpiData data); 00151 }; 00152 00153 #endif 00154 00155