summaryrefslogtreecommitdiff
path: root/cpp/src/IceStorm/TopicManagerI.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2003-09-16 01:41:46 +0000
committerBernard Normier <bernard@zeroc.com>2003-09-16 01:41:46 +0000
commit83cb29a8de333646c9b3e7ac6909accce72e6b5f (patch)
treecc1037886e0d1770d9c1ad412d79c81a5a1d21ad /cpp/src/IceStorm/TopicManagerI.cpp
parentflex fixes (diff)
downloadice-83cb29a8de333646c9b3e7ac6909accce72e6b5f.tar.bz2
ice-83cb29a8de333646c9b3e7ac6909accce72e6b5f.tar.xz
ice-83cb29a8de333646c9b3e7ac6909accce72e6b5f.zip
Added Freeze Connection and Transaction
Diffstat (limited to 'cpp/src/IceStorm/TopicManagerI.cpp')
-rw-r--r--cpp/src/IceStorm/TopicManagerI.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp
index 009574b7706..444d734f153 100644
--- a/cpp/src/IceStorm/TopicManagerI.cpp
+++ b/cpp/src/IceStorm/TopicManagerI.cpp
@@ -17,6 +17,7 @@
#include <IceStorm/TopicI.h>
#include <IceStorm/Flusher.h>
#include <IceStorm/TraceLevels.h>
+#include <Freeze/Initialize.h>
#include <functional>
#include <ctype.h>
@@ -32,7 +33,8 @@ TopicManagerI::TopicManagerI(const Ice::CommunicatorPtr& communicator, const Ice
_publishAdapter(publishAdapter),
_traceLevels(traceLevels),
_envName(envName),
- _topics(_communicator, envName, dbName)
+ _connection(Freeze::createConnection(_communicator, envName)),
+ _topics(_connection, dbName)
{
_flusher = new Flusher(_communicator, _traceLevels);
_factory = new SubscriberFactory(_communicator, _traceLevels, _flusher);
@@ -195,6 +197,13 @@ TopicManagerI::reap()
}
void
+TopicManagerI::shutdown()
+{
+ IceUtil::Mutex::Lock sync(*this);
+ reap();
+}
+
+void
TopicManagerI::installTopic(const string& message, const string& name, bool create)
{
if(_traceLevels->topicMgr > 0)