Utility library. Some string and mbed memory utilities.

Dependents:   19E042PIM_T3_2020_0639

Files at this revision

API Documentation at this revision

Comitter:
Phlaphead
Date:
Sun Jun 19 13:13:00 2011 +0000
Commit message:
Initial Revision

Changed in this revision

mbedUtils.cpp Show annotated file Show diff for this revision Revisions of this file
mbedUtils.h Show annotated file Show diff for this revision Revisions of this file
stringUtils.cpp Show annotated file Show diff for this revision Revisions of this file
stringUtils.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbedUtils.cpp	Sun Jun 19 13:13:00 2011 +0000
@@ -0,0 +1,16 @@
+
+#include "mbedUtils.h"
+
+#include "mbed.h"
+
+
+int getFreeMemory()
+{
+    // Return the difference between the heap pointer and stack pointer.
+    char stackVar = '\0';
+    char* stackPtr = &stackVar;
+    char* heapPtr = (char*)malloc(sizeof(char));
+    int memFree = stackPtr - heapPtr;
+    free(heapPtr);
+    return memFree;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbedUtils.h	Sun Jun 19 13:13:00 2011 +0000
@@ -0,0 +1,31 @@
+/*
+Copyright (c) 2011 Robert Ellis (holistic [at] robellis [dot] org [dot] uk)
+ 
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+ 
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+ 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+#ifndef MBED_UTILS_H
+#define MBED_UTILS_H
+
+/**
+ * Get the amount of free RAM left on the mbed in bytes.
+ */
+int getFreeMemory();
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stringUtils.cpp	Sun Jun 19 13:13:00 2011 +0000
@@ -0,0 +1,44 @@
+
+
+#include "stringUtils.h"
+
+using namespace std;
+
+string trim(const string& src, const string& c)
+{
+    int p2 = src.find_last_not_of(c);
+    if (p2 == string::npos) 
+    {
+        return string();
+    }
+    
+    int p1 = src.find_first_not_of(c);
+    if (p1 == string::npos) 
+    {
+        p1 = 0;
+    }
+    
+    return src.substr(p1, (p2-p1)+1);
+}
+
+vector<string> tokenize(const string& str, const string& delimiters)
+{
+    vector<string> tokens;
+
+    // Skip delimiters at beginning.
+    string::size_type lastPos = str.find_first_not_of(delimiters, 0);
+    // Find first "non-delimiter".
+    string::size_type pos     = str.find_first_of(delimiters, lastPos);
+
+    while (string::npos != pos || string::npos != lastPos)
+    {
+        // Found a token, add it to the vector.
+        tokens.push_back(str.substr(lastPos, pos - lastPos));
+        // Skip delimiters.  Note the "not_of"
+        lastPos = str.find_first_not_of(delimiters, pos);
+        // Find next "non-delimiter"
+        pos = str.find_first_of(delimiters, lastPos);
+    }
+    
+    return tokens;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stringUtils.h	Sun Jun 19 13:13:00 2011 +0000
@@ -0,0 +1,40 @@
+/*
+Copyright (c) 2011 Robert Ellis (holistic [at] robellis [dot] org [dot] uk)
+ 
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+ 
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+ 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+#ifndef STRING_UTILS_H
+#define STRING_UTILS_H
+
+#include <string>
+#include <vector>
+using namespace std;
+
+/**
+ * Trims whitespace characters from beginning and end of given string.
+ */
+string trim(const string& src, const string& c = " \r\n");
+
+/**
+ * Tokenize given string delimmted by given delimter into a vector of seprate strings.
+ */
+vector<string> tokenize(const string& str, const string& delimiters = " ");
+
+#endif