AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
common.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef AJA_COMMON_H
9 #define AJA_COMMON_H
10 
11 #if defined(AJA_WINDOWS)
12  #pragma warning(disable:4996)
13  #pragma warning(disable:4800)
14 #endif
15 
16 #include "ajabase/common/export.h"
17 #include <set>
18 #include <string>
19 #include <vector>
20 
21 namespace aja
22 {
23 
24 static std::string WHITESPACE = " \t\n\r";
25 
33 AJA_EXPORT bool starts_with(const std::string &str, const std::string &needle);
41 AJA_EXPORT bool starts_with(const std::string &str, const char needle);
49 AJA_EXPORT bool starts_with(const std::wstring& wstr, const std::wstring& needle);
57 AJA_EXPORT bool starts_with(const std::wstring& wstr, const wchar_t needle);
65 AJA_EXPORT bool ends_with(const std::string& str, const std::string& needle);
73 AJA_EXPORT bool ends_with(const std::string& str, const char needle);
81 AJA_EXPORT bool ends_with(const std::wstring& wstr, const std::wstring& needle);
89 AJA_EXPORT bool ends_with(const std::wstring& wstr, const wchar_t needle);
90 
99 AJA_EXPORT std::string& replace(std::string& str, const std::string& from, const std::string& to);
100 
101 // NOTE: these sto* functions are ment to be similar to the C++11 functions of the same name
102 // one big difference is that these do not throw exceptions on errors and instead return
103 // 0 like the underlying strtol function does.
104 
116 AJA_EXPORT int stoi(const std::string& str, std::size_t* idx=0, int base = 10);
117 
129 AJA_EXPORT long stol(const std::string& str, std::size_t* idx=0, int base = 10);
130 
142 //AJA_EXPORT long long stoll(const std::string& str, std::size_t* idx=0, int base = 10);
143 
155 AJA_EXPORT unsigned long stoul(const std::string& str, std::size_t* idx=0, int base = 10);
156 
168 AJA_EXPORT unsigned long long stoull(const std::string& str, std::size_t* idx=0, int base = 10);
169 
179 AJA_EXPORT float stof(const std::string& str, std::size_t* idx=0);
180 
190 AJA_EXPORT double stod(const std::string& str, std::size_t* idx=0);
191 
201 AJA_EXPORT long double stold(const std::string& str, std::size_t* idx=0);
202 
209 AJA_EXPORT std::string to_string(bool val);
210 AJA_EXPORT std::string to_string(int val);
211 AJA_EXPORT std::string to_string(long val);
212 AJA_EXPORT std::string to_string(long long val);
213 AJA_EXPORT std::string to_string(unsigned val);
214 AJA_EXPORT std::string to_string(unsigned long val);
215 AJA_EXPORT std::string to_string(unsigned long long val);
216 AJA_EXPORT std::string to_string(float val);
217 AJA_EXPORT std::string to_string(double val);
218 AJA_EXPORT std::string to_string(long double val);
219 
227 AJA_EXPORT bool string_to_wstring(const std::string& str, std::wstring& wstr);
228 
236 AJA_EXPORT bool wstring_to_string(const std::wstring& wstr, std::string& str);
237 
246 AJA_EXPORT bool string_to_cstring (const std::string & str, char * c_str, size_t c_str_size);
247 
255 AJA_EXPORT void split (const std::string & str, const char delim, std::vector<std::string> & elems);
256 
264 AJA_EXPORT void split (const std::wstring & str, const wchar_t delim, std::vector<std::wstring> & elems);
265 
273 AJA_EXPORT std::vector<std::string> split (const std::string & str, const char delim);
274 
282 AJA_EXPORT std::vector<std::wstring> split (const std::wstring & str, const wchar_t delim);
283 
291 AJA_EXPORT std::vector<std::string> split (const std::string & inStr, const std::string & inDelim);
292 
300 AJA_EXPORT std::vector<std::wstring> split (const std::wstring & inStr, const std::wstring & inDelim);
301 
308 AJA_EXPORT std::string & lower (std::string & str);
309 
316 AJA_EXPORT std::string & upper (std::string & str);
317 
325 AJA_EXPORT std::string & lstrip (std::string & str, const std::string & ws = aja::WHITESPACE);
326 
334 AJA_EXPORT std::string & rstrip (std::string & str, const std::string & ws = aja::WHITESPACE);
335 
343 AJA_EXPORT std::string & strip (std::string & str, const std::string & ws = aja::WHITESPACE);
344 
352 AJA_EXPORT std::string join (const std::vector<std::string> & parts, const std::string & delim=" ");
353 
361 AJA_EXPORT std::string join (const std::set<std::string> & parts, const std::string & delim=" ");
362 
372 AJA_EXPORT char* safer_strncpy(char* target, const char* source, size_t num, size_t maxSize);
373 
374 } //end aja namespace
375 
376 #endif // AJA_COMMON_H
aja::stoul
unsigned long stoul(const std::string &str, std::size_t *idx, int base)
Definition: common.cpp:143
aja::lstrip
std::string & lstrip(std::string &str, const std::string &ws)
Definition: common.cpp:448
aja::strip
std::string & strip(std::string &str, const std::string &ws)
Definition: common.cpp:461
aja::join
std::string join(const std::vector< std::string > &parts, const std::string &delim)
Definition: common.cpp:468
aja::split
void split(const std::string &str, const char delim, std::vector< std::string > &elems)
Definition: common.cpp:350
aja::WHITESPACE
static std::string WHITESPACE
Definition: common.h:24
AJA_EXPORT
#define AJA_EXPORT
Definition: export.h:34
aja::wstring_to_string
bool wstring_to_string(const std::wstring &wstr, std::string &str)
Definition: common.cpp:285
aja::safer_strncpy
char * safer_strncpy(char *target, const char *source, size_t num, size_t maxSize)
Definition: common.cpp:492
aja::stoi
int stoi(const std::string &str, std::size_t *idx, int base)
Definition: common.cpp:122
aja::string_to_cstring
bool string_to_cstring(const std::string &str, char *c_str, size_t c_str_size)
Definition: common.cpp:336
aja::lower
std::string & lower(std::string &str)
Definition: common.cpp:436
aja::replace
std::string & replace(std::string &str, const std::string &from, const std::string &to)
Definition: common.cpp:110
aja::stol
long stol(const std::string &str, std::size_t *idx, int base)
Definition: common.cpp:127
aja::upper
std::string & upper(std::string &str)
Definition: common.cpp:442
aja::string_to_wstring
bool string_to_wstring(const std::string &str, std::wstring &wstr)
Definition: common.cpp:248
aja::stoull
unsigned long long stoull(const std::string &str, std::size_t *idx, int base)
Definition: common.cpp:154
aja::stof
float stof(const std::string &str, std::size_t *idx)
Definition: common.cpp:159
aja::rstrip
std::string & rstrip(std::string &str, const std::string &ws)
Definition: common.cpp:454
aja::ends_with
bool ends_with(const std::string &str, const std::string &needle)
Definition: common.cpp:83
aja
Definition: common.cpp:57
aja::stold
long double stold(const std::string &str, std::size_t *idx)
Definition: common.cpp:175
aja::starts_with
bool starts_with(const std::string &str, const std::string &needle)
Definition: common.cpp:61
aja::to_string
std::string to_string(bool val)
Definition: common.cpp:180
aja::stod
double stod(const std::string &str, std::size_t *idx)
Definition: common.cpp:164
export.h
Declares system-dependent import/export macros and libraries.