adapter.h (36 lines of code) (raw):
#ifndef __LOGV6_ADAPTER_H__
#define __LOGV6_ADAPTER_H__
#include <string>
#include <vector>
#include <map>
#include "common.h"
#include "client.h"
#include "RestfulApiCommon.h"
#include <ctime>
namespace aliyun_log_sdk_v6
{
typedef enum{BASE64_SHA1_MD5} LOGSigType;
const uint32_t CONNECT_TIMEOUT = 5; //second
class RequestClosure;
class CodecTool
{
public:
static std::string CalcMD5(const std::string& message);
static std::string CalcSHA1(const std::string& message, const std::string& key);
static std::string Base64Enconde(const std::string& message);
static std::string GetDateString(const std::string& dateFormat);
static std::string GetDateString();
static bool StartWith(const std::string& input, const std::string& pattern);
static std::string UrlEncode(const std::string& url);
private:
static std::string ToGmtTime(std::time_t &t, const std::string& format);
};
class LOGAdapter
{
public:
static void GetQueryString(const std::map<std::string, std::string>& parameterList, std::string &queryString);
static void Send(const std::string& httpMethod, const std::string& host, const int32_t port, const std::string& url, const std::string& queryString, const std::map<std::string, std::string>& header, const std::string& body, const int32_t timeout, HttpMessage& httpMessage, const int64_t maxspeed = 0);
static std::string GetUrlSignature(const std::string& httpMethod, const std::string& operationType, std::map<std::string, std::string>& httpHeader, const std::map<std::string, std::string>& parameterList, const std::string& content, const std::string& signKey, const LOGSigType sigType = BASE64_SHA1_MD5);
};
}
#endif