🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
Network.hpp
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "NetworkCookieJar.hpp"
25#include "NetworkCookie.hpp"
26#include "NetworkInterface.hpp"
27#include "NetworkSession.hpp"
28#include <functional>
29#include <cstdint>
30
31AST_NAMESPACE_BEGIN
32
38class NetworkRequest;
39class NetworkResponse;
40class NetworkInterface;
41class NetworkStreamReceiver;
42
44enum class ENetworkImplType {
45 eDefault, // 默认选择实现
46 eWinHTTP, // WinHTTP
47 eWinINet, // WinINet
48 eCurlCmd, // curl命令实现
49};
50
54class AST_UTIL_API ConsoleProgressBar
55{
56public:
57 explicit ConsoleProgressBar(const std::string& label = "downloading");
60 bool operator()(uint64_t downloaded, uint64_t total);
61private:
63 bool cancelKeyPressed() const;
64 std::string label_;
65 int lastLen_ = 0;
66 bool interactive_ = false;
67};
68
69
70
79AST_UTIL_CAPI errc_t aNetworkRequest(const NetworkRequest& request, NetworkResponse& response);
80
86AST_UTIL_CAPI errc_t aNetworkRequestStream(const NetworkRequest& request, NetworkStreamReceiver& receiver);
87
88
89
97AST_UTIL_API errc_t aDownloadFile(
98 const std::string& url, const std::string& filepath,
99 const DownloadProgressCallback& progress
100);
101
102
108AST_UTIL_API errc_t aDownloadFile(const std::string& url, const std::string& filepath);
109
110
115AST_UTIL_API errc_t aNetworkSetImpl(ENetworkImplType impltype);
116
117
122AST_UTIL_API void aNetworkSetImpl(NetworkInterface* impl);
123
124
127AST_NAMESPACE_END
定义 Network.hpp:55
定义 NetworkInterface.hpp:47
定义 NetworkRequest.hpp:56
定义 NetworkResponse.hpp:37
流式数据接收器
定义 NetworkStreamReceiver.hpp:44
std::function< bool(uint64_t downloaded, uint64_t total)> DownloadProgressCallback
定义 NetworkStreamReceiver.hpp:91
errc_t aDownloadFile(const std::string &url, const std::string &filepath)
下载 URL 内容并直接写入文件
定义 Network.cpp:130
errc_t aNetworkSetImpl(ENetworkImplType impltype)
定义 Network.cpp:66
ENetworkImplType
网络实现
定义 Network.hpp:44
errc_t aNetworkRequest(const NetworkRequest &request, NetworkResponse &response)
定义 Network.cpp:102
errc_t aNetworkRequestStream(const NetworkRequest &request, NetworkStreamReceiver &receiver)
定义 Network.cpp:116