| 153 | } |
| 154 | |
| 155 | void PacketStreamFilter::filterEvent(const Event &event) |
| 156 | { |
| 157 | if (event.getType() == EventTypes::StreamInputReady) { |
| 158 | std::scoped_lock lock{m_mutex}; |
| 159 | if (!readMore()) { |
| 160 | return; |
| 161 | } |
| 162 | } else if (event.getType() == EventTypes::StreamInputShutdown) { |
| 163 | // discard this if we have buffered data |
| 164 | std::scoped_lock lock{m_mutex}; |
| 165 | m_inputShutdown = true; |
| 166 | if (m_size != 0) { |
| 167 | return; |
| 168 | } |
| 169 | } |
| 170 | |
| 171 | // pass event |
| 172 | StreamFilter::filterEvent(event); |
| 173 | } |