cpp/include/darabonba/util.hpp (165 lines of code) (raw):
// This file is auto-generated, don't edit it. Thanks.
#ifndef DARABONBA_UTIL_H_
#define DARABONBA_UTIL_H_
#include <boost/any.hpp>
#include <cpprest/streams.h>
#include <darabonba/core.hpp>
#include <iostream>
#include <map>
#include <vector>
using namespace std;
namespace Darabonba_Util {
class RuntimeOptions : public Darabonba::Model {
protected:
void _init() {
_name = map<string, string>({
{"autoretry", "autoretry"},
{"ignoreSSL", "ignoreSSL"},
{"maxAttempts", "max_attempts"},
{"backoffPolicy", "backoff_policy"},
{"backoffPeriod", "backoff_period"},
{"readTimeout", "readTimeout"},
{"connectTimeout", "connectTimeout"},
{"httpProxy", "httpProxy"},
{"httpsProxy", "httpsProxy"},
{"noProxy", "noProxy"},
{"maxIdleConns", "maxIdleConns"},
{"localAddr", "localAddr"},
{"socks5Proxy", "socks5Proxy"},
{"socks5NetWork", "socks5NetWork"},
});
}
public:
RuntimeOptions() { _init(); };
explicit RuntimeOptions(const map<string, boost::any> &config)
: Darabonba::Model(config) {
_init();
};
void validate(){};
void fromMap(map<string, boost::any> m) {}
map<string, boost::any> toMap() {
map<string, boost::any> res;
if (autoretry) {
res["autoretry"] = boost::any(*autoretry);
}
if (ignoreSSL) {
res["ignoreSSL"] = boost::any(*ignoreSSL);
}
if (maxAttempts) {
res["max_attempts"] = boost::any(*maxAttempts);
}
if (backoffPolicy) {
res["backoff_policy"] = boost::any(*backoffPolicy);
}
if (backoffPeriod) {
res["backoff_period"] = boost::any(*backoffPeriod);
}
if (readTimeout) {
res["readTimeout"] = boost::any(*readTimeout);
}
if (connectTimeout) {
res["connectTimeout"] = boost::any(*connectTimeout);
}
if (httpProxy) {
res["httpProxy"] = boost::any(*httpProxy);
}
if (httpsProxy) {
res["httpsProxy"] = boost::any(*httpsProxy);
}
if (noProxy) {
res["noProxy"] = boost::any(*noProxy);
}
if (maxIdleConns) {
res["maxIdleConns"] = boost::any(*maxIdleConns);
}
if (localAddr) {
res["localAddr"] = boost::any(*localAddr);
}
if (socks5Proxy) {
res["socks5Proxy"] = boost::any(*socks5Proxy);
}
if (socks5NetWork) {
res["socks5NetWork"] = boost::any(*socks5NetWork);
}
return res;
}
shared_ptr<bool> autoretry{};
shared_ptr<bool> ignoreSSL{};
shared_ptr<int> maxAttempts{};
shared_ptr<string> backoffPolicy{};
shared_ptr<int> backoffPeriod{};
shared_ptr<int> readTimeout{};
shared_ptr<int> connectTimeout{};
shared_ptr<string> httpProxy{};
shared_ptr<string> httpsProxy{};
shared_ptr<string> noProxy{};
shared_ptr<int> maxIdleConns{};
shared_ptr<string> localAddr{};
shared_ptr<string> socks5Proxy{};
shared_ptr<string> socks5NetWork{};
~RuntimeOptions(){};
};
class Client {
public:
/************************** helper **************************/
static string getNonce();
static string getDateUTCString();
static string getUserAgent(const shared_ptr<string> &userAgent);
static void sleep(const shared_ptr<int> &millisecond);
static void validateModel(const shared_ptr<Darabonba::Model> &m);
/************************** default **************************/
static string defaultString(const shared_ptr<string> &real,
const shared_ptr<string> &default_);
static int defaultNumber(const shared_ptr<int> &real,
const shared_ptr<int> &default_);
/************************** parse **************************/
static map<string, string>
stringifyMapValue(const shared_ptr<map<string, boost::any>> &m);
static map<string, boost::any>
anyifyMapValue(const shared_ptr<map<string, string>> &m);
static map<string, boost::any> toMap(const shared_ptr<Darabonba::Model> &in);
static vector<uint8_t> toBytes(const shared_ptr<string> &val);
static string toString(const shared_ptr<vector<uint8_t>> &val);
template<class TP> static vector<map<string, boost::any>> toArray(const shared_ptr<void> &input) {
shared_ptr<TP> vec_ptr = static_pointer_cast<TP>(input);
vector<map<string, boost::any>> result;
for (auto &model : *vec_ptr) {
map<string, boost::any> m = model.toMap();
result.push_back(m);
}
return result;
};
static string toFormString(shared_ptr<map<string, boost::any>> val);
static string toJSONString(const boost::any &value);
static boost::any parseJSON(const shared_ptr<string> &val);
static vector<uint8_t>
readAsBytes(const shared_ptr<Darabonba::Stream> &stream);
static string readAsString(const shared_ptr<Darabonba::Stream> &stream);
static boost::any readAsJSON(const shared_ptr<Darabonba::Stream> &stream);
/************************** assert **************************/
template<class Tp> static bool isUnset(const boost::any &value) {
if (typeid(shared_ptr<boost::any>) == value.type()) {
shared_ptr<boost::any> val_ptr = boost::any_cast<shared_ptr<boost::any>>(value);
return !val_ptr || val_ptr->empty();
}
if (typeid(shared_ptr<Tp>) == value.type()) {
return !boost::any_cast<shared_ptr<Tp>>(value);
}
return value.empty();
};
static bool empty(const shared_ptr<string> &val);
static bool equalString(const shared_ptr<string> &val1,
const shared_ptr<string> &val2);
static bool equalNumber(const shared_ptr<int> &val1,
const shared_ptr<int> &val2);
static bool assertAsBoolean(const boost::any &value);
static string assertAsString(const boost::any &value);
static vector<uint8_t> assertAsBytes(const boost::any &value);
static int assertAsNumber(const boost::any &value);
static int assertAsInteger(const boost::any &value);
static map<string, boost::any> assertAsMap(const boost::any &value);
static Darabonba::Stream assertAsReadable(const boost::any &value);
static bool is2xx(const shared_ptr<int> &code);
static bool is3xx(const shared_ptr<int> &code);
static bool is4xx(const shared_ptr<int> &code);
static bool is5xx(const shared_ptr<int> &code);
Client(){};
~Client(){};
};
} // namespace Darabonba_Util
#endif