X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=service%2Fnative%2Fframework_unified%2Fclient%2Finclude%2Fnative_service%2Fns__CWORD77__data_pool_table.h;fp=service%2Fnative%2Fframework_unified%2Fclient%2Finclude%2Fnative_service%2Fns__CWORD77__data_pool_table.h;h=73f6a2034634d46db158c79cedec9ae2b3dcb4b5;hb=17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d;hp=0000000000000000000000000000000000000000;hpb=9e86046cdb356913ae026f616e5bf17f6f238aa5;p=staging%2Fbasesystem.git diff --git a/service/native/framework_unified/client/include/native_service/ns__CWORD77__data_pool_table.h b/service/native/framework_unified/client/include/native_service/ns__CWORD77__data_pool_table.h new file mode 100755 index 0000000..73f6a20 --- /dev/null +++ b/service/native/framework_unified/client/include/native_service/ns__CWORD77__data_pool_table.h @@ -0,0 +1,1217 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup tag_HMI_CWORD77_Controller +/// \brief +/// +//////////////////////////////////////////////////////////////////////////////// +//@{ +/** + * @file ns__CWORD77__data_pool_table.h + * @brief \~english This file provides API for convert and C_CWORD77_DataPool class + * + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup native_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup framework_unified + * @ingroup native_service + * @{ + */ +/** @addtogroup _CWORD77_ + * @ingroup framework_unified + * @{ + */ +#ifndef _CWORD77__DATA_POOL_TABLE_H_ // NOLINT (build/header_guard) +#define _CWORD77__DATA_POOL_TABLE_H_ + +#include +#include +#include +#include +#include + +/// Enumeration for Type of Table +typedef enum _ETableType { + REQUEST_TABLE = 1, + RESPONSE_TABLE +} ETableType, *PETableType; + +/// Enumeration for Data Type +typedef enum _EDataType { + UNKNOWNTYPE = -1, + SIGNEDINT, + UNSIGNEDINT, + FLOAT, + DOUBLE, + CHARACTER, + BOOLEAN, + STRING, +} EDataType, *PEDataType; + +/// _CWORD77_ Data structure +typedef struct __CWORD77_Data { + EDataType DataType; + std::string DataValue; +} _CWORD77_Data, *P_CWORD77_Data; + +typedef std::map< _CWORD77_DataPoolKey, std::vector< CHAR > > T_CWORD77_DataPool; + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// NoOfElementsinData +/// Function to get number of elements for given string +/// +/// \param [in] Input +/// string - string +/// +/// \return UI_32 - Number of elements +/// +//////////////////////////////////////////////////////////////////////////////////////////// +UI_32 NoOfElementsinData(std::string Input); + +/// Template to Convert Number to String + +template +std::string NumberToString(T Number) { + std::ostringstream ss; + ss << Number; + return ss.str(); +} + +/// Template to convert String to Number + +template +T StringToNumber(const std::string &Text) { + std::istringstream ss(Text); + T result; + ss >> result; + return result; +} + +/// Template to Convert an Array To String + +template +std::string ConvertArrayToString(T *Array, int Arraysize) { + int length = 0; + std::string Result = ""; + while (length < Arraysize) { + Result.append(NumberToString(Array[length])); + Result.append(","); + length++; + } + Result.append(""); + return Result; +} + +/// Template to Convert String To Array +template +void ConvertStringToArray(std::string Input, std::vector &Array, UI_32 &Arraysize) { // NOLINT (readability/nolint) + int i = 0; + std::string first = ""; + std::istringstream ss(Input); + int Size = NoOfElementsinData(Input); + // T Arr[Size]; + while (!ss.eof()) { + getline(ss, first, ','); + if (first != "") { + Array[i] = StringToNumber(first); + i++; + } + } + Arraysize = i; + // memcpy(Array,(void *)Arr,Arraysize*sizeof(T)); +} + +//////////////////////////////////////////////////////////////////////////////////////////// +/// ConvertArrayStringsToString +/// Function to convert array of strings to string +/// +/// \param [in] strArr +/// string * - pointer to array of strings +/// \param [in] Size +/// SI_32 - Number of strings +/// +/// \return string +/// +//////////////////////////////////////////////////////////////////////////////////////////// +std::string ConvertArrayStringsToString(std::string *strArr, SI_32 Size); + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// ConvertArrayStringsToString +/// Function to convert string to array of strings +/// +/// \param [in] Input +/// string - string contains array of strings +/// \param [out] strArr +/// string * - Pointer to Array of strings +/// \param [out] ArraySize +/// UI_32 - No of elements in Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +void ConvertStringToArrString(std::string Input, std::string *strArr, UI_32 &ArraySize); // NOLINT (readability/nolint) + +/////////////////////////////////////////////////////////////////////////// +/// class: C_CWORD77_DataPool +/// Description: This is interface class to _CWORD77_ Data base. +/// It provides APIs to set and get data from _CWORD77_ Data base +/// +//////////////////////////////////////////////////////////////////////////// +class C_CWORD77_DataPool { + private: + std::map m__CWORD77_DataRequestTable; ///< Request Data Table + std::map m__CWORD77_DataResponseTable; ///< Response Data Table + + static C_CWORD77_DataPool *m_p_CWORD77_DataPoolInstance; ///< Static instance to C_CWORD77_DataPool + + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetData + /// Templatized Function to get data from _CWORD77_ Data base + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// string - Variable Name or key value + /// \param [out] Array + /// T * - Pointer to an array of given type + /// \param [out] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + + template + void GetData(ETableType TableType, UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint) + EDataType DataType = SIGNEDINT; + std::string DataValue; + GetValueFromMap(TableType, VarName, DataType, DataValue); + UI_32 Num = NoOfElementsinData(DataValue); + std::vector Temp; + Temp.resize(Num); + ConvertStringToArray(DataValue, Temp, ArraySize); + for (unsigned int i = 0; i < Num; i++) { + Array[i] = Temp[i]; + } + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetData + /// Templatized Function to set data into _CWORD77_ Data base + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// string - Variable Name or key value + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] Array + /// T * - Pointer to an array of given type + /// \param [in] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + void SetData(ETableType TableType, UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) { + std::string Result = ConvertArrayToString(Array, ArraySize); + SetValueinMap(TableType, VarName, DataType, Result); + } + + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetValueFromMap + /// Function to get data from _CWORD77_ map + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// string - Variable Name or key value + /// \param [out] DataType + /// EDataType - Data Type of key + /// \param [out] Strvalue + /// string - Output in the form of string + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void GetValueFromMap(ETableType TableType, UI_32 VarName, EDataType &DataType, std::string &Strvalue); // NOLINT (readability/nolint) + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetValueinMap + /// Function to set data in _CWORD77_ map + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// string - Variable Name or key value + /// \param [in] VarType + /// EDataType - Data Type of key + /// \param [in] Result + /// string - input in the form of string + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void SetValueinMap(ETableType TableType, UI_32 VarName, EDataType VarType, std::string Result); + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetArrayStringData + /// Function to set string data in _CWORD77_ map + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// string - Variable Name or key value + /// \param [in] VarType + /// EDataType - Data Type of key + /// \param [in] DataValue + /// string [] - Array of strings + /// \param [in] Size + /// UI_32 - No of elements in Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void SetArrayStringData(ETableType TableType, + UI_32 VarName, + EDataType VarType, + std::string DataValue[], + UI_32 size); + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetArrayStringData + /// Function to get string data in _CWORD77_ map + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// UI_32 - key + /// \param [out] DataValue + /// string [] - Array of strings + /// \param [out] Size + /// UI_32 - No of elements in Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void GetArrayStringData(ETableType TableType, UI_32 VarName, std::string DataValue[], UI_32 &size); // NOLINT (readability/nolint) + + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetNoofElementsofData + /// Function to get Number of elements in data item + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// UI_32 - key + + /// + /// \return UI_32 - Number of elements + /// + //////////////////////////////////////////////////////////////////////////////////////////// + UI_32 GetNoofElementsofData(ETableType TableType, UI_32 Key); + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetDataType + /// Function to get data type of given key Name + /// + /// \param [in] TableType + /// ETableType - Table Type (Request or Response) + /// \param [in] VarName + /// UI_32 - key + + /// + /// \return EDataType - Data type of variable + /// + //////////////////////////////////////////////////////////////////////////////////////////// + + EDataType GetDataType(ETableType TableType, UI_32 Key); + + public: + //////////////////////////////////////////////////////////////////////////////////////////// + /// C_CWORD77_DataPool + /// Constructor for C_CWORD77_DataPool + /// \param None + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + C_CWORD77_DataPool(); + //////////////////////////////////////////////////////////////////////////////////////////// + /// ~C_CWORD77_DataPool + /// Destructor for C_CWORD77_DataPool + /// \param None + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + ~C_CWORD77_DataPool(); + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetInstance + /// API to get single instance of C_CWORD77_DataPool + /// \param None + /// \return Pointer to single instance of C_CWORD77_Controller + /// + //////////////////////////////////////////////////////////////////////////////////////////// + static C_CWORD77_DataPool *GetInstance(); + //////////////////////////////////////////////////////////////////////////////////////////// + /// DeleteInstance + /// API to delete single instance of C_CWORD77_DataPool + /// \param None + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + static void DeleteInstance(); + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRequestArrayData + /// Templatized Function to set array data into Request _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] Array + /// T * - Pointer to an array of given type + /// \param [in] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + void SetReqArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) { + SetData(REQUEST_TABLE, VarName, DataType, Array, ArraySize); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRequestArrayData + /// Templatized Function to set array data into Response _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] Array + /// T * - Pointer to an array of given type + /// \param [in] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + void SetRespArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) { + SetData(RESPONSE_TABLE, VarName, DataType, Array, ArraySize); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetRequestArrayData + /// Templatized Function to get array data from Request _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [out] Array + /// T * - Pointer to an array of given type + /// \param [out] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + void GetReqArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint) + GetData(REQUEST_TABLE, VarName, Array, ArraySize); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetRequestArrayData + /// Templatized Function to get array data from Response _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [out] Array + /// T * - Pointer to an array of given type + /// \param [out] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + void GetRespArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint) + GetData(RESPONSE_TABLE, VarName, Array, ArraySize); + } + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRequestData + /// Templatized Function to set data into Request _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] Array + /// T - Data type of key + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + void SetReqData(UI_32 VarName, EDataType DataType, T Array) { + SetData(REQUEST_TABLE, VarName, DataType, &Array, 1); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRequestData + /// Templatized Function to set data into Response _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] Array + /// T - Data type of key + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + void SetRespData(UI_32 VarName, EDataType DataType, T Array) { + SetData(RESPONSE_TABLE, VarName, DataType, &Array, 1); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetRequestData + /// Templatized Function to get data from Resquest _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// + /// \return T - value belong to type T + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + T GetReqData(UI_32 VarName) { + T Data; + UI_32 ArraySize = 0; + GetData(REQUEST_TABLE, VarName, &Data, ArraySize); + return Data; + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetResponseData + /// Templatized Function to get data from Response _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// + /// \return T - value belong to type T + /// + //////////////////////////////////////////////////////////////////////////////////////////// + template + T GetRespData(UI_32 VarName) { + T Data; + UI_32 ArraySize = 0; + GetData(RESPONSE_TABLE, VarName, &Data, ArraySize); + return Data; + } + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRequestArrayStringData + /// API to set array of string data into Request _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] DataValue + /// string [] - array of strings + /// \param [in] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + + void SetReqArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size) { + SetArrayStringData(REQUEST_TABLE, VarName, VarType, DataValue, size); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRequestArrayStringData + /// API to set array of string data into Response _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] DataValue + /// string [] - array of strings + /// \param [in] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void SetRespArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size) { + SetArrayStringData(RESPONSE_TABLE, VarName, VarType, DataValue, size); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetRequestArrayStringData + /// API to get array of string data from Request _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [out] DataValue + /// string [] - array of strings + /// \param [out] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + + void GetReqArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size) { // NOLINT (readability/nolint) + GetArrayStringData(REQUEST_TABLE, VarName, DataValue, size); + } + + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetResponseArrayStringData + /// API to get array of string data from Response _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [out] DataValue + /// string [] - array of strings + /// \param [out] ArraySize + /// UI_32 - No of elements of Array + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void GetRespArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size) { // NOLINT (readability/nolint) + GetArrayStringData(RESPONSE_TABLE, VarName, DataValue, size); + } + + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRequestStringData + /// API to set string data into Request _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] DataValue + /// string [] - array of strings + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void SetReqStringData(UI_32 VarName, EDataType VarType, std::string DataValue) { + UI_32 size = 1; + SetArrayStringData(REQUEST_TABLE, VarName, VarType, &DataValue, size); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetResponseStringData + /// API to set string data into Response _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// \param [in] DataType + /// EDataType - Data Type of key + /// \param [in] DataValue + /// string [] - array of strings + /// + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + void SetRespStringData(UI_32 VarName, EDataType VarType, std::string DataValue) { + UI_32 size = 1; + SetArrayStringData(RESPONSE_TABLE, VarName, VarType, &DataValue, size); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetRequestStringData + /// API to get string data from Request _CWORD77_ Data base + /// + /// \param [in] VarName + /// UI_32 - key + /// + /// \return string - value of data + /// + //////////////////////////////////////////////////////////////////////////////////////////// + std::string GetReqStringData(UI_32 VarName) { + UI_32 size = 0; + std::string DataValue = ""; + GetArrayStringData(REQUEST_TABLE, VarName, &DataValue, size); + return DataValue; + } + + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetNoofElementsFromRequestTable + /// API to get No of elements in a key from request data base + /// + /// \param [in] VarName + /// UI_32 - key + /// + /// \return UI_32 - No of elements + /// + //////////////////////////////////////////////////////////////////////////////////////////// + UI_32 GetReqDataSize(UI_32 Key) { + return GetNoofElementsofData(REQUEST_TABLE, Key); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetNoofElementsFromResponseTable + /// API to get No of elements in a key from response data base + /// + /// \param [in] VarName + /// UI_32 - key + /// + /// \return UI_32 - No of elements + /// + //////////////////////////////////////////////////////////////////////////////////////////// + + UI_32 GetRespDataSize(UI_32 Key) { + return GetNoofElementsofData(RESPONSE_TABLE, Key); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetDataTypeFromRequestTable + /// API to get data type of key from request data base + /// + /// \param [in] VarName + /// UI_32 - key + /// + /// \return EDataType - Data type of key + /// + //////////////////////////////////////////////////////////////////////////////////////////// + + EDataType GetReqDataType(UI_32 Key) { + return GetDataType(REQUEST_TABLE, Key); + } + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetDataTypeFromResponseTable + /// API to get data type of key from response data base + /// + /// \param [in] VarName + /// UI_32 - key + /// + /// \return EDataType - Data type of key + /// + //////////////////////////////////////////////////////////////////////////////////////////// + EDataType GetRespDataType(UI_32 Key) { + return GetDataType(RESPONSE_TABLE, Key); + } +}; + +extern C_CWORD77_DataPool g__CWORD77_DataPool; + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetRequestArrayData +/// Templatized Function to set array data into Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] Array +/// T * - Pointer to an array of given type +/// \param [in] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +void SetRequestArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) { + g__CWORD77_DataPool.SetReqArrayData(VarName, DataType, Array, ArraySize); +} + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetRequestArrayData +/// Templatized Function to set array data into Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] Array +/// T * - Pointer to an array of given type +/// \param [in] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +void SetResponseArrayData(UI_32 VarName, EDataType DataType, T *Array, UI_32 ArraySize) { + g__CWORD77_DataPool.SetRespArrayData(VarName, DataType, Array, ArraySize); +} +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetRequestArrayData +/// Templatized Function to get array data from Request _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [out] Array +/// T * - Pointer to an array of given type +/// \param [out] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +void GetRequestArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint) + g__CWORD77_DataPool.GetReqArrayData(VarName, Array, ArraySize); +} +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetRequestArrayData +/// Templatized Function to get array data from Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [out] Array +/// T * - Pointer to an array of given type +/// \param [out] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +void GetResponseArrayData(UI_32 VarName, T *Array, UI_32 &ArraySize) { // NOLINT (readability/nolint) + g__CWORD77_DataPool.GetRespArrayData(VarName, Array, ArraySize); +} + +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetRequestData +/// Templatized Function to set data into Request _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] Array +/// T - Data type of key +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +void SetRequestData(UI_32 VarName, EDataType DataType, T Array) { + g__CWORD77_DataPool.SetReqData(VarName, DataType, Array); +} +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetRequestData +/// Templatized Function to set data into Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] Array +/// T - Data type of key +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +void SetResponseData(UI_32 VarName, EDataType DataType, T Array) { + g__CWORD77_DataPool.SetRespData(VarName, DataType, Array); +} +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetRequestData +/// Templatized Function to get data from Resquest _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// +/// \return T - value belong to type T +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +T GetRequestData(UI_32 VarName) { + return g__CWORD77_DataPool.GetReqData(VarName); +} +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetResponseData +/// Templatized Function to get data from Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// +/// \return T - value belong to type T +/// +//////////////////////////////////////////////////////////////////////////////////////////// +template +T GetResponseData(UI_32 VarName) { + return g__CWORD77_DataPool.GetRespData(VarName); +} + +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetRequestArrayStringData +/// API to set array of string data into Request _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] DataValue +/// string [] - array of strings +/// \param [in] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// + +void SetRequestArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size); + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetRequestArrayStringData +/// API to set array of string data into Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] DataValue +/// string [] - array of strings +/// \param [in] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +void SetResponseArrayStringData(UI_32 VarName, EDataType VarType, std::string DataValue[], UI_32 size); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetRequestArrayStringData +/// API to get array of string data from Request _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [out] DataValue +/// string [] - array of strings +/// \param [out] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// + +void GetRequestArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size); // NOLINT (readability/nolint) + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetResponseArrayStringData +/// API to get array of string data from Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [out] DataValue +/// string [] - array of strings +/// \param [out] ArraySize +/// UI_32 - No of elements of Array +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +void GetResponseArrayStringData(UI_32 VarName, std::string DataValue[], UI_32 &size); // NOLINT (readability/nolint) + + +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetRequestStringData +/// API to set string data into Request _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] DataValue +/// string [] - array of strings +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +void SetRequestStringData(UI_32 VarName, EDataType VarType, std::string DataValue); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// SetResponseStringData +/// API to set string data into Response _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// \param [in] DataType +/// EDataType - Data Type of key +/// \param [in] DataValue +/// string [] - array of strings +/// +/// \return None +/// +//////////////////////////////////////////////////////////////////////////////////////////// +void SetResponseStringData(UI_32 VarName, EDataType VarType, std::string DataValue); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetRequestStringData +/// API to get string data from Request _CWORD77_ Data base +/// +/// \param [in] VarName +/// UI_32 - key +/// +/// \return string - value of data +/// +//////////////////////////////////////////////////////////////////////////////////////////// +std::string GetRequestStringData(UI_32 VarName); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetRequestDataLength +/// API to get No of elements in a key from request data base +/// +/// \param [in] VarName +/// UI_32 - key +/// +/// \return UI_32 - No of elements +/// +//////////////////////////////////////////////////////////////////////////////////////////// +UI_32 GetRequestDataLength(UI_32 Key); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetResponseDataLength +/// API to get No of elements in a key from response data base +/// +/// \param [in] VarName +/// UI_32 - key +/// +/// \return UI_32 - No of elements +/// +//////////////////////////////////////////////////////////////////////////////////////////// + +UI_32 GetResponseDataLength(UI_32 Key); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetDataTypeFromRequestTable +/// API to get data type of key from request data base +/// +/// \param [in] VarName +/// UI_32 - key +/// +/// \return EDataType - Data type of key +/// +//////////////////////////////////////////////////////////////////////////////////////////// + +EDataType GetRequestDataType(UI_32 Key); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// GetDataTypeFromResponseTable +/// API to get data type of key from response data base +/// +/// \param [in] VarName +/// UI_32 - key +/// +/// \return EDataType - Data type of key +/// +//////////////////////////////////////////////////////////////////////////////////////////// +EDataType GetResponseDataType(UI_32 Key); + + + +class C_CWORD77_Data { + private: + T_CWORD77_DataPool m__CWORD77_RequestDataTable; ///< Request Data Table + T_CWORD77_DataPool m__CWORD77_ResponseDataTable; ///< Response Data Table + + // Original data pool + // Depricated. Remove once all modules migrates to new API's for accessing data pool + std::map< UI_32, std::vector > m__CWORD77_RequestDataTableOrig; ///< Request Data Table + std::map< UI_32, std::vector > m__CWORD77_ResponseDataTableOrig; ///< Response Data Table + + static C_CWORD77_Data *m_p_CWORD77_DataInstance; /// instance to C_CWORD77_Data + + public: + //////////////////////////////////////////////////////////////////////////////////////////// + /// C_CWORD77_Data + /// Constructor for C_CWORD77_Data + /// \param None + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + C_CWORD77_Data(); + //////////////////////////////////////////////////////////////////////////////////////////// + /// C_CWORD77_Data + /// Destructor for C_CWORD77_Data + /// \param None + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + ~C_CWORD77_Data(); + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetInstance + /// API to get single instance of C_CWORD77_Data + /// \param None + /// \return Pointer to single instance of C_CWORD77_Data + /// + //////////////////////////////////////////////////////////////////////////////////////////// + static C_CWORD77_Data *GetInstance(); + //////////////////////////////////////////////////////////////////////////////////////////// + /// DeleteInstance + /// API to delete single instance of C_CWORD77_DataPool + /// \param None + /// \return None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + static void DeleteInstance(); + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetReqDataIn_CWORD77_DataPool + /// API to set data associated with request into _CWORD77_ Data Pool + /// + /// \param [in] f_DataPoolKey + /// _CWORD77_DataPoolKey - Data pool key + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return VOID - None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + VOID SetRequData(const _CWORD77_DataPoolKey &f_DataPoolKey, UI_32 f_uiSize, PVOID f_pData); // NOLINT (readability/nolint) + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetReqDataIn_CWORD77_DataPool + /// API to set data associated with request into _CWORD77_ Data Pool + /// Depricated. Do not use. + /// + /// \param [in] f_uiMsgId + /// UI_32 - MsgId + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return VOID - None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + VOID SetRequData(UI_32 f_uiMsgId, UI_32 f_uiSize, PVOID f_pData); + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRespDataIn_CWORD77_DataPool + /// API to set data associated with response into _CWORD77_ Data Pool + /// + /// \param [in] f_DataPoolKey + /// _CWORD77_DataPoolKey - Data pool key + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return VOID - None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + VOID SetRespoData(const _CWORD77_DataPoolKey &f_DataPoolKey, // NOLINT (readability/nolint) + UI_32 f_uiSize, const PVOID f_pData); + + //////////////////////////////////////////////////////////////////////////////////////////// + /// SetRespDataIn_CWORD77_DataPool + /// API to set data associated with response into _CWORD77_ Data Pool + /// Depricated. Do not use. + /// + /// \param [in] f_uiMsgId + /// UI_32 - MsgId + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return VOID - None + /// + //////////////////////////////////////////////////////////////////////////////////////////// + VOID SetRespoData(UI_32 f_uiMsgId, UI_32 f_uiSize, const PVOID f_pData); // NOLINT (readability/nolint) + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetReqDataIn_CWORD77_DataPool + /// API to get data associated with request from _CWORD77_ Data Pool + /// + /// \param [in] f_DataPoolKey + /// _CWORD77_DataPoolKey - Data pool key + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return EFrameworkunifiedStatus - Succes or Error + /// + //////////////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus GetRequData(const _CWORD77_DataPoolKey &f_DataPoolKey, UI_32 &f_uiSize, // NOLINT (readability/nolint) + PVOID &f_pData); // NOLINT (readability/nolint) + + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetReqDataIn_CWORD77_DataPool + /// API to get data associated with request from _CWORD77_ Data Pool + /// Depricated. Do not use. + /// + /// \param [in] f_uiMsgId + /// UI_32 - MsgId + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return EFrameworkunifiedStatus - Succes or Error + /// + //////////////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus GetRequData(UI_32 f_uiMsgId, UI_32 &f_uiSize, PVOID &f_pData); // NOLINT (readability/nolint) + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetRespDataFrom_CWORD77_DataPool + /// API to get data associated with response from _CWORD77_ Data Pool + /// + /// \param [in] f_DataPoolKey + /// _CWORD77_DataPoolKey - Data pool key + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return EFrameworkunifiedStatus - Succes or Error + /// + //////////////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus GetRespoData(const _CWORD77_DataPoolKey &f_DataPoolKey, // NOLINT (readability/nolint) + UI_32 &f_uiSize, // NOLINT (readability/nolint) + PVOID &f_pData); // NOLINT (readability/nolint) + + //////////////////////////////////////////////////////////////////////////////////////////// + /// GetRespDataFrom_CWORD77_DataPool + /// API to get data associated with response from _CWORD77_ Data Pool + /// Depricated. Do not use. + /// + /// \param [in] f_uiMsgId + /// UI_32 - MsgId + /// \param [in] f_uiSize + /// UI_32 - size of the data + /// \param [in] f_pData + /// PVOID - void pointer to data + /// + /// \return EFrameworkunifiedStatus - Succes or Error + /// + //////////////////////////////////////////////////////////////////////////////////////////// + EFrameworkunifiedStatus GetRespoData(UI_32 f_uiMsgId, UI_32 &f_uiSize, PVOID &f_pData); // NOLINT (readability/nolint) +}; + +#endif /* _CWORD77__DATA_POOL_TABLE_H_ */ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/ +/** @}*/ +//@}