1/* 2 * Copyright 2019, Ryan Leavengood. 3 * Copyright 2009, Axel D��rfler, axeld@pinc-software.de. 4 * Copyright 2002, Marcus Overhagen. All Rights Reserved. 5 * Distributed under the terms of the MIT License. 6 */ 7#ifndef _BUFFER_CACHE_H_ 8#define _BUFFER_CACHE_H_ 9 10 11#include <HashMap.h> 12#include <MediaDefs.h> 13 14 15class BBuffer; 16 17 18namespace BPrivate { 19 20 21struct buffer_cache_entry { 22 BBuffer* buffer; 23 port_id port; 24}; 25 26 27class BufferCache { 28public: 29 BufferCache(); 30 ~BufferCache(); 31 32 BBuffer* GetBuffer(media_buffer_id id, port_id port); 33 34 void FlushCacheForPort(port_id port); 35 36private: 37 typedef HashMap<HashKey32<media_buffer_id>, buffer_cache_entry> BufferMap; 38 39 BufferMap fMap; 40}; 41 42 43} // namespace BPrivate 44 45 46#endif // _BUFFER_CACHE_H_ 47