// // Copyright (c) ZeroC, Inc. All rights reserved. // #ifndef ICE_GRID_REGISTRY_ADMIN_ROUTER_H #define ICE_GRID_REGISTRY_ADMIN_ROUTER_H #include #include namespace IceGrid { class RegistryServerAdminRouter final : public AdminRouter, public std::enable_shared_from_this { public: RegistryServerAdminRouter(const std::shared_ptr&); void ice_invokeAsync(std::pair, std::function&)>, std::function, const Ice::Current& current) override; private: const std::shared_ptr _database; }; class RegistryNodeAdminRouter final : public AdminRouter { public: RegistryNodeAdminRouter(const std::string&, const std::shared_ptr&); void ice_invokeAsync(std::pair, std::function&)>, std::function, const Ice::Current& current) override; private: const std::string _collocNodeName; const std::shared_ptr _database; }; class RegistryReplicaAdminRouter final : public AdminRouter { public: RegistryReplicaAdminRouter(const std::string&, const std::shared_ptr&); void ice_invokeAsync(std::pair, std::function&)>, std::function, const Ice::Current& current) override; private: const std::string _name; const std::shared_ptr _database; }; } #endif