| 185 | } |
| 186 | |
| 187 | bool CLoopBuffer::GetUseMemoryBlock(void*& res1, int& len1, void*& res2, int& len2) { |
| 188 | res1 = res2 = nullptr; |
| 189 | len1 = len2 = 0; |
| 190 | |
| 191 | std::unique_lock<std::mutex> lock(_mutex); |
| 192 | if (_read >= _write) { |
| 193 | if (!_can_read && _write == _read) { |
| 194 | return false; |
| 195 | } |
| 196 | res1 = _read; |
| 197 | len1 = (int)(_buffer_end - _read); |
| 198 | |
| 199 | len2 = (int)(_write - _buffer_start); |
| 200 | if(len2 > 0) { |
| 201 | res2 = _buffer_start; |
| 202 | } |
| 203 | return true; |
| 204 | |
| 205 | } else { |
| 206 | res1 = _read; |
| 207 | len1 = (int)(_write - _read); |
| 208 | return true; |
| 209 | } |
| 210 | } |
| 211 | |
| 212 | int CLoopBuffer::FindStr(const char* s, int s_len) { |
| 213 | std::unique_lock<std::mutex> lock(_mutex); |
nothing calls this directly
no outgoing calls
no test coverage detected