Program the control the fischertechnik robo interface or intelligent interface via tcp socket or via a java gui.
Diff: ConfigFile.h
- Revision:
- 0:7f26f0680202
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ConfigFile.h Fri Dec 31 14:01:14 2010 +0000 @@ -0,0 +1,121 @@ +/** + * 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); + + /** + * Get a number of configuration sets. + * + * @return number of configuration sets. + */ + int getCount(); + + /** + * Get a key and a value. + * + * @param index Index number of this list. + * @param key A pointer to a buffer for key. + * @param keybufsiz A size of the key buffer. + * @param value A pointer to a buffer for value. + * @param valuebufsiz A size of the value buffer. + * + * @return true if it succeed. + */ + 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