00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00035 #ifndef OW_INDICATION_REP_LAYER_IMPL_HPP_
00036 #define OW_INDICATION_REP_LAYER_IMPL_HPP_
00037 #include "OW_config.h"
00038 #include "OW_IndicationRepLayer.hpp"
00039 #include "OW_CimomCommonFwd.hpp"
00040 
00041 namespace OW_NAMESPACE
00042 {
00043 
00044 class OW_INDICATIONREPLAYER_API IndicationRepLayerImpl : public IndicationRepLayer
00045 {
00046 public:
00047    IndicationRepLayerImpl();
00048    ~IndicationRepLayerImpl();
00049    virtual void open(const String&);
00050    virtual void close();
00051    virtual String getName() const;
00052    virtual void init(const ServiceEnvironmentIFCRef& env);
00053    virtual void shutdown();
00054    virtual ServiceEnvironmentIFCRef getEnvironment() const;
00055    virtual void enumClasses(const String& ns,
00056       const String& className,
00057       CIMClassResultHandlerIFC& result,
00058       WBEMFlags::EDeepFlag deep, WBEMFlags::ELocalOnlyFlag localOnly, WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00059       WBEMFlags::EIncludeClassOriginFlag includeClassOrigin, OperationContext& context);
00060    virtual void enumClassNames(
00061       const String& ns,
00062       const String& className,
00063       StringResultHandlerIFC& result,
00064       WBEMFlags::EDeepFlag deep, OperationContext& context);
00065    virtual CIMInstance getInstance(
00066       const String& ns,
00067       const CIMObjectPath& instanceName,
00068       WBEMFlags::ELocalOnlyFlag localOnly, WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00069       WBEMFlags::EIncludeClassOriginFlag includeClassOrigin, const StringArray* propertyList,
00070       OperationContext& context);
00071    virtual void enumInstances(
00072       const String& ns,
00073       const String& className,
00074       CIMInstanceResultHandlerIFC& result,
00075       WBEMFlags::EDeepFlag deep,
00076       WBEMFlags::ELocalOnlyFlag localOnly,
00077       WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00078       WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00079       const StringArray* propertyList,
00080       WBEMFlags::EEnumSubclassesFlag enumSubclasses,
00081       OperationContext& context);
00082    virtual void enumInstanceNames(
00083       const String& ns,
00084       const String& className,
00085       CIMObjectPathResultHandlerIFC& result,
00086       WBEMFlags::EDeepFlag deep, OperationContext& context);
00087    virtual CIMQualifierType getQualifierType(
00088       const String& ns,
00089       const String& qualifierName, OperationContext& context);
00090    virtual CIMClass getClass(
00091       const String& ns,
00092       const String& className,
00093       WBEMFlags::ELocalOnlyFlag localOnly, WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00094       WBEMFlags::EIncludeClassOriginFlag includeClassOrigin, const StringArray* propertyList,
00095       OperationContext& context);
00096    virtual CIMValue invokeMethod(
00097       const String& ns,
00098       const CIMObjectPath& path,
00099       const String &methodName, const CIMParamValueArray &inParams,
00100       CIMParamValueArray &outParams, OperationContext& context);
00101 #ifndef OW_DISABLE_SCHEMA_MANIPULATION
00102    virtual void createClass(const String& ns,
00103       const CIMClass &cc, OperationContext& context);
00104    virtual CIMClass modifyClass(const String &ns,
00105       const CIMClass& cc, OperationContext& context);
00106    virtual CIMClass deleteClass(const String& ns, const String& className,
00107       OperationContext& context);
00108 #endif // #ifndef OW_DISABLE_SCHEMA_MANIPULATION
00109 #ifndef OW_DISABLE_QUALIFIER_DECLARATION
00110    virtual void enumQualifierTypes(
00111       const String& ns,
00112       CIMQualifierTypeResultHandlerIFC& result, OperationContext& context);
00113    virtual void deleteQualifierType(const String& ns, const String& qualName,
00114       OperationContext& context);
00115    virtual void setQualifierType(const String& ns,
00116       const CIMQualifierType& qt, OperationContext& context);
00117 #endif // #ifndef OW_DISABLE_QUALIFIER_DECLARATION
00118 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00119    virtual CIMObjectPath createInstance(const String& ns,
00120       const CIMInstance &ci, OperationContext& context);
00121    virtual CIMInstance deleteInstance(const String& ns, const CIMObjectPath &path,
00122       OperationContext& context);
00123    virtual CIMInstance modifyInstance(
00124       const String& ns,
00125       const CIMInstance& modifiedInstance,
00126       WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00127       const StringArray* propertyList,
00128       OperationContext& context);
00129 #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00130    virtual void setProperty(
00131       const String& ns,
00132       const CIMObjectPath &name,
00133       const String &propertyName, const CIMValue &cv,
00134       OperationContext& context);
00135 #endif // #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00136 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00137 #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00138    virtual CIMValue getProperty(
00139       const String& ns,
00140       const CIMObjectPath &name,
00141       const String &propertyName, OperationContext& context);
00142 #endif // #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00143 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00144    virtual void associators(
00145       const String& ns,
00146       const CIMObjectPath &path,
00147       CIMInstanceResultHandlerIFC& result,
00148       const String &assocClass, const String &resultClass,
00149       const String &role, const String &resultRole,
00150       WBEMFlags::EIncludeQualifiersFlag includeQualifiers, WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00151       const StringArray* propertyList, OperationContext& context);
00152    virtual void associatorsClasses(
00153       const String& ns,
00154       const CIMObjectPath &path,
00155       CIMClassResultHandlerIFC& result,
00156       const String &assocClass, const String &resultClass,
00157       const String &role, const String &resultRole,
00158       WBEMFlags::EIncludeQualifiersFlag includeQualifiers, WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00159       const StringArray* propertyList, OperationContext& context);
00160    virtual void references(
00161       const String& ns,
00162       const CIMObjectPath &path,
00163       CIMInstanceResultHandlerIFC& result,
00164       const String &resultClass, const String &role,
00165       WBEMFlags::EIncludeQualifiersFlag includeQualifiers, WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00166       const StringArray* propertyList, OperationContext& context);
00167    virtual void referencesClasses(
00168       const String& ns,
00169       const CIMObjectPath &path,
00170       CIMClassResultHandlerIFC& result,
00171       const String &resultClass, const String &role,
00172       WBEMFlags::EIncludeQualifiersFlag includeQualifiers, WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00173       const StringArray* propertyList, OperationContext& context);
00174    virtual void associatorNames(
00175       const String& ns,
00176       const CIMObjectPath &path,
00177       CIMObjectPathResultHandlerIFC& result,
00178       const String &assocClass,
00179       const String &resultClass, const String &role,
00180       const String &resultRole, OperationContext& context);
00181    virtual void referenceNames(
00182       const String& ns,
00183       const CIMObjectPath &path,
00184       CIMObjectPathResultHandlerIFC& result,
00185       const String &resultClass,
00186       const String &role, OperationContext& context);
00187 #endif // #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00188    
00189    virtual void execQuery(
00190       const String& ns,
00191       CIMInstanceResultHandlerIFC& result,
00192       const String &query, const String& queryLanguage,
00193       OperationContext& context);
00194 #if !defined(OW_DISABLE_INSTANCE_MANIPULATION) && !defined(OW_DISABLE_NAMESPACE_MANIPULATION)
00195    void deleteNameSpace(const String &ns, OperationContext& context);
00196    void createNameSpace(const String& ns, OperationContext& context);
00197 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00198    void enumNameSpace(StringResultHandlerIFC& result,
00199       OperationContext& context);
00200    
00201    virtual void beginOperation(WBEMFlags::EOperationFlag op, OperationContext& context);
00202    virtual void endOperation(WBEMFlags::EOperationFlag op, OperationContext& context, WBEMFlags::EOperationResultFlag result);
00203    virtual void setCIMServer(const RepositoryIFCRef& src);
00204 private:
00205    void exportIndication(const CIMInstance& instance,
00206       const String& instNS);
00207    RepositoryIFCRef m_pServer;
00208    CIMOMEnvironmentRef m_pEnv;
00209 };
00210 
00211 } 
00212 
00213 #endif