Update of /cvsroot/sblim/cmpi-dns/provider/Linux_DnsZone In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20455/provider/Linux_DnsZone Added Files: CmpiLinux_DnsZoneProvider.cpp Linux_DnsZoneFactory.cpp Linux_DnsZoneInstanceName.cpp Linux_DnsZoneDefaultImplementation.cpp setting.provider Linux_DnsZoneResourceAccess.cpp Linux_DnsZoneRepositoryInstance.h Linux_DnsZoneRepositoryInstance.cpp Linux_DnsZoneManualInstance.h Linux_DnsZoneInterface.h Linux_DnsZoneResourceAccess.h Linux_DnsZoneExternal.h Linux_DnsZoneInstance.h Linux_DnsZoneFactory.h Linux_DnsZoneInstanceName.h makefile Linux_DnsZoneInstance.cpp Linux_DnsZoneManualInstance.cpp CmpiLinux_DnsZoneProvider.h Linux_DnsZoneRepositoryExternal.h Linux_DnsZoneFakeFactory.cpp Linux_DnsZoneDefaultImplementation.h Linux_DnsZoneExternal.cpp Linux_DnsZoneRepositoryExternal.cpp Log Message: WBEM-SMT DNS provider component. First initial upload. This module includes: - CIM model for DNS - CMPI provider for DNS - Resource Access layer for DNS --- NEW FILE: Linux_DnsZoneManualInstance.h --- /** * Linux_DnsZoneManualInstance.h * * (C) Copyright IBM Corp. 2005 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Common Public License from * http://www.opensource.org/licenses/cpl1.0.php * * author: Murillo Bernardes <ber...@br...> * * Contributors: * */ #ifndef Linux_DnsZoneManualInstance_h #define Linux_DnsZoneManualInstance_h #include "cmpidt.h" #include "CmpiObjectPath.h" #include "CmpiInstance.h" #include "CmpiBooleanData.h" #include "CmpiCharData.h" #include "CmpiDateTime.h" #include "Linux_DnsZoneInstanceName.h" namespace genProvider { class Linux_DnsZoneManualInstance { public: Linux_DnsZoneManualInstance(); Linux_DnsZoneManualInstance (const Linux_DnsZoneManualInstance& original); Linux_DnsZoneManualInstance (const CmpiInstance& inst, const char* instanceNamespace); ~Linux_DnsZoneManualInstance(); Linux_DnsZoneManualInstance& operator= (const Linux_DnsZoneManualInstance& original); CmpiInstance getCmpiInstance(const char** properties=0) const; unsigned int isInstanceNameSet() const; void setInstanceName( const Linux_DnsZoneInstanceName& val); const Linux_DnsZoneInstanceName& getInstanceName() const; unsigned int isContactSet() const; void setContact(const char* val, int makeCopy = 1); const char* getContact() const; unsigned int isResourceRecordFileSet() const; void setResourceRecordFile(const char* val, int makeCopy = 1); const char* getResourceRecordFile() const; unsigned int isTypeSet() const; void setType(const CMPIUint16 val); const CMPIUint16 getType() const; private: void init(); void init(const Linux_DnsZoneManualInstance& original); void reset(); Linux_DnsZoneInstanceName m_instanceName; const char* m_Contact; const char* m_ResourceRecordFile; CMPIUint16 m_Type; struct isSetType{ unsigned int instanceName:1; unsigned int Contact:1; unsigned int ResourceRecordFile:1; unsigned int Type:1; } isSet; }; struct Linux_DnsZoneManualInstanceEnumerationElement{ Linux_DnsZoneManualInstance* m_elementP; Linux_DnsZoneManualInstanceEnumerationElement* m_nextP; Linux_DnsZoneManualInstanceEnumerationElement(); ~Linux_DnsZoneManualInstanceEnumerationElement(); }; class Linux_DnsZoneManualInstanceEnumeration { private: Linux_DnsZoneManualInstanceEnumerationElement* firstElementP; Linux_DnsZoneManualInstanceEnumerationElement* currentElementP; Linux_DnsZoneManualInstanceEnumerationElement* endElementP; public: Linux_DnsZoneManualInstanceEnumeration(); Linux_DnsZoneManualInstanceEnumeration( const Linux_DnsZoneManualInstanceEnumeration& original); ~Linux_DnsZoneManualInstanceEnumeration(); void reset(); bool hasNext() const; const Linux_DnsZoneManualInstance& getNext(); int getSize() const; const Linux_DnsZoneManualInstance& getElement(int pos) const; void addElement(const Linux_DnsZoneManualInstance& elementP); }; } #endif --- NEW FILE: setting.provider --- #Provider configuration #CPPFLAGS.provider #LDFLAGS.provider --- NEW FILE: Linux_DnsZoneExternal.h --- /** * Linux_DnsZoneExternal.h * * (C) Copyright IBM Corp. 2005 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Common Public License from * http://www.opensource.org/licenses/cpl1.0.php * * author: Murillo Bernardes <ber...@br...> * * Contributors: * */ #ifndef Linux_DnsZoneExternal_h #define Linux_DnsZoneExternal_h #include "Linux_DnsZoneInstance.h" #include "CmpiBroker.h" namespace genProvider { class Linux_DnsZoneExternal { public: Linux_DnsZoneExternal( const CmpiBroker& brkr, const CmpiContext& ctx); virtual ~Linux_DnsZoneExternal(); virtual void enumInstanceNames( const char *nsp, Linux_DnsZoneInstanceNameEnumeration&); virtual void enumInstances( const char *nsp, const char* *properties, Linux_DnsZoneInstanceEnumeration&); virtual Linux_DnsZoneInstance getInstance( const char* *properties, const Linux_DnsZoneInstanceName&); virtual void setInstance( const char* *properties, const Linux_DnsZoneInstance&); virtual void createInstance( const Linux_DnsZoneInstance&); virtual void deleteInstance( const Linux_DnsZoneInstanceName&); private: CmpiBroker broker; CmpiContext context; }; } #endif --- NEW FILE: CmpiLinux_DnsZoneProvider.h --- /** * CmpiLinux_DnsZoneProvider.h * * (C) Copyright IBM Corp. 2005 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Common Public License from * http://www.opensource.org/licenses/cpl1.0.php * * author: Murillo Bernardes <ber...@br...> * * Contributors: * */ #ifndef CmpiLinux_DnsZoneProvider_h #define CmpiLinux_DnsZoneProvider_h #include "CmpiInstanceMI.h" #include "CmpiMethodMI.h" #include "Linux_DnsZoneFactory.h" namespace genProvider{ class CmpiLinux_DnsZoneProvider : public CmpiInstanceMI, public CmpiMethodMI{ private: Linux_DnsZoneInterface* interfaceP; const static char * shadowNameSpaceP; CmpiBroker cppBroker; void completeInstance ( const Linux_DnsZoneInstanceName& intanceNameP, CmpiInstance& target, const CmpiContext& ctx); void copyShadowData ( const CmpiInstance* source, CmpiInstance* target); CmpiInstance* getShadowInstance ( const CmpiInstance& original, const Linux_DnsZoneInstanceName& intanceName); void removeDanglingShadowInstances ( const Linux_DnsZoneInstanceNameEnumeration& dinInsNames); public: CmpiLinux_DnsZoneProvider ( const CmpiBroker &mbp, const CmpiContext& ctx); ~CmpiLinux_DnsZoneProvider (); int isUnloadable() const; CmpiStatus enumInstanceNames ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop); CmpiStatus enumInstances ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const char* *properties); CmpiStatus getInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const char* *properties); virtual CmpiStatus createInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const CmpiInstance& inst); virtual CmpiStatus setInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const CmpiInstance& inst, const char* *properties); virtual CmpiStatus deleteInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop); /* virtual CmpiStatus execQuery ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const char* language, const char* query); */ virtual CmpiStatus invokeMethod ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& ref, const char* methodName, const CmpiArgs& in, CmpiArgs& out); }; } #endif --- NEW FILE: CmpiLinux_DnsZoneProvider.cpp --- /** * CmpiLinux_DnsZoneProvider.cpp * * (C) Copyright IBM Corp. 2005 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Common Public License from * http://www.opensource.org/licenses/cpl1.0.php * * author: Murillo Bernardes <ber...@br...> * * Contributors: * */ #include "CmpiLinux_DnsZoneProvider.h" #include "ArrayConverter.h" #include "Linux_DnsZoneManualInstance.h" #include "Linux_DnsZoneRepositoryInstance.h" #include <iostream> #include <strings.h> using namespace std; namespace genProvider { CmpiLinux_DnsZoneProvider:: CmpiLinux_DnsZoneProvider ( const CmpiBroker &mbp, const CmpiContext& ctx): CmpiBaseMI(mbp, ctx), CmpiInstanceMI(mbp,ctx), CmpiMethodMI(mbp,ctx), cppBroker(mbp) { interfaceP=Linux_DnsZoneFactory::getImplementation(); cout<<"Provider was constructed"<<endl; }; const char * CmpiLinux_DnsZoneProvider:: shadowNameSpaceP="IBMShadow/cimv2"; CmpiLinux_DnsZoneProvider:: ~CmpiLinux_DnsZoneProvider(){ delete interfaceP; }; int CmpiLinux_DnsZoneProvider::isUnloadable() const{ return 0; } /* -----------------------------------------------------------------------*/ /* Adding shadow properties */ /* -----------------------------------------------------------------------*/ void CmpiLinux_DnsZoneProvider::completeInstance( const Linux_DnsZoneInstanceName& instanceName, CmpiInstance& target, const CmpiContext& ctx){ Linux_DnsZoneInstanceName shadowInstanceName(instanceName); shadowInstanceName.setNamespace(shadowNameSpaceP); CmpiObjectPath cmpiObjectPath=shadowInstanceName.getObjectPath(); try{ const char* propertiesP=0; CmpiInstance shadowInstance=cppBroker.getInstance ( ctx, cmpiObjectPath,&propertiesP); copyShadowData(&shadowInstance,&target); }catch(const CmpiStatus& rc){}; }; void CmpiLinux_DnsZoneProvider::copyShadowData ( const CmpiInstance* source, CmpiInstance* target){ }; /* -----------------------------------------------------------------------*/ /* Extracting shadow instance */ /* -----------------------------------------------------------------------*/ CmpiInstance* CmpiLinux_DnsZoneProvider:: getShadowInstance (const CmpiInstance& original, const Linux_DnsZoneInstanceName& instanceName){ Linux_DnsZoneInstanceName shadowInstanceName(instanceName); shadowInstanceName.setNamespace(shadowNameSpaceP); CmpiObjectPath cmpiObjectPath=shadowInstanceName.getObjectPath(); CmpiInstance* targetP=new CmpiInstance(cmpiObjectPath); copyShadowData(&original,targetP); if(targetP->getPropertyCount()==0) return 0; else return targetP; } /* -----------------------------------------------------------------------*/ /* House keeping */ /* -----------------------------------------------------------------------*/ void CmpiLinux_DnsZoneProvider::removeDanglingShadowInstances ( const Linux_DnsZoneInstanceNameEnumeration& dinInsNames){ //TODO: enumerate shadow instance names and remove those not included // in dinInsNames }; /* -----------------------------------------------------------------------*/ /* Provider Factory */ /* -----------------------------------------------------------------------*/ CMProviderBase(CmpiLinux_DnsZoneProvider); CMInstanceMIFactory( CmpiLinux_DnsZoneProvider, CmpiLinux_DnsZoneProvider); CMMethodMIFactory( CmpiLinux_DnsZoneProvider, CmpiLinux_DnsZoneProvider); /* -----------------------------------------------------------------------*/ /* Instance Provider Interface */ /* -----------------------------------------------------------------------*/ //enumInstanceNames CmpiStatus CmpiLinux_DnsZoneProvider::enumInstanceNames ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop){ cout<<"enumerating instanceNames"<<endl; CmpiString nameSpace=cop.getNameSpace(); const char* nameSpaceP=nameSpace.charPtr(); Linux_DnsZoneInstanceNameEnumeration enumeration; interfaceP->enumInstanceNames(ctx, cppBroker, nameSpaceP, enumeration); while ( enumeration.hasNext() ){ const Linux_DnsZoneInstanceName& instanceName= enumeration.getNext(); CmpiObjectPath objectPath=instanceName.getObjectPath(); rslt.returnData(objectPath); } //we make housekeeping removeDanglingShadowInstances(enumeration); rslt.returnDone(); return CmpiStatus(CMPI_RC_OK); }; //enumInstances CmpiStatus CmpiLinux_DnsZoneProvider::enumInstances ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const char* *properties){ cout<<"enumerating instances"<<endl; CmpiString nameSpace=cop.getNameSpace(); const char* nameSpaceP=nameSpace.charPtr(); Linux_DnsZoneManualInstanceEnumeration enumeration; interfaceP->enumInstances(ctx, cppBroker, nameSpaceP, properties, enumeration); cout<<"enumerated"<<endl; while ( enumeration.hasNext() ){ const Linux_DnsZoneManualInstance& instance= enumeration.getNext(); cout<<"enumerating getNext"<<endl; CmpiInstance cmpiInstance=instance.getCmpiInstance(properties); cout<<"transformed"<<endl; //add the static data completeInstance(instance.getInstanceName(),cmpiInstance,ctx); rslt.returnData(cmpiInstance); } rslt.returnDone(); return CmpiStatus(CMPI_RC_OK); }; //getInstance CmpiStatus CmpiLinux_DnsZoneProvider::getInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const char* *properties){ //covert to instanceName Linux_DnsZoneInstanceName instanceName(cop); //get instance for instanceName Linux_DnsZoneManualInstance instance; instance=interfaceP->getInstance(ctx, cppBroker, properties, instanceName); //we convert the instance in a cmpiInstance CmpiInstance cmpiInstance=instance.getCmpiInstance(properties); //add the static data completeInstance(instance.getInstanceName(), cmpiInstance, ctx); rslt.returnData(cmpiInstance); rslt.returnDone(); return CmpiStatus(CMPI_RC_OK); }; CmpiStatus CmpiLinux_DnsZoneProvider::createInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop,const CmpiInstance& inst){ Linux_DnsZoneManualInstance instance ( inst,cop.getNameSpace().charPtr()); //REPOSITORY DATA CmpiInstance* backupShadowInstance=0; CmpiInstance shadowInstance= Linux_DnsZoneRepositoryInstance(inst,shadowNameSpaceP) .getCmpiInstance(0); //We keep a backup of the existing data for recovering previous //state if the resource access raise an exception CmpiObjectPath shadowOp=shadowInstance.getObjectPath(); try{ backupShadowInstance=new CmpiInstance( cppBroker.getInstance (ctx, shadowOp,0)); //if the shadow instance exist we delete it cppBroker.deleteInstance(ctx, shadowOp); }catch(CmpiStatus& rc){}; cppBroker.createInstance(ctx, shadowOp,shadowInstance); //RESOURCE ACCESS DATA try{ interfaceP->createInstance(ctx, cppBroker, instance); }catch(CmpiStatus& rc){ //If something went wrong we recover the previous state cppBroker.deleteInstance(ctx, shadowOp); if(backupShadowInstance){ cppBroker.createInstance(ctx, shadowOp,*backupShadowInstance); } } if(backupShadowInstance) delete(backupShadowInstance); rslt.returnData( instance.getInstanceName().getObjectPath() ); rslt.returnDone(); return CmpiStatus(CMPI_RC_OK); }; CmpiStatus CmpiLinux_DnsZoneProvider::setInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop, const CmpiInstance& inst, const char* *properties){ Linux_DnsZoneManualInstance instance ( inst,cop.getNameSpace().charPtr()); //REPOSITORY DATA CmpiInstance* backupShadowInstance=0; CmpiInstance shadowInstance= Linux_DnsZoneRepositoryInstance(inst,shadowNameSpaceP) .getCmpiInstance(0); //We keep a backup of the existing data for recovering previous //state if the resource access raise an exception CmpiObjectPath shadowOp=shadowInstance.getObjectPath(); try{ backupShadowInstance=new CmpiInstance( cppBroker.getInstance (ctx, shadowOp,0)); }catch(CmpiStatus& rc){}; //if the instance existed before we delete it //(setInstance is buggy in Pegasus) if(backupShadowInstance) cppBroker.setInstance(ctx, shadowOp,shadowInstance,properties); else cppBroker.createInstance(ctx, shadowOp,shadowInstance); //RESOURCE ACCESS DATA try{ interfaceP->setInstance(ctx, cppBroker, properties, instance); }catch(CmpiStatus& rc){ //If something went wrong we recover the previous state cppBroker.deleteInstance(ctx, shadowOp); if(backupShadowInstance){ cppBroker.createInstance(ctx, shadowOp,*backupShadowInstance); } }; if(backupShadowInstance) delete(backupShadowInstance); rslt.returnDone(); return CmpiStatus(CMPI_RC_OK); }; CmpiStatus CmpiLinux_DnsZoneProvider::deleteInstance ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop){ Linux_DnsZoneInstanceName instanceName= Linux_DnsZoneInstanceName(cop); interfaceP->deleteInstance(ctx, cppBroker, instanceName); instanceName.setNamespace(shadowNameSpaceP); CmpiObjectPath op=instanceName.getObjectPath(); try{ //The instance could not have static data cppBroker.deleteInstance(ctx, op); }catch(CmpiStatus& rc){}; rslt.returnDone(); return CmpiStatus(CMPI_RC_OK); }; CmpiStatus CmpiLinux_DnsZoneProvider::invokeMethod ( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& ref, const char* methodName, const CmpiArgs& in, CmpiArgs& out){ Linux_DnsZoneInstanceName instanceName= Linux_DnsZoneInstanceName(ref); if (strcasecmp(methodName,"ApplyIncrementalChangeToCollection")==0){ cout<<"executing method ApplyIncrementalChangeToCollection"<<endl; int isCollectionPresent=0; CIM_CollectionOfMSEsInstanceName Collection; try{ CmpiData CollectionCmpiData=in.getArg("Collection"); isCollectionPresent=!CollectionCmpiData.isNullValue(); CmpiObjectPath CollectionCmpi=CollectionCmpiData; Collection=CIM_CollectionOfMSEsInstanceName(CollectionCmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isContinueOnErrorPresent=0; CMPIBoolean ContinueOnError; try{ CmpiData ContinueOnErrorCmpiData=in.getArg("ContinueOnError"); isContinueOnErrorPresent=!ContinueOnErrorCmpiData.isNullValue(); ContinueOnError=ContinueOnErrorCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isPropertiesToApplyPresent=0; char** PropertiesToApply=0; CMPICount PropertiesToApplySize; try{ CmpiData PropertiesToApplyCmpiData=in.getArg("PropertiesToApply"); isPropertiesToApplyPresent=!PropertiesToApplyCmpiData.isNullValue(); CmpiArray PropertiesToApplyCmpi=PropertiesToApplyCmpiData; PropertiesToApplySize=PropertiesToApplyCmpi.size(); ArrayConverter::makeArray(PropertiesToApplyCmpi, &PropertiesToApply, PropertiesToApplySize); }catch(const CmpiStatus& rc){ //parameter not present };char** CanNotApply; CMPICount CanNotApplySize; rslt.returnData(CmpiData(interfaceP->ApplyIncrementalChangeToCollection( ctx, cppBroker, instanceName, Collection, isCollectionPresent, TimeToApply, isTimeToApplyPresent, ContinueOnError, isContinueOnErrorPresent, MustBeCompletedBy, isMustBeCompletedByPresent, (const char**) PropertiesToApply, PropertiesToApplySize, isPropertiesToApplyPresent, CanNotApply, CanNotApplySize))); out.setArg("CanNotApply", CmpiData(ArrayConverter::makeCmpiArray((const char**) CanNotApply, CanNotApplySize))); if(PropertiesToApply) ArrayConverter::destructArray(PropertiesToApply, PropertiesToApplySize); if(CanNotApply) ArrayConverter::destructArray(CanNotApply, CanNotApplySize); cout<<"end of method ApplyIncrementalChangeToCollection"<<endl; }else if (strcasecmp(methodName,"ApplyIncrementalChangeToMSE")==0){ cout<<"executing method ApplyIncrementalChangeToMSE"<<endl; int isMSEPresent=0; CIM_ManagedSystemElementInstanceName MSE; try{ CmpiData MSECmpiData=in.getArg("MSE"); isMSEPresent=!MSECmpiData.isNullValue(); CmpiObjectPath MSECmpi=MSECmpiData; MSE=CIM_ManagedSystemElementInstanceName(MSECmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isPropertiesToApplyPresent=0; char** PropertiesToApply=0; CMPICount PropertiesToApplySize; try{ CmpiData PropertiesToApplyCmpiData=in.getArg("PropertiesToApply"); isPropertiesToApplyPresent=!PropertiesToApplyCmpiData.isNullValue(); CmpiArray PropertiesToApplyCmpi=PropertiesToApplyCmpiData; PropertiesToApplySize=PropertiesToApplyCmpi.size(); ArrayConverter::makeArray(PropertiesToApplyCmpi, &PropertiesToApply, PropertiesToApplySize); }catch(const CmpiStatus& rc){ //parameter not present }; rslt.returnData(CmpiData(interfaceP->ApplyIncrementalChangeToMSE( ctx, cppBroker, instanceName, MSE, isMSEPresent, TimeToApply, isTimeToApplyPresent, MustBeCompletedBy, isMustBeCompletedByPresent, (const char**) PropertiesToApply, PropertiesToApplySize, isPropertiesToApplyPresent))); if(PropertiesToApply) ArrayConverter::destructArray(PropertiesToApply, PropertiesToApplySize); cout<<"end of method ApplyIncrementalChangeToMSE"<<endl; }else if (strcasecmp(methodName,"ApplyToCollection")==0){ cout<<"executing method ApplyToCollection"<<endl; int isCollectionPresent=0; CIM_CollectionOfMSEsInstanceName Collection; try{ CmpiData CollectionCmpiData=in.getArg("Collection"); isCollectionPresent=!CollectionCmpiData.isNullValue(); CmpiObjectPath CollectionCmpi=CollectionCmpiData; Collection=CIM_CollectionOfMSEsInstanceName(CollectionCmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isContinueOnErrorPresent=0; CMPIBoolean ContinueOnError; try{ CmpiData ContinueOnErrorCmpiData=in.getArg("ContinueOnError"); isContinueOnErrorPresent=!ContinueOnErrorCmpiData.isNullValue(); ContinueOnError=ContinueOnErrorCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present };char** CanNotApply; CMPICount CanNotApplySize; rslt.returnData(CmpiData(interfaceP->ApplyToCollection( ctx, cppBroker, instanceName, Collection, isCollectionPresent, TimeToApply, isTimeToApplyPresent, ContinueOnError, isContinueOnErrorPresent, MustBeCompletedBy, isMustBeCompletedByPresent, CanNotApply, CanNotApplySize))); out.setArg("CanNotApply", CmpiData(ArrayConverter::makeCmpiArray((const char**) CanNotApply, CanNotApplySize))); if(CanNotApply) ArrayConverter::destructArray(CanNotApply, CanNotApplySize); cout<<"end of method ApplyToCollection"<<endl; }else if (strcasecmp(methodName,"ApplyToMSE")==0){ cout<<"executing method ApplyToMSE"<<endl; int isMSEPresent=0; CIM_ManagedSystemElementInstanceName MSE; try{ CmpiData MSECmpiData=in.getArg("MSE"); isMSEPresent=!MSECmpiData.isNullValue(); CmpiObjectPath MSECmpi=MSECmpiData; MSE=CIM_ManagedSystemElementInstanceName(MSECmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; rslt.returnData(CmpiData(interfaceP->ApplyToMSE( ctx, cppBroker, instanceName, MSE, isMSEPresent, TimeToApply, isTimeToApplyPresent, MustBeCompletedBy, isMustBeCompletedByPresent))); cout<<"end of method ApplyToMSE"<<endl; }else if (strcasecmp(methodName,"VerifyOKToApplyIncrementalChangeToCollection")==0){ cout<<"executing method VerifyOKToApplyIncrementalChangeToCollection"<<endl; int isCollectionPresent=0; CIM_CollectionOfMSEsInstanceName Collection; try{ CmpiData CollectionCmpiData=in.getArg("Collection"); isCollectionPresent=!CollectionCmpiData.isNullValue(); CmpiObjectPath CollectionCmpi=CollectionCmpiData; Collection=CIM_CollectionOfMSEsInstanceName(CollectionCmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isPropertiesToApplyPresent=0; char** PropertiesToApply=0; CMPICount PropertiesToApplySize; try{ CmpiData PropertiesToApplyCmpiData=in.getArg("PropertiesToApply"); isPropertiesToApplyPresent=!PropertiesToApplyCmpiData.isNullValue(); CmpiArray PropertiesToApplyCmpi=PropertiesToApplyCmpiData; PropertiesToApplySize=PropertiesToApplyCmpi.size(); ArrayConverter::makeArray(PropertiesToApplyCmpi, &PropertiesToApply, PropertiesToApplySize); }catch(const CmpiStatus& rc){ //parameter not present };char** CanNotApply; CMPICount CanNotApplySize; rslt.returnData(CmpiData(interfaceP->VerifyOKToApplyIncrementalChangeToCollection( ctx, cppBroker, instanceName, Collection, isCollectionPresent, TimeToApply, isTimeToApplyPresent, MustBeCompletedBy, isMustBeCompletedByPresent, (const char**) PropertiesToApply, PropertiesToApplySize, isPropertiesToApplyPresent, CanNotApply, CanNotApplySize))); out.setArg("CanNotApply", CmpiData(ArrayConverter::makeCmpiArray((const char**) CanNotApply, CanNotApplySize))); if(PropertiesToApply) ArrayConverter::destructArray(PropertiesToApply, PropertiesToApplySize); if(CanNotApply) ArrayConverter::destructArray(CanNotApply, CanNotApplySize); cout<<"end of method VerifyOKToApplyIncrementalChangeToCollection"<<endl; }else if (strcasecmp(methodName,"VerifyOKToApplyIncrementalChangeToMSE")==0){ cout<<"executing method VerifyOKToApplyIncrementalChangeToMSE"<<endl; int isMSEPresent=0; CIM_ManagedSystemElementInstanceName MSE; try{ CmpiData MSECmpiData=in.getArg("MSE"); isMSEPresent=!MSECmpiData.isNullValue(); CmpiObjectPath MSECmpi=MSECmpiData; MSE=CIM_ManagedSystemElementInstanceName(MSECmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isPropertiesToApplyPresent=0; char** PropertiesToApply=0; CMPICount PropertiesToApplySize; try{ CmpiData PropertiesToApplyCmpiData=in.getArg("PropertiesToApply"); isPropertiesToApplyPresent=!PropertiesToApplyCmpiData.isNullValue(); CmpiArray PropertiesToApplyCmpi=PropertiesToApplyCmpiData; PropertiesToApplySize=PropertiesToApplyCmpi.size(); ArrayConverter::makeArray(PropertiesToApplyCmpi, &PropertiesToApply, PropertiesToApplySize); }catch(const CmpiStatus& rc){ //parameter not present }; rslt.returnData(CmpiData(interfaceP->VerifyOKToApplyIncrementalChangeToMSE( ctx, cppBroker, instanceName, MSE, isMSEPresent, TimeToApply, isTimeToApplyPresent, MustBeCompletedBy, isMustBeCompletedByPresent, (const char**) PropertiesToApply, PropertiesToApplySize, isPropertiesToApplyPresent))); if(PropertiesToApply) ArrayConverter::destructArray(PropertiesToApply, PropertiesToApplySize); cout<<"end of method VerifyOKToApplyIncrementalChangeToMSE"<<endl; }else if (strcasecmp(methodName,"VerifyOKToApplyToCollection")==0){ cout<<"executing method VerifyOKToApplyToCollection"<<endl; int isCollectionPresent=0; CIM_CollectionOfMSEsInstanceName Collection; try{ CmpiData CollectionCmpiData=in.getArg("Collection"); isCollectionPresent=!CollectionCmpiData.isNullValue(); CmpiObjectPath CollectionCmpi=CollectionCmpiData; Collection=CIM_CollectionOfMSEsInstanceName(CollectionCmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present };char** CanNotApply; CMPICount CanNotApplySize; rslt.returnData(CmpiData(interfaceP->VerifyOKToApplyToCollection( ctx, cppBroker, instanceName, Collection, isCollectionPresent, TimeToApply, isTimeToApplyPresent, MustBeCompletedBy, isMustBeCompletedByPresent, CanNotApply, CanNotApplySize))); out.setArg("CanNotApply", CmpiData(ArrayConverter::makeCmpiArray((const char**) CanNotApply, CanNotApplySize))); if(CanNotApply) ArrayConverter::destructArray(CanNotApply, CanNotApplySize); cout<<"end of method VerifyOKToApplyToCollection"<<endl; }else if (strcasecmp(methodName,"VerifyOKToApplyToMSE")==0){ cout<<"executing method VerifyOKToApplyToMSE"<<endl; int isMSEPresent=0; CIM_ManagedSystemElementInstanceName MSE; try{ CmpiData MSECmpiData=in.getArg("MSE"); isMSEPresent=!MSECmpiData.isNullValue(); CmpiObjectPath MSECmpi=MSECmpiData; MSE=CIM_ManagedSystemElementInstanceName(MSECmpi); }catch(const CmpiStatus& rc){ //parameter not present }; int isTimeToApplyPresent=0; CmpiDateTime TimeToApply; try{ CmpiData TimeToApplyCmpiData=in.getArg("TimeToApply"); isTimeToApplyPresent=!TimeToApplyCmpiData.isNullValue(); TimeToApply=TimeToApplyCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; int isMustBeCompletedByPresent=0; CmpiDateTime MustBeCompletedBy; try{ CmpiData MustBeCompletedByCmpiData=in.getArg("MustBeCompletedBy"); isMustBeCompletedByPresent=!MustBeCompletedByCmpiData.isNullValue(); MustBeCompletedBy=MustBeCompletedByCmpiData; }catch(const CmpiStatus& rc){ //parameter not present }; rslt.returnData(CmpiData(interfaceP->VerifyOKToApplyToMSE( ctx, cppBroker, instanceName, MSE, isMSEPresent, TimeToApply, isTimeToApplyPresent, MustBeCompletedBy, isMustBeCompletedByPresent))); cout<<"end of method VerifyOKToApplyToMSE"<<endl; }else { rslt.returnDone(); return CmpiErrorFormater::getErrorException( CmpiErrorFormater::METHOD_NOT_FOUND, "Method not available"); } rslt.returnDone(); return CmpiStatus(CMPI_RC_OK); }; } --- NEW FILE: makefile --- include ../setting.cmpi include setting.provider CPPFLAGS=$(CPPFLAGS.provider) -I. -I$(CIMOMINC) -I$(COMMONINC) -I$(CIMOMINC)/cpp -I../CIM_CollectionOfMSEs -I../CIM_ManagedSystemElement -D_COMPILE_UNIX -DCMPI_STANDALONE CXXFLAGS=-Wall -g -fPIC -fno-implicit-templates LDFLAGS=-L. -L$(COMMONLIB) -L$(COMMONLIB_OUT) -shared -lCIM_CollectionOfMSEsSupport -lCIM_ManagedSystemElementSupport -lcmpiCppImpl -lIBM_ProviderTooling OBJECTS=Linux_DnsZoneInstanceName.o \ Linux_DnsZoneInstance.o \ Linux_DnsZoneExternal.o \ Linux_DnsZoneRepositoryInstance.o \ Linux_DnsZoneRepositoryExternal.o \ Linux_DnsZoneManualInstance.o \ Linux_DnsZoneDefaultImplementation.o FAKEFACTORY= Linux_DnsZoneFakeFactory.o NORMALFACTORY= Linux_DnsZoneFactory.o RESOURCEOBJECT= Linux_DnsZoneResourceAccess.o PROVIDEROBJECT=CmpiLinux_DnsZoneProvider.o all: testfiles preinstall install buildall: clean all #------------------------------------------------------------------------------# compile: $(OBJECTS) $(FAKEFACTORY) $(NORMALFACTORY) $(RESOURCEOBJECT) $(PROVIDEROBJECT) #------------------------------------------------------------------------------# prelink: $(OBJECTS) $(FAKEFACTORY) $(LINK.cpp) -o libLinux_DnsZoneSupport.so $^ link: deleteFakeLib \ libLinux_DnsZoneSupport.so \ libLinux_DnsZone.so libLinux_DnsZoneSupport.so: LDFLAGS+=$(LDFLAGS.provider) libLinux_DnsZoneSupport.so: $(OBJECTS) $(NORMALFACTORY) $(RESOURCEOBJECT) $(PROVIDEROBJECT) $(LINK.cpp) -o $@ $^ libLinux_DnsZone.so: LDFLAGS+=-lLinux_DnsZoneSupport libLinux_DnsZone.so: $(PROVIDEROBJECT) $(LINK.cpp) -o $@ $^ deleteFakeLib: $(RM) *.so #------------------------------------------------------------------------------# preinstall: prelink install libLinux_DnsZoneSupport.so $(COMMONLIB_OUT) #------------------------------------------------------------------------------# install: link install libLinux_DnsZoneSupport.so $(COMMONLIB_OUT) install libLinux_DnsZone.so $(CIMOMLIB_OUT) # install -m 644 Linux_DnsZone*.h $(COMMONINC) $(MAKE) -C mof -f $(MOFMAKEFILE) install #------------------------------------------------------------------------------# testfiles: @[ -d $(CIMOMLIB) ] || ( echo directory $(CIMOMLIB) does not exist && false) @[ -d $(CIMOMINC) ] || ( echo directory $(CIMOMINC) does not exist - please create manually && false) @[ -d $(CIMOMMOF) ] || ( echo directory $(CIMOMMOF) does not exist - please create manually && false) @[ -d $(COMMONINC) ] || ( echo directory $(COMMONINC) does not exist - please create manually && false) @[ -d $(COMMONLIB) ] || ( echo directory $(COMMONLIB) does not exist - please create manually && false) #------------------------------------------------------------------------------# clean: $(RM) *.so *.o *~ #------------------------------------------------------------------------------# uninstall: $(MAKE) -C mof -f $(MOFMAKEFILE) uninstall; # $(RM) $(COMMONINC)/Linux_DnsZone*.h \ $(RM) $(COMMONLIB)/libLinux_DnsZoneSupport.so \ $(RM) $(CIMOMLIB)/libLinux_DnsZone.so --- NEW FILE: Linux_DnsZoneInstanceName.h --- /** * Linux_DnsZoneInstanceName.h * * (C) Copyright IBM Corp. 2005 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Common Public License from * http://www.opensource.org/licenses/cpl1.0.php * * author: Murillo Bernardes <ber...@br...> * * Contributors: * */ #ifndef Linux_DnsZoneInstanceName_h #define Linux_DnsZoneInstanceName_h #include "cmpidt.h" #include "CmpiObjectPath.h" #include "CmpiInstance.h" #include "CmpiBooleanData.h" #include "CmpiCharData.h" #include "CmpiDateTime.h" #include "ArrayConverter.h" #include "CmpiErrorFormater.h" namespace genProvider { class Linux_DnsZoneInstanceName { public: Linux_DnsZoneInstanceName(); Linux_DnsZoneInstanceName (const Linux_DnsZoneInstanceName& original); Linux_DnsZoneInstanceName (const CmpiObjectPath& path); ~Linux_DnsZoneInstanceName(); Linux_DnsZoneInstanceName& operator= (const Linux_DnsZoneInstanceName& original); CmpiObjectPath getObjectPath() const; void fillKeys(CmpiInstance& cmpiInstance) const; unsigned int isNameSpaceSet() const; void setNamespace(const char * val, int makeCopy = 1); const char * getNamespace() const; unsigned int isNameSet() const; void setName(const char* val, int makeCopy = 1); const char* getName() const; private: void init(); void init(const Linux_DnsZoneInstanceName& original); void reset(); const char* m_CIMClassNameP; const char* m_namespace; const char* m_Name; struct isSetType{ unsigned int m_namespace:1; unsigned int Name:1; } isSet; }; struct Linux_DnsZoneInstanceNameEnumerationElement{ Linux_DnsZoneInstanceName* m_elementP; Linux_DnsZoneInstanceNameEnumerationElement* m_nextP; Linux_DnsZoneInstanceNameEnumerationElement(); ~Linux_DnsZoneInstanceNameEnumerationElement(); }; class Linux_DnsZoneInstanceNameEnumeration { private: Linux_DnsZoneInstanceNameEnumerationElement* firstElementP; Linux_DnsZoneInstanceNameEnumerationElement* currentElementP; Linux_DnsZoneInstanceNameEnumerationElement* endElementP; public: Linux_DnsZoneInstanceNameEnumeration(); Linux_DnsZoneInstanceNameEnumeration(const CmpiArray& arr); Linux_DnsZoneInstanceNameEnumeration( const Linux_DnsZoneInstanceNameEnumeration& original); ~Linux_DnsZoneInstanceNameEnumeration(); void reset(); bool hasNext() const; const Linux_DnsZoneInstanceName& getNext(); int getSize() const; const Linux_DnsZoneInstanceName& getElement(int pos) const; //no copy of the element is done void addElement(const Linux_DnsZoneInstanceName& elementP); operator CmpiArray() const; }; } #endif --- NEW FILE: Linux_DnsZoneRepositoryInstance.h --- /** * Linux_DnsZoneRepositoryInstance.h * * (C) Copyright IBM Corp. 2005 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Common Public License from * http://www.opensource.org/licenses/cpl1.0.php * * author: Murillo Bernardes <ber...@br...> * * Contributors: * */ #ifndef Linux_DnsZoneRepositoryInstance_h #define Linux_DnsZoneRepositoryInstance_h #include "cmpidt.h" #include "CmpiObjectPath.h" #include "CmpiInstance.h" #include "CmpiBooleanData.h" #include "CmpiCharData.h" #include "CmpiDateTime.h" #include "Linux_DnsZoneInstanceName.h" namespace genProvider { class Linux_DnsZoneRepositoryInstance { public: Linux_DnsZoneRepositoryInstance(); Linux_DnsZoneRepositoryInstance (const Linux_DnsZoneRepositoryInstance& original); Linux_DnsZoneRepositoryInstance (const CmpiInstance& inst, const char* instanceNamespace); ~Linux_DnsZoneRepositoryInstance(); Linux_DnsZoneRepositoryInstance& operator= (const Linux_DnsZoneRepositoryInstance& original); CmpiInstance getCmpiInstance(const char** properties=0) const; unsigned int isInstanceNameSet() const; void setInstanceName( const Linux_DnsZoneInstanceName& val); const Linux_DnsZoneInstanceName& getInstanceName() const; private: void init(); void init(const Linux_DnsZoneRepositoryInstance& original); void reset(); Linux_DnsZoneInstanceName m_instanceName; struct isSetType{ unsigned int instanceName:1; } isSet; }; struct Linux_DnsZoneRepositoryInstanceEnumerationElement{ Linux_DnsZoneRepositoryInstance* m_elementP; Linux_DnsZoneRepositoryInstanceEnumerationElement* m_nextP; Linux_DnsZoneRepositoryInstanceEnumerationElement(); ~Linux_DnsZoneRepositoryInstanceEnumerationElement(); }; class Linux_DnsZoneRepositoryInstanceEnumeration { private: Linux_DnsZoneRepositoryInstanceEnumerationElement* firstElementP; Linux_DnsZoneRepositoryInstanceEnumerationElement* currentElementP; Linux_DnsZoneRepositoryInstanceEnumerationElement* endElementP; public: Linux_DnsZoneRepositoryInstanceEnumeration(); Linux_DnsZoneRepositoryInstanceEnumeration( const Linux_DnsZoneRepositoryInstanceEnumeration& original); ~Linux_DnsZoneRepositoryInstanceEnumeration(); void reset(); bool hasNext() const; const Linux_DnsZoneRepositoryInstance& getNext(); int getSize() const; const Linux_DnsZoneRepositoryInstance& getElement(int pos) const; void addElement(const Linux_DnsZoneRepositoryInstance& elementP); }; } #endif --- NEW FILE: Linux_DnsZoneInstance.cpp --- /** * Linux_DnsZoneInstance.cpp * * (C) Copyright IBM Corp. 2005 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Common Public License from * http://www.opensource.org/licenses/cpl1.0.php * * author: Murillo Bernardes <ber...@br...> * * Contributors: * */ #include "Linux_DnsZoneInstance.h" #include "CmpiData.h" #include "CmpiString.h" #include "CmpiArray.h" #include <string> namespace genProvider { //********************************************************* //Linux_DnsZoneInstance //********************************************************* //empty constructor Linux_DnsZoneInstance:: Linux_DnsZoneInstance(){ init(); }; //copy constructor Linux_DnsZoneInstance:: Linux_DnsZoneInstance (const Linux_DnsZoneInstance& original){ init(original); }; //constructor using CmpiInstance Linux_DnsZoneInstance:: Linux_DnsZoneInstance (const CmpiInstance& inst, const char* instanceNamespace){ CmpiData cmpiData; init(); CmpiObjectPath cop=inst.getObjectPath(); cop.setNameSpace(instanceNamespace); setInstanceName(Linux_DnsZoneInstanceName(cop)); cmpiData = inst.getProperty("Caption"); if(!cmpiData.isNullValue()){ CmpiString Caption = cmpiData; setCaption(Caption.charPtr()); } cmpiData = inst.getProperty("Contact"); if(!cmpiData.isNullValue()){ CmpiString Contact = cmpiData; setContact(Contact.charPtr()); } cmpiData = inst.getProperty("Description"); if(!cmpiData.isNullValue()){ CmpiString Description = cmpiData; setDescription(Description.charPtr()); } cmpiData = inst.getProperty("ElementName"); if(!cmpiData.isNullValue()){ CmpiString ElementName = cmpiData; setElementName(ElementName.charPtr()); } cmpiData = inst.getProperty("ResourceRecordFile"); if(!cmpiData.isNullValue()){ CmpiString ResourceRecordFile = cmpiData; setResourceRecordFile(ResourceRecordFile.charPtr()); } cmpiData = inst.getProperty("SettingID"); if(!cmpiData.isNullValue()){ CmpiString SettingID = cmpiData; setSettingID(SettingID.charPtr()); } cmpiData = inst.getProperty("Type"); if(!cmpiData.isNullValue()){ CMPIUint16 Type = cmpiData; setType(Type); } } //Destructor Linux_DnsZoneInstance:: ~Linux_DnsZoneInstance(){ reset(); }; //copy operator Linux_DnsZoneInstance& Linux_DnsZoneInstance::operator= (const Linux_DnsZoneInstance& original){ init(original); return *this; }; //converts to CmpiInstance CmpiInstance Linux_DnsZoneInstance:: getCmpiInstance(const char** properties) const{ CmpiObjectPath objectPath=getInstanceName().getObjectPath(); CmpiInstance cmpiInstance(objectPath); getInstanceName().fillKeys(cmpiInstance); if (properties) { cmpiInstance.setPropertyFilter(properties,0); } if(isSet.Caption){ cmpiInstance.setProperty("Caption",CmpiData(m_Caption)); } if(isSet.Contact){ cmpiInstance.setProperty("Contact",CmpiData(m_Contact)); } if(isSet.Description){ cmpiInstance.setProperty("Description",CmpiData(m_Description)); } if(isSet.ElementName){ cmpiInstance.setProperty("ElementName",CmpiData(m_ElementName)); } if(isSet.ResourceRecordFile){ cmpiInstance.setProperty("ResourceRecordFile",CmpiData(m_ResourceRecordFile)); } if(isSet.SettingID){ cmpiInstance.setProperty("SettingID",CmpiData(m_SettingID)); } if(isSet.Type){ cmpiInstance.setProperty("Type",CmpiData(m_Type)); } return cmpiInstance; } //InstanceName related methods unsigned int Linux_DnsZoneInstance:: isInstanceNameSet() const{ return isSet.instanceName; } const Linux_DnsZoneInstanceName& Linux_DnsZoneInstance::getInstanceName() const{ if(!isSet.instanceName) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "InstanceName not set in Linux_DnsZone instance"); return m_instanceName; } void Linux_DnsZoneInstance::setInstanceName( const Linux_DnsZoneInstanceName& val){ m_instanceName = val; isSet.instanceName=1; } //Caption related methods unsigned int Linux_DnsZoneInstance::isCaptionSet() const{ return isSet.Caption; } void Linux_DnsZoneInstance:: setCaption(const char* val, int makeCopy){ if (isSet.Caption) { delete []m_Caption; } if (makeCopy&&val) { char* tmpval = new char[strlen(val)+1]; strcpy(tmpval,val); m_Caption = tmpval; } else { m_Caption = val; } isSet.Caption=1; } const char* Linux_DnsZoneInstance:: getCaption() const{ if(!isSet.Caption) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "Caption not set"); return m_Caption; } //Contact related methods unsigned int Linux_DnsZoneInstance::isContactSet() const{ return isSet.Contact; } void Linux_DnsZoneInstance:: setContact(const char* val, int makeCopy){ if (isSet.Contact) { delete []m_Contact; } if (makeCopy&&val) { char* tmpval = new char[strlen(val)+1]; strcpy(tmpval,val); m_Contact = tmpval; } else { m_Contact = val; } isSet.Contact=1; } const char* Linux_DnsZoneInstance:: getContact() const{ if(!isSet.Contact) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "Contact not set"); return m_Contact; } //Description related methods unsigned int Linux_DnsZoneInstance::isDescriptionSet() const{ return isSet.Description; } void Linux_DnsZoneInstance:: setDescription(const char* val, int makeCopy){ if (isSet.Description) { delete []m_Description; } if (makeCopy&&val) { char* tmpval = new char[strlen(val)+1]; strcpy(tmpval,val); m_Description = tmpval; } else { m_Description = val; } isSet.Description=1; } const char* Linux_DnsZoneInstance:: getDescription() const{ if(!isSet.Description) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "Description not set"); return m_Description; } //ElementName related methods unsigned int Linux_DnsZoneInstance::isElementNameSet() const{ return isSet.ElementName; } void Linux_DnsZoneInstance:: setElementName(const char* val, int makeCopy){ if (isSet.ElementName) { delete []m_ElementName; } if (makeCopy&&val) { char* tmpval = new char[strlen(val)+1]; strcpy(tmpval,val); m_ElementName = tmpval; } else { m_ElementName = val; } isSet.ElementName=1; } const char* Linux_DnsZoneInstance:: getElementName() const{ if(!isSet.ElementName) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "ElementName not set"); return m_ElementName; } //ResourceRecordFile related methods unsigned int Linux_DnsZoneInstance::isResourceRecordFileSet() const{ return isSet.ResourceRecordFile; } void Linux_DnsZoneInstance:: setResourceRecordFile(const char* val, int makeCopy){ if (isSet.ResourceRecordFile) { delete []m_ResourceRecordFile; } if (makeCopy&&val) { char* tmpval = new char[strlen(val)+1]; strcpy(tmpval,val); m_ResourceRecordFile = tmpval; } else { m_ResourceRecordFile = val; } isSet.ResourceRecordFile=1; } const char* Linux_DnsZoneInstance:: getResourceRecordFile() const{ if(!isSet.ResourceRecordFile) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "ResourceRecordFile not set"); return m_ResourceRecordFile; } //SettingID related methods unsigned int Linux_DnsZoneInstance::isSettingIDSet() const{ return isSet.SettingID; } void Linux_DnsZoneInstance:: setSettingID(const char* val, int makeCopy){ if (isSet.SettingID) { delete []m_SettingID; } if (makeCopy&&val) { char* tmpval = new char[strlen(val)+1]; strcpy(tmpval,val); m_SettingID = tmpval; } else { m_SettingID = val; } isSet.SettingID=1; } const char* Linux_DnsZoneInstance:: getSettingID() const{ if(!isSet.SettingID) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "SettingID not set"); return m_SettingID; } //Type related methods unsigned int Linux_DnsZoneInstance::isTypeSet() const{ return isSet.Type; } void Linux_DnsZoneInstance:: setType(const CMPIUint16 val){ m_Type = val; isSet.Type=1; } const CMPIUint16 Linux_DnsZoneInstance:: getType() const{ if(!isSet.Type) throw CmpiErrorFormater::getErrorException( CmpiErrorFormater::NOT_SET, "Type not set"); return m_Type; } //set isSet attributes to FALSE void Linux_DnsZoneInstance::init(){ isSet.instanceName=0; isSet.Caption=0; isSet.Contact=0; isSet.Description=0; isSet.ElementName=0; isSet.ResourceRecordFile=0; isSet.SettingID=0; isSet.Type=0; }; //copies another instance properties in this void Linux_DnsZoneInstance::init (const Linux_DnsZoneInstance& original){ init(); if(original.isInstanceNameSet()){ setInstanceName(original.getInstanceName()); } if(original.isCaptionSet()){ const char* CaptionOriginal=original.getCaption(); setCaption(CaptionOriginal, 1); } if(original.isContactSet()){ const char* ContactOriginal=original.getContact(); setContact(ContactOriginal, 1); } if(original.isDescriptionSet()){ const char* DescriptionOriginal=original.getDescription(); setDescription(DescriptionOriginal, 1); } if(original.isElementNameSet()){ const char* ElementNameOriginal=original.getElementName(); setElementName(ElementNameOriginal, 1); } if(original.isResourceRecordFileSet()){ const char* ResourceRecordFileOriginal=original.getResourceRecordFile(); setResourceRecordFile(ResourceRecordFileOriginal, 1); } if(original.isSettingIDSet()){ const char* SettingIDOriginal=original.getSettingID(); setSettingID(SettingIDOriginal, 1); } if(original.isTypeSet()){ const CMPIUint16 TypeOriginal=original.getType(); setType(TypeOriginal); } } //reset the instance data void Linux_DnsZoneInstance::reset(){ if (isSet.Caption) delete(m_Caption); if (isSet.Contact) delete(m_Contact); if (isSet.Description) delete(m_Description); if (isSet.ElementName) delete(m_ElementName); if (isSet.ResourceRecordFile) delete(m_ResourceRecordFile); if (isSet.SettingID) delete(m_SettingID); }; //********************************************************* //Linux_DnsZoneInstanceEnumerationElement //********************************************************* Linux_DnsZoneInstanceEnumerationElement:: Linux_DnsZoneInstanceEnumerationElement(){ m_elementP=0; m_nextP=0; }; Linux_DnsZoneInstanceEnumerationElement:: ~Linux_DnsZoneInstanceEnumerationElement(){ if (m_elementP!=0) delete(m_elementP); if (m_nextP!=0) delete(m_nextP); }; //********************************************************* //Linux_DnsZoneInstanceNameEnumeration //********************************************************* Linux_DnsZoneInstanceEnum... [truncated message content] |