static uint8_t UpdateFieldInRAM(AJSVC_PropertyStoreFieldIndices fieldIndex, int8_t langIndex, const char* fieldValue) { uint8_t ret = FALSE; if (propertyStoreProperties[fieldIndex].mode0Write && propertyStoreProperties[fieldIndex].mode7Public) { ret = AJSVC_PropertyStore_SetValueForLang(fieldIndex, langIndex, fieldValue); } else { AJ_ErrPrintf(("UpdateFieldInRAM ERROR - field %s has read only attribute or is private\n", propertyStoreProperties[fieldIndex].keyName)); } return ret; }
static void InitMandatoryPropertiesInRAM() { char* machineIdValue = propertyStoreRuntimeValues[AJSVC_PROPERTY_STORE_APP_ID].value[AJSVC_PROPERTY_STORE_NO_LANGUAGE_INDEX]; const char* currentAppIdValue = AJSVC_PropertyStore_GetValue(AJSVC_PROPERTY_STORE_APP_ID); const char* currentDeviceIdValue = AJSVC_PropertyStore_GetValue(AJSVC_PROPERTY_STORE_DEVICE_ID); const char* currentDeviceNameValue; int8_t langIndex; size_t serialIdLen = 0; size_t machineIdLen = 0; AJ_GUID theAJ_GUID; AJ_Status status; char deviceName[DEVICE_NAME_VALUE_LENGTH + 1] = { 0 }; if (currentAppIdValue == NULL || currentAppIdValue[0] == '\0') { status = AJ_GetLocalGUID(&theAJ_GUID); if (status == AJ_OK) { AJ_GUID_ToString(&theAJ_GUID, machineIdValue, propertyStoreRuntimeValues[AJSVC_PROPERTY_STORE_APP_ID].size); } } if (currentDeviceIdValue == NULL || currentDeviceIdValue[0] == '\0') { AJSVC_PropertyStore_SetValue(AJSVC_PROPERTY_STORE_DEVICE_ID, machineIdValue); } for (langIndex = 0; langIndex < AJSVC_PROPERTY_STORE_NUMBER_OF_LANGUAGES; langIndex++) { currentDeviceNameValue = AJSVC_PropertyStore_GetValueForLang(AJSVC_PROPERTY_STORE_DEVICE_NAME, langIndex); if (currentDeviceNameValue == NULL || currentDeviceNameValue[0] == '\0') { if (deviceName[0] == '\0') { #ifdef ONBOARDING_SERVICE serialIdLen = AJOBS_DEVICE_SERIAL_ID_LEN; #else serialIdLen = 7; #endif machineIdLen = strlen(machineIdValue); #ifdef _WIN32 _snprintf(deviceName, DEVICE_NAME_VALUE_LENGTH + 1, "%s %s %s", deviceManufactureName, deviceProductName, &machineIdValue[machineIdLen - min(serialIdLen, machineIdLen)]); #else snprintf(deviceName, DEVICE_NAME_VALUE_LENGTH + 1, "%s %s %s", deviceManufactureName, deviceProductName, &machineIdValue[machineIdLen - min(serialIdLen, machineIdLen)]); #endif } AJSVC_PropertyStore_SetValueForLang(AJSVC_PROPERTY_STORE_DEVICE_NAME, langIndex, deviceName); } } }
uint8_t AJSVC_PropertyStore_SetValue(AJSVC_PropertyStoreFieldIndices fieldIndex, const char* value) { return AJSVC_PropertyStore_SetValueForLang(fieldIndex, AJSVC_PROPERTY_STORE_NO_LANGUAGE_INDEX, value); }