IVGCVSW-6706 Create the libpipeClient library

Change-Id: I2368aade38ad3808fab55d8a86cd659d4e95d91e
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/profiling/client/include/backends/IBackendProfiling.hpp b/profiling/client/include/backends/IBackendProfiling.hpp
index 347d2dd..a9d29c5 100644
--- a/profiling/client/include/backends/IBackendProfiling.hpp
+++ b/profiling/client/include/backends/IBackendProfiling.hpp
@@ -2,9 +2,16 @@
 // Copyright © 2020 Arm Ltd. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
+
 #pragma once
 
+#include <client/include/CounterStatus.hpp>
+#include <client/include/CounterValue.hpp>
+#include <client/include/IProfilingService.hpp>
+#include <client/include/ISendCounterPacket.hpp>
 #include <client/include/ISendTimelinePacket.hpp>
+#include <client/include/ProfilingOptions.hpp>
+#include <client/include/Timestamp.hpp>
 
 #include <common/include/IProfilingGuidGenerator.hpp>
 #include <common/include/Optional.hpp>
@@ -18,36 +25,6 @@
 namespace pipe
 {
 
-struct CounterValue
-{
-    CounterValue(uint16_t id, uint32_t value) :
-        counterId(id), counterValue(value) {}
-    uint16_t counterId;
-    uint32_t counterValue;
-};
-
-struct Timestamp
-{
-    uint64_t timestamp;
-    std::vector<CounterValue> counterValues;
-};
-
-struct CounterStatus
-{
-    CounterStatus(uint16_t backendCounterId,
-                  uint16_t globalCounterId,
-                  bool enabled,
-                  uint32_t samplingRateInMicroseconds)
-                  : m_BackendCounterId(backendCounterId),
-                    m_GlobalCounterId(globalCounterId),
-                    m_Enabled(enabled),
-                    m_SamplingRateInMicroseconds(samplingRateInMicroseconds) {}
-    uint16_t m_BackendCounterId;
-    uint16_t m_GlobalCounterId;
-    bool     m_Enabled;
-    uint32_t m_SamplingRateInMicroseconds;
-};
-
 class IRegisterBackendCounters
 {
 public:
@@ -81,6 +58,9 @@
 class IBackendProfiling
 {
 public:
+    static std::unique_ptr<IBackendProfiling> CreateBackendProfiling(const ProfilingOptions& options,
+                                                                     IProfilingService& profilingService,
+                                                                     const std::string& backendId);
     virtual ~IBackendProfiling()
     {}