IVGCVSW-3951 Create the timeline decoder

 * Added ITimelineDecoder.h C interface
 * Added an example implementation of ITimelineDecoder.h
 * Added command handlers for the timeline directory and objects
 * Added tests for the decoder implementation
 * Changed ReadSwTraceMessage to take a const unsigned char*
   so it can be used by the directory command handler
 * Fixed some bugs in ProfilingUtils.cpp and related tests

Change-Id: If06faf1fe0274a8f022f194a6d3527f5ce5374c6
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 867fb34..5b80430 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -822,6 +822,7 @@
     if(BUILD_GATORD_MOCK)
         list(APPEND unittest_sources
             tests/profiling/gatordmock/tests/GatordMockTests.cpp
+            tests/profiling/timelineDecoder/tests/TimelineTests.cpp
             )
     endif()
 
@@ -936,6 +937,13 @@
         tests/profiling/gatordmock/PeriodicCounterCaptureCommandHandler.hpp
         tests/profiling/gatordmock/PeriodicCounterSelectionResponseHandler.cpp
         tests/profiling/gatordmock/PeriodicCounterSelectionResponseHandler.hpp
+        tests/profiling/timelineDecoder/ITimelineDecoder.h
+        tests/profiling/timelineDecoder/TimelineCaptureCommandHandler.cpp
+        tests/profiling/timelineDecoder/TimelineCaptureCommandHandler.hpp
+        tests/profiling/timelineDecoder/TimelineDecoder.cpp
+        tests/profiling/timelineDecoder/TimelineDirectoryCaptureCommandHandler.cpp
+        tests/profiling/timelineDecoder/TimelineDirectoryCaptureCommandHandler.hpp
+        tests/profiling/timelineDecoder/tests/TimelineTestFunctions.hpp
         )
 
     include_directories(${Boost_INCLUDE_DIRS} src/profiling)