1 // 2 // Copyright (c) ZeroC, Inc. All rights reserved. 3 // 4 5 #ifndef ICEGRID_PLUGIN_FACADE_I_H 6 #define ICEGRID_PLUGIN_FACADE_I_H 7 8 #include <IceUtil/Mutex.h> 9 #include <IceUtil/Handle.h> 10 11 #include <IceGrid/PluginFacade.h> 12 13 namespace IceGrid 14 { 15 16 class Database; 17 typedef IceUtil::Handle<Database> DatabasePtr; 18 19 class RegistryPluginFacadeI : public RegistryPluginFacade, private IceUtil::Mutex 20 { 21 public: 22 23 RegistryPluginFacadeI(); 24 25 virtual ApplicationInfo getApplicationInfo(const ::std::string&) const; 26 27 virtual ServerInfo getServerInfo(const std::string&) const; 28 29 virtual std::string getAdapterServer(const std::string&) const; 30 virtual std::string getAdapterApplication(const std::string&) const; 31 virtual std::string getAdapterNode(const std::string&) const; 32 virtual AdapterInfoSeq getAdapterInfo(const ::std::string&) const; 33 34 virtual ObjectInfo getObjectInfo(const Ice::Identity&) const; 35 36 virtual NodeInfo getNodeInfo(const std::string&) const; 37 virtual LoadInfo getNodeLoad(const std::string&) const; 38 39 virtual std::string getPropertyForAdapter(const std::string&, const std::string&) const; 40 41 virtual void addReplicaGroupFilter(const std::string&, const ReplicaGroupFilterPtr&) ICE_NOEXCEPT; 42 virtual bool removeReplicaGroupFilter(const std::string&, const ReplicaGroupFilterPtr&) ICE_NOEXCEPT; 43 44 virtual void addTypeFilter(const std::string&, const TypeFilterPtr&) ICE_NOEXCEPT; 45 virtual bool removeTypeFilter(const std::string&, const TypeFilterPtr&) ICE_NOEXCEPT; 46 47 std::vector<ReplicaGroupFilterPtr> getReplicaGroupFilters(const std::string&) const; 48 bool hasReplicaGroupFilters() const; 49 50 std::vector<TypeFilterPtr> getTypeFilters(const std::string&) const; 51 bool hasTypeFilters() const; 52 53 void setDatabase(const DatabasePtr&); 54 55 private: 56 57 DatabasePtr _database; 58 std::map<std::string, std::vector<ReplicaGroupFilterPtr> > _replicaGroupFilters; 59 std::map<std::string, std::vector<TypeFilterPtr> > _typeFilters; 60 }; 61 typedef IceUtil::Handle<RegistryPluginFacadeI> RegistryPluginFacadeIPtr; 62 63 } 64 65 #endif 66