ConfigFile

Dependents:   ConfigFile_TestProgram StarBoardOrangeExpansion1 StarBoardOrangeExpansion2 Drive2ChoroQ ... more

Committer:
shintamainjp
Date:
Sun Sep 12 07:22:00 2010 +0000
Revision:
1:f02e081afe42
Parent:
0:6b4ba48753b9
Child:
2:d8febae84a45

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:6b4ba48753b9 1 #include "mbed.h"
shintamainjp 0:6b4ba48753b9 2
shintamainjp 0:6b4ba48753b9 3 #ifndef _CONFIG_FILE_H_
shintamainjp 0:6b4ba48753b9 4 #define _CONFIG_FILE_H_
shintamainjp 0:6b4ba48753b9 5
shintamainjp 0:6b4ba48753b9 6 /**
shintamainjp 0:6b4ba48753b9 7 * Configuration File class.
shintamainjp 0:6b4ba48753b9 8 */
shintamainjp 0:6b4ba48753b9 9 class ConfigFile {
shintamainjp 0:6b4ba48753b9 10 public:
shintamainjp 0:6b4ba48753b9 11
shintamainjp 0:6b4ba48753b9 12 /**
shintamainjp 0:6b4ba48753b9 13 * Create a configuration file class.
shintamainjp 0:6b4ba48753b9 14 */
shintamainjp 0:6b4ba48753b9 15 ConfigFile();
shintamainjp 0:6b4ba48753b9 16
shintamainjp 0:6b4ba48753b9 17 /**
shintamainjp 0:6b4ba48753b9 18 * Destroy a configuration file class.
shintamainjp 0:6b4ba48753b9 19 */
shintamainjp 0:6b4ba48753b9 20 ~ConfigFile();
shintamainjp 0:6b4ba48753b9 21
shintamainjp 0:6b4ba48753b9 22 /**
shintamainjp 0:6b4ba48753b9 23 * Get a value for a key.
shintamainjp 0:6b4ba48753b9 24 *
shintamainjp 0:6b4ba48753b9 25 * @param key A target key name.
shintamainjp 1:f02e081afe42 26 * @param value A pointer to a value storage.
shintamainjp 1:f02e081afe42 27 * @param siz A size of a value storage.
shintamainjp 0:6b4ba48753b9 28 * @return A value or NULL.
shintamainjp 0:6b4ba48753b9 29 */
shintamainjp 1:f02e081afe42 30 bool getValue(char *key, char *value, size_t siz);
shintamainjp 0:6b4ba48753b9 31
shintamainjp 0:6b4ba48753b9 32 /**
shintamainjp 0:6b4ba48753b9 33 * Set a set of a key and value.
shintamainjp 0:6b4ba48753b9 34 *
shintamainjp 0:6b4ba48753b9 35 * @param key A key.
shintamainjp 0:6b4ba48753b9 36 * @param value A value.
shintamainjp 0:6b4ba48753b9 37 *
shintamainjp 0:6b4ba48753b9 38 * @return True if it succeed.
shintamainjp 0:6b4ba48753b9 39 */
shintamainjp 0:6b4ba48753b9 40 bool setValue(char *key, char *value);
shintamainjp 0:6b4ba48753b9 41
shintamainjp 0:6b4ba48753b9 42 /**
shintamainjp 0:6b4ba48753b9 43 * Remove a config.
shintamainjp 0:6b4ba48753b9 44 *
shintamainjp 0:6b4ba48753b9 45 * @param key A key.
shintamainjp 0:6b4ba48753b9 46 *
shintamainjp 0:6b4ba48753b9 47 * @return True if it succeed.
shintamainjp 0:6b4ba48753b9 48 */
shintamainjp 0:6b4ba48753b9 49 bool remove(char *key);
shintamainjp 0:6b4ba48753b9 50
shintamainjp 0:6b4ba48753b9 51 /**
shintamainjp 0:6b4ba48753b9 52 * Remove all config.
shintamainjp 0:6b4ba48753b9 53 *
shintamainjp 0:6b4ba48753b9 54 * @return True if it succeed.
shintamainjp 0:6b4ba48753b9 55 */
shintamainjp 0:6b4ba48753b9 56 bool removeAll(void);
shintamainjp 0:6b4ba48753b9 57
shintamainjp 0:6b4ba48753b9 58 /**
shintamainjp 0:6b4ba48753b9 59 * Read from the target file.
shintamainjp 0:6b4ba48753b9 60 *
shintamainjp 0:6b4ba48753b9 61 * @param file A target file name.
shintamainjp 0:6b4ba48753b9 62 */
shintamainjp 0:6b4ba48753b9 63 bool read(char *file);
shintamainjp 0:6b4ba48753b9 64
shintamainjp 0:6b4ba48753b9 65 /**
shintamainjp 0:6b4ba48753b9 66 * Write from the target file.
shintamainjp 0:6b4ba48753b9 67 *
shintamainjp 0:6b4ba48753b9 68 * @param file A target file name.
shintamainjp 0:6b4ba48753b9 69 */
shintamainjp 0:6b4ba48753b9 70 bool write(char *file);
shintamainjp 0:6b4ba48753b9 71
shintamainjp 0:6b4ba48753b9 72 /**
shintamainjp 0:6b4ba48753b9 73 * Output for debugging.
shintamainjp 0:6b4ba48753b9 74 *
shintamainjp 0:6b4ba48753b9 75 * @deprecated Please do not use this method.
shintamainjp 0:6b4ba48753b9 76 */
shintamainjp 0:6b4ba48753b9 77 void debout(void) {
shintamainjp 0:6b4ba48753b9 78 printf("===========================================================================\n");
shintamainjp 0:6b4ba48753b9 79 for (int i = 0; i < MAXCONFIG; i++) {
shintamainjp 0:6b4ba48753b9 80 config_t *cfg = configlist[i];
shintamainjp 0:6b4ba48753b9 81 printf("[%03d]:", i);
shintamainjp 0:6b4ba48753b9 82 if (cfg == NULL) {
shintamainjp 0:6b4ba48753b9 83 printf("NULL\n");
shintamainjp 0:6b4ba48753b9 84 } else {
shintamainjp 0:6b4ba48753b9 85 printf("'%s'='%s'\n", cfg->key, cfg->value);
shintamainjp 0:6b4ba48753b9 86 }
shintamainjp 0:6b4ba48753b9 87 }
shintamainjp 0:6b4ba48753b9 88 printf("===========================================================================\n");
shintamainjp 0:6b4ba48753b9 89 }
shintamainjp 0:6b4ba48753b9 90 private:
shintamainjp 0:6b4ba48753b9 91 typedef struct {
shintamainjp 0:6b4ba48753b9 92 char *key;
shintamainjp 0:6b4ba48753b9 93 char *value;
shintamainjp 0:6b4ba48753b9 94 } config_t;
shintamainjp 0:6b4ba48753b9 95 config_t **configlist;
shintamainjp 0:6b4ba48753b9 96 static const int MAXCONFIG = 64;
shintamainjp 0:6b4ba48753b9 97 static const int MAXLEN_KEY = 64;
shintamainjp 0:6b4ba48753b9 98 static const int MAXLEN_VALUE = 128;
shintamainjp 0:6b4ba48753b9 99 static const char SEPARATOR = '=';
shintamainjp 0:6b4ba48753b9 100
shintamainjp 0:6b4ba48753b9 101 config_t *search(char *key);
shintamainjp 0:6b4ba48753b9 102 bool add(config_t *cfg);
shintamainjp 0:6b4ba48753b9 103 };
shintamainjp 0:6b4ba48753b9 104
shintamainjp 0:6b4ba48753b9 105 #endif