KL25 driver for Tango Control System

Dependencies:   mbed

Committer:
jskl
Date:
Thu Aug 28 07:50:06 2014 +0000
Revision:
2:9fe6f1e273b4
Parent:
0:5d27c333afa6
Fixed bugs in JSON format replies

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jskl 0:5d27c333afa6 1 // pico_string.h 2013/8/27
jskl 0:5d27c333afa6 2 #pragma once
jskl 0:5d27c333afa6 3 class pico_string {
jskl 0:5d27c333afa6 4 public:
jskl 0:5d27c333afa6 5 pico_string(){
jskl 0:5d27c333afa6 6 _len = 0;
jskl 0:5d27c333afa6 7 _buf = (char*)malloc(1);
jskl 0:5d27c333afa6 8 if (_buf) {
jskl 0:5d27c333afa6 9 _buf[0] = '\0';
jskl 0:5d27c333afa6 10 }
jskl 0:5d27c333afa6 11 }
jskl 0:5d27c333afa6 12 ~pico_string() {
jskl 0:5d27c333afa6 13 if (_buf) {
jskl 0:5d27c333afa6 14 free(_buf);
jskl 0:5d27c333afa6 15 }
jskl 0:5d27c333afa6 16 }
jskl 0:5d27c333afa6 17 bool empty() {
jskl 0:5d27c333afa6 18 return _len == 0;
jskl 0:5d27c333afa6 19 }
jskl 0:5d27c333afa6 20 void append(const char* s, int len) {
jskl 0:5d27c333afa6 21 if (_buf == NULL) {
jskl 0:5d27c333afa6 22 return;
jskl 0:5d27c333afa6 23 }
jskl 0:5d27c333afa6 24 char* p = (char*)malloc(_len+len+1);
jskl 0:5d27c333afa6 25 if (p == NULL) {
jskl 0:5d27c333afa6 26 return;
jskl 0:5d27c333afa6 27 }
jskl 0:5d27c333afa6 28 memcpy(p, _buf, _len);
jskl 0:5d27c333afa6 29 memcpy(p+_len, s, len);
jskl 0:5d27c333afa6 30 p[_len+len] = '\0';
jskl 0:5d27c333afa6 31 free(_buf);
jskl 0:5d27c333afa6 32 _buf = p;
jskl 0:5d27c333afa6 33 }
jskl 0:5d27c333afa6 34 void append(const char* s) {
jskl 0:5d27c333afa6 35 append(s, strlen(s));
jskl 0:5d27c333afa6 36 }
jskl 0:5d27c333afa6 37 char* c_str() {
jskl 0:5d27c333afa6 38 if (_buf) {
jskl 0:5d27c333afa6 39 return _buf;
jskl 0:5d27c333afa6 40 }
jskl 0:5d27c333afa6 41 return "";
jskl 0:5d27c333afa6 42 }
jskl 0:5d27c333afa6 43 private:
jskl 0:5d27c333afa6 44 char* _buf;
jskl 0:5d27c333afa6 45 int _len;
jskl 0:5d27c333afa6 46 };