Core Base Classes for the Light Endpoints
Dependents: mbed_mqtt_endpoint_ublox_ethernet mbed_mqtt_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_ethernet ... more
Diff: Preferences.cpp
- Revision:
- 155:582462821bd7
- Parent:
- 154:6e60f310ab78
- Child:
- 184:b73d6c976063
--- a/Preferences.cpp Thu Apr 03 00:50:36 2014 +0000 +++ b/Preferences.cpp Mon Apr 07 03:14:54 2014 +0000 @@ -26,7 +26,7 @@ // default constructor Preferences::Preferences(ErrorHandler *error_handler) : BaseClass(error_handler,NULL) { this->m_num_preferences = 0; -#ifndef _ENDPOINT_UBLOX_PLATFORM +#ifndef _ENDPOINT_UBLOX_PLATFORM this->initialize(); #endif } @@ -37,19 +37,18 @@ // initialize the preferences from the preferences file bool Preferences::initialize() { + bool success = true; + char name[PREFERENCE_NAME_LEN+1]; char value[PREFERENCE_VALUE_LEN+1]; char buffer[PREFERENCE_NAME_LEN + PREFERENCE_VALUE_LEN + 10]; - bool success = true; - + // initialize the memory buffers and count for(int i=0;i<MAX_NUM_PREFERENCES;++i) { - this->logger()->log("DOUG 1: index=%d",i); memset(this->m_preferences[i].name,0,PREFERENCE_NAME_LEN+1); - this->logger()->log("DOUG 2: index=%d",i); memset(this->m_preferences[i].value,0,PREFERENCE_VALUE_LEN+1); } - + // initialize temp buffers memset(name,0,PREFERENCE_NAME_LEN+1); memset(value,0,PREFERENCE_VALUE_LEN+1); @@ -111,7 +110,7 @@ } // integer preference with defaults - int Preferences::getIntPreference(char *name,int def_value) {\ + int Preferences::getIntPreference(char *name,int def_value) { int int_value = def_value; char buffer[PREFERENCE_VALUE_LEN+1]; memset(buffer,0,PREFERENCE_VALUE_LEN+1); @@ -135,31 +134,33 @@ char *Preferences::getPreference(char *name,char *buffer,int buffer_length,char *def_value) { char *value = NULL; - // clean the buffer - memset(buffer,0,buffer_length); - - // DEBUG - //this->logger()->log("GET: %s DEFAULT: %s BUFFER_LEN=%d",name,def_value,buffer_length); - - // get our index - int index = this->indexOfPreference(name); - if (index >= 0) { - // fill with our value - strncpy(buffer,this->m_preferences[index].value,this->min(buffer_length,strlen(this->m_preferences[index].value))); - value = buffer; - //this->logger()->log("Preference GET: %s=%s",name,value); - } - else { - // fill with the default - if (def_value != NULL) { - strncpy(buffer,def_value,this->min(buffer_length,strlen(def_value))); + if (buffer != NULL && buffer_length > 0) { + // clean the buffer + memset(buffer,0,buffer_length); + + // DEBUG + //this->logger()->log("GET: %s DEFAULT: %s BUFFER_LEN=%d",name,def_value,buffer_length); + + // get our index + int index = this->indexOfPreference(name); + if (index >= 0) { + // fill with our value + strncpy(buffer,this->m_preferences[index].value,this->min(buffer_length,strlen(this->m_preferences[index].value))); value = buffer; - //this->logger()->log("Using Defaults for %s=%s",name,value); + //this->logger()->log("Preference GET: %s=%s",name,value); } else { - // no defaults - //this->logger()->log("No default for GET: %s",name); - value = buffer; + // fill with the default + if (def_value != NULL) { + strncpy(buffer,def_value,this->min(buffer_length,strlen(def_value))); + value = buffer; + //this->logger()->log("Using Defaults for %s=%s",name,value); + } + else { + // no defaults + //this->logger()->log("No default for GET: %s",name); + value = buffer; + } } } @@ -173,8 +174,7 @@ int index = -1; // parameter check - if (name != NULL && strlen(name) > 0) { - + if (name != NULL && strlen(name) > 0 && this->m_num_preferences > 0) { // loop until we find the name.. then stop and record its index for(int i=0;i<this->m_num_preferences && !found;++i) { if (strcmp(name,this->m_preferences[i].name) == 0) {