Seeed / GPRSInterface

Dependencies:   BufferedSerial

Dependents:   ThinkSpeak_Test roam_v1 roam_v2 finalv3

Fork of GPRSInterface by wei zou

Committer:
lawliet
Date:
Tue Feb 25 02:52:48 2014 +0000
Revision:
0:8ccbd963e74d
Initial version of GPRS Interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lawliet 0:8ccbd963e74d 1 /*
lawliet 0:8ccbd963e74d 2 pico_string.h
lawliet 0:8ccbd963e74d 3 2014 Copyright (c) Seeed Technology Inc. All right reserved.
lawliet 0:8ccbd963e74d 4
lawliet 0:8ccbd963e74d 5 Author:lawliet zou(lawliet.zou@gmail.com)
lawliet 0:8ccbd963e74d 6 2014-2-24
lawliet 0:8ccbd963e74d 7
lawliet 0:8ccbd963e74d 8 This library is free software; you can redistribute it and/or
lawliet 0:8ccbd963e74d 9 modify it under the terms of the GNU Lesser General Public
lawliet 0:8ccbd963e74d 10 License as published by the Free Software Foundation; either
lawliet 0:8ccbd963e74d 11 version 2.1 of the License, or (at your option) any later version.
lawliet 0:8ccbd963e74d 12
lawliet 0:8ccbd963e74d 13 This library is distributed in the hope that it will be useful,
lawliet 0:8ccbd963e74d 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
lawliet 0:8ccbd963e74d 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
lawliet 0:8ccbd963e74d 16 Lesser General Public License for more details.
lawliet 0:8ccbd963e74d 17
lawliet 0:8ccbd963e74d 18 You should have received a copy of the GNU Lesser General Public
lawliet 0:8ccbd963e74d 19 License along with this library; if not, write to the Free Software
lawliet 0:8ccbd963e74d 20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
lawliet 0:8ccbd963e74d 21 */
lawliet 0:8ccbd963e74d 22 #ifndef __PICO_STRING_H__
lawliet 0:8ccbd963e74d 23
lawliet 0:8ccbd963e74d 24 class pico_string {
lawliet 0:8ccbd963e74d 25
lawliet 0:8ccbd963e74d 26 public:
lawliet 0:8ccbd963e74d 27 pico_string(){
lawliet 0:8ccbd963e74d 28 _len = 0;
lawliet 0:8ccbd963e74d 29 _buf = (char*)malloc(1);
lawliet 0:8ccbd963e74d 30 if (_buf) {
lawliet 0:8ccbd963e74d 31 _buf[0] = '\0';
lawliet 0:8ccbd963e74d 32 }
lawliet 0:8ccbd963e74d 33 }
lawliet 0:8ccbd963e74d 34 ~pico_string() {
lawliet 0:8ccbd963e74d 35 if (_buf) {
lawliet 0:8ccbd963e74d 36 free(_buf);
lawliet 0:8ccbd963e74d 37 }
lawliet 0:8ccbd963e74d 38 }
lawliet 0:8ccbd963e74d 39 bool empty() {
lawliet 0:8ccbd963e74d 40 return _len == 0;
lawliet 0:8ccbd963e74d 41 }
lawliet 0:8ccbd963e74d 42 void append(const char* s, int len) {
lawliet 0:8ccbd963e74d 43 if (_buf == NULL) {
lawliet 0:8ccbd963e74d 44 return;
lawliet 0:8ccbd963e74d 45 }
lawliet 0:8ccbd963e74d 46 char* p = (char*)malloc(_len+len+1);
lawliet 0:8ccbd963e74d 47 if (p == NULL) {
lawliet 0:8ccbd963e74d 48 return;
lawliet 0:8ccbd963e74d 49 }
lawliet 0:8ccbd963e74d 50 memcpy(p, _buf, _len);
lawliet 0:8ccbd963e74d 51 memcpy(p+_len, s, len);
lawliet 0:8ccbd963e74d 52 p[_len+len] = '\0';
lawliet 0:8ccbd963e74d 53 free(_buf);
lawliet 0:8ccbd963e74d 54 _buf = p;
lawliet 0:8ccbd963e74d 55 }
lawliet 0:8ccbd963e74d 56 void append(const char* s) {
lawliet 0:8ccbd963e74d 57 append(s, strlen(s));
lawliet 0:8ccbd963e74d 58 }
lawliet 0:8ccbd963e74d 59 char* c_str() {
lawliet 0:8ccbd963e74d 60 if (_buf) {
lawliet 0:8ccbd963e74d 61 return _buf;
lawliet 0:8ccbd963e74d 62 }
lawliet 0:8ccbd963e74d 63 return "";
lawliet 0:8ccbd963e74d 64 }
lawliet 0:8ccbd963e74d 65 private:
lawliet 0:8ccbd963e74d 66 char* _buf;
lawliet 0:8ccbd963e74d 67 int _len;
lawliet 0:8ccbd963e74d 68 };
lawliet 0:8ccbd963e74d 69
lawliet 0:8ccbd963e74d 70 #endif