summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Activator.h
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2021-01-28 16:26:44 -0500
committerJoe George <joe@zeroc.com>2021-02-01 16:59:30 -0500
commit92a6531e409f2691d82591e185a92299d415fc0f (patch)
tree60c79e2a8f327b8f0b6ebc06b06f48a2e8086f6a /cpp/src/IceGrid/Activator.h
parentPort Glacier2, IceBox, IceBridge, IceDB, IceXML, icegriddb (diff)
downloadice-92a6531e409f2691d82591e185a92299d415fc0f.tar.bz2
ice-92a6531e409f2691d82591e185a92299d415fc0f.tar.xz
ice-92a6531e409f2691d82591e185a92299d415fc0f.zip
IceGrid and IceStorm
Diffstat (limited to 'cpp/src/IceGrid/Activator.h')
-rw-r--r--cpp/src/IceGrid/Activator.h41
1 files changed, 19 insertions, 22 deletions
diff --git a/cpp/src/IceGrid/Activator.h b/cpp/src/IceGrid/Activator.h
index f2eb0ff5a56..809dc1d7441 100644
--- a/cpp/src/IceGrid/Activator.h
+++ b/cpp/src/IceGrid/Activator.h
@@ -5,7 +5,6 @@
#ifndef ICE_GRID_ACTIVATOR_H
#define ICE_GRID_ACTIVATOR_H
-#include <IceUtil/Thread.h>
#include <IceGrid/Internal.h>
#ifndef _WIN32
@@ -16,14 +15,11 @@ namespace IceGrid
{
class TraceLevels;
-typedef IceUtil::Handle<TraceLevels> TraceLevelsPtr;
-
class ServerI;
-typedef IceUtil::Handle<ServerI> ServerIPtr;
std::string signalToString(int);
-class Activator : public IceUtil::Monitor< IceUtil::Mutex>, public IceUtil::Shared
+class Activator final : public std::enable_shared_from_this<Activator>
{
public:
@@ -39,27 +35,27 @@ public:
int pipeFd;
std::string msg;
#endif
- ServerIPtr server;
+ std::shared_ptr<ServerI> server;
};
- Activator(const TraceLevelsPtr&);
- virtual ~Activator();
+ Activator(const std::shared_ptr<TraceLevels>&);
+ ~Activator();
- virtual int activate(const std::string&, const std::string&, const std::string&,
+ int activate(const std::string&, const std::string&, const std::string&,
#ifndef _WIN32
- uid_t, gid_t,
+ uid_t, gid_t,
#endif
- const Ice::StringSeq&, const Ice::StringSeq&, const ServerIPtr&);
- virtual void deactivate(const std::string&, const Ice::ProcessPrx&);
- virtual void kill(const std::string&);
- virtual void sendSignal(const std::string&, const std::string&);
+ const Ice::StringSeq&, const Ice::StringSeq&, const std::shared_ptr<ServerI>&);
+ void deactivate(const std::string&, const std::shared_ptr<Ice::ProcessPrx>&);
+ void kill(const std::string&);
+ void sendSignal(const std::string&, const std::string&);
- virtual Ice::Int getServerPid(const std::string&);
+ int getServerPid(const std::string&);
- virtual void start();
- virtual void waitForShutdown();
- virtual void shutdown();
- virtual void destroy();
+ void start();
+ void waitForShutdown();
+ void shutdown();
+ void destroy();
bool isActive();
@@ -80,7 +76,7 @@ private:
int waitPid(pid_t);
#endif
- TraceLevelsPtr _traceLevels;
+ std::shared_ptr<TraceLevels> _traceLevels;
std::map<std::string, Process> _processes;
bool _deactivating;
@@ -92,9 +88,10 @@ private:
int _fdIntrWrite;
#endif
- IceUtil::ThreadPtr _thread;
+ std::mutex _mutex;
+ std::condition_variable _condVar;
+ std::thread _thread;
};
-typedef IceUtil::Handle<Activator> ActivatorPtr;
}