00001 00002 /* 00003 * 00004 * CmpiInstance.h 00005 * 00006 * (C) Copyright IBM Corp. 2003 00007 * 00008 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE 00009 * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 00010 * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 00011 * 00012 * You can obtain a current copy of the Common Public License from 00013 * http://oss.software.ibm.com/developerworks/opensource/license-cpl.html 00014 * 00015 * Author: Adrian Schuur <schuur@de.ibm.com> 00016 * Contributors: 00017 * 00018 * Description: CMPI C++ Instance wrapper 00019 * 00020 */ 00021 00022 #ifndef _CmpiArgs_h_ 00023 #define _CmpiArgs_h_ 00024 00025 #include "OW_config.h" 00026 #include "cmpidt.h" 00027 #include "cmpift.h" 00028 00029 #include "CmpiData.h" 00030 #include "CmpiObject.h" 00031 #include "CmpiProviderBase.h" 00032 00037 class CmpiArgs : public CmpiObject { 00038 friend class CmpiBroker; 00039 friend class CmpiMethodMI; 00040 protected: 00041 00044 inline CmpiArgs(CMPIArgs* enc) 00045 { this->enc=enc; } 00046 00049 inline CMPIArgs *getEnc() const 00050 { return (CMPIArgs*)enc; } 00051 void *makeArgs(CMPIBroker* mb); 00052 private: 00053 public: 00054 00057 inline CmpiArgs() { 00058 enc=makeArgs(CmpiProviderBase::getBroker()); 00059 } 00060 00065 unsigned int getArgCount(); 00066 00072 CmpiData getArg(const char* name); 00073 00080 CmpiData getArg(const int index, CmpiString *name=NULL); 00081 00087 void setArg(const char* name, CmpiData& data); 00088 }; 00089 00090 #endif