11 #include "CacheStrategy.h" 12 #include "threads/CriticalSection.h" 13 #include "threads/Event.h" 24 void Close()
override;
26 size_t GetMaxWriteSize(
const size_t& iRequestSize)
override;
29 int64_t WaitForData(uint32_t minimum, std::chrono::milliseconds timeout)
override;
31 int64_t Seek(int64_t
pos)
override;
32 bool Reset(int64_t pos)
override;
34 int64_t CachedDataEndPosIfSeekTo(int64_t iFilePosition)
override;
35 int64_t CachedDataStartPos()
override;
36 int64_t CachedDataEndPos()
override;
37 bool IsCachedPosition(int64_t iFilePosition)
override;
47 CCriticalSection m_sync;
This is an Event class built from a ConditionVariable.
Definition: Event.h:35
int64_t m_beg
index in file (not buffer) of beginning of valid data
Definition: CircularCache.h:41
int ReadFromCache(char *buf, size_t len) override
Reads data from cache.
Definition: CircularCache.cpp:145
uint8_t * m_buf
buffer holding data
Definition: CircularCache.h:44
int64_t m_end
index in file (not buffer) of end of valid data
Definition: CircularCache.h:42
Definition: CircularCache.h:17
bool Reset(int64_t pos) override
Reset cache position.
Definition: CircularCache.cpp:238
int64_t m_cur
current reading index in file
Definition: CircularCache.h:43
size_t m_size_back
guaranteed size of back buffer (actual size can be smaller, or larger if front buffer doesn't need it...
Definition: CircularCache.h:46
Definition: CacheStrategy.h:25
int WriteToCache(const char *buf, size_t len) override
Function will write to m_buf at m_end % m_size location it will write at maximum m_size, but it will only write as much it can without wrapping around in the buffer.
Definition: CircularCache.cpp:101
Definition: LibInputPointer.h:13
size_t m_size
size of data buffer used (m_buf)
Definition: CircularCache.h:45