Thanh Nguyen / libmDot-dev-mbed5
Committer:
Jason Reiss
Date:
Wed Dec 02 15:19:12 2015 -0600
Revision:
10:27dafba9fe19
Parent:
7:683dba5d576f
Child:
12:54f9cac9d690
Adding support for "sleep" mode and RTC_ALARM_OR_INTERRUPT wakeup

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jason Reiss 10:27dafba9fe19 1 #ifndef MTSTEXT_H
Jason Reiss 10:27dafba9fe19 2 #define MTSTEXT_H
Jason Reiss 10:27dafba9fe19 3
Jason Reiss 10:27dafba9fe19 4 #include <string>
Jason Reiss 10:27dafba9fe19 5 #include <vector>
Jason Reiss 10:27dafba9fe19 6 #include <stddef.h>
Jason Reiss 10:27dafba9fe19 7 #include <stdint.h>
Jason Reiss 10:27dafba9fe19 8 #include <stdio.h>
Jason Reiss 10:27dafba9fe19 9 #include <string.h>
Jason Reiss 10:27dafba9fe19 10
Jason Reiss 10:27dafba9fe19 11 namespace mts
Jason Reiss 10:27dafba9fe19 12 {
Jason Reiss 10:27dafba9fe19 13
Jason Reiss 10:27dafba9fe19 14 /** This class contains a number of static methods for manipulating strings and other
Jason Reiss 10:27dafba9fe19 15 * text data.
Jason Reiss 10:27dafba9fe19 16 */
Jason Reiss 10:27dafba9fe19 17 class Text
Jason Reiss 10:27dafba9fe19 18 {
Jason Reiss 10:27dafba9fe19 19 public:
Jason Reiss 10:27dafba9fe19 20 /** This static method can be used to pull out a string at the next line break. A
Jason Reiss 10:27dafba9fe19 21 * break can either be a newline '\n', carriage return '\r' or both.
Jason Reiss 10:27dafba9fe19 22 *
Jason Reiss 10:27dafba9fe19 23 * @param source the source string to look for the line break on.
Jason Reiss 10:27dafba9fe19 24 * @param start the start postion within the string to begin looking for the line
Jason Reiss 10:27dafba9fe19 25 * break.
Jason Reiss 10:27dafba9fe19 26 * @param cursor this value will be updated with the index for the next available character
Jason Reiss 10:27dafba9fe19 27 * after the line break. If a line break is not found returns -1.
Jason Reiss 10:27dafba9fe19 28 * @returns the string beginning with the start index up to including the line breaks.
Jason Reiss 10:27dafba9fe19 29 */
Jason Reiss 10:27dafba9fe19 30 static std::string getLine(const std::string& source, const size_t& start, size_t& cursor);
Jason Reiss 10:27dafba9fe19 31
Jason Reiss 10:27dafba9fe19 32 /** This is a static method for splitting strings using a delimeter value.
Jason Reiss 10:27dafba9fe19 33 *
Jason Reiss 10:27dafba9fe19 34 * @param str the string to try and split.
Jason Reiss 10:27dafba9fe19 35 * @param delimiter the delimeter value to split on as a character.
Jason Reiss 10:27dafba9fe19 36 * @param limit the maximum number of splits. If equal to 0 it splits as amny times as possible.
Jason Reiss 10:27dafba9fe19 37 * The default is 0.
Jason Reiss 10:27dafba9fe19 38 * @returns an ordered vector of strings conatining the splits of the original string.
Jason Reiss 10:27dafba9fe19 39 */
Jason Reiss 10:27dafba9fe19 40 static std::vector<std::string> split(const std::string& str, char delimiter, int limit = 0);
Jason Reiss 10:27dafba9fe19 41
Jason Reiss 10:27dafba9fe19 42 /** This is a static method for splitting strings using a delimeter value.
Jason Reiss 10:27dafba9fe19 43 *
Jason Reiss 10:27dafba9fe19 44 * @param str the string to try and split.
Jason Reiss 10:27dafba9fe19 45 * @param delimiter the delimeter value to split on as a string.
Jason Reiss 10:27dafba9fe19 46 * @param limit the maximum number of splits. If equal to 0 it splits as amny times as possible.
Jason Reiss 10:27dafba9fe19 47 * The default is 0.
Jason Reiss 10:27dafba9fe19 48 * @returns an ordered vector of strings conatining the splits of the original string.
Jason Reiss 10:27dafba9fe19 49 */
Jason Reiss 10:27dafba9fe19 50 static std::vector<std::string> split(const std::string& str, const std::string& delimiter, int limit = 0);
Jason Reiss 10:27dafba9fe19 51
Jason Reiss 10:27dafba9fe19 52 static std::string readString(char* index, int length);
Jason Reiss 10:27dafba9fe19 53
Jason Reiss 10:27dafba9fe19 54 static std::string toUpper(const std::string str);
Jason Reiss 10:27dafba9fe19 55
Jason Reiss 10:27dafba9fe19 56 static std::string float2String(double val, int precision);
Jason Reiss 10:27dafba9fe19 57
Jason Reiss 10:27dafba9fe19 58 static std::string bin2hexString(const std::vector<uint8_t>& data, const char* delim = "", bool leadingZeros = false);
Mike Fiore 7:683dba5d576f 59
Jason Reiss 10:27dafba9fe19 60 static std::string bin2hexString(const uint8_t* data, const uint32_t len, const char* delim = "", bool leadingZeros = false);
Jason Reiss 10:27dafba9fe19 61
Jason Reiss 10:27dafba9fe19 62 static std::string bin2base64(const std::vector<uint8_t>& data);
Jason Reiss 10:27dafba9fe19 63
Jason Reiss 10:27dafba9fe19 64 static std::string bin2base64(const uint8_t* data, size_t size);
Jason Reiss 10:27dafba9fe19 65
Jason Reiss 10:27dafba9fe19 66 static bool base642bin(const std::string in, std::vector<uint8_t>& out);
Mike Fiore 1:9f30fbe9e9c1 67
Mike Fiore 1:9f30fbe9e9c1 68 static void ltrim(std::string& str, const char* args);
Mike Fiore 1:9f30fbe9e9c1 69
Mike Fiore 1:9f30fbe9e9c1 70 static void rtrim(std::string& str, const char* args);
Mike Fiore 1:9f30fbe9e9c1 71
Mike Fiore 1:9f30fbe9e9c1 72 static void trim(std::string& str, const char* args);
Jason Reiss 10:27dafba9fe19 73
Jason Reiss 10:27dafba9fe19 74 private:
Jason Reiss 10:27dafba9fe19 75 // Safety for class with only static methods
Jason Reiss 10:27dafba9fe19 76 Text();
Jason Reiss 10:27dafba9fe19 77 Text(const Text& other);
Jason Reiss 10:27dafba9fe19 78 Text& operator=(const Text& other);
Jason Reiss 10:27dafba9fe19 79 };
Jason Reiss 10:27dafba9fe19 80
Jason Reiss 10:27dafba9fe19 81 }
Jason Reiss 10:27dafba9fe19 82
Jason Reiss 10:27dafba9fe19 83 #endif