summaryrefslogtreecommitdiff
path: root/cpp/src/IceStorm/Instance.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceStorm/Instance.h')
-rw-r--r--cpp/src/IceStorm/Instance.h116
1 files changed, 53 insertions, 63 deletions
diff --git a/cpp/src/IceStorm/Instance.h b/cpp/src/IceStorm/Instance.h
index 897ea2eaa55..5f1e1fe1739 100644
--- a/cpp/src/IceStorm/Instance.h
+++ b/cpp/src/IceStorm/Instance.h
@@ -8,27 +8,15 @@
#include <Ice/CommunicatorF.h>
#include <Ice/ObjectAdapterF.h>
#include <Ice/PropertiesF.h>
-#include <IceUtil/Time.h>
#include <IceStorm/Election.h>
#include <IceStorm/Instrumentation.h>
#include <IceStorm/Util.h>
-namespace IceUtil
-{
-
-class Timer;
-typedef IceUtil::Handle<Timer> TimerPtr;
-
-}
-
namespace IceStormElection
{
class Observers;
-typedef IceUtil::Handle<Observers> ObserversPtr;
-
class NodeI;
-typedef IceUtil::Handle<NodeI> NodeIPtr;
}
@@ -36,9 +24,8 @@ namespace IceStorm
{
class TraceLevels;
-typedef IceUtil::Handle<TraceLevels> TraceLevelsPtr;
-class TopicReaper : public IceUtil::Shared, private IceUtil::Mutex
+class TopicReaper
{
public:
@@ -48,10 +35,11 @@ public:
private:
std::vector<std::string> _topics;
+
+ std::mutex _mutex;
};
-typedef IceUtil::Handle<TopicReaper> TopicReaperPtr;
-class Instance : public IceUtil::Shared
+class Instance
{
public:
@@ -61,32 +49,35 @@ public:
DropEvents
};
- Instance(const std::string&, const std::string&, const Ice::CommunicatorPtr&, const Ice::ObjectAdapterPtr&,
- const Ice::ObjectAdapterPtr&, const Ice::ObjectAdapterPtr& = 0, const IceStormElection::NodePrx& = 0);
+ Instance(const std::string&, const std::string&, std::shared_ptr<Ice::Communicator>,
+ std::shared_ptr<Ice::ObjectAdapter>, std::shared_ptr<Ice::ObjectAdapter>,
+ std::shared_ptr<Ice::ObjectAdapter> = nullptr,
+ std::shared_ptr<IceStormElection::NodePrx> = nullptr);
+
+ virtual ~Instance();
- void setNode(const IceStormElection::NodeIPtr&);
+ void setNode(std::shared_ptr<IceStormElection::NodeI>);
std::string instanceName() const;
std::string serviceName() const;
- Ice::CommunicatorPtr communicator() const;
- Ice::PropertiesPtr properties() const;
- Ice::ObjectAdapterPtr publishAdapter() const;
- Ice::ObjectAdapterPtr topicAdapter() const;
- Ice::ObjectAdapterPtr nodeAdapter() const;
- IceStormElection::ObserversPtr observers() const;
- IceStormElection::NodeIPtr node() const;
- IceStormElection::NodePrx nodeProxy() const;
- TraceLevelsPtr traceLevels() const;
- IceUtil::TimerPtr batchFlusher() const;
+ std::shared_ptr<Ice::Communicator> communicator() const;
+ std::shared_ptr<Ice::Properties> properties() const;
+ std::shared_ptr<Ice::ObjectAdapter> publishAdapter() const;
+ std::shared_ptr<Ice::ObjectAdapter> topicAdapter() const;
+ std::shared_ptr<Ice::ObjectAdapter> nodeAdapter() const;
+ std::shared_ptr<IceStormElection::Observers> observers() const;
+ std::shared_ptr<IceStormElection::NodeI> node() const;
+ std::shared_ptr<IceStormElection::NodePrx> nodeProxy() const;
+ std::shared_ptr<TraceLevels> traceLevels() const;
IceUtil::TimerPtr timer() const;
- Ice::ObjectPrx topicReplicaProxy() const;
- Ice::ObjectPrx publisherReplicaProxy() const;
- IceStorm::Instrumentation::TopicManagerObserverPtr observer() const;
- TopicReaperPtr topicReaper() const;
-
- IceUtil::Time discardInterval() const;
- IceUtil::Time flushInterval() const;
- int sendTimeout() const;
+ std::shared_ptr<Ice::ObjectPrx> topicReplicaProxy() const;
+ std::shared_ptr<Ice::ObjectPrx> publisherReplicaProxy() const;
+ std::shared_ptr<IceStorm::Instrumentation::TopicManagerObserver> observer() const;
+ std::shared_ptr<TopicReaper> topicReaper() const;
+
+ std::chrono::seconds discardInterval() const;
+ std::chrono::milliseconds flushInterval() const;
+ std::chrono::milliseconds sendTimeout() const;
int sendQueueSizeMax() const;
SendQueueSizeMaxPolicy sendQueueSizeMaxPolicy() const;
@@ -97,45 +88,45 @@ private:
const std::string _instanceName;
const std::string _serviceName;
- const Ice::CommunicatorPtr _communicator;
- const Ice::ObjectAdapterPtr _publishAdapter;
- const Ice::ObjectAdapterPtr _topicAdapter;
- const Ice::ObjectAdapterPtr _nodeAdapter;
- const IceStormElection::NodePrx _nodeProxy;
- const TraceLevelsPtr _traceLevels;
- const IceUtil::Time _discardInterval;
- const IceUtil::Time _flushInterval;
- const int _sendTimeout;
+ const std::shared_ptr<Ice::Communicator> _communicator;
+ const std::shared_ptr<Ice::ObjectAdapter> _publishAdapter;
+ const std::shared_ptr<Ice::ObjectAdapter> _topicAdapter;
+ const std::shared_ptr<Ice::ObjectAdapter> _nodeAdapter;
+ const std::shared_ptr<IceStormElection::NodePrx> _nodeProxy;
+ const std::shared_ptr<TraceLevels> _traceLevels;
+ const std::chrono::seconds _discardInterval;
+ const std::chrono::milliseconds _flushInterval;
+ const std::chrono::milliseconds _sendTimeout;
const int _sendQueueSizeMax;
const SendQueueSizeMaxPolicy _sendQueueSizeMaxPolicy;
- const Ice::ObjectPrx _topicReplicaProxy;
- const Ice::ObjectPrx _publisherReplicaProxy;
- const TopicReaperPtr _topicReaper;
- IceStormElection::NodeIPtr _node;
- IceStormElection::ObserversPtr _observers;
- IceUtil::TimerPtr _batchFlusher;
+ const std::shared_ptr<Ice::ObjectPrx> _topicReplicaProxy;
+ const std::shared_ptr<Ice::ObjectPrx> _publisherReplicaProxy;
+ const std::shared_ptr<TopicReaper> _topicReaper;
+ std::shared_ptr<IceStormElection::NodeI> _node;
+ std::shared_ptr<IceStormElection::Observers> _observers;
IceUtil::TimerPtr _timer;
- IceStorm::Instrumentation::TopicManagerObserverPtr _observer;
-
+ std::shared_ptr<IceStorm::Instrumentation::TopicManagerObserver> _observer;
};
-typedef IceUtil::Handle<Instance> InstancePtr;
-typedef IceDB::ReadWriteCursor<SubscriberRecordKey, SubscriberRecord, IceDB::IceContext, Ice::OutputStream>
- SubscriberMapRWCursor;
+using SubscriberMapRWCursor = IceDB::ReadWriteCursor<SubscriberRecordKey,
+ SubscriberRecord,
+ IceDB::IceContext,
+ Ice::OutputStream>;
-class PersistentInstance : public Instance
+class PersistentInstance final : public Instance
{
public:
- PersistentInstance(const std::string&, const std::string&, const Ice::CommunicatorPtr&,
- const Ice::ObjectAdapterPtr&, const Ice::ObjectAdapterPtr&, const Ice::ObjectAdapterPtr& = 0,
- const IceStormElection::NodePrx& = 0);
+ PersistentInstance(const std::string&, const std::string&, std::shared_ptr<Ice::Communicator>,
+ std::shared_ptr<Ice::ObjectAdapter>, std::shared_ptr<Ice::ObjectAdapter>,
+ std::shared_ptr<Ice::ObjectAdapter> = nullptr,
+ std::shared_ptr<IceStormElection::NodePrx> = nullptr);
const IceDB::Env& dbEnv() const { return _dbEnv; }
LLUMap lluMap() const { return _lluMap; }
SubscriberMap subscriberMap() const { return _subscriberMap; }
- virtual void destroy();
+ void destroy() override;
private:
@@ -144,7 +135,6 @@ private:
LLUMap _lluMap;
SubscriberMap _subscriberMap;
};
-typedef IceUtil::Handle<PersistentInstance> PersistentInstancePtr;
} // End namespace IceStorm