http://mbed.org/users/shintamainjp/notebook/starboard_expbrd-one_ex1_en/

Dependencies:   mbed RemoteIR SuperTweet ConfigFile EthernetNetIf

Committer:
shintamainjp
Date:
Thu Nov 04 14:33:07 2010 +0000
Revision:
1:c4cfd136f9c7
Parent:
0:db299c5a18ba
Added license terms.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 1:c4cfd136f9c7 1 /**
shintamainjp 1:c4cfd136f9c7 2 * =============================================================================
shintamainjp 1:c4cfd136f9c7 3 * Stream filter for Twitter.
shintamainjp 1:c4cfd136f9c7 4 * http://mbed.org/users/shintamainjp/notebook/starboard_expbrd-one_ex1_en/
shintamainjp 1:c4cfd136f9c7 5 * =============================================================================
shintamainjp 1:c4cfd136f9c7 6 * Copyright (c) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 1:c4cfd136f9c7 7 *
shintamainjp 1:c4cfd136f9c7 8 * Permission is hereby granted, free of charge, to any person obtaining a copy
shintamainjp 1:c4cfd136f9c7 9 * of this software and associated documentation files (the "Software"), to deal
shintamainjp 1:c4cfd136f9c7 10 * in the Software without restriction, including without limitation the rights
shintamainjp 1:c4cfd136f9c7 11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
shintamainjp 1:c4cfd136f9c7 12 * copies of the Software, and to permit persons to whom the Software is
shintamainjp 1:c4cfd136f9c7 13 * furnished to do so, subject to the following conditions:
shintamainjp 1:c4cfd136f9c7 14 *
shintamainjp 1:c4cfd136f9c7 15 * The above copyright notice and this permission notice shall be included in
shintamainjp 1:c4cfd136f9c7 16 * all copies or substantial portions of the Software.
shintamainjp 1:c4cfd136f9c7 17 *
shintamainjp 1:c4cfd136f9c7 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
shintamainjp 1:c4cfd136f9c7 19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
shintamainjp 1:c4cfd136f9c7 20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
shintamainjp 1:c4cfd136f9c7 21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
shintamainjp 1:c4cfd136f9c7 22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
shintamainjp 1:c4cfd136f9c7 23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
shintamainjp 1:c4cfd136f9c7 24 * THE SOFTWARE.
shintamainjp 1:c4cfd136f9c7 25 * =============================================================================
shintamainjp 1:c4cfd136f9c7 26 */
shintamainjp 0:db299c5a18ba 27
shintamainjp 0:db299c5a18ba 28 #include "mbed.h"
shintamainjp 0:db299c5a18ba 29
shintamainjp 0:db299c5a18ba 30 /**
shintamainjp 0:db299c5a18ba 31 * Stream filter.
shintamainjp 0:db299c5a18ba 32 */
shintamainjp 0:db299c5a18ba 33 class StreamFilter {
shintamainjp 0:db299c5a18ba 34 public:
shintamainjp 0:db299c5a18ba 35
shintamainjp 0:db299c5a18ba 36 /**
shintamainjp 0:db299c5a18ba 37 * Create.
shintamainjp 0:db299c5a18ba 38 *
shintamainjp 0:db299c5a18ba 39 * @param headtxt Head of a target.
shintamainjp 0:db299c5a18ba 40 * @param tailtxt Tail of a target.
shintamainjp 0:db299c5a18ba 41 */
shintamainjp 0:db299c5a18ba 42 StreamFilter(const char *headtxt, const char *tailtxt);
shintamainjp 0:db299c5a18ba 43
shintamainjp 0:db299c5a18ba 44 /**
shintamainjp 0:db299c5a18ba 45 * Dispose.
shintamainjp 0:db299c5a18ba 46 */
shintamainjp 0:db299c5a18ba 47 ~StreamFilter();
shintamainjp 0:db299c5a18ba 48
shintamainjp 0:db299c5a18ba 49 /**
shintamainjp 0:db299c5a18ba 50 * Check state of done.
shintamainjp 0:db299c5a18ba 51 *
shintamainjp 0:db299c5a18ba 52 * @return Return true if it done.
shintamainjp 0:db299c5a18ba 53 */
shintamainjp 0:db299c5a18ba 54 bool done();
shintamainjp 0:db299c5a18ba 55
shintamainjp 0:db299c5a18ba 56 /**
shintamainjp 0:db299c5a18ba 57 * Reset state.
shintamainjp 0:db299c5a18ba 58 */
shintamainjp 0:db299c5a18ba 59 void reset();
shintamainjp 0:db299c5a18ba 60
shintamainjp 0:db299c5a18ba 61 /**
shintamainjp 0:db299c5a18ba 62 * Push a data to a internal buffer.
shintamainjp 0:db299c5a18ba 63 *
shintamainjp 0:db299c5a18ba 64 * @param c character.
shintamainjp 0:db299c5a18ba 65 */
shintamainjp 0:db299c5a18ba 66 void push(char c);
shintamainjp 0:db299c5a18ba 67
shintamainjp 0:db299c5a18ba 68 /**
shintamainjp 0:db299c5a18ba 69 * Get a content text.
shintamainjp 0:db299c5a18ba 70 *
shintamainjp 0:db299c5a18ba 71 * @param buf A pointer to a buffer.
shintamainjp 0:db299c5a18ba 72 * @param bufsiz Size of the buffer.
shintamainjp 0:db299c5a18ba 73 *
shintamainjp 0:db299c5a18ba 74 * @return true if it succeed.
shintamainjp 0:db299c5a18ba 75 */
shintamainjp 0:db299c5a18ba 76 bool getContent(char *buf, size_t bufsiz);
shintamainjp 0:db299c5a18ba 77 private:
shintamainjp 0:db299c5a18ba 78 int headcnt;
shintamainjp 0:db299c5a18ba 79 int tailcnt;
shintamainjp 0:db299c5a18ba 80 const char * head;
shintamainjp 0:db299c5a18ba 81 const char * tail;
shintamainjp 0:db299c5a18ba 82 char content[1024];
shintamainjp 0:db299c5a18ba 83 };