Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
appconf.cpp
00001 /** 00002 * ============================================================================= 00003 * Application configuration for 'Expansion Board One' example no.2 00004 * http://mbed.org/users/shintamainjp/notebook/starboard_expbrd-one_ex2_en/ 00005 * ============================================================================= 00006 * Copyright (c) 2010 Shinichiro Nakamura (CuBeatSystems) 00007 * 00008 * Permission is hereby granted, free of charge, to any person obtaining a copy 00009 * of this software and associated documentation files (the "Software"), to deal 00010 * in the Software without restriction, including without limitation the rights 00011 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00012 * copies of the Software, and to permit persons to whom the Software is 00013 * furnished to do so, subject to the following conditions: 00014 * 00015 * The above copyright notice and this permission notice shall be included in 00016 * all copies or substantial portions of the Software. 00017 * 00018 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00019 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00020 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00021 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00022 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00023 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00024 * THE SOFTWARE. 00025 * ============================================================================= 00026 */ 00027 00028 #include "appconf.h" 00029 #include "ConfigFile.h" 00030 00031 #define KEY_PACHUBE_APIKEY "PACHUBE_APIKEY" 00032 #define KEY_PACHUBE_FEEDID "PACHUBE_FEEDID" 00033 #define KEY_PACHUBE_INTERVAL "PACHUBE_INTERVAL" 00034 00035 /** 00036 * Initialize configuration. 00037 * 00038 * @param p A pointer to a application config. 00039 */ 00040 void appconf_init(appconf_t *p) { 00041 memset(p->apikey, 0, sizeof(p->apikey)); 00042 memset(p->feedid, 0, sizeof(p->feedid)); 00043 p->interval = 0; 00044 } 00045 00046 /** 00047 * Read configuration. 00048 * 00049 * @param filename Filename. 00050 * @param p A pointer to a application config. 00051 * @return Return zero if it succeed. 00052 */ 00053 int appconf_read(char *filename, appconf_t *p) { 00054 ConfigFile cf; 00055 if (!cf.read(filename)) { 00056 return -1; 00057 } 00058 if (!cf.getValue(KEY_PACHUBE_APIKEY, p->apikey, sizeof(p->apikey))) { 00059 return -2; 00060 } 00061 if (!cf.getValue(KEY_PACHUBE_FEEDID, p->feedid, sizeof(p->feedid))) { 00062 return -3; 00063 } 00064 char buf[64]; 00065 if (!cf.getValue(KEY_PACHUBE_INTERVAL, buf, sizeof(buf))) { 00066 return -4; 00067 } else { 00068 if (sscanf(buf, "%d", &(p->interval)) != 1) { 00069 return -5; 00070 } 00071 } 00072 return 0; 00073 } 00074 00075 /** 00076 * Write configuration. 00077 * 00078 * @param filename Filename. 00079 * @param p A pointer to a application config. 00080 * @return Return zero if it succeed. 00081 */ 00082 int appconf_write(char *filename, appconf_t *p) { 00083 ConfigFile cf; 00084 if (!cf.setValue(KEY_PACHUBE_APIKEY, p->apikey)) { 00085 return -1; 00086 } 00087 if (!cf.setValue(KEY_PACHUBE_FEEDID, p->feedid)) { 00088 return -2; 00089 } 00090 char buf[64]; 00091 snprintf(buf, sizeof(buf) - 1, "%d", p->interval); 00092 if (!cf.setValue(KEY_PACHUBE_INTERVAL, buf)) { 00093 return -3; 00094 } 00095 if (!cf.write(filename)) { 00096 return -4; 00097 } 00098 return 0; 00099 }
Generated on Thu Jul 14 2022 11:44:25 by
1.7.2