ConfigFile
Dependents: ConfigFile_TestProgram StarBoardOrangeExpansion1 StarBoardOrangeExpansion2 Drive2ChoroQ ... more
ConfigFile.h
- Committer:
- shintamainjp
- Date:
- 2010-09-15
- Revision:
- 5:56d544b8e5c6
- Parent:
- 4:940510a29b44
- Child:
- 6:f6ceafabe9f8
File content as of revision 5:56d544b8e5c6:
/** * Configuration file interface class (Version 0.0.1) * * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems) * http://shinta.main.jp/ */ #include "mbed.h" #ifndef _CONFIG_FILE_H_ #define _CONFIG_FILE_H_ /** * Configuration File class. */ class ConfigFile { public: /** * Create a configuration file class. */ ConfigFile(); /** * Destroy a configuration file class. */ ~ConfigFile(); /** * Get a value for a key. * * @param key A target key name. * @param value A pointer to a value storage. * @param siz A size of a value storage. * @return A value or NULL. */ bool getValue(char *key, char *value, size_t siz); /** * Set a set of a key and value. * * @param key A key. * @param value A value. * * @return True if it succeed. */ bool setValue(char *key, char *value); /** * Remove a config. * * @param key A key. * * @return True if it succeed. */ bool remove(char *key); /** * Remove all config. * * @return True if it succeed. */ bool removeAll(void); int getCount(); bool getKeyAndValue(int index, char *key, size_t keybufsiz, char *value, size_t valuebufsiz); /** * Read from the target file. * * @param file A target file name. */ bool read(char *file); typedef enum { UNIX, MAC, DOS } FileFormat; /** * Write from the target file. * * @param file A pointer to a file name. * @param header A pointer to a header. * @param ff File format. */ bool write(char *file, char *header = NULL, FileFormat ff = UNIX); private: typedef struct { char *key; char *value; } config_t; config_t **configlist; static const int MAXCONFIG = 64; static const int MAXLEN_KEY = 64; static const int MAXLEN_VALUE = 128; static const char SEPARATOR = '='; config_t *search(char *key); bool add(config_t *cfg); }; #endif