1 #ifndef LIBJSON_GUARD_BASE64_H
2 #define LIBJSON_GUARD_BASE64_H
3
4 #include "JSONDebug.h"
5 #if defined(JSON_BINARY) || defined(JSON_EXPOSE_BASE64) //if this is not needed, don't waste space compiling it
6
7 #include "../Dependencies/libbase64++/libbase64++.h"
8
9 class JSONBase64 {
10 public:
11 inline static json_string json_encode64(const unsigned char * binary, size_t bytes) json_nothrow json_cold;
12 inline static std::string json_decode64(const json_string & encoded) json_nothrow json_cold;
13 private:
14 JSONBase64(void);
15 };
16
json_encode64(const unsigned char * binary,size_t bytes)17 json_string JSONBase64::json_encode64(const unsigned char * binary, size_t bytes) json_nothrow {
18 #if defined JSON_DEBUG || defined JSON_SAFE
19 return libbase64::encode<json_string, json_char, json_uchar, true>(binary, bytes);
20 #else
21 return libbase64::encode<json_string, json_char, json_uchar, false>(binary, bytes);
22 #endif
23 }
24
json_decode64(const json_string & encoded)25 std::string JSONBase64::json_decode64(const json_string & encoded) json_nothrow {
26 #if defined JSON_DEBUG || defined JSON_SAFE
27 return libbase64::decode<json_string, json_char, json_uchar, true>(encoded);
28 #else
29 return libbase64::decode<json_string, json_char, json_uchar, false>(encoded);
30 #endif
31 }
32
33
34 #endif
35 #endif
36