Index: src/libchcore/TBufferList.cpp =================================================================== diff -u -N -r3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9 -r6c41e7b3cf7711c6f5027c0c0154013f50f08e7b --- src/libchcore/TBufferList.cpp (.../TBufferList.cpp) (revision 3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9) +++ src/libchcore/TBufferList.cpp (.../TBufferList.cpp) (revision 6c41e7b3cf7711c6f5027c0c0154013f50f08e7b) @@ -32,6 +32,7 @@ throw TCoreException(eErr_InvalidArgument, L"pBuffer", LOCATION); m_listBuffers.push_front(pBuffer); + m_notifier(true); } TOverlappedDataBuffer* TBufferList::Pop() @@ -42,12 +43,18 @@ TOverlappedDataBuffer* pBuffer = m_listBuffers.front(); m_listBuffers.pop_front(); + m_notifier(false); + return pBuffer; } void TBufferList::Clear() { + bool bRemoved = !m_listBuffers.empty(); m_listBuffers.clear(); + + if (bRemoved) + m_notifier(false); } size_t TBufferList::GetCount() const @@ -59,4 +66,9 @@ { return m_listBuffers.empty(); } + + boost::signals2::signal& TBufferList::GetNotifier() + { + return m_notifier; + } }