Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of libmDot-mbed5 by
MTSText.h@10:27dafba9fe19, 2015-12-02 (annotated)
- 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?
| User | Revision | Line number | New 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 |
