8 #include <unordered_map>
10 #include "rrConstants.h"
11 #include "rrExporter.h"
21 RR_DECLSPEC
char*
createText(
const string& str);
22 RR_DECLSPEC
char*
createText(
const int& count);
23 RR_DECLSPEC
bool freeText(
char* str);
24 RR_DECLSPEC
string replaceWord(
const string& str1,
const string& str2,
const string& theString);
25 RR_DECLSPEC
bool convertFunctionCallToUseVarArgsSyntax(
const string& funcName,
string& expression);
26 RR_DECLSPEC
string removeChars(
const string& str,
const string& chars);
27 RR_DECLSPEC
bool isUnwantedChar(
char ch);
28 RR_DECLSPEC
size_t findMatchingRightParenthesis(
const string& expression,
const size_t startFrom);
29 RR_DECLSPEC
int getNumberOfFunctionArguments(
const string& expression);
30 RR_DECLSPEC
string tabs(
const int& nr);
31 RR_DECLSPEC
string NL();
33 RR_DECLSPEC
string toUpperOrLowerCase(
const string& inStr,
int (*func)(
int));
34 RR_DECLSPEC
string toUpper(
const string& str);
35 RR_DECLSPEC
string toLower(
const string& str);
37 RR_DECLSPEC
string getFilePath(
const string& fileN);
38 RR_DECLSPEC
string getFileName(
const string& fileN);
39 RR_DECLSPEC
string getFileNameNoExtension(
const string& fileN);
40 RR_DECLSPEC
string getFileExtension(
const string& fileN);
42 RR_DECLSPEC
string changeFileExtensionTo(
const string& theFileName,
const string& newExtension);
44 RR_DECLSPEC
int compareNoCase(
const string& str1,
const string& str2);
45 RR_DECLSPEC
string trim(
const string& str,
const char& toTrim =
' ');
46 RR_DECLSPEC
bool startsWith(
const string& src,
const string& sub);
47 RR_DECLSPEC
bool endsWith(
const string& src,
const string& sub);
50 RR_DECLSPEC
string intToStr(
const int& nt);
51 RR_DECLSPEC
int strToInt(
const string& nt);
52 RR_DECLSPEC
string dblToStr(
const double& nt);
53 RR_DECLSPEC
double strToDbl(
const string& nt);
54 RR_DECLSPEC vector<string> splitString(
const string &text,
const string &separators);
55 RR_DECLSPEC vector<string> splitString(
const string& input,
const char& delimiters);
56 RR_DECLSPEC
int toInt(
const string& str);
57 RR_DECLSPEC
bool toBool(
const string& str);
58 RR_DECLSPEC
double toDouble(
const string& str);
60 RR_DECLSPEC vector<double> toDoubleVector(
const string& str);
61 RR_DECLSPEC complex<double> toComplex(
const string& str);
63 RR_DECLSPEC
string toString(
const bool& b);
64 RR_DECLSPEC
string toString(
const double& d,
const string& format = gDoubleFormat);
65 RR_DECLSPEC
string toString(
const unsigned int& n,
const string& format = gIntFormat,
const int nBase=10);
66 RR_DECLSPEC
string toString(
const int& n,
const string& format = gIntFormat,
const int nBase=10);
67 RR_DECLSPEC
string toString(
const long n,
const int nBase=10);
68 RR_DECLSPEC
string toString(
const unsigned long n,
const int nBase=10);
69 RR_DECLSPEC
string toString(
const unsigned short n,
const int nBase=10);
70 RR_DECLSPEC
string toString(
const short n,
const int nBase=10);
71 RR_DECLSPEC
string toString(
const char n);
72 RR_DECLSPEC
string toString(
const unsigned char n);
73 RR_DECLSPEC
string toString(
const string& s);
74 RR_DECLSPEC
string toString(
const char* str);
75 RR_DECLSPEC
string toString(
const vector<string>& vec,
const string& sep =
", ");
76 RR_DECLSPEC
string toStringSize(
size_t n);
78 RR_DECLSPEC
string format(
const string& src,
const int& arg);
79 RR_DECLSPEC
string format(
const string& str,
const int& arg1);
82 RR_DECLSPEC
string format(
const string& src,
const string& arg);
83 RR_DECLSPEC
string format(
const string& src,
const string& arg1,
const string& arg2,
const string& arg3);
84 RR_DECLSPEC
string format(
const string& src,
const string& arg1,
const string& arg2);
85 RR_DECLSPEC
string format(
const string& src,
const string& arg1,
const int& arg2);
86 RR_DECLSPEC
string format(
const string& src,
const string& arg1,
const int& arg2,
const string& arg3);
87 RR_DECLSPEC
string format(
const string& str1,
const string& str2);
88 RR_DECLSPEC
string format(
const string& str1,
const string& arg1,
const string& arg2);
89 RR_DECLSPEC
string format(
const string& str1,
const string& arg1,
const int& arg2);
90 RR_DECLSPEC
string format(
const string& str1,
const string& arg1,
const int& arg2,
const string& arg3);
91 RR_DECLSPEC
string format(
const string& str1,
const string& arg1,
const string& arg2,
const string& arg3);
92 RR_DECLSPEC
string format(
const string& str1,
const string& arg1,
const string& arg2,
const string& arg3,
const string& arg4);
93 RR_DECLSPEC
string format(
const string& str1,
const string& arg1,
const string& arg2,
const string& arg3,
const string& arg4,
const string& arg5);
95 RR_DECLSPEC
string format(
const string& str1,
const unsigned int& arg1,
const string& arg2);
97 RR_DECLSPEC
string format(
const string& str1,
const unsigned int& arg1,
const string& arg2,
const string& arg3);
99 RR_DECLSPEC
string format(
const string& str1,
const unsigned int& arg1,
const unsigned int& arg2,
const string& arg3,
const string& arg4);
101 RR_DECLSPEC
string append(
const string& str);
102 RR_DECLSPEC
string append(
const int& str);
103 RR_DECLSPEC
string append(
const unsigned int& str);
104 RR_DECLSPEC
string append(
const string& s1,
const string& s2);
105 RR_DECLSPEC
string append(
const string& s1,
const string& s2,
const string& s3);
106 RR_DECLSPEC
string append(
const string& s1,
const unsigned int& s2,
const string& s3);
107 RR_DECLSPEC
string append(
const string& s1,
const unsigned int& s2,
const string& s3,
const string& s4);
109 RR_DECLSPEC
string substitute(
const string& src,
const string& thisOne,
const string& withThisOne,
const int& howMany = -1);
110 RR_DECLSPEC
string substitute(
const string& src,
const string& thisOne,
const int& withThisOne,
const int& howMany = -1);
112 RR_DECLSPEC
string removeNewLines(
const string& str,
const int& howMany = -1);
120 template <
typename T>
121 inline void saveBinary(std::ostream& out,
const T& t)
123 out.write((
char*)&t,
sizeof(T));
127 inline void saveBinary(std::ostream& out,
const std::string& s)
129 saveBinary(out, s.size());
130 out.write(s.c_str(), s.size());
133 template <
typename T>
134 inline void saveBinary(std::ostream& out,
const std::vector<T>& v)
136 saveBinary(out, v.size());
143 template <
typename K,
typename V>
144 inline void saveBinary(std::ostream& out,
const std::map<K, V>& m)
146 saveBinary(out, m.size());
147 for (std::pair<K, V> p : m)
149 saveBinary(out, p.first);
150 saveBinary(out, p.second);
154 template <
typename K,
typename V>
155 inline void saveBinary(std::ostream& out,
const std::unordered_map<K, V>& m)
157 saveBinary(out, m.size());
158 for (std::pair<K, V> p : m)
160 saveBinary(out, p.first);
161 saveBinary(out, p.second);
165 template <
typename T>
166 inline void saveBinary(std::ostream& out,
const std::set<T>& s)
168 saveBinary(out, s.size());
176 inline void saveBinary<rr::Variant>(std::ostream& out,
const rr::Variant& var)
178 saveBinary(out, var.
type());
182 saveBinary(out, (
bool)var);
185 saveBinary(out, (
char)var);
187 case Variant::DOUBLE:
188 saveBinary(out, (
double)var);
191 saveBinary(out, (
float)var);
194 saveBinary(out, (int32_t)var);
197 saveBinary(out, (
long)var);
199 case Variant::STRING:
200 saveBinary(out, (std::string)var);
203 saveBinary(out, (
unsigned char)var);
205 case Variant::UINT32:
206 saveBinary(out, (
unsigned int)var);
208 case Variant::UINT64:
209 saveBinary(out, (
unsigned long)var);
211 case Variant::DOUBLEVECTOR:
212 saveBinary(out, var.
convert<std::vector<double> >());
223 template <
typename T>
224 inline void loadBinary(std::istream& in, T& t)
227 in.read((
char*)&temp,
sizeof(T));
232 inline void loadBinary(std::istream& in, std::string& s)
235 loadBinary(in, ssize);
237 in.read(&s[0], ssize);
240 template <
typename T>
241 inline void loadBinary(std::istream& in, std::vector<T>& v)
244 loadBinary(in, vsize);
246 for (
int i = 0; i < vsize; i++)
249 loadBinary(in, next);
254 template <
typename K,
typename V>
255 inline void loadBinary(std::istream& in, std::map<K, V>& m)
258 loadBinary(in, msize);
260 for (
int i = 0; i < msize; i++)
270 template <
typename K,
typename V>
271 inline void loadBinary(std::istream& in, std::unordered_map<K, V>& m)
274 loadBinary(in, msize);
276 for (
int i = 0; i < msize; i++)
286 template <
typename T>
287 inline void loadBinary(std::istream& in, std::set<T>& s)
290 loadBinary(in, ssize);
292 for (
int i = 0; i < ssize; i++)
295 loadBinary(in, next);
301 inline void loadBinary<rr::Variant>(std::istream& in,
rr::Variant& var)
305 std::vector<double> vectorVal;
306 loadBinary(in, type);
311 loadBinary(in, boolVal);
316 loadBinary(in, charVal);
319 case Variant::DOUBLE:
321 loadBinary(in, doubleVal);
326 loadBinary(in, floatVal);
331 loadBinary(in, int32Val);
336 loadBinary(in, int64Val);
339 case Variant::STRING:
340 loadBinary(in, strVal);
344 unsigned char ucharVal;
345 loadBinary(in, ucharVal);
348 case Variant::UINT32:
349 unsigned int uint32Val;
350 loadBinary(in, uint32Val);
353 case Variant::UINT64:
354 unsigned long uint64Val;
355 loadBinary(in, uint64Val);
358 case Variant::DOUBLEVECTOR:
359 loadBinary(in, vectorVal);
TypeId
Definition: Variant.h:82
T convert() const
Definition: Variant.h:178
C_DECL_SPEC int rrcCallConv freeText(char *text)
Free char* generated by library routines.
C_DECL_SPEC char *rrcCallConv createText(const char *text)
Creates memory for holding a string.