Hi. This is the feed program for Cosm. (The previous name of the services is Pachube.)

Dependencies:   mbed ThermistorPack Pachube ConfigFile EthernetNetIf TextLCD HTTPClient_ToBeRemoved FatFileSystem SDFileSystem

Committer:
shintamainjp
Date:
Mon Aug 06 12:37:59 2012 +0000
Revision:
0:521ba375aa0f
Pachube renamed to Cosm.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:521ba375aa0f 1 /**
shintamainjp 0:521ba375aa0f 2 * Configuration file interface class (Version 0.0.1)
shintamainjp 0:521ba375aa0f 3 *
shintamainjp 0:521ba375aa0f 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:521ba375aa0f 5 * http://shinta.main.jp/
shintamainjp 0:521ba375aa0f 6 */
shintamainjp 0:521ba375aa0f 7 #include "mbed.h"
shintamainjp 0:521ba375aa0f 8
shintamainjp 0:521ba375aa0f 9 #ifndef _CONFIG_FILE_H_
shintamainjp 0:521ba375aa0f 10 #define _CONFIG_FILE_H_
shintamainjp 0:521ba375aa0f 11
shintamainjp 0:521ba375aa0f 12 /**
shintamainjp 0:521ba375aa0f 13 * Configuration File class.
shintamainjp 0:521ba375aa0f 14 */
shintamainjp 0:521ba375aa0f 15 class ConfigFile {
shintamainjp 0:521ba375aa0f 16 public:
shintamainjp 0:521ba375aa0f 17
shintamainjp 0:521ba375aa0f 18 /**
shintamainjp 0:521ba375aa0f 19 * Create a configuration file class.
shintamainjp 0:521ba375aa0f 20 */
shintamainjp 0:521ba375aa0f 21 ConfigFile();
shintamainjp 0:521ba375aa0f 22
shintamainjp 0:521ba375aa0f 23 /**
shintamainjp 0:521ba375aa0f 24 * Destroy a configuration file class.
shintamainjp 0:521ba375aa0f 25 */
shintamainjp 0:521ba375aa0f 26 ~ConfigFile();
shintamainjp 0:521ba375aa0f 27
shintamainjp 0:521ba375aa0f 28 /**
shintamainjp 0:521ba375aa0f 29 * Get a value for a key.
shintamainjp 0:521ba375aa0f 30 *
shintamainjp 0:521ba375aa0f 31 * @param key A target key name.
shintamainjp 0:521ba375aa0f 32 * @param value A pointer to a value storage.
shintamainjp 0:521ba375aa0f 33 * @param siz A size of a value storage.
shintamainjp 0:521ba375aa0f 34 * @return A value or NULL.
shintamainjp 0:521ba375aa0f 35 */
shintamainjp 0:521ba375aa0f 36 bool getValue(char *key, char *value, size_t siz);
shintamainjp 0:521ba375aa0f 37
shintamainjp 0:521ba375aa0f 38 /**
shintamainjp 0:521ba375aa0f 39 * Set a set of a key and value.
shintamainjp 0:521ba375aa0f 40 *
shintamainjp 0:521ba375aa0f 41 * @param key A key.
shintamainjp 0:521ba375aa0f 42 * @param value A value.
shintamainjp 0:521ba375aa0f 43 *
shintamainjp 0:521ba375aa0f 44 * @return True if it succeed.
shintamainjp 0:521ba375aa0f 45 */
shintamainjp 0:521ba375aa0f 46 bool setValue(char *key, char *value);
shintamainjp 0:521ba375aa0f 47
shintamainjp 0:521ba375aa0f 48 /**
shintamainjp 0:521ba375aa0f 49 * Remove a config.
shintamainjp 0:521ba375aa0f 50 *
shintamainjp 0:521ba375aa0f 51 * @param key A key.
shintamainjp 0:521ba375aa0f 52 *
shintamainjp 0:521ba375aa0f 53 * @return True if it succeed.
shintamainjp 0:521ba375aa0f 54 */
shintamainjp 0:521ba375aa0f 55 bool remove(char *key);
shintamainjp 0:521ba375aa0f 56
shintamainjp 0:521ba375aa0f 57 /**
shintamainjp 0:521ba375aa0f 58 * Remove all config.
shintamainjp 0:521ba375aa0f 59 *
shintamainjp 0:521ba375aa0f 60 * @return True if it succeed.
shintamainjp 0:521ba375aa0f 61 */
shintamainjp 0:521ba375aa0f 62 bool removeAll(void);
shintamainjp 0:521ba375aa0f 63
shintamainjp 0:521ba375aa0f 64 /**
shintamainjp 0:521ba375aa0f 65 * Get a number of configuration sets.
shintamainjp 0:521ba375aa0f 66 *
shintamainjp 0:521ba375aa0f 67 * @return number of configuration sets.
shintamainjp 0:521ba375aa0f 68 */
shintamainjp 0:521ba375aa0f 69 int getCount();
shintamainjp 0:521ba375aa0f 70
shintamainjp 0:521ba375aa0f 71 /**
shintamainjp 0:521ba375aa0f 72 * Get a key and a value.
shintamainjp 0:521ba375aa0f 73 *
shintamainjp 0:521ba375aa0f 74 * @param index Index number of this list.
shintamainjp 0:521ba375aa0f 75 * @param key A pointer to a buffer for key.
shintamainjp 0:521ba375aa0f 76 * @param keybufsiz A size of the key buffer.
shintamainjp 0:521ba375aa0f 77 * @param value A pointer to a buffer for value.
shintamainjp 0:521ba375aa0f 78 * @param valuebufsiz A size of the value buffer.
shintamainjp 0:521ba375aa0f 79 *
shintamainjp 0:521ba375aa0f 80 * @return true if it succeed.
shintamainjp 0:521ba375aa0f 81 */
shintamainjp 0:521ba375aa0f 82 bool getKeyAndValue(int index, char *key, size_t keybufsiz, char *value, size_t valuebufsiz);
shintamainjp 0:521ba375aa0f 83
shintamainjp 0:521ba375aa0f 84 /**
shintamainjp 0:521ba375aa0f 85 * Read from the target file.
shintamainjp 0:521ba375aa0f 86 *
shintamainjp 0:521ba375aa0f 87 * @param file A target file name.
shintamainjp 0:521ba375aa0f 88 */
shintamainjp 0:521ba375aa0f 89 bool read(char *file);
shintamainjp 0:521ba375aa0f 90
shintamainjp 0:521ba375aa0f 91 typedef enum {
shintamainjp 0:521ba375aa0f 92 UNIX,
shintamainjp 0:521ba375aa0f 93 MAC,
shintamainjp 0:521ba375aa0f 94 DOS
shintamainjp 0:521ba375aa0f 95 } FileFormat;
shintamainjp 0:521ba375aa0f 96
shintamainjp 0:521ba375aa0f 97 /**
shintamainjp 0:521ba375aa0f 98 * Write from the target file.
shintamainjp 0:521ba375aa0f 99 *
shintamainjp 0:521ba375aa0f 100 * @param file A pointer to a file name.
shintamainjp 0:521ba375aa0f 101 * @param header A pointer to a header.
shintamainjp 0:521ba375aa0f 102 * @param ff File format.
shintamainjp 0:521ba375aa0f 103 */
shintamainjp 0:521ba375aa0f 104 bool write(char *file, char *header = NULL, FileFormat ff = UNIX);
shintamainjp 0:521ba375aa0f 105
shintamainjp 0:521ba375aa0f 106 private:
shintamainjp 0:521ba375aa0f 107 typedef struct {
shintamainjp 0:521ba375aa0f 108 char *key;
shintamainjp 0:521ba375aa0f 109 char *value;
shintamainjp 0:521ba375aa0f 110 } config_t;
shintamainjp 0:521ba375aa0f 111 config_t **configlist;
shintamainjp 0:521ba375aa0f 112 static const int MAXCONFIG = 64;
shintamainjp 0:521ba375aa0f 113 static const int MAXLEN_KEY = 64;
shintamainjp 0:521ba375aa0f 114 static const int MAXLEN_VALUE = 128;
shintamainjp 0:521ba375aa0f 115 static const char SEPARATOR = '=';
shintamainjp 0:521ba375aa0f 116
shintamainjp 0:521ba375aa0f 117 config_t *search(char *key);
shintamainjp 0:521ba375aa0f 118 bool add(config_t *cfg);
shintamainjp 0:521ba375aa0f 119 };
shintamainjp 0:521ba375aa0f 120
shintamainjp 0:521ba375aa0f 121 #endif