IVGCVSW-3902 Create IReadOnlyPacketBuffer, IPacketBuffer and IBufferManager interfaces

 * Create IReadOnlyPacketBuffer, IPacketBuffer and IBufferManager interfaces
 * Add Read and Write util functions that use IPacketBuffer
 * Add MockBufferManager using IBufferManager for testing
 * Modify SendCounterPacket to use IBufferManager
 * Modify MockStreamCounterBuffer to use IBufferManager
 * Remove IBufferWrapper and MockBuffer
 * Add MockPacketBuffer for testing
 * Modify unit tests to use the new interfaces

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Ib86768187e032f07169aa39367a418b7665c9f03
diff --git a/src/profiling/ProfilingUtils.cpp b/src/profiling/ProfilingUtils.cpp
index 7a8c678..588fcc1 100644
--- a/src/profiling/ProfilingUtils.cpp
+++ b/src/profiling/ProfilingUtils.cpp
@@ -87,6 +87,27 @@
     return counterUids;
 }
 
+void WriteUint64(const std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int offset, uint64_t value)
+{
+    BOOST_ASSERT(packetBuffer);
+
+    WriteUint64(packetBuffer->GetWritableData(), offset, value);
+}
+
+void WriteUint32(const std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int offset, uint32_t value)
+{
+    BOOST_ASSERT(packetBuffer);
+
+    WriteUint32(packetBuffer->GetWritableData(), offset, value);
+}
+
+void WriteUint16(const std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int offset, uint16_t value)
+{
+    BOOST_ASSERT(packetBuffer);
+
+    WriteUint16(packetBuffer->GetWritableData(), offset, value);
+}
+
 void WriteUint64(unsigned char* buffer, unsigned int offset, uint64_t value)
 {
     BOOST_ASSERT(buffer);
@@ -119,6 +140,34 @@
     buffer[offset + 1] = static_cast<unsigned char>((value >> 8) & 0xFF);
 }
 
+uint64_t ReadUint64(const std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int offset)
+{
+    BOOST_ASSERT(packetBuffer);
+
+    return ReadUint64(packetBuffer->GetReadableData(), offset);
+}
+
+uint32_t ReadUint32(const std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int offset)
+{
+    BOOST_ASSERT(packetBuffer);
+
+    return ReadUint32(packetBuffer->GetReadableData(), offset);
+}
+
+uint16_t ReadUint16(const std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int offset)
+{
+    BOOST_ASSERT(packetBuffer);
+
+    return ReadUint16(packetBuffer->GetReadableData(), offset);
+}
+
+uint8_t ReadUint8(const std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int offset)
+{
+    BOOST_ASSERT(packetBuffer);
+
+    return ReadUint8(packetBuffer->GetReadableData(), offset);
+}
+
 uint64_t ReadUint64(const unsigned char* buffer, unsigned int offset)
 {
     BOOST_ASSERT(buffer);