You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.9 KiB
70 lines
1.9 KiB
|
|
|
|
// Copyright 2018 Mobvoi Inc. All Rights Reserved.
|
|
// Author: ybtang@mobvoi.com (Yanbin Tang)
|
|
|
|
#ifndef SDS_SERVICES_ONLINE_TTS_HTTP_CHUNK_CLIENT_H_
|
|
#define SDS_SERVICES_ONLINE_TTS_HTTP_CHUNK_CLIENT_H_
|
|
|
|
//#include "third_party/curl/curl.h"
|
|
//#include "mobvoi/base/basictypes.h"
|
|
//#include "mobvoi/base/compat.h"
|
|
//#include "mobvoi/base/log.h"
|
|
|
|
#include <curl/curl.h>
|
|
#include "basictypes.h"
|
|
#include "compat.h"
|
|
#include "log.h"
|
|
|
|
namespace mobvoi {
|
|
namespace sds {
|
|
|
|
typedef SDK_DLL_API std::map <std::string, std::string> UrlQueryParams;
|
|
typedef SDK_DLL_API size_t(*WriteCallback)(void*, size_t, size_t, void*);
|
|
|
|
//typedef SDK_DLL_API size_t(*WriteCallback2)(void*, size_t, size_t, void*);
|
|
typedef SDK_DLL_API size_t(*WriteCallback2)(void*, size_t, size_t, FILE *);
|
|
//
|
|
//size_t my_write_func2(void* ptr,
|
|
// size_t size,
|
|
// size_t nmemb,
|
|
// void* userdata) {
|
|
|
|
class SDK_DLL_API HttpChunkClient {
|
|
public:
|
|
HttpChunkClient();
|
|
~HttpChunkClient();
|
|
|
|
void Reset();
|
|
bool FetchUrl(const std::string& url);
|
|
void StopTransfer();
|
|
|
|
int response_code() const { return response_code_; }
|
|
|
|
// Sets header.
|
|
void AddHeader(const std::string& key, const std::string& value);
|
|
|
|
// Sets options.
|
|
void SetConnectTimeout(int time_ms);
|
|
void SetFetchTimeout(int time_ms);
|
|
void SetUserAgent(const char* user_agent);
|
|
void SetWriteCallback(void* buffer, WriteCallback callback);
|
|
void SetWriteCallback2(FILE *outfile, WriteCallback2 callback);
|
|
void SetBindNetwork(const std::string& interface1, const std::string& ip);
|
|
|
|
private:
|
|
long response_code_; // NOLINT
|
|
CURL* curl_handle_;
|
|
struct curl_slist* header_list_;
|
|
//DISALLOW_COPY_AND_ASSIGN(HttpChunkClient);
|
|
};
|
|
|
|
SDK_DLL_API std::string CreateUrl(const std::string& protocol,
|
|
const std::string& host,
|
|
const std::string& uri,
|
|
const UrlQueryParams& params);
|
|
|
|
} // namespace sds
|
|
} // namespace mobvoi
|
|
|
|
#endif // SDS_SERVICES_ONLINE_TTS_HTTP_CHUNK_CLIENT_H_
|
|
|