AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
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 #include <cstdint>
21 
22 namespace aja
23 {
24 
25 static std::string WHITESPACE = " \t\n\r";
26 
34 AJA_EXPORT bool starts_with(const std::string &str, const std::string &needle);
42 AJA_EXPORT bool starts_with(const std::string &str, const char needle);
50 AJA_EXPORT bool starts_with(const std::wstring& wstr, const std::wstring& needle);
58 AJA_EXPORT bool starts_with(const std::wstring& wstr, const wchar_t needle);
66 AJA_EXPORT bool ends_with(const std::string& str, const std::string& needle);
74 AJA_EXPORT bool ends_with(const std::string& str, const char needle);
82 AJA_EXPORT bool ends_with(const std::wstring& wstr, const std::wstring& needle);
90 AJA_EXPORT bool ends_with(const std::wstring& wstr, const wchar_t needle);
91 
100 AJA_EXPORT std::string& replace(std::string& str, const std::string& from, const std::string& to);
101 
102 // NOTE: these sto* functions are ment to be similar to the C++11 functions of the same name
103 // one big difference is that these do not throw exceptions on errors and instead return
104 // 0 like the underlying strtol function does.
105 
117 AJA_EXPORT int stoi(const std::string& str, std::size_t* idx=0, int base = 10);
118 
130 AJA_EXPORT long stol(const std::string& str, std::size_t* idx=0, int base = 10);
131 
143 //AJA_EXPORT long long stoll(const std::string& str, std::size_t* idx=0, int base = 10);
144 
156 AJA_EXPORT unsigned long stoul(const std::string& str, std::size_t* idx=0, int base = 10);
157 
169 AJA_EXPORT unsigned long long stoull(const std::string& str, std::size_t* idx=0, int base = 10);
170 
180 AJA_EXPORT float stof(const std::string& str, std::size_t* idx=0);
181 
191 AJA_EXPORT double stod(const std::string& str, std::size_t* idx=0);
192 
202 AJA_EXPORT long double stold(const std::string& str, std::size_t* idx=0);
203 
210 AJA_EXPORT std::string to_string(bool val);
211 AJA_EXPORT std::string to_string(int val);
212 AJA_EXPORT std::string to_string(long val);
213 AJA_EXPORT std::string to_string(long long val);
214 AJA_EXPORT std::string to_string(unsigned val);
215 AJA_EXPORT std::string to_string(unsigned long val);
216 AJA_EXPORT std::string to_string(unsigned long long val);
217 AJA_EXPORT std::string to_string(float val);
218 AJA_EXPORT std::string to_string(double val);
219 AJA_EXPORT std::string to_string(long double val);
220 
228 AJA_EXPORT bool string_to_wstring(const std::string& str, std::wstring& wstr);
229 
237 AJA_EXPORT bool wstring_to_string(const std::wstring& wstr, std::string& str);
238 
247 AJA_EXPORT bool string_to_cstring (const std::string & str, char * c_str, size_t c_str_size);
248 
256 AJA_EXPORT void split (const std::string & str, const char delim, std::vector<std::string> & elems);
257 
265 AJA_EXPORT void split (const std::wstring & str, const wchar_t delim, std::vector<std::wstring> & elems);
266 
274 AJA_EXPORT std::vector<std::string> split (const std::string & str, const char delim);
275 
283 AJA_EXPORT std::vector<std::wstring> split (const std::wstring & str, const wchar_t delim);
284 
292 AJA_EXPORT std::vector<std::string> split (const std::string & inStr, const std::string & inDelim);
293 
301 AJA_EXPORT std::vector<std::wstring> split (const std::wstring & inStr, const std::wstring & inDelim);
302 
309 AJA_EXPORT std::string & lower (std::string & str);
310 
317 AJA_EXPORT std::string & upper (std::string & str);
318 
326 AJA_EXPORT std::string & lstrip (std::string & str, const std::string & ws = aja::WHITESPACE);
327 
335 AJA_EXPORT std::string & rstrip (std::string & str, const std::string & ws = aja::WHITESPACE);
336 
344 AJA_EXPORT std::string & strip (std::string & str, const std::string & ws = aja::WHITESPACE);
345 
353 AJA_EXPORT std::string join (const std::vector<std::string> & parts, const std::string & delim=" ");
354 
362 AJA_EXPORT std::string join (const std::set<std::string> & parts, const std::string & delim=" ");
363 
373 AJA_EXPORT char* safer_strncpy(char* target, const char* source, size_t num, size_t maxSize);
374 
379 AJA_EXPORT bool is_hex_digit(const char inChr); // New in SDK 17.1
380 
385 AJA_EXPORT bool is_decimal_digit (const char inChr); // New in SDK 17.1
386 
391 AJA_EXPORT bool is_alpha_numeric (const char inChr); // New in SDK 17.1
392 
398 AJA_EXPORT bool is_legal_decimal_number (const std::string & inStr, const size_t inMaxLength = 2); // New in SDK 17.1
399 
404 AJA_EXPORT uint64_t is_legal_hex_serial_number (const std::string & inStr); // New in SDK 17.1
405 
410 AJA_EXPORT bool is_alpha_numeric (const std::string & inStr); // New in SDK 17.1
411 } //end aja namespace
412 
413 #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::is_hex_digit
bool is_hex_digit(const char inChr)
Definition: common.cpp:511
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:25
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::is_legal_hex_serial_number
uint64_t is_legal_hex_serial_number(const std::string &inStr)
Definition: common.cpp:536
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::is_decimal_digit
bool is_decimal_digit(const char inChr)
Definition: common.cpp:516
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::is_alpha_numeric
bool is_alpha_numeric(const char inChr)
Definition: common.cpp:521
aja::is_legal_decimal_number
bool is_legal_decimal_number(const std::string &inStr, const size_t inMaxLength)
Definition: common.cpp:526
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.