2 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 ////////////////////////////////////////////////////////////////////////////////
18 /// \ingroup tag_HMI_CWORD77_Controller
21 ////////////////////////////////////////////////////////////////////////////////
24 * @file ns__CWORD77__data_pool_table.h
25 * @brief \~english This file provides API for convert and C_CWORD77_DataPool class
28 /** @addtogroup BaseSystem
31 /** @addtogroup native_service
35 /** @addtogroup framework_unified
36 * @ingroup native_service
39 /** @addtogroup _CWORD77_
40 * @ingroup framework_unified
43 #ifndef _CWORD77__DATA_POOL_TABLE_H_ // NOLINT (build/header_guard)
44 #define _CWORD77__DATA_POOL_TABLE_H_
46 #include <native_service/ns__CWORD77__common.h>
52 /// Enumeration for Type of Table
53 typedef enum _ETableType {
56 } ETableType, *PETableType;
58 /// Enumeration for Data Type
59 typedef enum _EDataType {
68 } EDataType, *PEDataType;
70 /// _CWORD77_ Data structure
71 typedef struct __CWORD77_Data {
73 std::string DataValue;
74 } _CWORD77_Data, *P_CWORD77_Data;
76 typedef std::map< _CWORD77_DataPoolKey, std::vector< CHAR > > T_CWORD77_DataPool;
79 ////////////////////////////////////////////////////////////////////////////////////////////
80 /// NoOfElementsinData
81 /// Function to get number of elements for given string
86 /// \return UI_32 - Number of elements
88 ////////////////////////////////////////////////////////////////////////////////////////////
89 UI_32 NoOfElementsinData(std::string Input);
91 /// Template to Convert Number to String
94 std::string NumberToString(T Number) {
95 std::ostringstream ss;
100 /// Template to convert String to Number
102 template <typename T>
103 T StringToNumber(const std::string &Text) {
104 std::istringstream ss(Text);
110 /// Template to Convert an Array To String
113 std::string ConvertArrayToString(T *Array, int Arraysize) {
115 std::string Result = "";
116 while (length < Arraysize) {
117 Result.append(NumberToString<T>(Array[length]));
125 /// Template to Convert String To Array
127 void ConvertStringToArray(std::string Input, std::vector<T> &Array, UI_32 &Arraysize) { // NOLINT (readability/nolint)
129 std::string first = "";
130 std::istringstream ss(Input);
131 int Size = NoOfElementsinData(Input);
134 getline(ss, first, ',');
136 Array[i] = StringToNumber<T>(first);
141 // memcpy(Array,(void *)Arr,Arraysize*sizeof(T));
144 ////////////////////////////////////////////////////////////////////////////////////////////
145 /// ConvertArrayStringsToString
146 /// Function to convert array of strings to string
148 /// \param [in] strArr
149 /// string * - pointer to array of strings
151 /// SI_32 - Number of strings
155 ////////////////////////////////////////////////////////////////////////////////////////////
156 std::string ConvertArrayStringsToString(std::string *strArr, SI_32 Size);
159 ////////////////////////////////////////////////////////////////////////////////////////////
160 /// ConvertArrayStringsToString
161 /// Function to convert string to array of strings
163 /// \param [in] Input
164 /// string - string contains array of strings
165 /// \param [out] strArr
166 /// string * - Pointer to Array of strings
167 /// \param [out] ArraySize
168 /// UI_32 - No of elements in Array
172 ////////////////////////////////////////////////////////////////////////////////////////////
173 void ConvertStringToArrString(std::string Input, std::string *strArr, UI_32 &ArraySize); // NOLINT (readability/nolint)
175 ///////////////////////////////////////////////////////////////////////////
176 /// class: C_CWORD77_DataPool
177 /// Description: This is interface class to _CWORD77_ Data base.
178 /// It provides APIs to set and get data from _CWORD77_ Data base
180 ////////////////////////////////////////////////////////////////////////////
181 class C_CWORD77_DataPool {
183 std::map<UI_32, _CWORD77_Data> m__CWORD77_DataRequestTable; ///< Request Data Table
184 std::map<UI_32, _CWORD77_Data> m__CWORD77_DataResponseTable; ///< Response Data Table
186 static C_CWORD77_DataPool *m_p_CWORD77_DataPoolInstance; ///< Static instance to C_CWORD77_DataPool
188 ////////////////////////////////////////////////////////////////////////////////////////////
190 /// Templatized Function to get data from _CWORD77_ Data base
192 /// \param [in] TableType
193 /// ETableType - Table Type (Request or Response)
194 /// \param [in] VarName
195 /// string - Variable Name or key value
196 /// \param [out] Array
197 /// T * - Pointer to an array of given type
198 /// \param [out] ArraySize
199 /// UI_32 - No of elements of Array
203 ////////////////////////////////////////////////////////////////////////////////////////////
206 void GetData(ETableType TableType, UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint)
207 EDataType DataType = SIGNEDINT;
208 std::string DataValue;
209 GetValueFromMap(TableType, VarName, DataType, DataValue);
210 UI_32 Num = NoOfElementsinData(DataValue);
213 ConvertStringToArray<T>(DataValue, Temp, ArraySize);
214 for (unsigned int i = 0; i < Num; i++) {
218 ////////////////////////////////////////////////////////////////////////////////////////////
220 /// Templatized Function to set data into _CWORD77_ Data base
222 /// \param [in] TableType
223 /// ETableType - Table Type (Request or Response)
224 /// \param [in] VarName
225 /// string - Variable Name or key value
226 /// \param [in] DataType
227 /// EDataType - Data Type of key
228 /// \param [in] Array
229 /// T * - Pointer to an array of given type
230 /// \param [in] ArraySize
231 /// UI_32 - No of elements of Array
235 ////////////////////////////////////////////////////////////////////////////////////////////
237 void SetData(ETableType TableType, UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) {
238 std::string Result = ConvertArrayToString(Array, ArraySize);
239 SetValueinMap(TableType, VarName, DataType, Result);
242 ////////////////////////////////////////////////////////////////////////////////////////////
244 /// Function to get data from _CWORD77_ map
246 /// \param [in] TableType
247 /// ETableType - Table Type (Request or Response)
248 /// \param [in] VarName
249 /// string - Variable Name or key value
250 /// \param [out] DataType
251 /// EDataType - Data Type of key
252 /// \param [out] Strvalue
253 /// string - Output in the form of string
257 ////////////////////////////////////////////////////////////////////////////////////////////
258 void GetValueFromMap(ETableType TableType, UI_32 VarName, EDataType &DataType, std::string &Strvalue); // NOLINT (readability/nolint)
260 ////////////////////////////////////////////////////////////////////////////////////////////
262 /// Function to set data in _CWORD77_ map
264 /// \param [in] TableType
265 /// ETableType - Table Type (Request or Response)
266 /// \param [in] VarName
267 /// string - Variable Name or key value
268 /// \param [in] VarType
269 /// EDataType - Data Type of key
270 /// \param [in] Result
271 /// string - input in the form of string
275 ////////////////////////////////////////////////////////////////////////////////////////////
276 void SetValueinMap(ETableType TableType, UI_32 VarName, EDataType VarType, std::string Result);
278 ////////////////////////////////////////////////////////////////////////////////////////////
279 /// SetArrayStringData
280 /// Function to set string data in _CWORD77_ map
282 /// \param [in] TableType
283 /// ETableType - Table Type (Request or Response)
284 /// \param [in] VarName
285 /// string - Variable Name or key value
286 /// \param [in] VarType
287 /// EDataType - Data Type of key
288 /// \param [in] DataValue
289 /// string [] - Array of strings
291 /// UI_32 - No of elements in Array
295 ////////////////////////////////////////////////////////////////////////////////////////////
296 void SetArrayStringData(ETableType TableType,
299 std::string DataValue[],
301 ////////////////////////////////////////////////////////////////////////////////////////////
302 /// GetArrayStringData
303 /// Function to get string data in _CWORD77_ map
305 /// \param [in] TableType
306 /// ETableType - Table Type (Request or Response)
307 /// \param [in] VarName
309 /// \param [out] DataValue
310 /// string [] - Array of strings
311 /// \param [out] Size
312 /// UI_32 - No of elements in Array
316 ////////////////////////////////////////////////////////////////////////////////////////////
317 void GetArrayStringData(ETableType TableType, UI_32 VarName, std::string DataValue[], UI_32 &size); // NOLINT (readability/nolint)
319 ////////////////////////////////////////////////////////////////////////////////////////////
320 /// GetNoofElementsofData
321 /// Function to get Number of elements in data item
323 /// \param [in] TableType
324 /// ETableType - Table Type (Request or Response)
325 /// \param [in] VarName
329 /// \return UI_32 - Number of elements
331 ////////////////////////////////////////////////////////////////////////////////////////////
332 UI_32 GetNoofElementsofData(ETableType TableType, UI_32 Key);
333 ////////////////////////////////////////////////////////////////////////////////////////////
335 /// Function to get data type of given key Name
337 /// \param [in] TableType
338 /// ETableType - Table Type (Request or Response)
339 /// \param [in] VarName
343 /// \return EDataType - Data type of variable
345 ////////////////////////////////////////////////////////////////////////////////////////////
347 EDataType GetDataType(ETableType TableType, UI_32 Key);
350 ////////////////////////////////////////////////////////////////////////////////////////////
351 /// C_CWORD77_DataPool
352 /// Constructor for C_CWORD77_DataPool
356 ////////////////////////////////////////////////////////////////////////////////////////////
357 C_CWORD77_DataPool();
358 ////////////////////////////////////////////////////////////////////////////////////////////
359 /// ~C_CWORD77_DataPool
360 /// Destructor for C_CWORD77_DataPool
364 ////////////////////////////////////////////////////////////////////////////////////////////
365 ~C_CWORD77_DataPool();
366 ////////////////////////////////////////////////////////////////////////////////////////////
368 /// API to get single instance of C_CWORD77_DataPool
370 /// \return Pointer to single instance of C_CWORD77_Controller
372 ////////////////////////////////////////////////////////////////////////////////////////////
373 static C_CWORD77_DataPool *GetInstance();
374 ////////////////////////////////////////////////////////////////////////////////////////////
376 /// API to delete single instance of C_CWORD77_DataPool
380 ////////////////////////////////////////////////////////////////////////////////////////////
381 static void DeleteInstance();
383 ////////////////////////////////////////////////////////////////////////////////////////////
384 /// SetRequestArrayData
385 /// Templatized Function to set array data into Request _CWORD77_ Data base
387 /// \param [in] VarName
389 /// \param [in] DataType
390 /// EDataType - Data Type of key
391 /// \param [in] Array
392 /// T * - Pointer to an array of given type
393 /// \param [in] ArraySize
394 /// UI_32 - No of elements of Array
398 ////////////////////////////////////////////////////////////////////////////////////////////
400 void SetReqArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) {
401 SetData<T>(REQUEST_TABLE, VarName, DataType, Array, ArraySize);
403 ////////////////////////////////////////////////////////////////////////////////////////////
404 /// SetRequestArrayData
405 /// Templatized Function to set array data into Response _CWORD77_ Data base
407 /// \param [in] VarName
409 /// \param [in] DataType
410 /// EDataType - Data Type of key
411 /// \param [in] Array
412 /// T * - Pointer to an array of given type
413 /// \param [in] ArraySize
414 /// UI_32 - No of elements of Array
418 ////////////////////////////////////////////////////////////////////////////////////////////
420 void SetRespArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) {
421 SetData<T>(RESPONSE_TABLE, VarName, DataType, Array, ArraySize);
423 ////////////////////////////////////////////////////////////////////////////////////////////
424 /// GetRequestArrayData
425 /// Templatized Function to get array data from Request _CWORD77_ Data base
427 /// \param [in] VarName
429 /// \param [out] Array
430 /// T * - Pointer to an array of given type
431 /// \param [out] ArraySize
432 /// UI_32 - No of elements of Array
436 ////////////////////////////////////////////////////////////////////////////////////////////
438 void GetReqArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint)
439 GetData<T>(REQUEST_TABLE, VarName, Array, ArraySize);
441 ////////////////////////////////////////////////////////////////////////////////////////////
442 /// GetRequestArrayData
443 /// Templatized Function to get array data from Response _CWORD77_ Data base
445 /// \param [in] VarName
447 /// \param [out] Array
448 /// T * - Pointer to an array of given type
449 /// \param [out] ArraySize
450 /// UI_32 - No of elements of Array
454 ////////////////////////////////////////////////////////////////////////////////////////////
456 void GetRespArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint)
457 GetData<T>(RESPONSE_TABLE, VarName, Array, ArraySize);
460 ////////////////////////////////////////////////////////////////////////////////////////////
462 /// Templatized Function to set data into Request _CWORD77_ Data base
464 /// \param [in] VarName
466 /// \param [in] DataType
467 /// EDataType - Data Type of key
468 /// \param [in] Array
469 /// T - Data type of key
473 ////////////////////////////////////////////////////////////////////////////////////////////
475 void SetReqData(UI_32 VarName, EDataType DataType, T Array) {
476 SetData<T>(REQUEST_TABLE, VarName, DataType, &Array, 1);
478 ////////////////////////////////////////////////////////////////////////////////////////////
480 /// Templatized Function to set data into Response _CWORD77_ Data base
482 /// \param [in] VarName
484 /// \param [in] DataType
485 /// EDataType - Data Type of key
486 /// \param [in] Array
487 /// T - Data type of key
491 ////////////////////////////////////////////////////////////////////////////////////////////
493 void SetRespData(UI_32 VarName, EDataType DataType, T Array) {
494 SetData<T>(RESPONSE_TABLE, VarName, DataType, &Array, 1);
496 ////////////////////////////////////////////////////////////////////////////////////////////
498 /// Templatized Function to get data from Resquest _CWORD77_ Data base
500 /// \param [in] VarName
503 /// \return T - value belong to type T
505 ////////////////////////////////////////////////////////////////////////////////////////////
507 T GetReqData(UI_32 VarName) {
510 GetData<T>(REQUEST_TABLE, VarName, &Data, ArraySize);
513 ////////////////////////////////////////////////////////////////////////////////////////////
515 /// Templatized Function to get data from Response _CWORD77_ Data base
517 /// \param [in] VarName
520 /// \return T - value belong to type T
522 ////////////////////////////////////////////////////////////////////////////////////////////
524 T GetRespData(UI_32 VarName) {
527 GetData<T>(RESPONSE_TABLE, VarName, &Data, ArraySize);
531 ////////////////////////////////////////////////////////////////////////////////////////////
532 /// SetRequestArrayStringData
533 /// API to set array of string data into Request _CWORD77_ Data base
535 /// \param [in] VarName
537 /// \param [in] DataType
538 /// EDataType - Data Type of key
539 /// \param [in] DataValue
540 /// string [] - array of strings
541 /// \param [in] ArraySize
542 /// UI_32 - No of elements of Array
546 ////////////////////////////////////////////////////////////////////////////////////////////
548 void SetReqArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size) {
549 SetArrayStringData(REQUEST_TABLE, VarName, VarType, DataValue, size);
551 ////////////////////////////////////////////////////////////////////////////////////////////
552 /// SetRequestArrayStringData
553 /// API to set array of string data into Response _CWORD77_ Data base
555 /// \param [in] VarName
557 /// \param [in] DataType
558 /// EDataType - Data Type of key
559 /// \param [in] DataValue
560 /// string [] - array of strings
561 /// \param [in] ArraySize
562 /// UI_32 - No of elements of Array
566 ////////////////////////////////////////////////////////////////////////////////////////////
567 void SetRespArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size) {
568 SetArrayStringData(RESPONSE_TABLE, VarName, VarType, DataValue, size);
570 ////////////////////////////////////////////////////////////////////////////////////////////
571 /// GetRequestArrayStringData
572 /// API to get array of string data from Request _CWORD77_ Data base
574 /// \param [in] VarName
576 /// \param [out] DataValue
577 /// string [] - array of strings
578 /// \param [out] ArraySize
579 /// UI_32 - No of elements of Array
583 ////////////////////////////////////////////////////////////////////////////////////////////
585 void GetReqArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size) { // NOLINT (readability/nolint)
586 GetArrayStringData(REQUEST_TABLE, VarName, DataValue, size);
589 ////////////////////////////////////////////////////////////////////////////////////////////
590 /// GetResponseArrayStringData
591 /// API to get array of string data from Response _CWORD77_ Data base
593 /// \param [in] VarName
595 /// \param [out] DataValue
596 /// string [] - array of strings
597 /// \param [out] ArraySize
598 /// UI_32 - No of elements of Array
602 ////////////////////////////////////////////////////////////////////////////////////////////
603 void GetRespArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size) { // NOLINT (readability/nolint)
604 GetArrayStringData(RESPONSE_TABLE, VarName, DataValue, size);
608 ////////////////////////////////////////////////////////////////////////////////////////////
609 /// SetRequestStringData
610 /// API to set string data into Request _CWORD77_ Data base
612 /// \param [in] VarName
614 /// \param [in] DataType
615 /// EDataType - Data Type of key
616 /// \param [in] DataValue
617 /// string [] - array of strings
621 ////////////////////////////////////////////////////////////////////////////////////////////
622 void SetReqStringData(UI_32 VarName, EDataType VarType, std::string DataValue) {
624 SetArrayStringData(REQUEST_TABLE, VarName, VarType, &DataValue, size);
626 ////////////////////////////////////////////////////////////////////////////////////////////
627 /// SetResponseStringData
628 /// API to set string data into Response _CWORD77_ Data base
630 /// \param [in] VarName
632 /// \param [in] DataType
633 /// EDataType - Data Type of key
634 /// \param [in] DataValue
635 /// string [] - array of strings
639 ////////////////////////////////////////////////////////////////////////////////////////////
640 void SetRespStringData(UI_32 VarName, EDataType VarType, std::string DataValue) {
642 SetArrayStringData(RESPONSE_TABLE, VarName, VarType, &DataValue, size);
644 ////////////////////////////////////////////////////////////////////////////////////////////
645 /// GetRequestStringData
646 /// API to get string data from Request _CWORD77_ Data base
648 /// \param [in] VarName
651 /// \return string - value of data
653 ////////////////////////////////////////////////////////////////////////////////////////////
654 std::string GetReqStringData(UI_32 VarName) {
656 std::string DataValue = "";
657 GetArrayStringData(REQUEST_TABLE, VarName, &DataValue, size);
661 ////////////////////////////////////////////////////////////////////////////////////////////
662 /// GetNoofElementsFromRequestTable
663 /// API to get No of elements in a key from request data base
665 /// \param [in] VarName
668 /// \return UI_32 - No of elements
670 ////////////////////////////////////////////////////////////////////////////////////////////
671 UI_32 GetReqDataSize(UI_32 Key) {
672 return GetNoofElementsofData(REQUEST_TABLE, Key);
674 ////////////////////////////////////////////////////////////////////////////////////////////
675 /// GetNoofElementsFromResponseTable
676 /// API to get No of elements in a key from response data base
678 /// \param [in] VarName
681 /// \return UI_32 - No of elements
683 ////////////////////////////////////////////////////////////////////////////////////////////
685 UI_32 GetRespDataSize(UI_32 Key) {
686 return GetNoofElementsofData(RESPONSE_TABLE, Key);
688 ////////////////////////////////////////////////////////////////////////////////////////////
689 /// GetDataTypeFromRequestTable
690 /// API to get data type of key from request data base
692 /// \param [in] VarName
695 /// \return EDataType - Data type of key
697 ////////////////////////////////////////////////////////////////////////////////////////////
699 EDataType GetReqDataType(UI_32 Key) {
700 return GetDataType(REQUEST_TABLE, Key);
702 ////////////////////////////////////////////////////////////////////////////////////////////
703 /// GetDataTypeFromResponseTable
704 /// API to get data type of key from response data base
706 /// \param [in] VarName
709 /// \return EDataType - Data type of key
711 ////////////////////////////////////////////////////////////////////////////////////////////
712 EDataType GetRespDataType(UI_32 Key) {
713 return GetDataType(RESPONSE_TABLE, Key);
717 extern C_CWORD77_DataPool g__CWORD77_DataPool;
720 ////////////////////////////////////////////////////////////////////////////////////////////
721 /// SetRequestArrayData
722 /// Templatized Function to set array data into Response _CWORD77_ Data base
724 /// \param [in] VarName
726 /// \param [in] DataType
727 /// EDataType - Data Type of key
728 /// \param [in] Array
729 /// T * - Pointer to an array of given type
730 /// \param [in] ArraySize
731 /// UI_32 - No of elements of Array
735 ////////////////////////////////////////////////////////////////////////////////////////////
737 void SetRequestArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) {
738 g__CWORD77_DataPool.SetReqArrayData(VarName, DataType, Array, ArraySize);
742 ////////////////////////////////////////////////////////////////////////////////////////////
743 /// SetRequestArrayData
744 /// Templatized Function to set array data into Response _CWORD77_ Data base
746 /// \param [in] VarName
748 /// \param [in] DataType
749 /// EDataType - Data Type of key
750 /// \param [in] Array
751 /// T * - Pointer to an array of given type
752 /// \param [in] ArraySize
753 /// UI_32 - No of elements of Array
757 ////////////////////////////////////////////////////////////////////////////////////////////
759 void SetResponseArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) {
760 g__CWORD77_DataPool.SetRespArrayData<T>(VarName, DataType, Array, ArraySize);
762 ////////////////////////////////////////////////////////////////////////////////////////////
763 /// GetRequestArrayData
764 /// Templatized Function to get array data from Request _CWORD77_ Data base
766 /// \param [in] VarName
768 /// \param [out] Array
769 /// T * - Pointer to an array of given type
770 /// \param [out] ArraySize
771 /// UI_32 - No of elements of Array
775 ////////////////////////////////////////////////////////////////////////////////////////////
777 void GetRequestArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint)
778 g__CWORD77_DataPool.GetReqArrayData<T>(VarName, Array, ArraySize);
780 ////////////////////////////////////////////////////////////////////////////////////////////
781 /// GetRequestArrayData
782 /// Templatized Function to get array data from Response _CWORD77_ Data base
784 /// \param [in] VarName
786 /// \param [out] Array
787 /// T * - Pointer to an array of given type
788 /// \param [out] ArraySize
789 /// UI_32 - No of elements of Array
793 ////////////////////////////////////////////////////////////////////////////////////////////
795 void GetResponseArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint)
796 g__CWORD77_DataPool.GetRespArrayData<T>(VarName, Array, ArraySize);
799 ////////////////////////////////////////////////////////////////////////////////////////////
801 /// Templatized Function to set data into Request _CWORD77_ Data base
803 /// \param [in] VarName
805 /// \param [in] DataType
806 /// EDataType - Data Type of key
807 /// \param [in] Array
808 /// T - Data type of key
812 ////////////////////////////////////////////////////////////////////////////////////////////
814 void SetRequestData(UI_32 VarName, EDataType DataType, T Array) {
815 g__CWORD77_DataPool.SetReqData<T>(VarName, DataType, Array);
817 ////////////////////////////////////////////////////////////////////////////////////////////
819 /// Templatized Function to set data into Response _CWORD77_ Data base
821 /// \param [in] VarName
823 /// \param [in] DataType
824 /// EDataType - Data Type of key
825 /// \param [in] Array
826 /// T - Data type of key
830 ////////////////////////////////////////////////////////////////////////////////////////////
832 void SetResponseData(UI_32 VarName, EDataType DataType, T Array) {
833 g__CWORD77_DataPool.SetRespData<T>(VarName, DataType, Array);
835 ////////////////////////////////////////////////////////////////////////////////////////////
837 /// Templatized Function to get data from Resquest _CWORD77_ Data base
839 /// \param [in] VarName
842 /// \return T - value belong to type T
844 ////////////////////////////////////////////////////////////////////////////////////////////
846 T GetRequestData(UI_32 VarName) {
847 return g__CWORD77_DataPool.GetReqData<T>(VarName);
849 ////////////////////////////////////////////////////////////////////////////////////////////
851 /// Templatized Function to get data from Response _CWORD77_ Data base
853 /// \param [in] VarName
856 /// \return T - value belong to type T
858 ////////////////////////////////////////////////////////////////////////////////////////////
860 T GetResponseData(UI_32 VarName) {
861 return g__CWORD77_DataPool.GetRespData<T>(VarName);
864 ////////////////////////////////////////////////////////////////////////////////////////////
865 /// SetRequestArrayStringData
866 /// API to set array of string data into Request _CWORD77_ Data base
868 /// \param [in] VarName
870 /// \param [in] DataType
871 /// EDataType - Data Type of key
872 /// \param [in] DataValue
873 /// string [] - array of strings
874 /// \param [in] ArraySize
875 /// UI_32 - No of elements of Array
879 ////////////////////////////////////////////////////////////////////////////////////////////
881 void SetRequestArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size);
884 ////////////////////////////////////////////////////////////////////////////////////////////
885 /// SetRequestArrayStringData
886 /// API to set array of string data into Response _CWORD77_ Data base
888 /// \param [in] VarName
890 /// \param [in] DataType
891 /// EDataType - Data Type of key
892 /// \param [in] DataValue
893 /// string [] - array of strings
894 /// \param [in] ArraySize
895 /// UI_32 - No of elements of Array
899 ////////////////////////////////////////////////////////////////////////////////////////////
900 void SetResponseArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size);
902 ////////////////////////////////////////////////////////////////////////////////////////////
903 /// GetRequestArrayStringData
904 /// API to get array of string data from Request _CWORD77_ Data base
906 /// \param [in] VarName
908 /// \param [out] DataValue
909 /// string [] - array of strings
910 /// \param [out] ArraySize
911 /// UI_32 - No of elements of Array
915 ////////////////////////////////////////////////////////////////////////////////////////////
917 void GetRequestArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size); // NOLINT (readability/nolint)
920 ////////////////////////////////////////////////////////////////////////////////////////////
921 /// GetResponseArrayStringData
922 /// API to get array of string data from Response _CWORD77_ Data base
924 /// \param [in] VarName
926 /// \param [out] DataValue
927 /// string [] - array of strings
928 /// \param [out] ArraySize
929 /// UI_32 - No of elements of Array
933 ////////////////////////////////////////////////////////////////////////////////////////////
934 void GetResponseArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size); // NOLINT (readability/nolint)
937 ////////////////////////////////////////////////////////////////////////////////////////////
938 /// SetRequestStringData
939 /// API to set string data into Request _CWORD77_ Data base
941 /// \param [in] VarName
943 /// \param [in] DataType
944 /// EDataType - Data Type of key
945 /// \param [in] DataValue
946 /// string [] - array of strings
950 ////////////////////////////////////////////////////////////////////////////////////////////
951 void SetRequestStringData(UI_32 VarName, EDataType VarType, std::string DataValue);
953 ////////////////////////////////////////////////////////////////////////////////////////////
954 /// SetResponseStringData
955 /// API to set string data into Response _CWORD77_ Data base
957 /// \param [in] VarName
959 /// \param [in] DataType
960 /// EDataType - Data Type of key
961 /// \param [in] DataValue
962 /// string [] - array of strings
966 ////////////////////////////////////////////////////////////////////////////////////////////
967 void SetResponseStringData(UI_32 VarName, EDataType VarType, std::string DataValue);
969 ////////////////////////////////////////////////////////////////////////////////////////////
970 /// GetRequestStringData
971 /// API to get string data from Request _CWORD77_ Data base
973 /// \param [in] VarName
976 /// \return string - value of data
978 ////////////////////////////////////////////////////////////////////////////////////////////
979 std::string GetRequestStringData(UI_32 VarName);
981 ////////////////////////////////////////////////////////////////////////////////////////////
982 /// GetRequestDataLength
983 /// API to get No of elements in a key from request data base
985 /// \param [in] VarName
988 /// \return UI_32 - No of elements
990 ////////////////////////////////////////////////////////////////////////////////////////////
991 UI_32 GetRequestDataLength(UI_32 Key);
993 ////////////////////////////////////////////////////////////////////////////////////////////
994 /// GetResponseDataLength
995 /// API to get No of elements in a key from response data base
997 /// \param [in] VarName
1000 /// \return UI_32 - No of elements
1002 ////////////////////////////////////////////////////////////////////////////////////////////
1004 UI_32 GetResponseDataLength(UI_32 Key);
1006 ////////////////////////////////////////////////////////////////////////////////////////////
1007 /// GetDataTypeFromRequestTable
1008 /// API to get data type of key from request data base
1010 /// \param [in] VarName
1013 /// \return EDataType - Data type of key
1015 ////////////////////////////////////////////////////////////////////////////////////////////
1017 EDataType GetRequestDataType(UI_32 Key);
1019 ////////////////////////////////////////////////////////////////////////////////////////////
1020 /// GetDataTypeFromResponseTable
1021 /// API to get data type of key from response data base
1023 /// \param [in] VarName
1026 /// \return EDataType - Data type of key
1028 ////////////////////////////////////////////////////////////////////////////////////////////
1029 EDataType GetResponseDataType(UI_32 Key);
1033 class C_CWORD77_Data {
1035 T_CWORD77_DataPool m__CWORD77_RequestDataTable; ///< Request Data Table
1036 T_CWORD77_DataPool m__CWORD77_ResponseDataTable; ///< Response Data Table
1038 // Original data pool
1039 // Depricated. Remove once all modules migrates to new API's for accessing data pool
1040 std::map< UI_32, std::vector<CHAR> > m__CWORD77_RequestDataTableOrig; ///< Request Data Table
1041 std::map< UI_32, std::vector<CHAR> > m__CWORD77_ResponseDataTableOrig; ///< Response Data Table
1043 static C_CWORD77_Data *m_p_CWORD77_DataInstance; /// instance to C_CWORD77_Data
1046 ////////////////////////////////////////////////////////////////////////////////////////////
1048 /// Constructor for C_CWORD77_Data
1052 ////////////////////////////////////////////////////////////////////////////////////////////
1054 ////////////////////////////////////////////////////////////////////////////////////////////
1056 /// Destructor for C_CWORD77_Data
1060 ////////////////////////////////////////////////////////////////////////////////////////////
1062 ////////////////////////////////////////////////////////////////////////////////////////////
1064 /// API to get single instance of C_CWORD77_Data
1066 /// \return Pointer to single instance of C_CWORD77_Data
1068 ////////////////////////////////////////////////////////////////////////////////////////////
1069 static C_CWORD77_Data *GetInstance();
1070 ////////////////////////////////////////////////////////////////////////////////////////////
1072 /// API to delete single instance of C_CWORD77_DataPool
1076 ////////////////////////////////////////////////////////////////////////////////////////////
1077 static void DeleteInstance();
1078 ////////////////////////////////////////////////////////////////////////////////////////////
1079 /// SetReqDataIn_CWORD77_DataPool
1080 /// API to set data associated with request into _CWORD77_ Data Pool
1082 /// \param [in] f_DataPoolKey
1083 /// _CWORD77_DataPoolKey - Data pool key
1084 /// \param [in] f_uiSize
1085 /// UI_32 - size of the data
1086 /// \param [in] f_pData
1087 /// PVOID - void pointer to data
1089 /// \return VOID - None
1091 ////////////////////////////////////////////////////////////////////////////////////////////
1092 VOID SetRequData(const _CWORD77_DataPoolKey &f_DataPoolKey, UI_32 f_uiSize, PVOID f_pData); // NOLINT (readability/nolint)
1094 ////////////////////////////////////////////////////////////////////////////////////////////
1095 /// SetReqDataIn_CWORD77_DataPool
1096 /// API to set data associated with request into _CWORD77_ Data Pool
1097 /// Depricated. Do not use.
1099 /// \param [in] f_uiMsgId
1101 /// \param [in] f_uiSize
1102 /// UI_32 - size of the data
1103 /// \param [in] f_pData
1104 /// PVOID - void pointer to data
1106 /// \return VOID - None
1108 ////////////////////////////////////////////////////////////////////////////////////////////
1109 VOID SetRequData(UI_32 f_uiMsgId, UI_32 f_uiSize, PVOID f_pData);
1110 ////////////////////////////////////////////////////////////////////////////////////////////
1111 /// SetRespDataIn_CWORD77_DataPool
1112 /// API to set data associated with response into _CWORD77_ Data Pool
1114 /// \param [in] f_DataPoolKey
1115 /// _CWORD77_DataPoolKey - Data pool key
1116 /// \param [in] f_uiSize
1117 /// UI_32 - size of the data
1118 /// \param [in] f_pData
1119 /// PVOID - void pointer to data
1121 /// \return VOID - None
1123 ////////////////////////////////////////////////////////////////////////////////////////////
1124 VOID SetRespoData(const _CWORD77_DataPoolKey &f_DataPoolKey, // NOLINT (readability/nolint)
1125 UI_32 f_uiSize, const PVOID f_pData);
1127 ////////////////////////////////////////////////////////////////////////////////////////////
1128 /// SetRespDataIn_CWORD77_DataPool
1129 /// API to set data associated with response into _CWORD77_ Data Pool
1130 /// Depricated. Do not use.
1132 /// \param [in] f_uiMsgId
1134 /// \param [in] f_uiSize
1135 /// UI_32 - size of the data
1136 /// \param [in] f_pData
1137 /// PVOID - void pointer to data
1139 /// \return VOID - None
1141 ////////////////////////////////////////////////////////////////////////////////////////////
1142 VOID SetRespoData(UI_32 f_uiMsgId, UI_32 f_uiSize, const PVOID f_pData); // NOLINT (readability/nolint)
1143 ////////////////////////////////////////////////////////////////////////////////////////////
1144 /// GetReqDataIn_CWORD77_DataPool
1145 /// API to get data associated with request from _CWORD77_ Data Pool
1147 /// \param [in] f_DataPoolKey
1148 /// _CWORD77_DataPoolKey - Data pool key
1149 /// \param [in] f_uiSize
1150 /// UI_32 - size of the data
1151 /// \param [in] f_pData
1152 /// PVOID - void pointer to data
1154 /// \return EFrameworkunifiedStatus - Succes or Error
1156 ////////////////////////////////////////////////////////////////////////////////////////////
1157 EFrameworkunifiedStatus GetRequData(const _CWORD77_DataPoolKey &f_DataPoolKey, UI_32 &f_uiSize, // NOLINT (readability/nolint)
1158 PVOID &f_pData); // NOLINT (readability/nolint)
1160 ////////////////////////////////////////////////////////////////////////////////////////////
1161 /// GetReqDataIn_CWORD77_DataPool
1162 /// API to get data associated with request from _CWORD77_ Data Pool
1163 /// Depricated. Do not use.
1165 /// \param [in] f_uiMsgId
1167 /// \param [in] f_uiSize
1168 /// UI_32 - size of the data
1169 /// \param [in] f_pData
1170 /// PVOID - void pointer to data
1172 /// \return EFrameworkunifiedStatus - Succes or Error
1174 ////////////////////////////////////////////////////////////////////////////////////////////
1175 EFrameworkunifiedStatus GetRequData(UI_32 f_uiMsgId, UI_32 &f_uiSize, PVOID &f_pData); // NOLINT (readability/nolint)
1176 ////////////////////////////////////////////////////////////////////////////////////////////
1177 /// GetRespDataFrom_CWORD77_DataPool
1178 /// API to get data associated with response from _CWORD77_ Data Pool
1180 /// \param [in] f_DataPoolKey
1181 /// _CWORD77_DataPoolKey - Data pool key
1182 /// \param [in] f_uiSize
1183 /// UI_32 - size of the data
1184 /// \param [in] f_pData
1185 /// PVOID - void pointer to data
1187 /// \return EFrameworkunifiedStatus - Succes or Error
1189 ////////////////////////////////////////////////////////////////////////////////////////////
1190 EFrameworkunifiedStatus GetRespoData(const _CWORD77_DataPoolKey &f_DataPoolKey, // NOLINT (readability/nolint)
1191 UI_32 &f_uiSize, // NOLINT (readability/nolint)
1192 PVOID &f_pData); // NOLINT (readability/nolint)
1194 ////////////////////////////////////////////////////////////////////////////////////////////
1195 /// GetRespDataFrom_CWORD77_DataPool
1196 /// API to get data associated with response from _CWORD77_ Data Pool
1197 /// Depricated. Do not use.
1199 /// \param [in] f_uiMsgId
1201 /// \param [in] f_uiSize
1202 /// UI_32 - size of the data
1203 /// \param [in] f_pData
1204 /// PVOID - void pointer to data
1206 /// \return EFrameworkunifiedStatus - Succes or Error
1208 ////////////////////////////////////////////////////////////////////////////////////////////
1209 EFrameworkunifiedStatus GetRespoData(UI_32 f_uiMsgId, UI_32 &f_uiSize, PVOID &f_pData); // NOLINT (readability/nolint)
1212 #endif /* _CWORD77__DATA_POOL_TABLE_H_ */ // NOLINT (build/header_guard)