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_REMOTE_PROVIDER_INTERFACE_HPP_INCLUDE_GUARD_
00036 #define OW_REMOTE_PROVIDER_INTERFACE_HPP_INCLUDE_GUARD_
00037
00038 #include "OW_config.h"
00039 #include "OW_ProviderIFCBaseIFC.hpp"
00040 #include "OW_ClientCIMOMHandleConnectionPool.hpp"
00041 #include "OW_String.hpp"
00042 #include "OW_SortedVectorMap.hpp"
00043
00044
00045
00046
00047 namespace OW_NAMESPACE
00048 {
00049
00050 class RemoteProviderInterface : public ProviderIFCBaseIFC
00051 {
00052 public:
00053 RemoteProviderInterface();
00054 virtual ~RemoteProviderInterface();
00055
00056 protected:
00057 virtual const char* getName() const;
00058 virtual void doInit(const ProviderEnvironmentIFCRef& env,
00059 InstanceProviderInfoArray& i,
00060 SecondaryInstanceProviderInfoArray& si,
00061 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00062 AssociatorProviderInfoArray& a,
00063 #endif
00064 MethodProviderInfoArray& m,
00065 IndicationProviderInfoArray& ind);
00066 virtual InstanceProviderIFCRef doGetInstanceProvider(const ProviderEnvironmentIFCRef& env, const char* provIdString);
00067 virtual SecondaryInstanceProviderIFCRef doGetSecondaryInstanceProvider(const ProviderEnvironmentIFCRef& env, const char* provIdString);
00068 virtual MethodProviderIFCRef doGetMethodProvider(const ProviderEnvironmentIFCRef& env, const char* provIdString);
00069 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00070 virtual AssociatorProviderIFCRef doGetAssociatorProvider(const ProviderEnvironmentIFCRef& env, const char* provIdString);
00071 #endif
00072
00073 ClientCIMOMHandleConnectionPoolRef m_connectionPool;
00074
00075 struct ProvRegInfo
00076 {
00077 String namespaceName;
00078 String className;
00079 String url;
00080 bool alwaysSendCredentials;
00081 bool useConnectionCredentials;
00082 };
00083 enum EProviderTypes
00084 {
00085 E_INSTANCE = 1,
00086 E_SECONDARY_INSTANCE = 2,
00087 E_ASSOCIATION = 3,
00088 E_INDICATION = 4,
00089 E_METHOD = 5
00090 };
00091
00092 typedef SortedVectorMap<String, ProvRegInfo> ProvRegMap_t;
00093 ProvRegMap_t m_instanceProvReg;
00094 ProvRegMap_t m_secondaryInstanceProvReg;
00095 ProvRegMap_t m_associatorProvReg;
00096 ProvRegMap_t m_methodProvReg;
00097 };
00098
00099 }
00100
00101
00102
00103 #endif
00104
00105
00106