summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ConnectionI.h
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-07-27 13:07:32 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-07-27 13:07:32 +0200
commit901fd391336495286219a8610d5787113a816963 (patch)
tree850c6081489f45d6f6b7a27590b91fb5c03a8bbd /cpp/src/Ice/ConnectionI.h
parentMore work (diff)
downloadice-901fd391336495286219a8610d5787113a816963.tar.bz2
ice-901fd391336495286219a8610d5787113a816963.tar.xz
ice-901fd391336495286219a8610d5787113a816963.zip
Before RequestObserver change
Diffstat (limited to 'cpp/src/Ice/ConnectionI.h')
-rw-r--r--cpp/src/Ice/ConnectionI.h35
1 files changed, 30 insertions, 5 deletions
diff --git a/cpp/src/Ice/ConnectionI.h b/cpp/src/Ice/ConnectionI.h
index 94ff0432fdb..f310f538a0a 100644
--- a/cpp/src/Ice/ConnectionI.h
+++ b/cpp/src/Ice/ConnectionI.h
@@ -65,6 +65,35 @@ class LocalException;
class ICE_API ConnectionI : public Connection, public IceInternal::EventHandler, public IceUtil::Monitor<IceUtil::Mutex>
{
+ class Observer
+ {
+ public:
+
+ Observer(const IceInternal::BasicStream&, const IceInternal::BasicStream&);
+
+ void setObserver(const Ice::ConnectionObserverPtr&);
+ const Ice::ConnectionObserverPtr& getObserver() const
+ {
+ return _observer;
+ }
+
+ void startRead();
+ void finishRead();
+ void startWrite();
+ void finishWrite();
+
+ private:
+
+ Ice::ConnectionObserverPtr _observer;
+ Ice::Byte* _writeStreamPos;
+ IceUtilInternal::StopWatch _writeWatch;
+ Ice::Byte* _readStreamPos;
+ IceUtilInternal::StopWatch _readWatch;
+
+ const IceInternal::BasicStream& _readStream;
+ const IceInternal::BasicStream& _writeStream;
+ };
+
public:
class StartCallback : virtual public IceUtil::Shared
@@ -281,7 +310,6 @@ private:
const std::string _type;
const IceInternal::ConnectorPtr _connector;
const IceInternal::EndpointIPtr _endpoint;
- Ice::ConnectionObserverPtr _observer;
ObjectAdapterPtr _adapter;
IceInternal::ServantManagerPtr _servantManager;
@@ -329,10 +357,7 @@ private:
bool _readHeader;
IceInternal::BasicStream _writeStream;
- Ice::Byte* _writeStreamPos;
- IceUtilInternal::StopWatch _writeWatch;
- Ice::Byte* _readStreamPos;
- IceUtilInternal::StopWatch _readWatch;
+ std::auto_ptr<Observer> _observer;
int _dispatchCount;