![](/media/cache/group/STM32_F4_Series.jpg.50x50_q85.jpg)
Sample program for config data handling.
main.cpp@0:7cfa4f091512, 2015-02-17 (annotated)
- Committer:
- hillkim7
- Date:
- Tue Feb 17 14:41:36 2015 +0000
- Revision:
- 0:7cfa4f091512
The dconfig library example.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hillkim7 | 0:7cfa4f091512 | 1 | /* |
hillkim7 | 0:7cfa4f091512 | 2 | Demo application for the dconfig library for handling app configuration setting. |
hillkim7 | 0:7cfa4f091512 | 3 | */ |
hillkim7 | 0:7cfa4f091512 | 4 | #include <stdio.h> |
hillkim7 | 0:7cfa4f091512 | 5 | #include "dconfig.h" |
hillkim7 | 0:7cfa4f091512 | 6 | |
hillkim7 | 0:7cfa4f091512 | 7 | class MyConfig : public DConfig |
hillkim7 | 0:7cfa4f091512 | 8 | { |
hillkim7 | 0:7cfa4f091512 | 9 | public: |
hillkim7 | 0:7cfa4f091512 | 10 | virtual void reset_default(void) |
hillkim7 | 0:7cfa4f091512 | 11 | { |
hillkim7 | 0:7cfa4f091512 | 12 | (*this)["tz"] = "9"; |
hillkim7 | 0:7cfa4f091512 | 13 | (*this)["name"] = "my_app"; |
hillkim7 | 0:7cfa4f091512 | 14 | } |
hillkim7 | 0:7cfa4f091512 | 15 | }; |
hillkim7 | 0:7cfa4f091512 | 16 | |
hillkim7 | 0:7cfa4f091512 | 17 | static bool save_to_str(void *user_data, char c) |
hillkim7 | 0:7cfa4f091512 | 18 | { |
hillkim7 | 0:7cfa4f091512 | 19 | std::string *buf = (std::string*)user_data; |
hillkim7 | 0:7cfa4f091512 | 20 | |
hillkim7 | 0:7cfa4f091512 | 21 | buf->push_back(c); |
hillkim7 | 0:7cfa4f091512 | 22 | return true; |
hillkim7 | 0:7cfa4f091512 | 23 | } |
hillkim7 | 0:7cfa4f091512 | 24 | |
hillkim7 | 0:7cfa4f091512 | 25 | int main(int argc, char* argv[]) |
hillkim7 | 0:7cfa4f091512 | 26 | { |
hillkim7 | 0:7cfa4f091512 | 27 | MyConfig mycfg; |
hillkim7 | 0:7cfa4f091512 | 28 | std::string serialized_data; |
hillkim7 | 0:7cfa4f091512 | 29 | |
hillkim7 | 0:7cfa4f091512 | 30 | // setup initial key & value |
hillkim7 | 0:7cfa4f091512 | 31 | mycfg.reset_default(); |
hillkim7 | 0:7cfa4f091512 | 32 | |
hillkim7 | 0:7cfa4f091512 | 33 | printf("name=%s\r\n", mycfg.lookup_as_cstr("name", "")); |
hillkim7 | 0:7cfa4f091512 | 34 | printf("tz=%d\r\n", mycfg.lookup_as_int("tz", 0)); |
hillkim7 | 0:7cfa4f091512 | 35 | |
hillkim7 | 0:7cfa4f091512 | 36 | // save data to serialized_data and clear mycfg |
hillkim7 | 0:7cfa4f091512 | 37 | mycfg.save_to(save_to_str, &serialized_data); |
hillkim7 | 0:7cfa4f091512 | 38 | mycfg.clear(); |
hillkim7 | 0:7cfa4f091512 | 39 | |
hillkim7 | 0:7cfa4f091512 | 40 | // make sure data is clean |
hillkim7 | 0:7cfa4f091512 | 41 | printf("name=%s\r\n", mycfg.lookup_as_cstr("name", "")); |
hillkim7 | 0:7cfa4f091512 | 42 | printf("tz=%d\r\n", mycfg.lookup_as_int("tz", 0)); |
hillkim7 | 0:7cfa4f091512 | 43 | |
hillkim7 | 0:7cfa4f091512 | 44 | // restore and see its contents |
hillkim7 | 0:7cfa4f091512 | 45 | mycfg.load_from(serialized_data.c_str(), serialized_data.size()); |
hillkim7 | 0:7cfa4f091512 | 46 | printf("name=%s\r\n", mycfg.lookup_as_cstr("name", "")); |
hillkim7 | 0:7cfa4f091512 | 47 | printf("tz=%d\r\n", mycfg.lookup_as_int("tz", 0)); |
hillkim7 | 0:7cfa4f091512 | 48 | |
hillkim7 | 0:7cfa4f091512 | 49 | return 0; |
hillkim7 | 0:7cfa4f091512 | 50 | } |
hillkim7 | 0:7cfa4f091512 | 51 | |
hillkim7 | 0:7cfa4f091512 | 52 |