summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/ConnectionI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Freeze/ConnectionI.cpp')
-rw-r--r--cpp/src/Freeze/ConnectionI.cpp213
1 files changed, 0 insertions, 213 deletions
diff --git a/cpp/src/Freeze/ConnectionI.cpp b/cpp/src/Freeze/ConnectionI.cpp
deleted file mode 100644
index d6696239b3e..00000000000
--- a/cpp/src/Freeze/ConnectionI.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <Freeze/ConnectionI.h>
-#include <Freeze/MapI.h>
-#include <Freeze/Initialize.h>
-
-using namespace Ice;
-using namespace Freeze;
-using namespace std;
-
-Freeze::TransactionPtr
-Freeze::ConnectionI::beginTransaction()
-{
- return beginTransactionI();
-}
-
-Freeze::TransactionIPtr
-Freeze::ConnectionI::beginTransactionI()
-{
- if(_transaction)
- {
- throw TransactionAlreadyInProgressException(__FILE__, __LINE__);
- }
- closeAllIterators();
- _transaction = new TransactionI(this);
- return _transaction;
-}
-
-Freeze::TransactionPtr
-Freeze::ConnectionI::currentTransaction() const
-{
- return _transaction;
-}
-
-void
-Freeze::ConnectionI::removeMapIndex(const string& mapName, const string& indexName)
-{
- if(_dbEnv == 0)
- {
- throw DatabaseException(__FILE__, __LINE__, "Closed connection");
- }
-
- string filename = mapName + "." + indexName;
-
- DbTxn* txn = dbTxn();
- try
- {
- _dbEnv->getEnv()->dbremove(txn, filename.c_str(), 0, txn != 0 ? 0 : DB_AUTO_COMMIT);
- }
- catch(const DbDeadlockException& dx)
- {
- throw DeadlockException(__FILE__, __LINE__, dx.what(), _transaction);
- }
- catch(const DbException& dx)
- {
- if(dx.get_errno() == ENOENT)
- {
- throw IndexNotFoundException(__FILE__, __LINE__, mapName, indexName);
- }
- else
- {
- throw DatabaseException(__FILE__, __LINE__, dx.what());
- }
- }
-}
-
-
-void
-Freeze::ConnectionI::close()
-{
- if(_transaction)
- {
- _transaction->rollbackInternal(true);
- assert(_transaction == 0);
- }
-
- while(!_mapList.empty())
- {
- (*_mapList.begin())->close();
- }
-
- _dbEnv = 0;
-}
-
-CommunicatorPtr
-Freeze::ConnectionI::getCommunicator() const
-{
- return _communicator;
-}
-
-EncodingVersion
-Freeze::ConnectionI::getEncoding() const
-{
- return _encoding;
-}
-
-string
-Freeze::ConnectionI::getName() const
-{
- return _envName;
-}
-
-void
-Freeze::ConnectionI::__incRef()
-{
- IceUtil::Mutex::Lock sync(_refCountMutex->mutex);
- _refCount++;
-}
-
-
-void
-Freeze::ConnectionI::__decRef()
-{
- IceUtil::Mutex::Lock sync(_refCountMutex->mutex);
- if(--_refCount == 0)
- {
- sync.release();
- delete this;
- }
- else if(_refCount == 1 && _transaction != 0 && _transaction->dbTxn() != 0 && _transaction->__getRefNoSync() == 1)
- {
- sync.release();
- if(_transaction)
- {
- //
- // This makes the transaction release the last refcount on the connection
- //
- _transaction->rollbackInternal(true);
- }
- }
-}
-
-int
-Freeze::ConnectionI::__getRef() const
-{
- IceUtil::Mutex::Lock sync(_refCountMutex->mutex);
- return _refCount;
-}
-
-int
-Freeze::ConnectionI::__getRefNoSync() const
-{
- return _refCount;
-}
-
-
-Freeze::ConnectionI::~ConnectionI()
-{
- try
- {
- close();
- }
- catch(const DatabaseException& ex)
- {
- Ice::Error error(_communicator->getLogger());
- error << "Freeze: closing connection Freeze.DbEnv: " << _envName << " raised DatabaseException: " << ex.what();
- }
-}
-
-Freeze::ConnectionI::ConnectionI(const SharedDbEnvPtr& dbEnv) :
- _communicator(dbEnv->getCommunicator()),
- _encoding(dbEnv->getEncoding()),
- _dbEnv(dbEnv),
- _envName(dbEnv->getEnvName()),
- _trace(_communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Map")),
- _txTrace(_communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Transaction")),
- _deadlockWarning(_communicator->getProperties()->getPropertyAsInt("Freeze.Warn.Deadlocks") > 0),
- _refCountMutex(new SharedMutex),
- _refCount(0)
-{
-}
-
-void
-Freeze::ConnectionI::closeAllIterators()
-{
- for(list<MapHelperI*>::iterator p = _mapList.begin(); p != _mapList.end();
- ++p)
- {
- (*p)->closeAllIterators();
- }
-}
-
-void
-Freeze::ConnectionI::registerMap(MapHelperI* m)
-{
- _mapList.push_back(m);
-}
-
-void
-Freeze::ConnectionI::unregisterMap(MapHelperI* m)
-{
- _mapList.remove(m);
-}
-
-Freeze::ConnectionPtr
-Freeze::createConnection(const CommunicatorPtr& communicator, const string& envName)
-{
-
- return new ConnectionI(SharedDbEnv::get(communicator, envName, 0));
-}
-
-Freeze::ConnectionPtr
-Freeze::createConnection(const CommunicatorPtr& communicator, const string& envName, DbEnv& dbEnv)
-{
- return new ConnectionI(SharedDbEnv::get(communicator, envName, &dbEnv));
-}