summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2002-02-12 17:12:29 +0000
committerMatthew Newhook <matthew@zeroc.com>2002-02-12 17:12:29 +0000
commit4a9851b86fc52af5b629bf06d7a83d29da15d98f (patch)
treec38cd4704a983377274bafeb70f2eebc68aba600 /cpp/src
parentadding IceXML (diff)
downloadice-4a9851b86fc52af5b629bf06d7a83d29da15d98f.tar.bz2
ice-4a9851b86fc52af5b629bf06d7a83d29da15d98f.tar.xz
ice-4a9851b86fc52af5b629bf06d7a83d29da15d98f.zip
Fix some TODO's in IceUtil. IceStorm now uses the new Logger utils.
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceStorm/Flusher.cpp6
-rw-r--r--cpp/src/IceStorm/LinkSubscriber.cpp25
-rw-r--r--cpp/src/IceStorm/OnewayBatchSubscriber.cpp10
-rw-r--r--cpp/src/IceStorm/OnewaySubscriber.cpp10
-rw-r--r--cpp/src/IceStorm/SubscriberFactory.cpp5
-rw-r--r--cpp/src/IceStorm/TopicI.cpp40
-rw-r--r--cpp/src/IceUtil/Cond.cpp82
-rw-r--r--cpp/src/IceUtil/Thread.cpp13
8 files changed, 133 insertions, 58 deletions
diff --git a/cpp/src/IceStorm/Flusher.cpp b/cpp/src/IceStorm/Flusher.cpp
index 4eb75a14170..60eaf240ee7 100644
--- a/cpp/src/IceStorm/Flusher.cpp
+++ b/cpp/src/IceStorm/Flusher.cpp
@@ -150,10 +150,8 @@ private:
//
if (_traceLevels->flush > 0)
{
- ostringstream s;
- s << _subscribers.size() << " object(s)";
-
- _traceLevels->logger->trace(_traceLevels->flushCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->flushCat);
+ out << _subscribers.size() << " object(s)";
}
}
diff --git a/cpp/src/IceStorm/LinkSubscriber.cpp b/cpp/src/IceStorm/LinkSubscriber.cpp
index 61be860b1b7..b04cfd8f9cc 100644
--- a/cpp/src/IceStorm/LinkSubscriber.cpp
+++ b/cpp/src/IceStorm/LinkSubscriber.cpp
@@ -48,9 +48,8 @@ LinkSubscriber::unsubscribe()
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << "Unsubscribe " << _obj->ice_getIdentity();
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << "Unsubscribe " << _obj->ice_getIdentity();
}
}
@@ -79,18 +78,16 @@ LinkSubscriber::publish(const Event& event)
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << _obj->ice_getIdentity() << ": link topic publish failed: " << e;
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << _obj->ice_getIdentity() << ": link topic publish failed: " << e;
}
}
catch(const Ice::LocalException& e)
{
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << _obj->ice_getIdentity() << ": link topic publish failed: " << e;
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << _obj->ice_getIdentity() << ": link topic publish failed: " << e;
}
}
}
@@ -112,18 +109,16 @@ LinkSubscriber::flush()
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << _obj->ice_getIdentity() << ": link topic flush failed: " << e;
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << _obj->ice_getIdentity() << ": link topic flush failed: " << e;
}
}
catch(const Ice::LocalException& e)
{
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << _obj->ice_getIdentity() << ": link topic flush failed: " << e;
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << _obj->ice_getIdentity() << ": link topic flush failed: " << e;
}
}
}
diff --git a/cpp/src/IceStorm/OnewayBatchSubscriber.cpp b/cpp/src/IceStorm/OnewayBatchSubscriber.cpp
index cdb7d9ef807..4a9915af023 100644
--- a/cpp/src/IceStorm/OnewayBatchSubscriber.cpp
+++ b/cpp/src/IceStorm/OnewayBatchSubscriber.cpp
@@ -37,9 +37,8 @@ OnewayBatchSubscriber::unsubscribe()
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << "Unsubscribe " << _obj->ice_getIdentity();
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << "Unsubscribe " << _obj->ice_getIdentity();
}
//
@@ -74,9 +73,8 @@ OnewayBatchSubscriber::flush()
{
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << _obj->ice_getIdentity() << ": flush failed: " << e;
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << _obj->ice_getIdentity() << ": flush failed: " << e;
}
_state = StateError;
}
diff --git a/cpp/src/IceStorm/OnewaySubscriber.cpp b/cpp/src/IceStorm/OnewaySubscriber.cpp
index c921c463e7b..b1007792355 100644
--- a/cpp/src/IceStorm/OnewaySubscriber.cpp
+++ b/cpp/src/IceStorm/OnewaySubscriber.cpp
@@ -40,9 +40,8 @@ OnewaySubscriber::unsubscribe()
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << "Unsubscribe " << _obj->ice_getIdentity();
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << "Unsubscribe " << _obj->ice_getIdentity();
}
}
@@ -66,9 +65,8 @@ OnewaySubscriber::publish(const Event& event)
{
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << _obj->ice_getIdentity() << ": publish failed: " << e;
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << _obj->ice_getIdentity() << ": publish failed: " << e;
}
_state = StateError;
}
diff --git a/cpp/src/IceStorm/SubscriberFactory.cpp b/cpp/src/IceStorm/SubscriberFactory.cpp
index bb901fad200..e2e7c6c6754 100644
--- a/cpp/src/IceStorm/SubscriberFactory.cpp
+++ b/cpp/src/IceStorm/SubscriberFactory.cpp
@@ -56,9 +56,8 @@ SubscriberFactory::createSubscriber(const QoS& qos, const Ice::ObjectPrx& obj)
{
if (_traceLevels->subscriber > 0)
{
- ostringstream s;
- s << reliability <<" mode not understood.";
- _traceLevels->logger->trace(_traceLevels->subscriberCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
+ out << reliability <<" mode not understood.";
}
}
return new OnewaySubscriber(_traceLevels, obj->ice_oneway());
diff --git a/cpp/src/IceStorm/TopicI.cpp b/cpp/src/IceStorm/TopicI.cpp
index 84b73f93230..1e35b5d9308 100644
--- a/cpp/src/IceStorm/TopicI.cpp
+++ b/cpp/src/IceStorm/TopicI.cpp
@@ -145,9 +145,8 @@ public:
{
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << id << ": not subscribed.";
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << id << ": not subscribed.";
}
}
}
@@ -334,9 +333,8 @@ TopicI::TopicI(const Ice::ObjectAdapterPtr& adapter, const TraceLevelsPtr& trace
{
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << _name << " relink " << p->second.obj->ice_getIdentity();
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << _name << " relink " << p->second.obj->ice_getIdentity();
}
SubscriberPtr subscriber = _factory->createLinkSubscriber(p->second.obj, p->second.info.cost);
@@ -383,9 +381,8 @@ TopicI::destroy(const Ice::Current&)
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << "destroying " << id;
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << "destroying " << id;
}
_adapter->remove(id);
@@ -409,9 +406,8 @@ TopicI::link(const TopicPrx& topic, Ice::Int cost, const Ice::Current&)
string name = topic->getName();
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << _name << " link " << name << " cost " << cost;
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << _name << " link " << name << " cost " << cost;
}
//
@@ -465,9 +461,8 @@ TopicI::unlink(const TopicPrx& topic, const Ice::Current&)
{
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << _name << " unlink " << topic->getName();
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << _name << " unlink " << topic->getName();
}
_subscribers->unsubscribe(link->ice_getIdentity());
}
@@ -475,9 +470,8 @@ TopicI::unlink(const TopicPrx& topic, const Ice::Current&)
{
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << _name << " unlink " << topic->getName() << " failed - not linked";
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << _name << " unlink " << topic->getName() << " failed - not linked";
}
}
}
@@ -597,18 +591,16 @@ TopicI::reap()
{
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << "reaping " << subscriber->id();
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << "reaping " << subscriber->id();
}
}
else
{
if (_traceLevels->topic > 0)
{
- ostringstream s;
- s << "reaping " << subscriber->id() << " failed - not in database";
- _traceLevels->logger->trace(_traceLevels->topicCat, s.str());
+ Ice::Trace out(_traceLevels->logger, _traceLevels->topicCat);
+ out << "reaping " << subscriber->id() << " failed - not in database";
}
}
}
diff --git a/cpp/src/IceUtil/Cond.cpp b/cpp/src/IceUtil/Cond.cpp
index 807295d2441..9487e590931 100644
--- a/cpp/src/IceUtil/Cond.cpp
+++ b/cpp/src/IceUtil/Cond.cpp
@@ -80,6 +80,88 @@ IceUtil::Cond::broadcast()
}
void
+IceUtil::Cond::waitImpl(const RecMutex& mutex) const
+{
+ preWait();
+
+ RecMutex::LockState state;
+ mutex.unlock(state);
+
+ try
+ {
+ dowait(-1);
+ mutex.lock(state);
+ }
+ catch(...)
+ {
+ mutex.lock(state);
+ throw;
+ }
+}
+
+void
+IceUtil::Cond::waitImpl(const Mutex& mutex) const
+{
+ preWait();
+
+ Mutex::LockState state;
+ mutex.unlock(state);
+
+ try
+ {
+ dowait(-1);
+ mutex.lock(state);
+ }
+ catch(...)
+ {
+ mutex.lock(state);
+ throw;
+ }
+}
+
+bool
+IceUtil::Cond::timedwaitImpl(const RecMutex& mutex, long msec) const
+{
+ preWait();
+
+ RecMutex::LockState state;
+ mutex.unlock(state);
+
+ try
+ {
+ bool rc = dowait(msec);
+ mutex.lock(state);
+ return rc;
+ }
+ catch(...)
+ {
+ mutex.lock(state);
+ throw;
+ }
+}
+
+bool
+IceUtil::Cond::timedwaitImpl(const Mutex& mutex, long msec) const
+{
+ preWait();
+
+ Mutex::LockState state;
+ mutex.unlock(state);
+
+ try
+ {
+ bool rc = dowait(msec);
+ mutex.lock(state);
+ return rc;
+ }
+ catch(...)
+ {
+ mutex.lock(state);
+ throw;
+ }
+}
+
+void
IceUtil::Cond::wake(bool broadcast)
{
//
diff --git a/cpp/src/IceUtil/Thread.cpp b/cpp/src/IceUtil/Thread.cpp
index f2121a1e45c..63ba6ddbdc7 100644
--- a/cpp/src/IceUtil/Thread.cpp
+++ b/cpp/src/IceUtil/Thread.cpp
@@ -15,6 +15,19 @@ using namespace std;
#ifdef WIN32
+IceUtil::HandleWrapper::HandleWrapper(HANDLE h) :
+ handle(h)
+{
+}
+
+IceUtil::HandleWrapper::~HandleWrapper()
+{
+ if (handle != 0)
+ {
+ CloseHandle(handle);
+ }
+}
+
IceUtil::ThreadControl::ThreadControl() :
_handle(new HandleWrapper(0)),
_id(GetCurrentThreadId())