Index: src/libchcore/TWriteBufferQueueWrapper.h =================================================================== diff -u -N -rc719644bb4360fcf7ccf6f1139bcae852bd6effd -rd99302fce795dbb5139659016a5da7948f141fb4 --- src/libchcore/TWriteBufferQueueWrapper.h (.../TWriteBufferQueueWrapper.h) (revision c719644bb4360fcf7ccf6f1139bcae852bd6effd) +++ src/libchcore/TWriteBufferQueueWrapper.h (.../TWriteBufferQueueWrapper.h) (revision d99302fce795dbb5139659016a5da7948f141fb4) @@ -31,7 +31,7 @@ class TWriteBufferQueueWrapper { public: - explicit TWriteBufferQueueWrapper(const TOrderedBufferQueuePtr& spQueue); + TWriteBufferQueueWrapper(const TOrderedBufferQueuePtr& spQueue, size_t stMaxOtfBuffers, TSharedCountPtr spOtfBuffersCount); ~TWriteBufferQueueWrapper(); void Push(TOverlappedDataBuffer* pBuffer); @@ -43,17 +43,27 @@ void ClearBuffers(const TBufferListPtr& spEmptyBuffers); private: - void UpdateHasBuffers(bool bDataQueueHasPoppableBuffer); + bool HasBuffersToProcess() const; void UpdateHasBuffers(); TOverlappedDataBuffer* InternalPop(); private: + // input buffers TOrderedBufferQueuePtr m_spDataQueue; // external queue of buffers to use boost::signals2::connection m_dataQueueConnector; + // retry buffers TSimpleOrderedBufferQueue m_tRetryBuffers; // internal queue of claimed buffers + boost::signals2::connection m_retryBuffersConnector; + // config + size_t m_stMaxOtfBuffers = 0; + + // external state + TSharedCountPtr m_spOtfBuffersCount; + + // event TEvent m_eventHasBuffers; }; }