From 7664038f43aa089798e1dea7b8595ceea2aaa4bc Mon Sep 17 00:00:00 2001
From: kpetridis <petridkon@gmail.com>
Date: Fri, 18 Mar 2022 22:02:13 +0200
Subject: [PATCH] Set-up the testing platform for the new service

---
 inc/Platform/x86/ECSS_Configuration.hpp       | 25 ++++++++++---------
 inc/ServicePool.hpp                           |  5 ++++
 .../RealTimeForwardingControlService.hpp      |  2 ++
 src/MessageParser.cpp                         |  6 +++++
 4 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/inc/Platform/x86/ECSS_Configuration.hpp b/inc/Platform/x86/ECSS_Configuration.hpp
index 07a47a4c..a8aba07c 100644
--- a/inc/Platform/x86/ECSS_Configuration.hpp
+++ b/inc/Platform/x86/ECSS_Configuration.hpp
@@ -21,18 +21,19 @@
 #define SERVICE_ALL ///< Enables compilation of all the ECSS services
 
 #ifdef SERVICE_ALL
-#define SERVICE_EVENTACTION         ///<  Compile ST[19] event-action
-#define SERVICE_EVENTREPORT         ///<  Compile ST[05] event reporting
-#define SERVICE_FUNCTION            ///<  Compile ST[08] function management
-#define SERVICE_HOUSEKEEPING        ///<  Compile ST[03] housekeeping
-#define SERVICE_LARGEPACKET         ///<  Compile ST[13] large packet transfer
-#define SERVICE_MEMORY              ///<  Compile ST[06] memory management
-#define SERVICE_PARAMETER           ///<  Compile ST[20] parameter management
-#define SERVICE_PARAMETERSTATISTICS ///<  Compile ST[04] parameter statistics
-#define SERVICE_REQUESTVERIFICATION ///<  Compile ST[01] request verification
-#define SERVICE_TEST                ///<  Compile ST[17] test
-#define SERVICE_TIME                ///<  Compile ST[09] time management
-#define SERVICE_TIMESCHEDULING      ///<  Compile ST[11] time-based scheduling
+#define SERVICE_EVENTACTION         		///<  Compile ST[19] event-action
+#define SERVICE_EVENTREPORT                	///<  Compile ST[05] event reporting
+#define SERVICE_FUNCTION                   	///<  Compile ST[08] function management
+#define SERVICE_HOUSEKEEPING              	///<  Compile ST[03] housekeeping
+#define SERVICE_LARGEPACKET         		///<  Compile ST[13] large packet transfer
+#define SERVICE_MEMORY              		///<  Compile ST[06] memory management
+#define SERVICE_PARAMETER           		///<  Compile ST[20] parameter management
+#define SERVICE_PARAMETERSTATISTICS 		///<  Compile ST[04] parameter statistics
+#define SERVICE_REALTIMEFORWARDINGCONTROL   ///< Compile ST[14] real time forwarding control
+#define SERVICE_REQUESTVERIFICATION 		///<  Compile ST[01] request verification
+#define SERVICE_TEST                		///<  Compile ST[17] test
+#define SERVICE_TIME                		///<  Compile ST[09] time management
+#define SERVICE_TIMESCHEDULING              ///<  Compile ST[11] time-based scheduling
 #endif
 /** @} */
 
diff --git a/inc/ServicePool.hpp b/inc/ServicePool.hpp
index 544b7460..20fc4ab5 100644
--- a/inc/ServicePool.hpp
+++ b/inc/ServicePool.hpp
@@ -13,6 +13,7 @@
 #include "Services/FunctionManagementService.hpp"
 #include "Services/HousekeepingService.hpp"
 #include "Services/ParameterStatisticsService.hpp"
+#include "Services/RealTimeForwardingControlService.hpp"
 
 /**
  * Defines a class that contains instances of all Services.
@@ -68,6 +69,10 @@ public:
 	ParameterService parameterManagement;
 #endif
 
+#ifdef SERVICE_REALTIMEFORWARDINGCONTROL
+	RealTimeForwardingControlService realTimeForwarding;
+#endif
+
 #ifdef SERVICE_REQUESTVERIFICATION
 	RequestVerificationService requestVerification;
 #endif
diff --git a/inc/Services/RealTimeForwardingControlService.hpp b/inc/Services/RealTimeForwardingControlService.hpp
index 2f522cc0..46bf4490 100644
--- a/inc/Services/RealTimeForwardingControlService.hpp
+++ b/inc/Services/RealTimeForwardingControlService.hpp
@@ -36,6 +36,8 @@ public:
 		EventReportConfigurationContentReport = 16,
 	};
 
+	RealTimeForwardingControlService() = default;
+
 private:
 	/**
 	 * Contains the Application IDs, controlled by the Service.
diff --git a/src/MessageParser.cpp b/src/MessageParser.cpp
index c35c525b..2b164eaa 100644
--- a/src/MessageParser.cpp
+++ b/src/MessageParser.cpp
@@ -61,6 +61,12 @@ void MessageParser::execute(Message& message) {
 			break;
 #endif
 
+#ifdef SERVICE_REALTIMEFORWARDINGCONTROL
+		case RealTimeForwardingControlService::ServiceType:
+			Services.realTimeForwarding.execute(message);
+			break;
+#endif
+
 		default:
 			ErrorHandler::reportInternalError(ErrorHandler::OtherMessageType);
 	}
-- 
GitLab