00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 #ifndef _CmpiBroker_h_
00023 #define _CmpiBroker_h_
00024 #include "OW_config.h"
00025 
00026 #include "cmpidt.h"
00027 #include "cmpift.h"
00028 
00029 class CmpiObject;
00030 class CmpiEnumeration;
00031 class CmpiArgs;
00032 
00033 #include "CmpiObject.h"
00034 #include "CmpiInstance.h"
00035 #include "CmpiContext.h"
00036 #include "CmpiObjectPath.h"
00037 #include "CmpiEnumeration.h"
00038 
00042 class CmpiBroker : public CmpiObject {
00043    friend class CmpiBaseMI;
00044    friend class CmpiInstanceMI;
00045    friend class CmpiInstance;
00046    friend class CmpiObjectPath;
00047    friend class CmpiEnumeration;
00048   protected:
00049 
00052    
00053 
00054 
00055 
00058    inline CMPIBroker *getEnc() const
00059       { return (CMPIBroker*)enc; }
00060   private:
00061 
00064    CmpiBroker() {}
00065   public:
00066 
00067    CmpiBroker(CMPIBroker* b)
00068       : CmpiObject((void*)b) {}
00076    CmpiContext prepareAttachThread
00077                 (const CmpiContext& ctx);
00078 
00083    void attachThread
00084                 (const CmpiContext& ctx);
00085 
00091   void detachThread
00092                 (const CmpiContext& ctx);
00093 
00094   
00095 
00102    void deliverIndication
00103                 (const CmpiContext& ctx, const char* ns,const CmpiInstance& ind);
00104 
00105   
00106 
00112    CmpiEnumeration enumInstanceNames
00113                 (const CmpiContext& ctx, const CmpiObjectPath& op);
00114 
00124    CmpiInstance getInstance
00125                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00126       const char** properties);
00127 
00128   
00129 
00136    CmpiObjectPath createInstance
00137                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00138       const CmpiInstance& inst);
00139 
00145    void setInstance
00146                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00147       const CmpiInstance& inst);
00148 
00153    void deleteInstance
00154                 (const CmpiContext& ctx, const CmpiObjectPath& op);
00155 
00164    CmpiEnumeration execQuery
00165                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00166        const char* query, const char* lang);
00167 
00178    CmpiEnumeration enumInstances
00179                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00180        const char** properties);
00181 
00210    CmpiEnumeration associators
00211                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00212        const char* assocClass, const char* resultClass,
00213        const char* role, const char* resultRole, 
00214        const char** properties);
00215 
00241    CmpiEnumeration associatorNames
00242                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00243        const char* assocClass, const char* resultClass,
00244        const char* role, const char* resultRole);
00245 
00265    CmpiEnumeration references
00266                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00267        const char* resultClass, const char* role,
00268        const char** properties);
00269 
00286    CmpiEnumeration referenceNames
00287                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00288        const char* resultClass, const char* role);
00289 
00299    CmpiData invokeMethod
00300                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00301        const char* method, const CmpiArgs& in, CmpiArgs& out);
00302 
00309    void setProperty
00310                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00311        const char* name, const CmpiData& data);
00312 
00319    CmpiData getProperty
00320                 (const CmpiContext& ctx, const CmpiObjectPath& op,
00321        const char* name);
00322 };
00323 
00324 #endif
00325 
00326 
00327