diff options
Diffstat (limited to 'src/profiling/BufferManager.hpp')
-rw-r--r-- | src/profiling/BufferManager.hpp | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/src/profiling/BufferManager.hpp b/src/profiling/BufferManager.hpp deleted file mode 100644 index 0ab3e0e534..0000000000 --- a/src/profiling/BufferManager.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// -// Copyright © 2019 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include "IBufferManager.hpp" -#include "IConsumer.hpp" - -#include <condition_variable> -#include <mutex> -#include <vector> -#include <queue> - -namespace arm -{ - -namespace pipe -{ - -class BufferManager : public IBufferManager -{ -public: - BufferManager(unsigned int numberOfBuffers = 5, unsigned int maxPacketSize = 4096); - - ~BufferManager() {} - - IPacketBufferPtr Reserve(unsigned int requestedSize, unsigned int& reservedSize) override; - - void Reset(); - - void Commit(IPacketBufferPtr& packetBuffer, unsigned int size, bool notifyConsumer = true) override; - - void Release(IPacketBufferPtr& packetBuffer) override; - - IPacketBufferPtr GetReadableBuffer() override; - - void MarkRead(IPacketBufferPtr& packetBuffer) override; - - /// Set Consumer on the buffer manager to be notified when there is a Commit - /// Can only be one consumer - void SetConsumer(IConsumer* consumer) override; - - /// Notify the Consumer buffer can be read - void FlushReadList() override; - -private: - void Initialize(); - - // Maximum buffer size - unsigned int m_MaxBufferSize; - // Number of buffers - const unsigned int m_NumberOfBuffers; - const unsigned int m_MaxNumberOfBuffers; - unsigned int m_CurrentNumberOfBuffers; - - // List of available packet buffers - std::vector<IPacketBufferPtr> m_AvailableList; - - // List of readable packet buffers - std::queue<IPacketBufferPtr> m_ReadableList; - - // Mutex for available packet buffer list - std::mutex m_AvailableMutex; - - // Mutex for readable packet buffer list - std::mutex m_ReadableMutex; - - // Consumer thread to notify packet is ready to read - IConsumer* m_Consumer = nullptr; -}; - -} // namespace pipe - -} // namespace arm |