diff options
| author | Alan Conway <aconway@apache.org> | 2008-12-08 02:18:03 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-12-08 02:18:03 +0000 |
| commit | f739d191af76b1b22416f914212153db40abc17d (patch) | |
| tree | c03e67763cbef3da63c39f3bb8013319da3d95df /cpp/src/qpid/sys/AsynchIOHandler.h | |
| parent | 35d88877f998b4419461b7cc88a7ffcf9a1adbd7 (diff) | |
| download | qpid-python-f739d191af76b1b22416f914212153db40abc17d.tar.gz | |
OutputControl and subclasses: added giveReadCredit() for IO level flow control.
Cluster: Set read credit limit for cluster connections.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@724233 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/AsynchIOHandler.h')
| -rw-r--r-- | cpp/src/qpid/sys/AsynchIOHandler.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/cpp/src/qpid/sys/AsynchIOHandler.h b/cpp/src/qpid/sys/AsynchIOHandler.h index c281c27d14..fa020fbce4 100644 --- a/cpp/src/qpid/sys/AsynchIOHandler.h +++ b/cpp/src/qpid/sys/AsynchIOHandler.h @@ -23,6 +23,8 @@ #include "OutputControl.h" #include "ConnectionCodec.h" +#include "AtomicValue.h" +#include "Mutex.h" namespace qpid { @@ -43,6 +45,9 @@ class AsynchIOHandler : public OutputControl { ConnectionCodec* codec; bool readError; bool isClient; + AtomicValue<int32_t> readCredit; + static const int32_t InfiniteCredit = -1; + Mutex creditLock; void write(const framing::ProtocolInitiation&); @@ -56,9 +61,10 @@ class AsynchIOHandler : public OutputControl { // Output side void close(); void activateOutput(); + void giveReadCredit(int32_t credit); // Input side - void readbuff(AsynchIO& aio, AsynchIOBufferBase* buff); + bool readbuff(AsynchIO& aio, AsynchIOBufferBase* buff); void eof(AsynchIO& aio); void disconnect(AsynchIO& aio); |
