summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/TransactionI.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Freeze/TransactionI.h')
-rw-r--r--cpp/src/Freeze/TransactionI.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/cpp/src/Freeze/TransactionI.h b/cpp/src/Freeze/TransactionI.h
index 7a7922d1297..b8e5a9a582d 100644
--- a/cpp/src/Freeze/TransactionI.h
+++ b/cpp/src/Freeze/TransactionI.h
@@ -38,6 +38,12 @@ public:
virtual ConnectionPtr getConnection() const;
+ //
+ // Custom refcounting implementation
+ //
+ virtual void __incRef();
+ virtual void __decRef();
+
void setPostCompletionCallback(const PostCompletionCallbackPtr&);
TransactionI(ConnectionI*);
@@ -49,17 +55,22 @@ public:
return _txn;
}
- const ConnectionIPtr&
+ const ConnectionI*
getConnectionI() const
{
return _connection;
}
private:
+
+ friend class ConnectionI;
+
+ void internalIncRef();
+ void internalDecRef();
void postCompletion(bool, bool);
- ConnectionIPtr _connection;
+ ConnectionI* const _connection;
Ice::Int _txTrace;
DbTxn* _txn;
PostCompletionCallbackPtr _postCompletionCallback;