Clone
ixen <ixen@copyhandler.com>
committed
on 06 Nov 16
Fixed several issues with pausing and resuming tasks (CH-291)
ParallelizeReaderWriter + 3 more
src/libchcore/TBufferList.cpp (+11 -0)
57 57                 bool bRemoved = !m_listBuffers.empty();
58 58                 m_listBuffers.clear();
59 59
60 60                 if (bRemoved)
61 61                 {
62 62                         UpdateEvent();
63 63                         m_notifier(false);
64 64                 }
65 65         }
66 66
67 67         size_t TBufferList::GetCount() const
68 68         {
69 69                 return m_listBuffers.size();
70 70         }
71 71
72 72         bool TBufferList::IsEmpty() const
73 73         {
74 74                 return m_listBuffers.empty();
75 75         }
76 76
  77         void TBufferList::SetExpectedBuffersCount(size_t stExpectedBuffers)
  78         {
  79                 m_stExpectedBuffers = stExpectedBuffers;
  80                 UpdateEvent();
  81         }
  82
  83         HANDLE TBufferList::GetAllBuffersAccountedForEvent() const
  84         {
  85                 return m_eventAllBuffersAccountedFor.Handle();
  86         }
  87
77 88         boost::signals2::signal<void(bool bAdded)>& TBufferList::GetNotifier()
78 89         {
79 90                 return m_notifier;
80 91         }
81 92
82 93         void TBufferList::UpdateEvent()
83 94         {
84 95                 m_eventAllBuffersAccountedFor.SetEvent(m_listBuffers.size() == m_stExpectedBuffers);
85 96         }
86 97 }