eichi kowata / Mbed 2 deprecated geiger

Dependencies:   EthernetNetIf NTPClient_NetServices mbed ConfigFile

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Pachube.h Source File

Pachube.h

00001 /*******************************************************************************
00002 modify 
00003 2011/08
00004         - Use commonClient.
00005 
00006 *******************************************************************************/
00007 
00008 /**
00009  * Pachube API interface driver. (Version 0.0.1)
00010  *
00011  * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
00012  * http://shinta.main.jp/
00013  */
00014 
00015 #ifndef _PACHUBE_H_
00016 #define _PACHUBE_H_
00017 
00018 #include <string>
00019 #include "HTTPClient.h"
00020 
00021 class Pachube {
00022 public:
00023 
00024     explicit Pachube(std::string APIKEY);
00025 
00026     virtual ~Pachube();
00027 
00028     /*
00029      * =================================================================
00030      *  Environments (feeds)
00031      * =================================================================
00032      */
00033 
00034     /**
00035      * List all available feeds: GET /v2/feeds
00036      *
00037      * @param page Integer indicating which page of results you are requesting.
00038      * @param per_page Integer defining how many results to return per page (1 to 1000).
00039      * @param content String parameter ('full' or 'summary') describing whether we want full or summary results. Full results means all datastream values are returned, summary just returns the environment meta data for each feed.
00040      * @param q Full text search parameter. Should return any feeds matching this string.
00041      * @param tag Returns feeds containing datastreams tagged with the search query.
00042      * @param user Returns feeds created by the user specified.
00043      * @param units Returns feeds containing datastreams with units specified by the search query.
00044      * @param status Possible values ('live', 'frozen', or 'all'). Whether to search for only live feeds, only frozen feeds, or all feeds. Defaults to all.
00045      * @param order Order of returned feeds. Possible values ('created_at', 'retrieved_at', or 'relevance').
00046      */
00047     virtual int listAllAvailableFeeds(
00048         int page,
00049         int per_page,
00050         std::string content,
00051         std::string q,
00052         std::string tag,
00053         std::string user,
00054         std::string units,
00055         std::string status,
00056         std::string order,
00057         std::string &datatext) = 0;
00058 
00059     /**
00060      * Create new feed: POST /v2/feeds
00061      */
00062     virtual int createNewFeed(void) = 0;
00063 
00064     /**
00065      * Read feed: GET /v2/feeds/<feed_id>
00066      */
00067     virtual int readFeed(int feed_id, std::string &datatext) = 0;
00068 
00069     /**
00070      * Update feed: PUT /v2/feeds/<feed_id>
00071      */
00072     virtual int updateFeed(int feed_id) = 0;
00073 
00074     /**
00075      * Delete feed: DELETE /v2/feeds/<feed_id>
00076      */
00077     virtual int deleteFeed(int feed_id) = 0;
00078 
00079     /*
00080      * =================================================================
00081      *  Datastreams
00082      * =================================================================
00083      */
00084 
00085     /**
00086      * Create new datastream: POST /v2/feeds/<feed_id>/datastreams
00087      *
00088      * @param feed_id Feed ID.
00089      * @param stream_id Stream ID text.
00090      * @param value value.
00091      *
00092      * @return Return code from a web server.
00093      */
00094     virtual int createNewDataStream(int feed_id, std::string stream_id, std::string value) = 0;
00095 
00096     /**
00097      * Read datastream - GET /v2/feeds/<feed_id>/datastreams/<datastream_id>
00098      *
00099      * @param feed_id Feed ID.
00100      * @param stream_id Stream ID text.
00101      *
00102      * @return Return code from a web server.
00103      */
00104     virtual int readDataStream(int feed_id, std::string stream_id, std::string &datatext) = 0;
00105 
00106     /**
00107      * Update datastream: PUT /v2/feeds/<feed_id>/datastreams/<datastream_id>
00108      *
00109      * @param feed_id Feed ID.
00110      * @param stream_id Stream ID text.
00111      * @param value value.
00112      *
00113      * @return Return code from a web server.
00114      */
00115 //    virtual int updateDataStream(int feed_id, std::string stream_id, std::string value) = 0;
00116     virtual int updateDataStream(int feed_id, std::string stream_id, std::string value, HTTPClient *pClient) = 0;   //  2011/08
00117 
00118     /**
00119      * Delete datastream: DELETE /v2/feeds/<feed_id>/datastreams/<datastream_id>
00120      *
00121      * @param feed_id Feed ID.
00122      * @param stream_id Stream ID text.
00123      *
00124      * @return Return code from a web server.
00125      */
00126     virtual int deleteDataStream(int feed_id, std::string stream_id) = 0;
00127 
00128 protected:
00129     const std::string APIKEY;
00130     static const std::string REQUESTHEADER;
00131     static const std::string URLBASE_V2;
00132 };
00133 
00134 #endif
00135 
00136 /*
00137 Pachube v2 API Documentation
00138 http://api.pachube.com/v2/
00139 
00140 # Environments (feeds)
00141 
00142 o   * List all available feeds: GET /v2/feeds
00143 o   * Create new feed: POST /v2/feeds
00144 o   * Read feed: GET /v2/feeds/<feed_id>
00145 o   * Update feed: PUT /v2/feeds/<feed_id>
00146 o   * Delete feed: DELETE /v2/feeds/<feed_id>
00147 
00148 # Datastreams
00149 
00150 o   * Create new datastream: POST /v2/feeds/<feed_id>/datastreams
00151 o   * Read datastream - GET /v2/feeds/<feed_id>/datastreams/<datastream_id>
00152 o   * Update datastream: PUT /v2/feeds/<feed_id>/datastreams/<datastream_id>
00153 o   * Delete datastream: DELETE /v2/feeds/<feed_id>/datastreams/<datastream_id>
00154 
00155 # Datapoints
00156 
00157     * Create datapoint: POST /v2/feeds/<feed_id>/datastreams/<datastream_id>/datapoints
00158     * Read datapoint: GET /v2/feeds/<feed_id>/datastreams/<datastream_id>/datapoints/<timestamp>
00159     * Update datapoint: PUT /v2/feeds/<feed_id>/datastreams/<datastream_id>/datapoints/<timestamp>
00160     * Delete datapoint: DELETE /v2/feeds/<feed_id>/datastreams/<datastream_id>/datapoints/<timestamp>
00161 
00162 # Triggers
00163 
00164     * List triggers: GET /v2/triggers
00165     * Create trigger: POST /v2/triggers
00166     * Read trigger: GET /v2/triggers/<trigger_id>
00167     * Update trigger: PUT /v2/triggers/<trigger_id>
00168     * Delete trigger: DELETE /v2/triggers/<trigger_id>
00169 
00170 # Users
00171 
00172     * List all users: GET /v2/users
00173     * Create user: POST /v2/users
00174     * Read user: GET /v2/users/<user_id>
00175     * Update user: PUT /v2/users/<user_id>
00176     * Delete user: DELETE /v2/users/<user_id>
00177 */