summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Database.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Database.h')
-rw-r--r--cpp/src/IceGrid/Database.h31
1 files changed, 18 insertions, 13 deletions
diff --git a/cpp/src/IceGrid/Database.h b/cpp/src/IceGrid/Database.h
index c44da283842..c7c5cde3959 100644
--- a/cpp/src/IceGrid/Database.h
+++ b/cpp/src/IceGrid/Database.h
@@ -38,12 +38,13 @@ class Database : public IceUtil::Shared, public IceUtil::Mutex
{
public:
- ServerEntry(Database&, const ServerDescriptorPtr&);
+ ServerEntry(Database&, const ServerInstanceDescriptor&);
void sync();
bool needsSync() const;
- void update(const ServerDescriptorPtr&);
- ServerDescriptorPtr getDescriptor();
+ void update(const ServerInstanceDescriptor&);
+ void destroy();
+ ServerInstanceDescriptor getDescriptor();
ServerPrx getProxy();
AdapterPrx getAdapter(const std::string&);
bool canRemove();
@@ -53,9 +54,9 @@ class Database : public IceUtil::Shared, public IceUtil::Mutex
ServerPrx sync(StringAdapterPrxDict& adapters);
Database& _database;
- ServerDescriptorPtr _loaded;
- ServerDescriptorPtr _load;
- ServerDescriptorPtr _destroy;
+ std::auto_ptr<ServerInstanceDescriptor> _loaded;
+ std::auto_ptr<ServerInstanceDescriptor> _load;
+ std::auto_ptr<ServerInstanceDescriptor> _destroy;
ServerPrx _proxy;
std::map<std::string, AdapterPrx> _adapters;
bool _synchronizing;
@@ -90,7 +91,8 @@ public:
void removeNode(const std::string&);
Ice::StringSeq getAllNodes(const std::string& = std::string());
- InstanceDescriptor getServerDescriptor(const std::string&);
+ ServerInstanceDescriptor getServerDescriptor(const std::string&);
+ std::string getServerApplication(const std::string&);
ServerPrx getServer(const std::string&);
Ice::StringSeq getAllServers(const std::string& = std::string());
Ice::StringSeq getAllNodeServers(const std::string&);
@@ -113,13 +115,15 @@ private:
void syncApplicationDescriptorNoSync(const ApplicationDescriptorPtr&, const ApplicationDescriptorPtr&,
ServerEntrySeq&);
- void addServers(const InstanceDescriptorSeq&, const std::set<std::string>&, ServerEntrySeq&);
+ void addServers(const std::string&, const ServerInstanceDescriptorSeq&, const std::set<std::string>&,
+ ServerEntrySeq&);
void updateServers(const ApplicationDescriptorPtr&, const ApplicationDescriptorPtr&,
const std::set<std::string>&, ServerEntrySeq&);
- void removeServers(const InstanceDescriptorSeq&, const std::set<std::string>&, ServerEntrySeq&);
- ServerEntryPtr addServer(const InstanceDescriptor&);
- ServerEntryPtr updateServer(const InstanceDescriptor&);
- ServerEntryPtr removeServer(const InstanceDescriptor&);
+ void removeServers(const std::string&, const ServerInstanceDescriptorSeq&, const std::set<std::string>&,
+ ServerEntrySeq&);
+ ServerEntryPtr addServer(const std::string&, const ServerInstanceDescriptor&);
+ ServerEntryPtr updateServer(const ServerInstanceDescriptor&);
+ ServerEntryPtr removeServer(const std::string&, const ServerInstanceDescriptor&);
void clearServer(const std::string&);
void addComponent(const ServerEntryPtr&, const ComponentDescriptorPtr&);
void removeComponent(const ComponentDescriptorPtr&);
@@ -145,7 +149,8 @@ private:
std::map<std::string, ServerEntryPtr> _serversByAdapterId;
std::map<std::string, std::set<std::string> > _serversByNode;
std::map<std::string, NodeSessionIPtr> _nodes;
-
+ std::map<std::string, std::string> _applicationsByServerName;
+
Freeze::ConnectionPtr _connection;
StringApplicationDescriptorDict _descriptors;
IdentityObjectDescDict _objects;