63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
#pragma once
|
|
#include <webcc/request.h>
|
|
#include <webcc/response.h>
|
|
#include "HTTPObjects.h" // 引入刚才的外观声明
|
|
|
|
class uns::UrlQuery::Impl
|
|
{
|
|
public:
|
|
webcc::UrlQuery webcc_query;
|
|
|
|
explicit Impl(const webcc::UrlQuery& query) : webcc_query(query)
|
|
{
|
|
}
|
|
};
|
|
|
|
class uns::FormPart::Impl
|
|
{
|
|
public:
|
|
webcc::FormPartPtr webcc_form;
|
|
|
|
explicit Impl(webcc::FormPartPtr res) : webcc_form(res)
|
|
{
|
|
}
|
|
};
|
|
|
|
// 在私有头文件里,明确定义外部壳类的 Impl 内部结构
|
|
class uns::Request::Impl
|
|
{
|
|
public:
|
|
webcc::RequestPtr webcc_req;
|
|
|
|
// 影子缓存机制:用于解决 webcc 集合类型到外壳集合类型的无损生命周期映射
|
|
mutable std::vector<uns::FormPartPtr> cached_form_parts;
|
|
mutable bool form_parts_cached = false;
|
|
|
|
explicit Impl(webcc::RequestPtr req) : webcc_req(req)
|
|
{
|
|
}
|
|
};
|
|
|
|
class uns::Response::Impl
|
|
{
|
|
public:
|
|
webcc::ResponsePtr webcc_res;
|
|
|
|
explicit Impl(webcc::ResponsePtr res) : webcc_res(res)
|
|
{
|
|
}
|
|
};
|
|
|
|
namespace uns
|
|
{
|
|
inline webcc::Status ConvertStatus(uns::Status s)
|
|
{
|
|
return static_cast<webcc::Status>(static_cast<int>(s));
|
|
}
|
|
|
|
inline uns::Status ConvertStatus(webcc::Status s)
|
|
{
|
|
return static_cast<uns::Status>(static_cast<int>(s));
|
|
}
|
|
}
|