M2X Ethernet demo using Seeed Ethernet W5200 Shield

Dependencies:   LM75B M2XStreamClient jsonlite mbed-rtos mbed Nucleo_Sensor_Shield

Fork of m2x-seeed_ethernet_demo by Sean Newton

Committer:
dangriffin
Date:
Wed Dec 17 20:45:13 2014 +0000
Revision:
11:40d8cfc941ed
Parent:
7:a94ba2e0cd04
Use the public Nucleo Sensor Shield library.

Who changed what in which revision?

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