-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathStringManip
More file actions
99 lines (96 loc) · 3.82 KB
/
Copy pathStringManip
File metadata and controls
99 lines (96 loc) · 3.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/* -*- c++ -*- */
///////////////////////////////////////////
// StringManip
// -------------------------------------
// file : StringManip
// author : Ben Kietzman
// begin : 2010-03-03
// copyright : Ben Kietzman
// email : ben@kietzman.org
///////////////////////////////////////////
/*! \file StringManip
* \brief StringManip Class
*/
#ifndef _COMMON_STRINGMANIP_
#define _COMMON_STRINGMANIP_
// {{{ includes
#ifdef COMMON_B64
#ifndef BUFFERSIZE
#define BUFFERSIZE 16777216
#endif
#include <b64/decode.h>
#include <b64/encode.h>
#endif
#include <cerrno>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <map>
#ifdef COMMON_OPENSSL
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include <openssl/sha.h>
#endif
#include <sstream>
#include <string>
using namespace std;
// }}}
extern "C++"
{
namespace common
{
// {{{ StringManip
//! Performs various string manipulations.
class StringManip
{
private:
unsigned char m_base64[256];
int isBase64(char c);
string pad(string &, const string, const char, const int, const int);
string toCase(string &, const string, int);
public:
StringManip();
~StringManip();
string cleanNonPrintable(string &strClean, const string strString);
string decodeBase64(string strIn, string &strOut);
uint8_t *decodeBase64(string strIn, size_t &len, string &strError);
string decryptAes(const string strIn, const string strSecret, string &strOut, string &strError, const string strCipher = "AES-128 ECB");
string encodeBase64(string strIn, string &strOut);
string encryptAes(const string strIn, const string strSecret, string &strOut, string &strError, const string strCipher = "AES-128 ECB");
string escape(const string strIn, string &strOut);
string getToken(string &strToken, const string strString, const int nIndex, const string strDelimiter, const bool bIgnoreBlanks = false);
string htmlEntityDecode(const string strOld, string &strNew);
string htmlEntityEncode(const string strOld, string &strNew);
bool isNumeric(const string strValue);
string lpad(string &strPad, const string strString, const char cPad, const int nPad);
string ltrim(string &strTrim, const string strString);
string purgeChar(string &strPurge, const string strString, const string strChar);
string rpad(string &strPad, const string strString, const char cPad, const int nPad);
string rtrim(string &strTrim, const string strString);
string toLower(string &strLower, const string strString);
string toShort(float fNumber, string &strNumber, const size_t unPrecision = 0);
string toShortByte(float fNumber, string &strNumber, const size_t unPrecision = 0);
string toString(const string strValue, string &strResult);
string toString(const unsigned int unValue, string &strResult);
string toString(const int nValue, string &strResult);
string toString(const float fValue, string &strResult);
string toString(const double dValue, string &strResult);
string toString(const unsigned long ulValue, string &strResult);
string toString(const long lValue, string &strResult);
string toString(const unsigned long long ullValue, string &strResult);
string toString(const long long llValue, string &strResult);
string toString(const char cValue, string &strResult);
string toString(const char szValue[], string &strResult);
string toUpper(string &strUpper, const string strString);
string trim(string &strTrim, const string strString, const int nSide = 0);
string urlDecode(string &strDecoded, const string strData);
string urlEncode(string &strEncoded, const string strData);
};
// }}}
}
}
#endif