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.
Dependencies: mbed MODSERIAL FATFileSystem
ConfigFile/ConfigFile.h
- Committer:
- mkelly10
- Date:
- 2017-10-20
- Revision:
- 9:d5fcdcb3c89d
File content as of revision 9:d5fcdcb3c89d:
/**
* 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