summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2001-09-20 00:30:22 +0000
committerMarc Laukien <marc@zeroc.com>2001-09-20 00:30:22 +0000
commit8095535e370cd550e0ae51e80a4d901fd61430a9 (patch)
treee36fbbba41d556547bf6d8c265db2c50262486a0 /cpp/src
parentsimplified demo (diff)
downloadice-8095535e370cd550e0ae51e80a4d901fd61430a9.tar.bz2
ice-8095535e370cd550e0ae51e80a4d901fd61430a9.tar.xz
ice-8095535e370cd550e0ae51e80a4d901fd61430a9.zip
fixes
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Freeze/.depend2
-rw-r--r--cpp/src/Freeze/DBI.cpp126
-rw-r--r--cpp/src/Freeze/DBI.h4
-rw-r--r--cpp/src/Freeze/EvictorI.cpp152
-rw-r--r--cpp/src/Freeze/EvictorI.h10
-rw-r--r--cpp/src/Ice/Collector.cpp14
-rw-r--r--cpp/src/Ice/Collector.h12
-rw-r--r--cpp/src/Ice/Emitter.cpp6
-rw-r--r--cpp/src/Ice/Emitter.h6
-rw-r--r--cpp/src/Ice/Proxy.cpp8
-rw-r--r--cpp/src/Ice/SslAcceptor.cpp17
-rw-r--r--cpp/src/Ice/SslAcceptor.h6
-rw-r--r--cpp/src/Ice/SslConnector.cpp13
-rw-r--r--cpp/src/Ice/SslConnector.h4
-rw-r--r--cpp/src/Ice/SslTransceiver.cpp33
-rw-r--r--cpp/src/Ice/SslTransceiver.h6
-rw-r--r--cpp/src/Ice/TcpAcceptor.cpp17
-rw-r--r--cpp/src/Ice/TcpAcceptor.h6
-rw-r--r--cpp/src/Ice/TcpConnector.cpp13
-rw-r--r--cpp/src/Ice/TcpConnector.h4
-rw-r--r--cpp/src/Ice/TcpTransceiver.cpp33
-rw-r--r--cpp/src/Ice/TcpTransceiver.h6
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp24
-rw-r--r--cpp/src/Ice/UdpTransceiver.h6
24 files changed, 290 insertions, 238 deletions
diff --git a/cpp/src/Freeze/.depend b/cpp/src/Freeze/.depend
index 3391e6fe15d..e9d21b797a5 100644
--- a/cpp/src/Freeze/.depend
+++ b/cpp/src/Freeze/.depend
@@ -1,4 +1,4 @@
DB.o: DB.cpp ../../include/Freeze/DB.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Freeze/EvictorF.h ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h
DBI.o: DBI.cpp ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../Freeze/DBI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Shared.h ../../include/Ice/Ice.h ../../include/Ice/Communicator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/Ice/LoggerF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/PicklerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ServantFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/ServantFactory.h ../../include/Ice/Pickler.h ../../include/Ice/Initialize.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorF.h ../Freeze/EvictorI.h ../../include/Freeze/Evictor.h ../../include/Freeze/Initialize.h ../../include/Freeze/DBF.h
Evictor.o: Evictor.cpp ../../include/Freeze/Evictor.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h
-EvictorI.o: EvictorI.cpp ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Config.h ../../include/IceUtil/Shared.h ../../include/Ice/Ice.h ../../include/Ice/Communicator.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/Ice/LoggerF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/PicklerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ServantFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/ServantFactory.h ../../include/Ice/Pickler.h ../../include/Ice/Initialize.h ../../include/Ice/InstanceF.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorF.h ../../include/Freeze/Evictor.h
+EvictorI.o: EvictorI.cpp ../Freeze/EvictorI.h ../../include/Ice/Ice.h ../../include/Ice/Communicator.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/LoggerF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/PicklerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ServantFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/ServantFactory.h ../../include/Ice/Pickler.h ../../include/Ice/Initialize.h ../../include/Ice/InstanceF.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorF.h ../../include/Freeze/Evictor.h
diff --git a/cpp/src/Freeze/DBI.cpp b/cpp/src/Freeze/DBI.cpp
index 80180c1ee83..c6364c0ba97 100644
--- a/cpp/src/Freeze/DBI.cpp
+++ b/cpp/src/Freeze/DBI.cpp
@@ -31,8 +31,18 @@ Freeze::DBI::DBI(const CommunicatorPtr& communicator, const string& name, const
_name(name),
_dbenvObj(dbenvObj),
_dbenv(dbenv),
- _db(db)
+ _db(db),
+ _logger(communicator->getLogger()),
+ _trace(0)
{
+ PropertiesPtr properties = _communicator->getProperties();
+ string value;
+
+ value = properties->getProperty("Freeze.Trace.DB");
+ if (!value.empty())
+ {
+ _trace = atoi(value.c_str());
+ }
}
Freeze::DBI::~DBI()
@@ -56,7 +66,7 @@ Freeze::DBI::put(const string& key, const ObjectPtr& servant)
//
JTCSyncT<JTCMutex> sync(*this);
- if(!_db)
+ if (!_db)
{
ostringstream s;
s << "Freeze::DB(\"" << _name << "\"): ";
@@ -88,7 +98,15 @@ Freeze::DBI::put(const string& key, const ObjectPtr& servant)
while (true)
{
+ if (_trace >= 2)
+ {
+ ostringstream s;
+ s << "starting transaction for database \"" << _name << "\"";
+ _logger->trace("DB", s.str());
+ }
+
ret = txn_begin(_dbenv, 0, &tid, 0);
+
if (ret != 0)
{
ostringstream s;
@@ -99,7 +117,15 @@ Freeze::DBI::put(const string& key, const ObjectPtr& servant)
throw ex;
}
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "writing value for key \"" << key << "\" in database \"" << _name << "\"";
+ _logger->trace("DB", s.str());
+ }
+
ret = _db->put(_db, tid, &dbKey, &dbData, 0);
+
switch (ret)
{
case 0:
@@ -107,7 +133,15 @@ Freeze::DBI::put(const string& key, const ObjectPtr& servant)
//
// Everything ok, commit the transaction
//
+ if (_trace >= 2)
+ {
+ ostringstream s;
+ s << "committing transaction for database \"" << _name << "\"";
+ _logger->trace("DB", s.str());
+ }
+
ret = txn_commit(tid, 0);
+
if (ret != 0)
{
ostringstream s;
@@ -125,7 +159,15 @@ Freeze::DBI::put(const string& key, const ObjectPtr& servant)
//
// Deadlock, abort the transaction and retry
//
+ if (_trace >= 2)
+ {
+ ostringstream s;
+ s << "aborting transaction for database \"" << _name << "\" due to deadlock";
+ _logger->trace("DB", s.str());
+ }
+
ret = txn_abort(tid);
+
if (ret != 0)
{
ostringstream s;
@@ -164,7 +206,7 @@ Freeze::DBI::get(const string& key)
//
JTCSyncT<JTCMutex> sync(*this);
- if(!_db)
+ if (!_db)
{
ostringstream s;
s << "Freeze::DB(\"" << _name << "\"): ";
@@ -186,7 +228,15 @@ Freeze::DBI::get(const string& key)
dbKey.size = key.size();
dbData.flags = DB_DBT_MALLOC;
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "reading value for key \"" << key << "\" in database \"" << _name << "\"";
+ _logger->trace("DB", s.str());
+ }
+
ret = _db->get(_db, 0, &dbKey, &dbData, 0);
+
switch (ret)
{
case 0:
@@ -249,7 +299,7 @@ Freeze::DBI::del(const string& key)
//
JTCSyncT<JTCMutex> sync(*this);
- if(!_db)
+ if (!_db)
{
ostringstream s;
s << "Freeze::DB(\"" << _name << "\"): ";
@@ -269,7 +319,15 @@ Freeze::DBI::del(const string& key)
dbKey.data = const_cast<void*>(static_cast<const void*>(key.c_str()));
dbKey.size = key.size();
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "deleting value for key \"" << key << "\" in database \"" << _name << "\"";
+ _logger->trace("DB", s.str());
+ }
+
ret = _db->del(_db, 0, &dbKey, 0);
+
switch (ret)
{
case 0:
@@ -302,8 +360,16 @@ Freeze::DBI::close()
return;
}
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "closing database \"" << _name << "\"";
+ _logger->trace("DB", s.str());
+ }
+
int ret = _db->close(_db, 0);
- if(ret != 0)
+
+ if (ret != 0)
{
ostringstream s;
s << "Freeze::DB(\"" << _name << "\"): ";
@@ -324,7 +390,7 @@ Freeze::DBI::createEvictor()
{
JTCSyncT<JTCMutex> sync(*this);
- if(!_db)
+ if (!_db)
{
ostringstream s;
s << "Freeze::DB(\"" << _name << "\"): ";
@@ -334,17 +400,29 @@ Freeze::DBI::createEvictor()
throw ex;
}
- return new EvictorI(this);
+ return new EvictorI(this, _communicator);
}
Freeze::DBEnvI::DBEnvI(const CommunicatorPtr& communicator, const string& directory) :
_communicator(communicator),
_directory(directory),
- _dbenv(0)
+ _dbenv(0),
+ _logger(communicator->getLogger()),
+ _trace(0)
{
+ PropertiesPtr properties = _communicator->getProperties();
+ string value;
+
+ value = properties->getProperty("Freeze.Trace.DB");
+ if (!value.empty())
+ {
+ _trace = atoi(value.c_str());
+ }
+
int ret;
ret = db_env_create(&_dbenv, 0);
+
if (ret != 0)
{
ostringstream s;
@@ -355,6 +433,13 @@ Freeze::DBEnvI::DBEnvI(const CommunicatorPtr& communicator, const string& direct
throw ex;
}
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "opening database environment \"" << _directory << "\"";
+ _logger->trace("DB", s.str());
+ }
+
ret = _dbenv->open(_dbenv, _directory.c_str(),
DB_CREATE |
DB_INIT_LOCK |
@@ -391,7 +476,7 @@ Freeze::DBEnvI::open(const string& name)
{
JTCSyncT<JTCRecursiveMutex> sync(*this);
- if(!_dbenv)
+ if (!_dbenv)
{
ostringstream s;
s << "Freeze::DBEnv(\"" << _directory << "\"): ";
@@ -411,7 +496,8 @@ Freeze::DBEnvI::open(const string& name)
::DB* db;
ret = db_create(&db, _dbenv, 0);
- if(ret != 0)
+
+ if (ret != 0)
{
ostringstream s;
s << "Freeze::DBEnv(\"" << _directory << "\"): ";
@@ -421,8 +507,16 @@ Freeze::DBEnvI::open(const string& name)
throw ex;
}
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "opening database \"" << name << "\" in environment \"" << _directory << "\"";
+ _logger->trace("DB", s.str());
+ }
+
ret = db->open(db, name.c_str(), 0, DB_BTREE, DB_CREATE | DB_THREAD, FREEZE_DB_MODE);
- if(ret != 0)
+
+ if (ret != 0)
{
ostringstream s;
s << "Freeze::DBEnv(\"" << _directory << "\"): ";
@@ -452,8 +546,16 @@ Freeze::DBEnvI::close()
_dbmap.begin()->second->close();
}
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "closing database environment \"" << _directory << "\"";
+ _logger->trace("DB", s.str());
+ }
+
int ret = _dbenv->close(_dbenv, 0);
- if(ret != 0)
+
+ if (ret != 0)
{
ostringstream s;
s << "Freeze::DBEnv(\"" << _directory << "\"): ";
diff --git a/cpp/src/Freeze/DBI.h b/cpp/src/Freeze/DBI.h
index f0149e6463d..b98aed480e8 100644
--- a/cpp/src/Freeze/DBI.h
+++ b/cpp/src/Freeze/DBI.h
@@ -42,6 +42,8 @@ private:
DBEnvIPtr _dbenvObj;
::DB_ENV* _dbenv;
::DB* _db;
+ ::Ice::LoggerPtr _logger;
+ int _trace;
};
class DBEnvI : public DBEnv, public JTCRecursiveMutex
@@ -62,6 +64,8 @@ private:
std::string _directory;
::DB_ENV* _dbenv;
std::map<std::string, DBPtr> _dbmap;
+ ::Ice::LoggerPtr _logger;
+ int _trace;
};
}
diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp
index 8786c0c994f..f5ca9f75c74 100644
--- a/cpp/src/Freeze/EvictorI.cpp
+++ b/cpp/src/Freeze/EvictorI.cpp
@@ -15,10 +15,20 @@ using namespace std;
using namespace Ice;
using namespace Freeze;
-Freeze::EvictorI::EvictorI(const DBPtr& db) :
+Freeze::EvictorI::EvictorI(const DBPtr& db, const CommunicatorPtr& communicator) :
_db(db),
- _evictorSize(static_cast<map<string, EvictorElement>::size_type>(10))
+ _evictorSize(static_cast<map<string, EvictorElement>::size_type>(10)),
+ _logger(communicator->getLogger()),
+ _trace(0)
{
+ PropertiesPtr properties = communicator->getProperties();
+ string value;
+
+ value = properties->getProperty("Freeze.Trace.Evictor");
+ if(!value.empty())
+ {
+ _trace = atoi(value.c_str());
+ }
}
void
@@ -27,21 +37,23 @@ Freeze::EvictorI::setSize(Int evictorSize)
JTCSyncT<JTCMutex> sync(*this);
//
- // The minimum size is one.
+ // Ignore requests to set the evictor size to values smaller or
+ // equal to zero.
//
- if (evictorSize < 1)
+ if (evictorSize <= 0)
{
- evictorSize = 1;
+ return;
}
+
+ //
+ // Update the evictor size.
+ //
_evictorSize = static_cast<map<string, EvictorElement>::size_type>(evictorSize);
//
- // Evict elements if necessary
+ // Evict as many elements as necessary.
//
- if (_evictorMap.size() > _evictorSize)
- {
- evict();
- }
+ evict();
}
Int
@@ -61,13 +73,14 @@ Freeze::EvictorI::createObject(const string& identity, const ObjectPtr& servant)
// Save the new Ice Object to the database.
//
_db->put(identity, servant);
-
- //
- // Evict one element, if necessary, to make room for a new
- // one. Then add the new Ice Object to the evictor.
- //
- evict();
add(identity, servant);
+
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "created \"" << identity << "\"";
+ _logger->trace("Evictor", s.str());
+ }
}
void
@@ -79,15 +92,13 @@ Freeze::EvictorI::destroyObject(const string& identity)
// Delete the Ice Object from the database.
//
_db->del(identity);
+ remove(identity);
- //
- // If the Ice Object is currently in the evictor, remove it.
- //
- map<string, EvictorElement>::iterator p = _evictorMap.find(identity);
- if (p != _evictorMap.end())
+ if (_trace >= 1)
{
- _evictorList.erase(p->second.position);
- _evictorMap.erase(p);
+ ostringstream s;
+ s << "destroyed \"" << identity << "\"";
+ _logger->trace("Evictor", s.str());
}
}
@@ -107,6 +118,13 @@ Freeze::EvictorI::locate(const ObjectAdapterPtr& adapter, const string& identity
map<string, EvictorElement>::iterator p = _evictorMap.find(identity);
if (p != _evictorMap.end())
{
+ if (_trace >= 2)
+ {
+ ostringstream s;
+ s << "found \"" << identity << "\" in queue";
+ _logger->trace("Evictor", s.str());
+ }
+
//
// Ice Object found in evictor map. Push it to the front of
// the evictor list, so that it will be evicted last.
@@ -122,25 +140,28 @@ Freeze::EvictorI::locate(const ObjectAdapterPtr& adapter, const string& identity
}
else
{
- //
- // Evict one element, if necessary, to make room for a new
- // one.
- //
- evict();
+ if (_trace >= 2)
+ {
+ ostringstream s;
+ s << "couldn't find \"" << identity << "\" in queue\n"
+ << "loading \"" << identity << "\" from database";
+ _logger->trace("Evictor", s.str());
+ }
//
- // Find the Ice Object in the database and create a servant
- // for it.
+ // Load the Ice Object from database and create and add a
+ // Servant for it.
//
ObjectPtr servant = _db->get(identity);
if (!servant)
{
//
- // Ice object with the given identity does not exist,
+ // Ice Object with the given identity does not exist,
// client will get an ObjectNotExistException.
//
return 0;
}
+ add(identity, servant);
//
// If an initializer is installed, call it now.
@@ -151,11 +172,6 @@ Freeze::EvictorI::locate(const ObjectAdapterPtr& adapter, const string& identity
}
//
- // Add the new Ice Object and its Servant
- //
- add(identity, servant);
-
- //
// Return the new servant for the Ice Object from the database.
//
return servant;
@@ -173,6 +189,13 @@ Freeze::EvictorI::deactivate()
{
JTCSyncT<JTCMutex> sync(*this);
+ if (_trace >= 1)
+ {
+ ostringstream s;
+ s << "deactivating, saving all Ice Objects in queue in database";
+ _logger->trace("Evictor", s.str());
+ }
+
//
// Save all Ice Objects in the database upon deactivation, and
// clear the evictor map and list.
@@ -192,30 +215,36 @@ Freeze::EvictorI::evict()
// With most STL implementations, _evictorMap.size() is faster
// than _evictorList.size().
//
- if (_evictorMap.size() > _evictorSize)
+ while (_evictorMap.size() > _evictorSize)
{
//
- // EvictorI size exceeded. Remove last element from the evictor list.
+ // Get the last element of the Evictor queue.
//
string identity = _evictorList.back();
- _evictorList.pop_back();
-
- //
- // Find corresponding element in the evictor map
- //
map<string, EvictorElement>::iterator p = _evictorMap.find(identity);
assert(p != _evictorMap.end());
+ ObjectPtr servant = p->second.servant;
+ assert(servant);
//
- // Save the evicted Ice Object to the database.
+ // Remove last element from the evictor queue.
//
- _db->put(identity, p->second.servant);
+ _evictorMap.erase(identity);
+ _evictorList.pop_back();
+ assert(_evictorMap.size() == _evictorSize);
//
- // Remove the element from the evictor map.
+ // Save the evicted Ice Object to the database.
//
- _evictorMap.erase(identity);
- assert(_evictorMap.size() == _evictorSize);
+ _db->put(identity, servant);
+
+ if (_trace >= 2)
+ {
+ ostringstream s;
+ s << "evicted \"" << identity << "\" from queue\n"
+ << "number of elements in queue: " << _evictorMap.size();
+ _logger->trace("Evictor", s.str());
+ }
}
}
@@ -223,6 +252,14 @@ void
Freeze::EvictorI::add(const string& identity, const ObjectPtr& servant)
{
//
+ // Ignore the request if the Ice Object is already in the queue.
+ //
+ if(_evictorMap.find(identity) != _evictorMap.end())
+ {
+ return;
+ }
+
+ //
// Add an Ice Object with its Servant to the evictor list and
// evictor map.
//
@@ -231,4 +268,23 @@ Freeze::EvictorI::add(const string& identity, const ObjectPtr& servant)
evictorElement.servant = servant;
evictorElement.position = _evictorList.begin();
_evictorMap[identity] = evictorElement;
+
+ //
+ // Evict as many elements as necessary.
+ //
+ evict();
+}
+
+void
+Freeze::EvictorI::remove(const string& identity)
+{
+ //
+ // If the Ice Object is currently in the evictor, remove it.
+ //
+ map<string, EvictorElement>::iterator p = _evictorMap.find(identity);
+ if (p != _evictorMap.end())
+ {
+ _evictorList.erase(p->second.position);
+ _evictorMap.erase(p);
+ }
}
diff --git a/cpp/src/Freeze/EvictorI.h b/cpp/src/Freeze/EvictorI.h
index 403d82e617c..6041b10d6aa 100644
--- a/cpp/src/Freeze/EvictorI.h
+++ b/cpp/src/Freeze/EvictorI.h
@@ -11,7 +11,6 @@
#ifndef FREEZE_EVICTOR_I_H
#define FREEZE_EVICTOR_I_H
-#include <IceUtil/IceUtil.h>
#include <Ice/Ice.h>
#include <Freeze/DB.h>
#include <Freeze/Evictor.h>
@@ -20,14 +19,11 @@
namespace Freeze
{
-class EvictorI;
-typedef IceUtil::Handle<EvictorI> EvictorIPtr;
-
class EvictorI : public Evictor, public JTCMutex
{
public:
- EvictorI(const Freeze::DBPtr&);
+ EvictorI(const Freeze::DBPtr&, const Ice::CommunicatorPtr&);
virtual void setSize(Ice::Int);
virtual Ice::Int getSize();
@@ -46,6 +42,7 @@ private:
void evict();
void add(const std::string&, const Ice::ObjectPtr&);
+ void remove(const std::string&);
Freeze::DBPtr _db;
@@ -59,6 +56,9 @@ private:
std::map<std::string, EvictorElement>::size_type _evictorSize;
ServantInitializerPtr _initializer;
+
+ ::Ice::LoggerPtr _logger;
+ int _trace;
};
}
diff --git a/cpp/src/Ice/Collector.cpp b/cpp/src/Ice/Collector.cpp
index e8eea7c8bfe..faed3a338a1 100644
--- a/cpp/src/Ice/Collector.cpp
+++ b/cpp/src/Ice/Collector.cpp
@@ -317,14 +317,11 @@ IceInternal::Collector::Collector(const InstancePtr& instance,
_adapter(adapter),
_transceiver(transceiver),
_endpoint(endpoint),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger()),
_responseCount(0),
_state(StateHolding)
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
_threadPool = _instance->threadPool();
}
@@ -579,13 +576,10 @@ IceInternal::CollectorFactory::CollectorFactory(const InstancePtr& instance,
EventHandler(instance),
_adapter(adapter),
_endpoint(endpoint),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger()),
_state(StateHolding)
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
try
{
_transceiver = endpoint->serverTransceiver(_instance);
diff --git a/cpp/src/Ice/Collector.h b/cpp/src/Ice/Collector.h
index dcccc37a04c..29e9081b424 100644
--- a/cpp/src/Ice/Collector.h
+++ b/cpp/src/Ice/Collector.h
@@ -79,13 +79,11 @@ private:
::Ice::ObjectAdapterPtr _adapter;
TransceiverPtr _transceiver;
EndpointPtr _endpoint;
+ TraceLevelsPtr _traceLevels;
+ ::Ice::LoggerPtr _logger;
ThreadPoolPtr _threadPool;
int _responseCount;
State _state;
-#ifndef ICE_NO_TRACE
- TraceLevelsPtr _traceLevels;
- ::Ice::LoggerPtr _logger;
-#endif
};
class CollectorFactory : public EventHandler, public JTCMutex
@@ -132,13 +130,11 @@ private:
AcceptorPtr _acceptor;
TransceiverPtr _transceiver;
EndpointPtr _endpoint;
+ TraceLevelsPtr _traceLevels;
+ ::Ice::LoggerPtr _logger;
ThreadPoolPtr _threadPool;
std::list<CollectorPtr> _collectors;
State _state;
-#ifndef ICE_NO_TRACE
- TraceLevelsPtr _traceLevels;
- ::Ice::LoggerPtr _logger;
-#endif
};
}
diff --git a/cpp/src/Ice/Emitter.cpp b/cpp/src/Ice/Emitter.cpp
index 5a5c4537893..4a17e2439f1 100644
--- a/cpp/src/Ice/Emitter.cpp
+++ b/cpp/src/Ice/Emitter.cpp
@@ -338,10 +338,8 @@ IceInternal::Emitter::Emitter(const InstancePtr& instance,
_batchStream(instance),
_state(StateActive)
{
-#ifndef ICE_NO_TRACE
_traceLevels = _instance->traceLevels();
_logger = _instance->logger();
-#endif
if (!_endpoint->oneway())
{
@@ -440,10 +438,8 @@ IceInternal::EmitterFactory::create(const vector<EndpointPtr>& endpoints)
//
// No emitters exist, try to create one
//
-#ifndef ICE_NO_TRACE
TraceLevelsPtr traceLevels = _instance->traceLevels();
LoggerPtr logger = _instance->logger();
-#endif
EmitterPtr emitter;
auto_ptr<LocalException> exception;
@@ -475,7 +471,6 @@ IceInternal::EmitterFactory::create(const vector<EndpointPtr>& endpoints)
++q;
-#ifndef ICE_NO_TRACE
if (traceLevels->retry >= 2)
{
ostringstream s;
@@ -491,7 +486,6 @@ IceInternal::EmitterFactory::create(const vector<EndpointPtr>& endpoints)
s << *exception.get();
logger->trace(traceLevels->retryCat, s.str());
}
-#endif
}
if (!emitter)
diff --git a/cpp/src/Ice/Emitter.h b/cpp/src/Ice/Emitter.h
index d2820ddf5ba..04e5d302a33 100644
--- a/cpp/src/Ice/Emitter.h
+++ b/cpp/src/Ice/Emitter.h
@@ -75,16 +75,14 @@ private:
TransceiverPtr _transceiver;
EndpointPtr _endpoint;
+ TraceLevelsPtr _traceLevels;
+ ::Ice::LoggerPtr _logger;
ThreadPoolPtr _threadPool;
::Ice::Int _nextRequestId;
std::map< ::Ice::Int, Outgoing*> _requests;
std::auto_ptr< ::Ice::LocalException> _exception;
Stream _batchStream;
State _state;
-#ifndef ICE_NO_TRACE
- TraceLevelsPtr _traceLevels;
- ::Ice::LoggerPtr _logger;
-#endif
};
class EmitterFactory : public ::IceUtil::Shared, public JTCMutex
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp
index 22160f121f2..8e73188486a 100644
--- a/cpp/src/Ice/Proxy.cpp
+++ b/cpp/src/Ice/Proxy.cpp
@@ -327,32 +327,26 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt)
++cnt;
}
-#ifndef ICE_NO_TRACE
TraceLevelsPtr traceLevels = _reference->instance->traceLevels();
LoggerPtr logger = _reference->instance->logger();
-#endif
if(cnt > max)
{
-#ifndef ICE_NO_TRACE
if (traceLevels->retry >= 1)
{
ostringstream s;
s << "cannot retry operation call because retry limit has been exceeded\n" << ex;
logger->trace(traceLevels->retryCat, s.str());
}
-#endif
ex.raise();
}
-#ifndef ICE_NO_TRACE
if (traceLevels->retry >= 1)
{
ostringstream s;
s << "re-trying operation call because of exception\n" << ex;
logger->trace(traceLevels->retryCat, s.str());
}
-#endif
//
// Reset the endpoints to the original endpoints upon retry
@@ -375,7 +369,6 @@ IceProxy::Ice::Object::__locationForward(const LocationForward& ex)
_reference = _reference->changeEndpoints(ex._prx->_reference->endpoints);
/*
-#ifndef ICE_NO_TRACE
TraceLevelsPtr traceLevels = _reference->instance->traceLevels();
LoggerPtr logger = _reference->instance->logger();
@@ -385,7 +378,6 @@ IceProxy::Ice::Object::__locationForward(const LocationForward& ex)
s << "location forward for object with identity `" << _reference.identity << "'";
logger->trace(traceLevels->locationForwardCat, s.str());
}
-#endif
*/
}
diff --git a/cpp/src/Ice/SslAcceptor.cpp b/cpp/src/Ice/SslAcceptor.cpp
index f33c761d51e..9c7b2ce11ae 100644
--- a/cpp/src/Ice/SslAcceptor.cpp
+++ b/cpp/src/Ice/SslAcceptor.cpp
@@ -30,14 +30,12 @@ IceInternal::SslAcceptor::fd()
void
IceInternal::SslAcceptor::close()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "stopping to accept ssl connections at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
int fd = _fd;
_fd = INVALID_SOCKET;
@@ -47,14 +45,12 @@ IceInternal::SslAcceptor::close()
void
IceInternal::SslAcceptor::shutdown()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 2)
{
ostringstream s;
s << "shutting down accepting ssl connections at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
::shutdown(_fd, SHUT_RD); // Shutdown socket for reading
}
@@ -72,28 +68,26 @@ IceInternal::SslAcceptor::listen()
throw;
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "accepting ssl connections at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
}
TransceiverPtr
IceInternal::SslAcceptor::accept(int timeout)
{
int fd = doAccept(_fd, timeout);
-#ifndef ICE_NO_TRACE
+
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "accepted ssl connection\n" << fdToString(fd);
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
+
return new SslTransceiver(_instance, fd);
}
@@ -120,13 +114,10 @@ IceInternal::SslAcceptor::equivalent(const string& host, int port) const
IceInternal::SslAcceptor::SslAcceptor(const InstancePtr& instance, int port) :
_instance(instance),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger()),
_backlog(0)
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
if (_backlog <= 0)
{
_backlog = 5;
diff --git a/cpp/src/Ice/SslAcceptor.h b/cpp/src/Ice/SslAcceptor.h
index b1b98faeab8..4367da34dae 100644
--- a/cpp/src/Ice/SslAcceptor.h
+++ b/cpp/src/Ice/SslAcceptor.h
@@ -46,13 +46,11 @@ private:
friend class SslEndpoint;
InstancePtr _instance;
+ TraceLevelsPtr _traceLevels;
+ ::Ice::LoggerPtr _logger;
int _fd;
int _backlog;
struct sockaddr_in _addr;
-#ifndef ICE_NO_TRACE
- TraceLevelsPtr _traceLevels;
- ::Ice::LoggerPtr _logger;
-#endif
};
}
diff --git a/cpp/src/Ice/SslConnector.cpp b/cpp/src/Ice/SslConnector.cpp
index a053bccfbdf..d53925d4ec8 100644
--- a/cpp/src/Ice/SslConnector.cpp
+++ b/cpp/src/Ice/SslConnector.cpp
@@ -24,26 +24,22 @@ using namespace IceInternal;
TransceiverPtr
IceInternal::SslConnector::connect(int timeout)
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 2)
{
ostringstream s;
s << "trying to establish ssl connection to " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
int fd = createSocket(false);
doConnect(fd, _addr, timeout);
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "ssl connection established\n" << fdToString(fd);
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
return new SslTransceiver(_instance, fd);
}
@@ -55,13 +51,10 @@ IceInternal::SslConnector::toString() const
}
IceInternal::SslConnector::SslConnector(const InstancePtr& instance, const string& host, int port) :
- _instance(instance)
+ _instance(instance),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger())
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
getAddress(host.c_str(), port, _addr);
}
diff --git a/cpp/src/Ice/SslConnector.h b/cpp/src/Ice/SslConnector.h
index 12a3921a017..a82fdfef5e0 100644
--- a/cpp/src/Ice/SslConnector.h
+++ b/cpp/src/Ice/SslConnector.h
@@ -40,11 +40,9 @@ private:
friend class SslEndpoint;
InstancePtr _instance;
- struct sockaddr_in _addr;
-#ifndef ICE_NO_TRACE
TraceLevelsPtr _traceLevels;
::Ice::LoggerPtr _logger;
-#endif
+ struct sockaddr_in _addr;
};
}
diff --git a/cpp/src/Ice/SslTransceiver.cpp b/cpp/src/Ice/SslTransceiver.cpp
index 90a0fac7bce..93920d5ea81 100644
--- a/cpp/src/Ice/SslTransceiver.cpp
+++ b/cpp/src/Ice/SslTransceiver.cpp
@@ -30,14 +30,12 @@ IceInternal::SslTransceiver::fd()
void
IceInternal::SslTransceiver::close()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "closing ssl connection\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
int fd = _fd;
_fd = INVALID_SOCKET;
@@ -48,14 +46,12 @@ IceInternal::SslTransceiver::close()
void
IceInternal::SslTransceiver::shutdown()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 2)
{
ostringstream s;
s << "shutting down ssl connection\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
::shutdown(_fd, SHUT_WR); // Shutdown socket for writing
}
@@ -109,17 +105,17 @@ IceInternal::SslTransceiver::write(Buffer& buf, int timeout)
{
repeatSelect:
int ret;
- FD_SET(fd, &wFdSet);
+ FD_SET(fd, &_wFdSet);
if (timeout >= 0)
{
struct timeval tv;
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout - tv.tv_sec * 1000) * 1000;
- ret = ::select(fd + 1, 0, &wFdSet, 0, &tv);
+ ret = ::select(fd + 1, 0, &_wFdSet, 0, &tv);
}
else
{
- ret = ::select(fd + 1, 0, &wFdSet, 0, 0);
+ ret = ::select(fd + 1, 0, &_wFdSet, 0, 0);
}
if (ret == SOCKET_ERROR)
@@ -151,14 +147,12 @@ IceInternal::SslTransceiver::write(Buffer& buf, int timeout)
}
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 3)
{
ostringstream s;
s << "sent " << ret << " of " << packetSize << " bytes via ssl\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
buf.i += ret;
@@ -208,17 +202,17 @@ IceInternal::SslTransceiver::read(Buffer& buf, int timeout)
{
repeatSelect:
int ret;
- FD_SET(fd, &rFdSet);
+ FD_SET(fd, &_rFdSet);
if (timeout >= 0)
{
struct timeval tv;
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout - tv.tv_sec * 1000) * 1000;
- ret = ::select(fd + 1, &rFdSet, 0, 0, &tv);
+ ret = ::select(fd + 1, &_rFdSet, 0, 0, &tv);
}
else
{
- ret = ::select(fd + 1, &rFdSet, 0, 0, 0);
+ ret = ::select(fd + 1, &_rFdSet, 0, 0, 0);
}
if (ret == SOCKET_ERROR)
@@ -250,14 +244,12 @@ IceInternal::SslTransceiver::read(Buffer& buf, int timeout)
}
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 3)
{
ostringstream s;
s << "received " << ret << " of " << packetSize << " bytes via ssl\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
buf.i += ret;
@@ -276,15 +268,12 @@ IceInternal::SslTransceiver::toString() const
IceInternal::SslTransceiver::SslTransceiver(const InstancePtr& instance, int fd) :
_instance(instance),
- _fd(fd)
+ _fd(fd),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger())
{
- FD_ZERO(&rFdSet);
- FD_ZERO(&wFdSet);
-
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
+ FD_ZERO(&_rFdSet);
+ FD_ZERO(&_wFdSet);
}
IceInternal::SslTransceiver::~SslTransceiver()
diff --git a/cpp/src/Ice/SslTransceiver.h b/cpp/src/Ice/SslTransceiver.h
index 680f39358fa..d6eb7484524 100644
--- a/cpp/src/Ice/SslTransceiver.h
+++ b/cpp/src/Ice/SslTransceiver.h
@@ -42,12 +42,10 @@ private:
InstancePtr _instance;
int _fd;
- fd_set rFdSet;
- fd_set wFdSet;
-#ifndef ICE_NO_TRACE
TraceLevelsPtr _traceLevels;
::Ice::LoggerPtr _logger;
-#endif
+ fd_set _rFdSet;
+ fd_set _wFdSet;
};
}
diff --git a/cpp/src/Ice/TcpAcceptor.cpp b/cpp/src/Ice/TcpAcceptor.cpp
index 9d8c1857829..64e9e900a3a 100644
--- a/cpp/src/Ice/TcpAcceptor.cpp
+++ b/cpp/src/Ice/TcpAcceptor.cpp
@@ -30,14 +30,12 @@ IceInternal::TcpAcceptor::fd()
void
IceInternal::TcpAcceptor::close()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "stopping to accept tcp connections at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
int fd = _fd;
_fd = INVALID_SOCKET;
@@ -47,14 +45,12 @@ IceInternal::TcpAcceptor::close()
void
IceInternal::TcpAcceptor::shutdown()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 2)
{
ostringstream s;
s << "shutting down accepting tcp connections at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
::shutdown(_fd, SHUT_RD); // Shutdown socket for reading
}
@@ -72,28 +68,26 @@ IceInternal::TcpAcceptor::listen()
throw;
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "accepting tcp connections at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
}
TransceiverPtr
IceInternal::TcpAcceptor::accept(int timeout)
{
int fd = doAccept(_fd, timeout);
-#ifndef ICE_NO_TRACE
+
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "accepted tcp connection\n" << fdToString(fd);
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
+
return new TcpTransceiver(_instance, fd);
}
@@ -120,13 +114,10 @@ IceInternal::TcpAcceptor::equivalent(const string& host, int port) const
IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, int port) :
_instance(instance),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger()),
_backlog(0)
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
if (_backlog <= 0)
{
_backlog = 5;
diff --git a/cpp/src/Ice/TcpAcceptor.h b/cpp/src/Ice/TcpAcceptor.h
index 6a6a01f933d..7d28c2d1fb1 100644
--- a/cpp/src/Ice/TcpAcceptor.h
+++ b/cpp/src/Ice/TcpAcceptor.h
@@ -46,13 +46,11 @@ private:
friend class TcpEndpoint;
InstancePtr _instance;
+ TraceLevelsPtr _traceLevels;
+ ::Ice::LoggerPtr _logger;
int _fd;
int _backlog;
struct sockaddr_in _addr;
-#ifndef ICE_NO_TRACE
- TraceLevelsPtr _traceLevels;
- ::Ice::LoggerPtr _logger;
-#endif
};
}
diff --git a/cpp/src/Ice/TcpConnector.cpp b/cpp/src/Ice/TcpConnector.cpp
index af7b7763f1e..b91a83ec732 100644
--- a/cpp/src/Ice/TcpConnector.cpp
+++ b/cpp/src/Ice/TcpConnector.cpp
@@ -24,26 +24,22 @@ using namespace IceInternal;
TransceiverPtr
IceInternal::TcpConnector::connect(int timeout)
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 2)
{
ostringstream s;
s << "trying to establish tcp connection to " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
int fd = createSocket(false);
doConnect(fd, _addr, timeout);
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "tcp connection established\n" << fdToString(fd);
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
return new TcpTransceiver(_instance, fd);
}
@@ -55,13 +51,10 @@ IceInternal::TcpConnector::toString() const
}
IceInternal::TcpConnector::TcpConnector(const InstancePtr& instance, const string& host, int port) :
- _instance(instance)
+ _instance(instance),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger())
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
getAddress(host.c_str(), port, _addr);
}
diff --git a/cpp/src/Ice/TcpConnector.h b/cpp/src/Ice/TcpConnector.h
index 1654d2b7ebe..adcf43ec4c7 100644
--- a/cpp/src/Ice/TcpConnector.h
+++ b/cpp/src/Ice/TcpConnector.h
@@ -40,11 +40,9 @@ private:
friend class TcpEndpoint;
InstancePtr _instance;
- struct sockaddr_in _addr;
-#ifndef ICE_NO_TRACE
TraceLevelsPtr _traceLevels;
::Ice::LoggerPtr _logger;
-#endif
+ struct sockaddr_in _addr;
};
}
diff --git a/cpp/src/Ice/TcpTransceiver.cpp b/cpp/src/Ice/TcpTransceiver.cpp
index c7de1c35011..d062d873d9f 100644
--- a/cpp/src/Ice/TcpTransceiver.cpp
+++ b/cpp/src/Ice/TcpTransceiver.cpp
@@ -30,14 +30,12 @@ IceInternal::TcpTransceiver::fd()
void
IceInternal::TcpTransceiver::close()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "closing tcp connection\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
int fd = _fd;
_fd = INVALID_SOCKET;
@@ -48,14 +46,12 @@ IceInternal::TcpTransceiver::close()
void
IceInternal::TcpTransceiver::shutdown()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 2)
{
ostringstream s;
s << "shutting down tcp connection\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
::shutdown(_fd, SHUT_WR); // Shutdown socket for writing
}
@@ -109,17 +105,17 @@ IceInternal::TcpTransceiver::write(Buffer& buf, int timeout)
{
repeatSelect:
int ret;
- FD_SET(fd, &wFdSet);
+ FD_SET(fd, &_wFdSet);
if (timeout >= 0)
{
struct timeval tv;
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout - tv.tv_sec * 1000) * 1000;
- ret = ::select(fd + 1, 0, &wFdSet, 0, &tv);
+ ret = ::select(fd + 1, 0, &_wFdSet, 0, &tv);
}
else
{
- ret = ::select(fd + 1, 0, &wFdSet, 0, 0);
+ ret = ::select(fd + 1, 0, &_wFdSet, 0, 0);
}
if (ret == SOCKET_ERROR)
@@ -151,14 +147,12 @@ IceInternal::TcpTransceiver::write(Buffer& buf, int timeout)
}
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 3)
{
ostringstream s;
s << "sent " << ret << " of " << packetSize << " bytes via tcp\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
buf.i += ret;
@@ -208,17 +202,17 @@ IceInternal::TcpTransceiver::read(Buffer& buf, int timeout)
{
repeatSelect:
int ret;
- FD_SET(fd, &rFdSet);
+ FD_SET(fd, &_rFdSet);
if (timeout >= 0)
{
struct timeval tv;
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout - tv.tv_sec * 1000) * 1000;
- ret = ::select(fd + 1, &rFdSet, 0, 0, &tv);
+ ret = ::select(fd + 1, &_rFdSet, 0, 0, &tv);
}
else
{
- ret = ::select(fd + 1, &rFdSet, 0, 0, 0);
+ ret = ::select(fd + 1, &_rFdSet, 0, 0, 0);
}
if (ret == SOCKET_ERROR)
@@ -250,14 +244,12 @@ IceInternal::TcpTransceiver::read(Buffer& buf, int timeout)
}
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 3)
{
ostringstream s;
s << "received " << ret << " of " << packetSize << " bytes via tcp\n" << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
buf.i += ret;
@@ -276,15 +268,12 @@ IceInternal::TcpTransceiver::toString() const
IceInternal::TcpTransceiver::TcpTransceiver(const InstancePtr& instance, int fd) :
_instance(instance),
- _fd(fd)
+ _fd(fd),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger())
{
- FD_ZERO(&rFdSet);
- FD_ZERO(&wFdSet);
-
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
+ FD_ZERO(&_rFdSet);
+ FD_ZERO(&_wFdSet);
}
IceInternal::TcpTransceiver::~TcpTransceiver()
diff --git a/cpp/src/Ice/TcpTransceiver.h b/cpp/src/Ice/TcpTransceiver.h
index e60fca35de9..d8fa3fe1c45 100644
--- a/cpp/src/Ice/TcpTransceiver.h
+++ b/cpp/src/Ice/TcpTransceiver.h
@@ -42,12 +42,10 @@ private:
InstancePtr _instance;
int _fd;
- fd_set rFdSet;
- fd_set wFdSet;
-#ifndef ICE_NO_TRACE
TraceLevelsPtr _traceLevels;
::Ice::LoggerPtr _logger;
-#endif
+ fd_set _rFdSet;
+ fd_set _wFdSet;
};
}
diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp
index f9650ab2d1a..823428d7b94 100644
--- a/cpp/src/Ice/UdpTransceiver.cpp
+++ b/cpp/src/Ice/UdpTransceiver.cpp
@@ -30,7 +30,6 @@ IceInternal::UdpTransceiver::fd()
void
IceInternal::UdpTransceiver::close()
{
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
@@ -44,7 +43,6 @@ IceInternal::UdpTransceiver::close()
}
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
int fd = _fd;
_fd = INVALID_SOCKET;
@@ -77,14 +75,12 @@ repeat:
throw SocketException(__FILE__, __LINE__);
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 3)
{
ostringstream s;
s << "sent " << ret << " bytes via udp to " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
assert(ret == static_cast<int>(buf.b.size()));
buf.i = buf.b.end();
@@ -113,14 +109,12 @@ repeat:
throw SocketException(__FILE__, __LINE__);
}
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 3)
{
ostringstream s;
s << "received " << ret << " bytes via udp at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
buf.b.resize(ret);
buf.i = buf.b.end();
@@ -154,13 +148,10 @@ IceInternal::UdpTransceiver::equivalent(const string& host, int port) const
IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const string& host, int port) :
_instance(instance),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger()),
_sender(true)
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
try
{
getAddress(host.c_str(), port, _addr);
@@ -168,14 +159,12 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s
_fd = createSocket(true);
doConnect(_fd, _addr, -1);
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "starting to send udp packets to " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
}
catch(...)
{
@@ -186,13 +175,10 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s
IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, int port) :
_instance(instance),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->logger()),
_sender(false)
{
-#ifndef ICE_NO_TRACE
- _traceLevels = _instance->traceLevels();
- _logger = _instance->logger();
-#endif
-
try
{
memset(&_addr, 0, sizeof(_addr));
@@ -203,14 +189,12 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, int por
_fd = createSocket(true);
doBind(_fd, _addr);
-#ifndef ICE_NO_TRACE
if (_traceLevels->network >= 1)
{
ostringstream s;
s << "starting to receive udp packets at " << toString();
_logger->trace(_traceLevels->networkCat, s.str());
}
-#endif
}
catch(...)
{
diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h
index 5900edfcdc2..0c2c6a99313 100644
--- a/cpp/src/Ice/UdpTransceiver.h
+++ b/cpp/src/Ice/UdpTransceiver.h
@@ -46,13 +46,11 @@ private:
friend class UdpEndpoint;
InstancePtr _instance;
+ TraceLevelsPtr _traceLevels;
+ ::Ice::LoggerPtr _logger;
bool _sender;
int _fd;
struct sockaddr_in _addr;
-#ifndef ICE_NO_TRACE
- TraceLevelsPtr _traceLevels;
- ::Ice::LoggerPtr _logger;
-#endif
};
}