Sese Framework
x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
HttpService.h
浏览该文件的文档.
1
// Copyright 2024 libsese
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
19
20
#pragma once
21
22
#include <
sese/service/Service.h
>
23
#include <
sese/net/http/Controller.h
>
24
#include <
sese/net/IPv6Address.h
>
25
#include <
sese/security/SSLContext.h
>
26
#include <
sese/thread/Thread.h
>
27
28
#include <unordered_map>
29
30
namespace
sese::service::http
{
31
33
class
HttpService
:
public
Service
{
34
public
:
35
using
Ptr
= std::shared_ptr<HttpService>;
36
using
SSLContextPtr
= std::unique_ptr<security::SSLContext>;
37
using
FilterCallback
= std::function<bool(
net::http::Request
&,
net::http::Response
&)>;
38
using
ConnectionCallback
= std::function<bool(
net::IPAddress::Ptr
&)>;
39
using
FilterMap
= std::unordered_map<std::string, FilterCallback>;
40
using
MountPointMap
= std::unordered_map<std::string, std::string>;
41
using
ServletMap
= std::unordered_map<std::string, net::http::Servlet>;
42
43
static
HttpService::Ptr
create
(
44
const
net::IPAddress::Ptr
&
address
,
45
SSLContextPtr
ssl_context
,
46
uint32_t
keepalive
,
47
std::string &
serv_name
,
48
MountPointMap
&
mount_points
,
49
ServletMap
&
servlets
,
50
FilterCallback
&
tail_filter
,
51
FilterMap
&
filters
,
52
ConnectionCallback
&
connection_callback
53
);
54
55
protected
:
56
HttpService
(
57
net::IPAddress::Ptr
address
,
58
SSLContextPtr
ssl_context
,
59
uint32_t
keepalive
,
60
std::string &
serv_name
,
61
MountPointMap
&
mount_points
,
62
ServletMap
&
servlets
,
63
FilterCallback
&
tail_filter
,
64
FilterMap
&
filters
,
65
ConnectionCallback
&
connection_callback
66
);
67
68
net::IPAddress::Ptr
address
;
69
SSLContextPtr
ssl_context
;
70
Thread::Ptr
thread
;
71
uint32_t
keepalive
= 30;
72
std::string &
serv_name
;
73
MountPointMap
&
mount_points
;
74
ServletMap
&
servlets
;
75
FilterCallback
&
tail_filter
;
76
FilterMap
&
filters
;
77
ConnectionCallback
&
connection_callback
;
78
};
79
80
}
// namespace sese::service::http
sese
service
http
HttpService.h
生成于 2024年 十一月 4日 星期一 09:58:02 , 为 Sese Framework使用
1.11.0