IVGCVSW-4328 BufferManager running out of buffers crashes application

* Refactored SendCounterPacket classes, separated SendCounterPacket from Send thread
* Created ISendThread.hpp, IConsumer, SendThread.hpp and SendThread.cpp
* Injected IConsumer to BufferManager to notify SendThread when packet is ready to read

Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I80f0bb8b8401c6bfd1611f7760217c6fe35d7ad8
diff --git a/src/profiling/IBufferManager.hpp b/src/profiling/IBufferManager.hpp
index 2b497da..01ecb82 100644
--- a/src/profiling/IBufferManager.hpp
+++ b/src/profiling/IBufferManager.hpp
@@ -5,6 +5,7 @@
 
 #pragma once
 
+#include "IConsumer.hpp"
 #include "IPacketBuffer.hpp"
 
 #include <memory>
@@ -24,13 +25,17 @@
 
     virtual IPacketBufferPtr Reserve(unsigned int requestedSize, unsigned int& reservedSize) = 0;
 
-    virtual void Commit(IPacketBufferPtr& packetBuffer, unsigned int size) = 0;
+    virtual void Commit(IPacketBufferPtr& packetBuffer, unsigned int size, bool notifyConsumer = true) = 0;
 
     virtual void Release(IPacketBufferPtr& packetBuffer) = 0;
 
     virtual IPacketBufferPtr GetReadableBuffer() = 0;
 
     virtual void MarkRead(IPacketBufferPtr& packetBuffer) = 0;
+
+    virtual void SetConsumer(IConsumer* consumer) = 0;
+
+    virtual void FlushReadList() = 0;
 };
 
 } // namespace profiling