🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
NetworkInterface.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "NetworkRequest.hpp"
25#include "NetworkResponse.hpp"
27
28AST_NAMESPACE_BEGIN
29
35class NetworkStreamReceiver;
36
37// 判断 HTTP 方法是否允许携带请求体
38AST_UTIL_API bool aMethodAllowsBody(const std::string& method);
39
40// 简单验证端口字符串并转换为整数,非法则返回默认端口
41AST_UTIL_API int aParsePort(const std::string& portStr, int defaultPort);
42
43
47{
48public:
49 NetworkInterface() = default;
50
51 virtual ~NetworkInterface() = default;
52
59 errc_t request(const NetworkRequest& request, NetworkResponse& response)
60 {
61 CollectingStreamReceiver collector(response);
62 return requestStream(request, collector);
63 }
64
70 virtual errc_t requestStream(const NetworkRequest& request,
71 NetworkStreamReceiver& receiver) = 0;
72
79 virtual bool isSupported() const = 0;
80};
81
82
85AST_NAMESPACE_END
流式数据接收器 — 纯虚接口
将流式数据收集到 NetworkResponse 的适配器
定义 NetworkStreamReceiver.hpp:74
定义 NetworkInterface.hpp:47
virtual bool isSupported() const =0
检查是否支持该网络实现
virtual errc_t requestStream(const NetworkRequest &request, NetworkStreamReceiver &receiver)=0
发送流式网络请求
errc_t request(const NetworkRequest &request, NetworkResponse &response)
定义 NetworkInterface.hpp:59
定义 NetworkRequest.hpp:56
定义 NetworkResponse.hpp:37
流式数据接收器
定义 NetworkStreamReceiver.hpp:41