From 02d19adc46ab0097ec3ee07074e1a38d8e9a6c00 Mon Sep 17 00:00:00 2001 From: HaseenaSainul Date: Mon, 24 Jul 2023 07:06:30 -0400 Subject: [PATCH 1/5] detach setter declaration from property template and add setter template, remove unredundant warnings --- languages/c/Types.mjs | 10 ---------- languages/c/templates/declarations/setter.c | 2 ++ languages/c/templates/sdk/scripts/install.sh | 2 +- src/macrofier/engine.mjs | 2 +- 4 files changed, 4 insertions(+), 12 deletions(-) create mode 100644 languages/c/templates/declarations/setter.c diff --git a/languages/c/Types.mjs b/languages/c/Types.mjs index c4465bfe..2b772ab8 100644 --- a/languages/c/Types.mjs +++ b/languages/c/Types.mjs @@ -200,10 +200,6 @@ function getMethodSignature(method, module, { destination, isInterface = false } let resultType = method.result && getSchemaType(method.result.schema, module, { title: true, name: method.result.name, resultSchema: true}) || '' signature = getPropertyGetterSignature(method, module, resultType, paramList) + ';\n\n' - - if (hasTag(method, 'property')) { - signature += getPropertySetterSignature(method, module, resultType, paramList) + ';\n\n' - } } return signature } @@ -461,9 +457,6 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' let property = getJsonType(prop, module, { name : pname, prefix }) props.push({name: `${pname}`, type: `${property}`}) } - else { - console.log(`b. WARNING: Type undetermined for ${name}:${pname}`) - } } }) @@ -500,9 +493,6 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' t += (isHeader ? getMapAccessors(tName, info.type, { descriptions: descriptions, level: level }) : getMapAccessorsImpl(tName, containerType, subModuleProperty.type, info.type, info.json, { readonly: true, optional: false })) shape += '\n' + t } - else if (json.patternProperties) { - console.log(`WARNING: patternProperties are not supported by Firebolt(inside getModuleName(module):${name})`) - } } else if (json.anyOf) { if (level > 0) { diff --git a/languages/c/templates/declarations/setter.c b/languages/c/templates/declarations/setter.c new file mode 100644 index 00000000..9fcd86a2 --- /dev/null +++ b/languages/c/templates/declarations/setter.c @@ -0,0 +1,2 @@ +/* ${method.rpc.name} - ${method.description} */ +uint32_t ${info.Title}_${method.Name}( ${method.signature.params} ); diff --git a/languages/c/templates/sdk/scripts/install.sh b/languages/c/templates/sdk/scripts/install.sh index 15596524..24bd1c4c 100755 --- a/languages/c/templates/sdk/scripts/install.sh +++ b/languages/c/templates/sdk/scripts/install.sh @@ -7,7 +7,7 @@ usage() echo " -m module name. i.e, core/manage" echo echo "usage: " - echo " ./install.sh -i path -s sdk path-m core" + echo " ./install.sh -i path -s sdk path -m core" } SdkPath=".." diff --git a/src/macrofier/engine.mjs b/src/macrofier/engine.mjs index 52641bdb..19aa3112 100644 --- a/src/macrofier/engine.mjs +++ b/src/macrofier/engine.mjs @@ -459,7 +459,7 @@ const generateMacros = (obj, templates, languages, options = {}) => { const allMethodsArray = generateMethods(obj, examples, templates) const methodsArray = allMethodsArray.filter(m => !m.event && (!options.hideExcluded || !m.excluded)) const eventsArray = allMethodsArray.filter(m => m.event && (!options.hideExcluded || !m.excluded)) - const declarationsArray = allMethodsArray.filter(m => m.declaration) + const declarationsArray = allMethodsArray.filter(m => m.declaration && (!options.hideExcluded || !m.excluded)) const declarations = declarationsArray.length ? getTemplate('/sections/declarations', templates).replace(/\$\{declaration\.list\}/g, declarationsArray.map(m => m.declaration).join('\n')) : '' const methods = methodsArray.length ? getTemplate('/sections/methods', templates).replace(/\$\{method.list\}/g, methodsArray.map(m => m.body).join('\n')) : '' From f607e16725baf1c8c1ec96a222e50f914f1bd684 Mon Sep 17 00:00:00 2001 From: HaseenaSainul Date: Mon, 24 Jul 2023 09:58:48 -0400 Subject: [PATCH 2/5] cleanup changes, add separator between prefix and subSchema name generation --- languages/c/Types.mjs | 10 +++---- languages/c/src/shared/include/types.h | 6 ++-- languages/c/src/shared/src/Types.cpp | 4 +-- languages/c/src/shared/test/OpenRPCTests.cpp | 6 ++-- languages/c/src/types/ImplHelpers.mjs | 30 ++++++++++---------- languages/c/src/types/JSONHelpers.mjs | 2 +- languages/c/src/types/NativeHelpers.mjs | 16 +++++------ src/macrofier/engine.mjs | 2 +- 8 files changed, 38 insertions(+), 38 deletions(-) diff --git a/languages/c/Types.mjs b/languages/c/Types.mjs index 2b772ab8..31dec6ba 100644 --- a/languages/c/Types.mjs +++ b/languages/c/Types.mjs @@ -18,8 +18,8 @@ import deepmerge from 'deepmerge' import { getPath } from '../../src/shared/json-schema.mjs' -import { getTypeName, getModuleName, description, getObjectHandleManagement, getNativeType, getPropertyAccessors, capitalize, isOptional, generateEnum, getMapAccessors, getArrayAccessors, getPropertyGetterSignature, getPropertyEventCallbackSignature, getPropertyEventRegisterSignature, getPropertyEventUnregisterSignature, getPropertySetterSignature, getFireboltStringType } from './src/types/NativeHelpers.mjs' -import { getArrayAccessorsImpl, getMapAccessorsImpl, getObjectHandleManagementImpl, getParameterInstantiation, getPropertyAccessorsImpl, getResultInstantiation, getCallbackParametersInstantiation, getCallbackResultInstantiation, getCallbackResponseInstantiation } from './src/types/ImplHelpers.mjs' +import { getTypeName, getModuleName, description, getObjectManagement, getNativeType, getPropertyAccessors, capitalize, isOptional, generateEnum, getMapAccessors, getArrayAccessors, getPropertyGetterSignature, getPropertyEventCallbackSignature, getPropertyEventRegisterSignature, getPropertyEventUnregisterSignature, getPropertySetterSignature, getFireboltStringType } from './src/types/NativeHelpers.mjs' +import { getArrayAccessorsImpl, getMapAccessorsImpl, getObjectManagementImpl, getParameterInstantiation, getPropertyAccessorsImpl, getResultInstantiation, getCallbackParametersInstantiation, getCallbackResultInstantiation, getCallbackResponseInstantiation } from './src/types/ImplHelpers.mjs' import { getJsonContainerDefinition, getJsonDataStructName, getJsonDataPrefix } from './src/types/JSONHelpers.mjs' const getSdkNameSpace = () => 'FireboltSDK' @@ -407,7 +407,7 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' let c_shape = description(capitalize(name), json.description) let cpp_shape = '' let tName = getTypeName(getModuleName(module), name, prefix) - c_shape += '\n' + (isHeader ? getObjectHandleManagement(tName) : getObjectHandleManagementImpl(tName, getJsonType(json, module, { name }))) + c_shape += '\n' + (isHeader ? getObjectManagement(tName) : getObjectManagementImpl(tName, getJsonType(json, module, { name }))) let props = [] let containerName = ((prefix.length > 0) && (!name.startsWith(prefix))) ? (prefix + '_' + capitalize(name)) : capitalize(name) Object.entries(json.properties).forEach(([pname, prop]) => { @@ -489,7 +489,7 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' // Handle Container generation here } - t += '\n' + (isHeader ? getObjectHandleManagement(tName) : getObjectHandleManagementImpl(tName, containerType)) + t += '\n' + (isHeader ? getObjectManagement(tName) : getObjectManagementImpl(tName, containerType)) t += (isHeader ? getMapAccessors(tName, info.type, { descriptions: descriptions, level: level }) : getMapAccessorsImpl(tName, containerType, subModuleProperty.type, info.type, info.json, { readonly: true, optional: false })) shape += '\n' + t } @@ -545,7 +545,7 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' let t = '' if (level === 0) { t += description(capitalize(info.name), json.description) + '\n' - t += '\n' + (isHeader ? getObjectHandleManagement(tName) : getObjectHandleManagementImpl(tName, moduleProperty.type)) + t += '\n' + (isHeader ? getObjectManagement(tName) : getObjectManagementImpl(tName, moduleProperty.type)) } t += '\n' + (isHeader ? getArrayAccessors(objName, tName, info.type) : getArrayAccessorsImpl(objName, moduleProperty.type, (tName + '_t'), subModuleProperty.type, '', info.type, info.json)) shape += '\n' + t diff --git a/languages/c/src/shared/include/types.h b/languages/c/src/shared/include/types.h index 26efc54f..8333f0eb 100644 --- a/languages/c/src/shared/include/types.h +++ b/languages/c/src/shared/include/types.h @@ -26,9 +26,9 @@ extern "C" { #endif -typedef struct FireboltTypes_String_s* FireboltTypes_String_t; -const char* FireboltTypes_String(FireboltTypes_String_t handle); -void FireboltTypes_StringHandle_Release(FireboltTypes_String_t handle); +typedef struct Firebolt_String_s* Firebolt_String_t; +const char* Firebolt_String(Firebolt_String_t handle); +void Firebolt_String_Release(Firebolt_String_t handle); #ifdef __cplusplus } diff --git a/languages/c/src/shared/src/Types.cpp b/languages/c/src/shared/src/Types.cpp index b9620436..93f6a8d8 100644 --- a/languages/c/src/shared/src/Types.cpp +++ b/languages/c/src/shared/src/Types.cpp @@ -25,12 +25,12 @@ extern "C" { #endif // String Type Handler Interfaces -const char* FireboltTypes_String(FireboltTypes_String_t handle) +const char* Firebolt_String(Firebolt_String_t handle) { return ((reinterpret_cast(handle))->Value().c_str()); } -void FireboltTypes_StringHandle_Release(FireboltTypes_String_t handle) +void Firebolt_String_Release(Firebolt_String_t handle) { delete reinterpret_cast(handle); } diff --git a/languages/c/src/shared/test/OpenRPCTests.cpp b/languages/c/src/shared/test/OpenRPCTests.cpp index b74f17ae..11170c15 100644 --- a/languages/c/src/shared/test/OpenRPCTests.cpp +++ b/languages/c/src/shared/test/OpenRPCTests.cpp @@ -485,9 +485,9 @@ uint32_t test_string_set_get_value() uint32_t status = FireboltSDKErrorNone; FireboltSDK::JSON::String* str = new FireboltSDK::JSON::String(); WPEFramework::Core::JSON::String wpeJsonStr("TestString"); - FireboltTypes_String_t handle = reinterpret_cast(str); + Firebolt_String_t handle = reinterpret_cast(str); - const char* value = FireboltTypes_String(handle); + const char* value = Firebolt_String(handle); EXPECT_EQ(strncmp(value, str->Value().c_str(), str->Value().length()), 0); FIREBOLT_LOG_INFO(FireboltSDK::Logger::Category::OpenRPC, "ctest", " ---> type name = %s %s", str->Value().c_str(), value); @@ -495,7 +495,7 @@ uint32_t test_string_set_get_value() WPEFramework::Core::JSON::EnumType<::TestEnum> testEnum = Test4; FIREBOLT_LOG_INFO(FireboltSDK::Logger::Category::OpenRPC, "ctest", " EnumTest = %d %s", testEnum.Value(), testEnum.Data()); - FireboltTypes_StringHandle_Release(handle); + Firebolt_String_Release(handle); return status; } diff --git a/languages/c/src/types/ImplHelpers.mjs b/languages/c/src/types/ImplHelpers.mjs index 8dbe8f08..85498570 100644 --- a/languages/c/src/types/ImplHelpers.mjs +++ b/languages/c/src/types/ImplHelpers.mjs @@ -6,22 +6,22 @@ const getSdkNameSpace = () => 'FireboltSDK' const wpeJsonNameSpace = () => 'WPEFramework::Core::JSON' const camelcase = str => str[0].toLowerCase() + str.substr(1) -const getObjectHandleManagementImpl = (varName, jsonDataName) => { +const getObjectManagementImpl = (varName, jsonDataName) => { - let result = `${varName}_t ${varName}Handle_Acquire(void) + let result = `${varName}_t ${varName}_Acquire(void) { WPEFramework::Core::ProxyType<${jsonDataName}>* type = new WPEFramework::Core::ProxyType<${jsonDataName}>(); *type = WPEFramework::Core::ProxyType<${jsonDataName}>::Create(); return (reinterpret_cast<${varName}_t>(type)); } -void ${varName}Handle_Addref(${varName}_t handle) +void ${varName}_Addref(${varName}_t handle) { ASSERT(handle != NULL); WPEFramework::Core::ProxyType<${jsonDataName}>* var = reinterpret_cast*>(handle); ASSERT(var->IsValid()); var->AddRef(); } -void ${varName}Handle_Release(${varName}_t handle) +void ${varName}_Release(${varName}_t handle) { ASSERT(handle != NULL); WPEFramework::Core::ProxyType<${jsonDataName}>* var = reinterpret_cast*>(handle); @@ -30,7 +30,7 @@ void ${varName}Handle_Release(${varName}_t handle) delete var; } } -bool ${varName}Handle_IsValid(${varName}_t handle) +bool ${varName}_IsValid(${varName}_t handle) { ASSERT(handle != NULL); WPEFramework::Core::ProxyType<${jsonDataName}>* var = reinterpret_cast*>(handle); @@ -101,7 +101,7 @@ const getPropertyAccessorsImpl = (objName, modulePropertyType, subPropertyType, return result } -const getArrayAccessorsImpl = (objName, modulePropertyType, objHandleType, subPropertyType, subPropertyName, accessorPropertyType, json = {}) => { +const getArrayAccessorsImpl = (objName, modulePropertyType, objType, subPropertyType, subPropertyName, accessorPropertyType, json = {}) => { let propertyName if (subPropertyName) { @@ -112,7 +112,7 @@ const getArrayAccessorsImpl = (objName, modulePropertyType, objHandleType, subPr propertyName = '(*(*var))' } - let result = `uint32_t ${objName}Array_Size(${objHandleType} handle) { + let result = `uint32_t ${objName}Array_Size(${objType} handle) { ASSERT(handle != NULL); WPEFramework::Core::ProxyType<${modulePropertyType}>* var = reinterpret_cast*>(handle); ASSERT(var->IsValid()); @@ -120,7 +120,7 @@ const getArrayAccessorsImpl = (objName, modulePropertyType, objHandleType, subPr return (${propertyName}.Length()); }` + '\n' - result += `${accessorPropertyType} ${objName}Array_Get(${objHandleType} handle, uint32_t index) + result += `${accessorPropertyType} ${objName}Array_Get(${objType} handle, uint32_t index) { ASSERT(handle != NULL); WPEFramework::Core::ProxyType<${modulePropertyType}>* var = reinterpret_cast*>(handle); @@ -144,7 +144,7 @@ const getArrayAccessorsImpl = (objName, modulePropertyType, objHandleType, subPr result += `}` + '\n' let type = (accessorPropertyType === getFireboltStringType()) ? 'char*' : accessorPropertyType - result += `void ${objName}Array_Add(${objHandleType} handle, ${type} value) + result += `void ${objName}Array_Add(${objType} handle, ${type} value) { ASSERT(handle != NULL); WPEFramework::Core::ProxyType<${modulePropertyType}>* var = reinterpret_cast*>(handle); @@ -162,7 +162,7 @@ const getArrayAccessorsImpl = (objName, modulePropertyType, objHandleType, subPr ${propertyName}.Add() = element; }` + '\n' - result += `void ${objName}Array_Clear(${objHandleType} handle) + result += `void ${objName}Array_Clear(${objType} handle) { ASSERT(handle != NULL); WPEFramework::Core::ProxyType<${modulePropertyType}>* var = reinterpret_cast*>(handle); @@ -304,7 +304,7 @@ function getParameterInstantiation(paramList, container = '') { const name = param.name if (jsonType.length) { if (param.required) { - if (param.nativeType.includes('FireboltTypes_String_t')) { + if (param.nativeType.includes('Firebolt_String_t')) { impl += ` WPEFramework::Core::JSON::Variant ${capitalize(name)} = *(reinterpret_cast<${jsonType}*>(${name}));\n` } else if (param.nativeType.includes('_t')) { @@ -429,7 +429,7 @@ function getCallbackParametersInstantiation(paramList, container = '') { function getCallbackResultInstantiation(nativeType, container = '') { let impl = '' - if (nativeType === 'char*' || nativeType === 'FireboltTypes_String_t') { + if (nativeType === 'char*' || nativeType === 'Firebolt_String_t') { impl +=` ${container}* jsonStrResponse = new ${container}(); *jsonStrResponse = *(*jsonResponse); @@ -457,7 +457,7 @@ function getCallbackResponseInstantiation(paramList, nativeType, container = '') }) } - if (nativeType === 'char*' || nativeType === 'FireboltTypes_String_t') { + if (nativeType === 'char*' || nativeType === 'Firebolt_String_t') { impl += `reinterpret_cast<${nativeType}>(jsonStrResponse)` } else if (nativeType.includes('_t')) { @@ -476,7 +476,7 @@ function getResultInstantiation (name, nativeType, container, indentLevel = 3) { if (nativeType) { impl += `${' '.repeat(indentLevel)}if (${name} != nullptr) {` + '\n' - if (nativeType === 'char*' || nativeType === 'FireboltTypes_String_t') { + if (nativeType === 'char*' || nativeType === 'Firebolt_String_t') { impl += `${' '.repeat(indentLevel + 1)}${container}* strResult = new ${container}(jsonResult);` + '\n' impl += `${' '.repeat(indentLevel + 1)}*${name} = reinterpret_cast<${getFireboltStringType()}>(strResult);` + '\n' } else if (nativeType.includes('_t')) { @@ -500,7 +500,7 @@ function getResultInstantiation (name, nativeType, container, indentLevel = 3) { export { getArrayAccessorsImpl, getMapAccessorsImpl, - getObjectHandleManagementImpl, + getObjectManagementImpl, getPropertyAccessorsImpl, getParameterInstantiation, getCallbackParametersInstantiation, diff --git a/languages/c/src/types/JSONHelpers.mjs b/languages/c/src/types/JSONHelpers.mjs index 954ac50d..1c5e3ea4 100644 --- a/languages/c/src/types/JSONHelpers.mjs +++ b/languages/c/src/types/JSONHelpers.mjs @@ -4,7 +4,7 @@ const getJsonDataPrefix = () => 'JsonData_' const wpeJsonNameSpace = () => 'WPEFramework::Core::JSON' const getJsonDataStructName = (modName, name, prefix = '') => { - let result =((prefix && prefix.length > 0) && (prefix !== name)) ? `${capitalize(modName)}::${getJsonDataPrefix()}${capitalize(prefix)}${capitalize(name)}` : `${capitalize(modName)}::${getJsonDataPrefix()}${capitalize(name)}` + let result =((prefix && prefix.length > 0) && (prefix !== name)) ? `${capitalize(modName)}::${getJsonDataPrefix()}${capitalize(prefix)}_${capitalize(name)}` : `${capitalize(modName)}::${getJsonDataPrefix()}${capitalize(name)}` return ((result.includes(wpeJsonNameSpace()) === true) ? result : `${getSdkNameSpace()}::${result}`) } diff --git a/languages/c/src/types/NativeHelpers.mjs b/languages/c/src/types/NativeHelpers.mjs index 3437c3f4..7400a7c4 100644 --- a/languages/c/src/types/NativeHelpers.mjs +++ b/languages/c/src/types/NativeHelpers.mjs @@ -29,7 +29,7 @@ const { isObject, isArray, propEq, pathSatisfies, hasProp, propSatisfies } = pre const getModuleName = json => getPathOr(null, ['info', 'title'], json) || json.title || 'missing' -const getFireboltStringType = () => 'FireboltTypes_String_t' +const getFireboltStringType = () => 'Firebolt_String_t' const capitalize = str => str[0].toUpperCase() + str.substr(1) const description = (title, str='') => '/* ' + title + (str.length > 0 ? ' - ' + str : '') + ' */' @@ -64,13 +64,13 @@ const getNativeType = (json, fireboltString = false) => { return type } -const getObjectHandleManagement = varName => { +const getObjectManagement = varName => { let result = `typedef struct ${varName}_s* ${varName}_t; -${varName}_t ${varName}Handle_Acquire(void); -void ${varName}Handle_Addref(${varName}_t handle); -void ${varName}Handle_Release(${varName}_t handle); -bool ${varName}Handle_IsValid(${varName}_t handle); +${varName}_t ${varName}_Acquire(void); +void ${varName}_Addref(${varName}_t handle); +void ${varName}_Release(${varName}_t handle); +bool ${varName}_IsValid(${varName}_t handle); ` return result } @@ -111,7 +111,7 @@ const getTypeName = (moduleName, varName, prefix = '', upperCase = false, capita prefix = (prefix !== varName) ? (upperCase ? prefix.toUpperCase() : capitalize(prefix)) : '' } prefix = (prefix && prefix.length > 0) ?(upperCase ? prefix.toUpperCase() : capitalize(prefix)) : prefix - let name = (prefix && prefix.length > 0) ? `${mName}_${prefix}${vName}` : `${mName}_${vName}` + let name = (prefix && prefix.length > 0) ? `${mName}_${prefix}_${vName}` : `${mName}_${vName}` return name } @@ -205,7 +205,7 @@ export { capitalize, description, getTypeName, - getObjectHandleManagement, + getObjectManagement, getPropertyAccessors, isOptional, generateEnum, diff --git a/src/macrofier/engine.mjs b/src/macrofier/engine.mjs index 19aa3112..15e42193 100644 --- a/src/macrofier/engine.mjs +++ b/src/macrofier/engine.mjs @@ -370,7 +370,7 @@ const addContentDescriptorSubSchema = (descriptor, prefix, obj) => { else { let descriptorName = capitalize(descriptor.name) let prefixName = capitalize(prefix) - title = (prefixName !== descriptorName) ? prefixName + descriptorName : descriptorName + title = (prefixName !== descriptorName) ? prefixName + '_' +descriptorName : descriptorName if (obj.components.schemas[title]) { throw 'Generated name `' + title + '` already exists...' } From 2d3cc96348cc42c5920355662a27cf12c3a4e516 Mon Sep 17 00:00:00 2001 From: HaseenaSainul Date: Tue, 25 Jul 2023 00:13:15 -0400 Subject: [PATCH 3/5] introduce excludeDeclarations flag to handle declaration exclusion specific to language --- languages/c/language.config.json | 3 ++- src/macrofier/engine.mjs | 19 +++++++++++-------- src/macrofier/index.mjs | 2 ++ src/sdk/index.mjs | 1 + 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/languages/c/language.config.json b/languages/c/language.config.json index b684e11b..b19eddb8 100644 --- a/languages/c/language.config.json +++ b/languages/c/language.config.json @@ -13,5 +13,6 @@ "/src/jsondata_module.h" ], "persistPermission": true, - "createPolymorphicMethods": true + "createPolymorphicMethods": true, + "excludeDeclarations":true } diff --git a/src/macrofier/engine.mjs b/src/macrofier/engine.mjs index 15e42193..b8e2e985 100644 --- a/src/macrofier/engine.mjs +++ b/src/macrofier/engine.mjs @@ -60,7 +60,8 @@ let types = { let config = { copySchemasIntoModules: false, - extractSubSchemas: false + extractSubSchemas: false, + excludeDeclarations: false } const state = { @@ -390,13 +391,15 @@ const promoteAndNameSubSchemas = (obj) => { obj = JSON.parse(JSON.stringify(obj)) // find anonymous method param or result schemas and name/promote them obj.methods && obj.methods.forEach(method => { - method.params && method.params.forEach(param => { - if (isSubSchema(param.schema)) { - addContentDescriptorSubSchema(param, method.name, obj) + if (!isExcludedMethod(method)) { + method.params && method.params.forEach(param => { + if (isSubSchema(param.schema)) { + addContentDescriptorSubSchema(param, method.name, obj) + } + }) + if (isSubSchema(method.result.schema)) { + addContentDescriptorSubSchema(method.result, method.name, obj) } - }) - if (isSubSchema(method.result.schema)) { - addContentDescriptorSubSchema(method.result, method.name, obj) } }) @@ -459,7 +462,7 @@ const generateMacros = (obj, templates, languages, options = {}) => { const allMethodsArray = generateMethods(obj, examples, templates) const methodsArray = allMethodsArray.filter(m => !m.event && (!options.hideExcluded || !m.excluded)) const eventsArray = allMethodsArray.filter(m => m.event && (!options.hideExcluded || !m.excluded)) - const declarationsArray = allMethodsArray.filter(m => m.declaration && (!options.hideExcluded || !m.excluded)) + const declarationsArray = allMethodsArray.filter(m => m.declaration && (!config.excludeDeclarations || (!options.hideExcluded || !m.excluded))) const declarations = declarationsArray.length ? getTemplate('/sections/declarations', templates).replace(/\$\{declaration\.list\}/g, declarationsArray.map(m => m.declaration).join('\n')) : '' const methods = methodsArray.length ? getTemplate('/sections/methods', templates).replace(/\$\{method.list\}/g, methodsArray.map(m => m.body).join('\n')) : '' diff --git a/src/macrofier/index.mjs b/src/macrofier/index.mjs index 86483fad..ce8d3d8d 100644 --- a/src/macrofier/index.mjs +++ b/src/macrofier/index.mjs @@ -48,6 +48,7 @@ const macrofy = async ( createModuleDirectories, copySchemasIntoModules, extractSubSchemas, + excludeDeclarations, aggregateFile, operators, hidePrivate = true, @@ -82,6 +83,7 @@ const macrofy = async ( copySchemasIntoModules, createModuleDirectories, extractSubSchemas, + excludeDeclarations, operators }) diff --git a/src/sdk/index.mjs b/src/sdk/index.mjs index 2e72ba9b..5d7effa2 100755 --- a/src/sdk/index.mjs +++ b/src/sdk/index.mjs @@ -63,6 +63,7 @@ const run = async ({ createModuleDirectories: config.createModuleDirectories, copySchemasIntoModules: config.copySchemasIntoModules, extractSubSchemas: config.extractSubSchemas, + excludeDeclarations: config.excludeDeclarations, staticModuleNames: staticModuleNames, hideExcluded: true, aggregateFile: config.aggregateFile, From 1b57b7012cb0fa0e9a0f7386d5677b2e6fcaa782 Mon Sep 17 00:00:00 2001 From: HaseenaSainul Date: Tue, 25 Jul 2023 05:18:25 -0400 Subject: [PATCH 4/5] alignement changes + cleanup + OUT params support added to differentiate method signature parameters --- languages/c/Types.mjs | 10 ++--- languages/c/src/shared/include/firebolt.h | 3 ++ languages/c/src/types/ImplHelpers.mjs | 2 +- languages/c/src/types/NativeHelpers.mjs | 41 ------------------- languages/c/templates/declarations/default.c | 3 +- languages/c/templates/declarations/event.c | 1 + .../declarations/polymorphic-pull-event.c | 1 + .../templates/declarations/polymorphic-pull.c | 1 + languages/c/templates/methods/calls-metrics.c | 6 +-- languages/c/templates/methods/default.c | 5 ++- languages/c/templates/methods/event.c | 1 + .../methods/polymorphic-pull-event.c | 1 + .../c/templates/methods/polymorphic-pull.c | 3 +- languages/c/templates/methods/property.c | 4 +- .../c/templates/modules/include/module.h | 2 + languages/c/templates/modules/src/module.cpp | 2 + .../c/templates/schemas/src/module_common.cpp | 14 ++++--- src/macrofier/engine.mjs | 7 ++-- 18 files changed, 41 insertions(+), 66 deletions(-) diff --git a/languages/c/Types.mjs b/languages/c/Types.mjs index 31dec6ba..6c3c8311 100644 --- a/languages/c/Types.mjs +++ b/languages/c/Types.mjs @@ -18,7 +18,7 @@ import deepmerge from 'deepmerge' import { getPath } from '../../src/shared/json-schema.mjs' -import { getTypeName, getModuleName, description, getObjectManagement, getNativeType, getPropertyAccessors, capitalize, isOptional, generateEnum, getMapAccessors, getArrayAccessors, getPropertyGetterSignature, getPropertyEventCallbackSignature, getPropertyEventRegisterSignature, getPropertyEventUnregisterSignature, getPropertySetterSignature, getFireboltStringType } from './src/types/NativeHelpers.mjs' +import { getTypeName, getModuleName, description, getObjectManagement, getNativeType, getPropertyAccessors, capitalize, isOptional, generateEnum, getMapAccessors, getArrayAccessors, getPropertyGetterSignature, getFireboltStringType } from './src/types/NativeHelpers.mjs' import { getArrayAccessorsImpl, getMapAccessorsImpl, getObjectManagementImpl, getParameterInstantiation, getPropertyAccessorsImpl, getResultInstantiation, getCallbackParametersInstantiation, getCallbackResultInstantiation, getCallbackResponseInstantiation } from './src/types/ImplHelpers.mjs' import { getJsonContainerDefinition, getJsonDataStructName, getJsonDataPrefix } from './src/types/JSONHelpers.mjs' @@ -199,7 +199,7 @@ function getMethodSignature(method, module, { destination, isInterface = false } let paramList = getParamList(method, module) let resultType = method.result && getSchemaType(method.result.schema, module, { title: true, name: method.result.name, resultSchema: true}) || '' - signature = getPropertyGetterSignature(method, module, resultType, paramList) + ';\n\n' + signature = getPropertyGetterSignature(method, module, resultType, paramList) + ';\n' } return signature } @@ -404,7 +404,7 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' shape = '' } else if (json.properties && (validJsonObjectProperties(json) === true)) { - let c_shape = description(capitalize(name), json.description) + let c_shape = '\n' + description(capitalize(name), json.description) let cpp_shape = '' let tName = getTypeName(getModuleName(module), name, prefix) c_shape += '\n' + (isHeader ? getObjectManagement(tName) : getObjectManagementImpl(tName, getJsonType(json, module, { name }))) @@ -481,7 +481,7 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' } let tName = getTypeName(getModuleName(module), name, prefix) - let t = description(capitalize(name), json.description) + '\n' + let t = '\n' + description(capitalize(name), json.description) let containerType = 'WPEFramework::Core::JSON::VariantContainer' let subModuleProperty = getJsonTypeInfo(module, info.json, info.name, module['x-schemas']) @@ -544,7 +544,7 @@ function getSchemaShapeInfo(json, module, schemas = {}, { name = '', prefix = '' let subModuleProperty = getJsonTypeInfo(module, j, j.title || name, schemas, prefix) let t = '' if (level === 0) { - t += description(capitalize(info.name), json.description) + '\n' + t += '\n' + description(capitalize(info.name), json.description) t += '\n' + (isHeader ? getObjectManagement(tName) : getObjectManagementImpl(tName, moduleProperty.type)) } t += '\n' + (isHeader ? getArrayAccessors(objName, tName, info.type) : getArrayAccessorsImpl(objName, moduleProperty.type, (tName + '_t'), subModuleProperty.type, '', info.type, info.json)) diff --git a/languages/c/src/shared/include/firebolt.h b/languages/c/src/shared/include/firebolt.h index 0957973f..565b363c 100644 --- a/languages/c/src/shared/include/firebolt.h +++ b/languages/c/src/shared/include/firebolt.h @@ -26,6 +26,9 @@ extern "C" { #endif +#define IN +#define OUT + /** * @brief Intitialize the Firebolt SDK * diff --git a/languages/c/src/types/ImplHelpers.mjs b/languages/c/src/types/ImplHelpers.mjs index 85498570..0ac77dd6 100644 --- a/languages/c/src/types/ImplHelpers.mjs +++ b/languages/c/src/types/ImplHelpers.mjs @@ -470,7 +470,7 @@ function getCallbackResponseInstantiation(paramList, nativeType, container = '') return impl } -function getResultInstantiation (name, nativeType, container, indentLevel = 3) { +function getResultInstantiation (name, nativeType, container, indentLevel = 2) { let impl = '' diff --git a/languages/c/src/types/NativeHelpers.mjs b/languages/c/src/types/NativeHelpers.mjs index 7400a7c4..cc7ac662 100644 --- a/languages/c/src/types/NativeHelpers.mjs +++ b/languages/c/src/types/NativeHelpers.mjs @@ -155,51 +155,10 @@ function getPropertyGetterSignature(property, module, propType, paramList = []) return `uint32_t ${capitalize(getModuleName(module))}_Get${capitalize(property.name)}( ${contextParams}${contextParams.length > 0 ? ', ':''}${propType}* ${property.result.name || property.name} )` } -function getPropertySetterSignature(property, module, propType, paramList = []) { - let contextParams = '' - contextParams = getContextParams(paramList) - if (propType === getFireboltStringType()) { - propType = 'char*' - } - return `uint32_t ${capitalize(getModuleName(module))}_Set${capitalize(property.name)}( ${contextParams}${contextParams.length > 0 ? ', ':''}${propType} ${property.result.name || property.name} )` -} - -function getPropertyEventCallbackSignature(property, module, propType, paramList = []) { - - let contextParams = '' - contextParams = getContextParams(paramList) - return `/*Callback to listen to updates on ${property.Name} property*/\n` + - `typedef void (*On${capitalize(getModuleName(module))}${capitalize(property.name)}Changed)( ${contextParams}${contextParams.length > 0 ? ', ':''}const void* userData, ${propType} ${property.result.name || property.name})` -} - -function getPropertyEventInnerCallbackSignature(method, module, schemas) { - let signature = `static void ${capitalize(getModuleName(module)) + capitalize(method.name)}` -} - -function getPropertyEventRegisterSignature(property, module, paramList = []) { - let contextParams = '' - contextParams = getContextParams(paramList) - - return `/*Register to listen to updates on ${capitalize(property.name)} property*/\n` + - `uint32_t ${capitalize(getModuleName(module))}_Register_${capitalize(property.name)}Update( ${contextParams}${contextParams.length > 0 ? ', ':''}On${capitalize(getModuleName(module))}${capitalize(property.name)}Changed userCB, const void* userData )` - -} - -function getPropertyEventUnregisterSignature(property, module) { - return `/*Unregister to listen to updates on ${capitalize(property.name)} property*/\n` + - `uint32_t ${capitalize(getModuleName(module))}_Unregister_${capitalize(property.name)}Update( On${capitalize(getModuleName(module))}${capitalize(property.name)}Changed userCB )` - -} - - export { getNativeType, getModuleName, getPropertyGetterSignature, - getPropertySetterSignature, - getPropertyEventCallbackSignature, - getPropertyEventRegisterSignature, - getPropertyEventUnregisterSignature, getMapAccessors, getArrayAccessors, capitalize, diff --git a/languages/c/templates/declarations/default.c b/languages/c/templates/declarations/default.c index ac4e7f78..8879378d 100644 --- a/languages/c/templates/declarations/default.c +++ b/languages/c/templates/declarations/default.c @@ -1,3 +1,4 @@ /* ${method.name} - ${method.description} ${method.params.annotations}${if.deprecated} * @deprecated ${method.deprecation}${end.if.deprecated} */ -uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${if.params}, ${end.if.params}${method.result.type}* ${method.result.name}${end.if.result}${if.signature.empty}void${end.if.signature.empty} ); +uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${if.params}, ${end.if.params}OUT ${method.result.type}* ${method.result.name}${end.if.result}${if.signature.empty}void${end.if.signature.empty} ); + diff --git a/languages/c/templates/declarations/event.c b/languages/c/templates/declarations/event.c index 45e4b608..4dc59c4a 100644 --- a/languages/c/templates/declarations/event.c +++ b/languages/c/templates/declarations/event.c @@ -2,3 +2,4 @@ typedef void (*${info.Title}${method.Name}Callback)( const void* userData, ${event.signature.callback.params}${if.event.params}, ${end.if.event.params}${event.result.type} ); uint32_t ${info.Title}_Register_${method.Name}( ${event.signature.params}${if.event.params}, ${end.if.event.params}${info.Title}${method.Name}Callback userCB, const void* userData ); uint32_t ${info.Title}_Unregister_${method.Name}( ${info.Title}${method.Name}Callback userCB); + diff --git a/languages/c/templates/declarations/polymorphic-pull-event.c b/languages/c/templates/declarations/polymorphic-pull-event.c index 26f1f1c4..9b22619e 100644 --- a/languages/c/templates/declarations/polymorphic-pull-event.c +++ b/languages/c/templates/declarations/polymorphic-pull-event.c @@ -2,3 +2,4 @@ typedef void* (*${info.Title}${method.Name}Callback)( const void* userData, ${method.pulls.param.type} ); uint32_t ${info.Title}_Register_${method.Name}( ${info.Title}${method.Name}Callback userCB, const void* userData ); uint32_t ${info.Title}_Unregister_${method.Name}( ${info.Title}${method.Name}Callback userCB); + diff --git a/languages/c/templates/declarations/polymorphic-pull.c b/languages/c/templates/declarations/polymorphic-pull.c index fbf74697..ca08d823 100644 --- a/languages/c/templates/declarations/polymorphic-pull.c +++ b/languages/c/templates/declarations/polymorphic-pull.c @@ -1,2 +1,3 @@ /* ${method.name} - ${method.description} */ uint32_t ${info.Title}_Push${method.Name}( ${method.signature.params} ); + diff --git a/languages/c/templates/methods/calls-metrics.c b/languages/c/templates/methods/calls-metrics.c index 91831a3c..c8caa238 100644 --- a/languages/c/templates/methods/calls-metrics.c +++ b/languages/c/templates/methods/calls-metrics.c @@ -2,8 +2,7 @@ void Metrics_${method.Name}Dispatcher(const void*${if.result} result${end.if.result}) { Metrics_${method.Name}(${if.result}(static_cast<${method.result.json.type}>(const_cast(result)))${end.if.result}); } - -uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${if.params}, ${end.if.params}${method.result.type}* ${method.result.name}${end.if.result}${if.signature.empty}void${end.if.signature.empty} ) { +uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${if.params}, ${end.if.params}OUT ${method.result.type}* ${method.result.name}${end.if.result}${if.signature.empty}void${end.if.signature.empty} ) { uint32_t status = FireboltSDKErrorUnavailable; FireboltSDK::Transport* transport = FireboltSDK::Accessor::Instance().GetTransport(); @@ -14,7 +13,7 @@ uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${i status = transport->Invoke("${info.title}.${method.rpc.name}", jsonParameters, jsonResult); if (status == FireboltSDKErrorNone) { FIREBOLT_LOG_INFO(FireboltSDK::Logger::Category::OpenRPC, FireboltSDK::Logger::Module(), "${info.Title}.${method.rpc.name} is successfully invoked"); -${method.result.instantiation} + ${method.result.instantiation.with.indent} void* result = nullptr; ${if.result}result = static_cast(new ${method.result.json.type});${end.if.result} @@ -28,3 +27,4 @@ uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${i return status; } + diff --git a/languages/c/templates/methods/default.c b/languages/c/templates/methods/default.c index 881b592c..d8f619c5 100644 --- a/languages/c/templates/methods/default.c +++ b/languages/c/templates/methods/default.c @@ -1,5 +1,5 @@ /* ${method.rpc.name} - ${method.description} */ -uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${if.params}, ${end.if.params}${method.result.type}* ${method.result.name}${end.if.result}${if.signature.empty}void${end.if.signature.empty} ) { +uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${if.params}, ${end.if.params}OUT ${method.result.type}* ${method.result.name}${end.if.result}${if.signature.empty}void${end.if.signature.empty} ) { uint32_t status = FireboltSDKErrorUnavailable; FireboltSDK::Transport* transport = FireboltSDK::Accessor::Instance().GetTransport(); @@ -10,7 +10,7 @@ uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${i status = transport->Invoke("${info.title.lowercase}.${method.rpc.name}", jsonParameters, jsonResult); if (status == FireboltSDKErrorNone) { FIREBOLT_LOG_INFO(FireboltSDK::Logger::Category::OpenRPC, FireboltSDK::Logger::Module(), "${info.Title}.${method.rpc.name} is successfully invoked"); -${method.result.instantiation} + ${method.result.instantiation.with.indent} } } else { @@ -19,3 +19,4 @@ uint32_t ${info.Title}_${method.Name}( ${method.signature.params}${if.result}${i return status; } + diff --git a/languages/c/templates/methods/event.c b/languages/c/templates/methods/event.c index c02e74c4..2a2de707 100644 --- a/languages/c/templates/methods/event.c +++ b/languages/c/templates/methods/event.c @@ -24,3 +24,4 @@ uint32_t ${info.Title}_Unregister_${method.Name}( ${info.Title}${method.Name}Cal { return FireboltSDK::Event::Instance().Unsubscribe(_T("${info.title.lowercase}.${method.rpc.name}"), reinterpret_cast(userCB)); } + diff --git a/languages/c/templates/methods/polymorphic-pull-event.c b/languages/c/templates/methods/polymorphic-pull-event.c index 7c833b71..5bf302b5 100644 --- a/languages/c/templates/methods/polymorphic-pull-event.c +++ b/languages/c/templates/methods/polymorphic-pull-event.c @@ -52,3 +52,4 @@ uint32_t ${info.Title}_Unregister_${method.Name}( ${info.Title}${method.Name}Cal { return FireboltSDK::Event::Instance().Unsubscribe(_T("${info.title.lowercase}.${method.rpc.name}"), reinterpret_cast(userCB)); } + diff --git a/languages/c/templates/methods/polymorphic-pull.c b/languages/c/templates/methods/polymorphic-pull.c index 759b0ae9..d543e3ce 100644 --- a/languages/c/templates/methods/polymorphic-pull.c +++ b/languages/c/templates/methods/polymorphic-pull.c @@ -5,7 +5,7 @@ uint32_t ${info.Title}_Push${method.Name}( ${method.signature.params} ) FireboltSDK::Transport* transport = FireboltSDK::Accessor::Instance().GetTransport(); if (transport != nullptr) { - string correlationId = ""; + string correlationId = ""; ${method.params.serialization.with.indent} WPEFramework::Core::JSON::Boolean jsonResult; @@ -20,3 +20,4 @@ uint32_t ${info.Title}_Push${method.Name}( ${method.signature.params} ) return status; } + diff --git a/languages/c/templates/methods/property.c b/languages/c/templates/methods/property.c index 7fb5b148..af6200c9 100644 --- a/languages/c/templates/methods/property.c +++ b/languages/c/templates/methods/property.c @@ -1,5 +1,5 @@ /* ${method.rpc.name} - ${method.description} */ -uint32_t ${info.Title}_Get${method.Name}( ${method.signature.params}${if.params}, ${end.if.params}${method.result.type}* ${method.result.name} ) +uint32_t ${info.Title}_Get${method.Name}( ${method.signature.params}${if.params}, ${end.if.params}OUT ${method.result.type}* ${method.result.name} ) { const string method = _T("${info.title.lowercase}.${method.rpc.name}"); ${if.params}${method.params.serialization}${end.if.params} @@ -7,9 +7,7 @@ uint32_t ${info.Title}_Get${method.Name}( ${method.signature.params}${if.params} ${if.params}uint32_t status = FireboltSDK::Properties::Get(method, jsonParameters, jsonResult);${end.if.params} ${if.params.empty}uint32_t status = FireboltSDK::Properties::Get(method, jsonResult);${end.if.params.empty} if (status == FireboltSDKErrorNone) { - if (${method.result.name} != nullptr) { ${method.result.instantiation} - } } return status; } diff --git a/languages/c/templates/modules/include/module.h b/languages/c/templates/modules/include/module.h index 176ff9c1..1c8d427b 100644 --- a/languages/c/templates/modules/include/module.h +++ b/languages/c/templates/modules/include/module.h @@ -32,6 +32,8 @@ extern "C" { // Accessors /* ${ACCESSORS} */ + + // Methods & Events /* ${DECLARATIONS} */ diff --git a/languages/c/templates/modules/src/module.cpp b/languages/c/templates/modules/src/module.cpp index 737d38df..19727924 100644 --- a/languages/c/templates/modules/src/module.cpp +++ b/languages/c/templates/modules/src/module.cpp @@ -36,6 +36,8 @@ extern "C" { // Accessors /* ${ACCESSORS} */ + + // Methods /* ${METHODS} */ diff --git a/languages/c/templates/schemas/src/module_common.cpp b/languages/c/templates/schemas/src/module_common.cpp index 582a650b..5bfa7719 100644 --- a/languages/c/templates/schemas/src/module_common.cpp +++ b/languages/c/templates/schemas/src/module_common.cpp @@ -26,14 +26,16 @@ extern "C" { #endif - // Accessors - /* ${ACCESSORS} */ +// Accessors +/* ${ACCESSORS} */ - // Methods - /* ${METHODS} */ - // Events - /* ${EVENTS} */ + +// Methods +/* ${METHODS} */ + +// Events +/* ${EVENTS} */ #ifdef __cplusplus } diff --git a/src/macrofier/engine.mjs b/src/macrofier/engine.mjs index b8e2e985..527f8eeb 100644 --- a/src/macrofier/engine.mjs +++ b/src/macrofier/engine.mjs @@ -460,8 +460,8 @@ const generateMacros = (obj, templates, languages, options = {}) => { const examples = generateExamples(obj, templates, languages) const allMethodsArray = generateMethods(obj, examples, templates) - const methodsArray = allMethodsArray.filter(m => !m.event && (!options.hideExcluded || !m.excluded)) - const eventsArray = allMethodsArray.filter(m => m.event && (!options.hideExcluded || !m.excluded)) + const methodsArray = allMethodsArray.filter(m => m.body && !m.event && (!options.hideExcluded || !m.excluded)) + const eventsArray = allMethodsArray.filter(m => m.body && m.event && (!options.hideExcluded || !m.excluded)) const declarationsArray = allMethodsArray.filter(m => m.declaration && (!config.excludeDeclarations || (!options.hideExcluded || !m.excluded))) const declarations = declarationsArray.length ? getTemplate('/sections/declarations', templates).replace(/\$\{declaration\.list\}/g, declarationsArray.map(m => m.declaration).join('\n')) : '' @@ -532,7 +532,7 @@ const insertMacros = (fContents = '', macros = {}) => { fContents = fContents.replace(/\$\{module.list\}/g, macros.module) fContents = fContents.replace(/[ \t]*\/\* \$\{METHODS\} \*\/[ \t]*\n/, macros.methods) - fContents = fContents.replace(/[ \t]*\/\* \$\{ACCESSORS\} \*\/[ \t]*\n/, macros.accessors) + fContents = fContents.replace(/[ \t]*\/\* \$\{ACCESSORS\} \*\/[ \t]*\n/, macros.accessors.trimStart('\n')) fContents = fContents.replace(/[ \t]*\/\* \$\{DECLARATIONS\} \*\/[ \t]*\n/, macros.declarations) fContents = fContents.replace(/[ \t]*\/\* \$\{METHOD_LIST\} \*\/[ \t]*\n/, macros.methodList.join(',\n')) fContents = fContents.replace(/[ \t]*\/\* \$\{EVENTS\} \*\/[ \t]*\n/, macros.events) @@ -1229,6 +1229,7 @@ function insertMethodMacros(template, methodObj, json, templates, examples = {}) .replace(/\$\{method\.result\}/g, generateResult(result.schema, json, templates, { name: result.name })) .replace(/\$\{method\.result\.json\.type\}/g, resultJsonType) .replace(/\$\{method\.result\.instantiation\}/g, resultInst) + .replace(/\$\{method\.result\.instantiation\.with\.indent\}/g, indent(resultInst, ' ')) .replace(/\$\{method\.example\.value\}/g, JSON.stringify(methodObj.examples[0].result.value)) .replace(/\$\{method\.alternative\}/g, method.alternative) .replace(/\$\{method\.alternative.link\}/g, '#' + (method.alternative || "").toLowerCase()) From ac4a4a1666c9f2e00624395b0c237a654816de06 Mon Sep 17 00:00:00 2001 From: HaseenaSainul Date: Tue, 25 Jul 2023 09:05:49 -0400 Subject: [PATCH 5/5] update in static code --- languages/c/src/shared/src/Logger/Logger.cpp | 7 +++++-- languages/c/src/shared/src/Transport/Transport.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/languages/c/src/shared/src/Logger/Logger.cpp b/languages/c/src/shared/src/Logger/Logger.cpp index a9750a6e..a16764f2 100644 --- a/languages/c/src/shared/src/Logger/Logger.cpp +++ b/languages/c/src/shared/src/Logger/Logger.cpp @@ -71,11 +71,14 @@ namespace FireboltSDK { char formattedMsg[Logger::MaxBufSize]; const string time = WPEFramework::Core::Time::Now().ToTimeOnly(true); const string categoryName = WPEFramework::Core::EnumerateType(category).Data(); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-truncation" if (categoryName.empty() != true) { - sprintf(formattedMsg, "--->\033[1;32m[%s]:[%s]:[%s][%s:%d](%s) : %s\n", time.c_str(), categoryName.c_str(), module.c_str(), WPEFramework::Core::File::FileName(file).c_str(), line, function.c_str(), TRACE_PROCESS_ID, TRACE_THREAD_ID, msg); + snprintf(formattedMsg, sizeof(formattedMsg), "--->\033[1;32m[%s]:[%s]:[%s][%s:%d](%s) : %s\n", time.c_str(), categoryName.c_str(), module.c_str(), WPEFramework::Core::File::FileName(file).c_str(), line, function.c_str(), TRACE_PROCESS_ID, TRACE_THREAD_ID, msg); } else { - sprintf(formattedMsg, "--->\033[1;32m[%s]:[%s][%s:%d](%s) : %s\n", time.c_str(), module.c_str(), WPEFramework::Core::File::FileName(file).c_str(), line, function.c_str(), TRACE_PROCESS_ID, TRACE_THREAD_ID, msg); + snprintf(formattedMsg, sizeof(formattedMsg), "--->\033[1;32m[%s]:[%s][%s:%d](%s) : %s\n", time.c_str(), module.c_str(), WPEFramework::Core::File::FileName(file).c_str(), line, function.c_str(), TRACE_PROCESS_ID, TRACE_THREAD_ID, msg); } +#pragma GCC diagnostic pop LOG_MESSAGE(formattedMsg); } } diff --git a/languages/c/src/shared/src/Transport/Transport.h b/languages/c/src/shared/src/Transport/Transport.h index 109e2431..b3405b9c 100644 --- a/languages/c/src/shared/src/Transport/Transport.h +++ b/languages/c/src/shared/src/Transport/Transport.h @@ -254,7 +254,7 @@ namespace FireboltSDK { public: ChannelImpl(CommunicationChannel* parent, const WPEFramework::Core::NodeId& remoteNode, const string& path, const string& query, const bool mask) - : BaseClass(5, FactoryImpl::Instance(), path, _T("JSON"), query, "", false, mask, false, remoteNode.AnyInterface(), remoteNode, 1024 * 2, 1024 * 2) //TODO Relook this size issue + : BaseClass(5, FactoryImpl::Instance(), path, _T("JSON"), query, "", false, mask, false, remoteNode.AnyInterface(), remoteNode, 512, 512) , _parent(*parent) { }