| 
    OpenShot Library | libopenshot
    0.4.0
    
   | 
 
 
 
 
Go to the documentation of this file.
   13 #ifndef OPENSHOT_CACHE_BASE_H 
   14 #define OPENSHOT_CACHE_BASE_H 
   62         virtual void Add(std::shared_ptr<openshot::Frame> frame) = 0;
 
   65         virtual void Clear() = 0;
 
   69         virtual bool Contains(int64_t frame_number) = 0;
 
   72         virtual int64_t 
Count() = 0;
 
   76         virtual std::shared_ptr<openshot::Frame> 
GetFrame(int64_t frame_number) = 0;
 
   79         virtual std::vector<std::shared_ptr<openshot::Frame>> 
GetFrames() = 0;
 
   89         virtual void Remove(int64_t frame_number) = 0;
 
   94         virtual void Remove(int64_t start_frame_number, int64_t end_frame_number) = 0;
 
   98         virtual void Touch(int64_t frame_number) = 0;
 
  113         void SetMaxBytesFromInfo(int64_t number_of_frames, 
int width, 
int height, 
int sample_rate, 
int channels);
 
  116         virtual std::string 
Json() = 0; 
 
  117         virtual void SetJson(
const std::string value) = 0; 
 
  
virtual std::shared_ptr< openshot::Frame > GetSmallestFrame()=0
Get the smallest frame number.
 
virtual void Clear()=0
Clear the cache of all frames.
 
virtual std::shared_ptr< openshot::Frame > GetFrame(int64_t frame_number)=0
Get a frame from the cache.
 
bool needs_range_processing
Something has changed, and the range data needs to be re-calculated.
 
int64_t max_bytes
This is the max number of bytes to cache (0 = no limit)
 
std::vector< int64_t > ordered_frame_numbers
Ordered list of frame numbers used by cache.
 
This namespace is the default namespace for all code in the openshot library.
 
virtual void Add(std::shared_ptr< openshot::Frame > frame)=0
Add a Frame to the cache.
 
std::string json_ranges
JSON ranges of frame numbers.
 
virtual ~CacheBase()=default
 
All cache managers in libopenshot are based on this CacheBase class.
 
virtual void Remove(int64_t frame_number)=0
Remove a specific frame.
 
void SetMaxBytesFromInfo(int64_t number_of_frames, int width, int height, int sample_rate, int channels)
Set maximum bytes to a different amount based on a ReaderInfo struct.
 
virtual void SetJsonValue(const Json::Value root)=0
Load Json::Value into this object.
 
virtual std::vector< std::shared_ptr< openshot::Frame > > GetFrames()=0
Get an vector of all Frames.
 
std::map< int64_t, int64_t > frame_ranges
This map holds the ranges of frames, useful for quickly displaying the contents of the cache.
 
virtual void SetJson(const std::string value)=0
Load JSON string into this object.
 
virtual Json::Value JsonValue()=0
Generate Json::Value for this object.
 
void CalculateRanges()
Calculate ranges of frames.
 
virtual void Touch(int64_t frame_number)=0
Move frame to front of queue (so it lasts longer)
 
virtual int64_t Count()=0
Count the frames in the queue.
 
std::string cache_type
This is a friendly type name of the derived cache instance.
 
virtual std::string Json()=0
Generate JSON string of this object.
 
int64_t GetMaxBytes()
Gets the maximum bytes value.
 
void SetMaxBytes(int64_t number_of_bytes)
Set maximum bytes to a different amount.
 
virtual int64_t GetBytes()=0
Gets the maximum bytes value.
 
virtual bool Contains(int64_t frame_number)=0
Check if frame is already contained in cache.
 
CacheBase()
Default constructor, no max bytes.
 
Header file for JSON class.
 
int64_t range_version
The version of the JSON range data (incremented with each change)
 
std::recursive_mutex * cacheMutex
Mutex for multiple threads.