IVGCVSW-3580: Extend the IProfilingConnection to connect to a Socket

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

Change-Id: I72e099ee00052f7a0907c055c7bff02c7d8fde86
diff --git a/src/profiling/SocketProfilingConnection.hpp b/src/profiling/SocketProfilingConnection.hpp
new file mode 100644
index 0000000..f58e1f4
--- /dev/null
+++ b/src/profiling/SocketProfilingConnection.hpp
@@ -0,0 +1,33 @@
+//
+// Copyright © 2019 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "IProfilingConnection.hpp"
+
+#include <poll.h>
+#include <Runtime.hpp>
+
+#pragma once
+
+namespace armnn
+{
+namespace profiling
+{
+
+class SocketProfilingConnection : public IProfilingConnection
+{
+public:
+    SocketProfilingConnection();
+    bool IsOpen() final;
+    void Close() final;
+    bool WritePacket(const char* buffer, uint32_t length) final;
+    Packet ReadPacket(uint32_t timeout) final;
+private:
+    // To indicate we want to use an abstract UDS ensure the first character of the address is 0.
+    const char* m_GatorNamespace = "\0gatord_namespace";
+    struct pollfd m_Socket[1]{};
+};
+
+} // namespace profiling
+} // namespace armnn