Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
youngwolf
st_asio_wrapper
提交
94a3d07f
S
st_asio_wrapper
项目概览
youngwolf
/
st_asio_wrapper
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
st_asio_wrapper
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
94a3d07f
编写于
7月 30, 2016
作者:
W
wolf
提交者:
youngowlf
4月 27, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Continue last committing.
上级
e61855ae
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
173 addition
and
82 deletion
+173
-82
asio_client/asio_client.cpp
asio_client/asio_client.cpp
+1
-1
asio_server/asio_server.cpp
asio_server/asio_server.cpp
+1
-1
compatible_edition/asio_client/asio_client.cpp
compatible_edition/asio_client/asio_client.cpp
+1
-1
compatible_edition/asio_server/asio_server.cpp
compatible_edition/asio_server/asio_server.cpp
+1
-1
compatible_edition/file_client/file_client.h
compatible_edition/file_client/file_client.h
+1
-1
compatible_edition/file_server/file_socket.h
compatible_edition/file_server/file_socket.h
+1
-1
compatible_edition/include/ext/st_asio_wrapper_net.h
compatible_edition/include/ext/st_asio_wrapper_net.h
+4
-5
compatible_edition/include/ext/st_asio_wrapper_ssl.h
compatible_edition/include/ext/st_asio_wrapper_ssl.h
+40
-0
compatible_edition/include/st_asio_wrapper_ssl.h
compatible_edition/include/st_asio_wrapper_ssl.h
+35
-28
compatible_edition/include/st_asio_wrapper_udp_socket.h
compatible_edition/include/st_asio_wrapper_udp_socket.h
+1
-1
compatible_edition/pingpong_client/client.cpp
compatible_edition/pingpong_client/client.cpp
+1
-1
compatible_edition/pingpong_server/server.cpp
compatible_edition/pingpong_server/server.cpp
+1
-1
compatible_edition/ssl_test/ssl_test.cpp
compatible_edition/ssl_test/ssl_test.cpp
+2
-1
compatible_edition/test_client/test_client.cpp
compatible_edition/test_client/test_client.cpp
+1
-1
compatible_edition/udp_test/udp_test.cpp
compatible_edition/udp_test/udp_test.cpp
+1
-1
file_client/file_client.h
file_client/file_client.h
+1
-1
file_server/file_socket.h
file_server/file_socket.h
+1
-1
include/ext/st_asio_wrapper_net.h
include/ext/st_asio_wrapper_net.h
+4
-5
include/ext/st_asio_wrapper_ssl.h
include/ext/st_asio_wrapper_ssl.h
+40
-0
include/st_asio_wrapper_ssl.h
include/st_asio_wrapper_ssl.h
+29
-25
pingpong_client/client.cpp
pingpong_client/client.cpp
+1
-1
pingpong_server/server.cpp
pingpong_server/server.cpp
+1
-1
ssl_test/ssl_test.cpp
ssl_test/ssl_test.cpp
+2
-1
test_client/test_client.cpp
test_client/test_client.cpp
+1
-1
udp_test/udp_test.cpp
udp_test/udp_test.cpp
+1
-1
未找到文件。
asio_client/asio_client.cpp
浏览文件 @
94a3d07f
...
...
@@ -39,7 +39,7 @@ public:
static
void
debug_out
(
const
char
*
fmt
,
...)
{
all_out_helper2
(
"debug"
);}
};
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
::
ext
;
#define QUIT_COMMAND "quit"
...
...
asio_server/asio_server.cpp
浏览文件 @
94a3d07f
...
...
@@ -26,7 +26,7 @@
#endif
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
compatible_edition/asio_client/asio_client.cpp
浏览文件 @
94a3d07f
...
...
@@ -39,7 +39,7 @@ public:
static
void
debug_out
(
const
char
*
fmt
,
...)
{
all_out_helper2
(
"debug"
);}
};
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
::
ext
;
#define QUIT_COMMAND "quit"
...
...
compatible_edition/asio_server/asio_server.cpp
浏览文件 @
94a3d07f
...
...
@@ -26,7 +26,7 @@
#endif
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
compatible_edition/file_client/file_client.h
浏览文件 @
94a3d07f
...
...
@@ -7,7 +7,7 @@
#include <boost/lambda/lambda.hpp>
#include "../file_server/packer_unpacker.h"
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
compatible_edition/file_server/file_socket.h
浏览文件 @
94a3d07f
...
...
@@ -3,7 +3,7 @@
#define FILE_SOCKET_H_
#include "packer_unpacker.h"
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
::
ext
;
class
file_socket
:
public
base_socket
,
public
st_server_socket
...
...
compatible_edition/include/ext/st_asio_wrapper_
ex
t.h
→
compatible_edition/include/ext/st_asio_wrapper_
ne
t.h
浏览文件 @
94a3d07f
/*
* st_asio_wrapper_
ex
t.h
* st_asio_wrapper_
ne
t.h
*
* Created on: 2016-7-30
* Author: youngwolf
...
...
@@ -10,10 +10,9 @@
* extensional, replaceable and indispensable components.
*/
#ifndef ST_ASIO_WRAPPER_
EX
T_H_
#define ST_ASIO_WRAPPER_
EX
T_H_
#ifndef ST_ASIO_WRAPPER_
NE
T_H_
#define ST_ASIO_WRAPPER_
NE
T_H_
#include "../st_asio_wrapper_base.h"
#include "../st_asio_wrapper_client.h"
#include "../st_asio_wrapper_tcp_client.h"
#include "../st_asio_wrapper_udp_client.h"
...
...
@@ -49,4 +48,4 @@ typedef st_udp_client_base<st_udp_socket> st_udp_client;
}}
//namespace
#endif
/* ST_ASIO_WRAPPER_
EX
T_H_ */
#endif
/* ST_ASIO_WRAPPER_
NE
T_H_ */
compatible_edition/include/ext/st_asio_wrapper_ssl.h
0 → 100644
浏览文件 @
94a3d07f
/*
* st_asio_wrapper_ssl.h
*
* Created on: 2016-7-30
* Author: youngwolf
* email: mail2tao@163.com
* QQ: 676218192
* Community on QQ: 198941541
*
* extensional, replaceable and indispensable components.
*/
#ifndef ST_ASIO_WRAPPER_EXT_SSL_H_
#define ST_ASIO_WRAPPER_EXT_SSL_H_
#include "../st_asio_wrapper_ssl.h"
#include "st_asio_wrapper_packer.h"
#include "st_asio_wrapper_unpacker.h"
#ifndef ST_ASIO_DEFAULT_PACKER
#define ST_ASIO_DEFAULT_PACKER packer
#endif
#ifndef ST_ASIO_DEFAULT_UNPACKER
#define ST_ASIO_DEFAULT_UNPACKER unpacker
#endif
namespace
st_asio_wrapper
{
namespace
ext
{
typedef
st_ssl_server_socket_base
<
ST_ASIO_DEFAULT_PACKER
,
ST_ASIO_DEFAULT_UNPACKER
>
st_ssl_server_socket
;
typedef
st_ssl_server_base
<
st_ssl_server_socket
>
st_ssl_server
;
typedef
st_ssl_connector_base
<
ST_ASIO_DEFAULT_PACKER
,
ST_ASIO_DEFAULT_UNPACKER
>
st_ssl_connector
;
typedef
st_sclient
<
st_ssl_connector
>
st_ssl_tcp_sclient
;
typedef
st_tcp_client_base
<
st_ssl_connector
,
st_ssl_object_pool
<
st_ssl_connector
>
>
st_ssl_tcp_client
;
}}
//namespace
#endif
/* ST_ASIO_WRAPPER_EXT_SSL_H_ */
compatible_edition/include/st_asio_wrapper_ssl.h
浏览文件 @
94a3d07f
/*
* st_asio_wrapper_ssl
_object
.h
* st_asio_wrapper_ssl.h
*
* Created on: 2012-3-2
* Author: youngwolf
...
...
@@ -26,16 +26,19 @@
namespace
st_asio_wrapper
{
template
<
typename
Packer
=
ST_ASIO_DEFAULT_PACKER
,
typename
Unpacker
=
ST_ASIO_DEFAULT_UNPACKER
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
template
<
typename
Packer
,
typename
Unpacker
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
class
st_ssl_connector_base
:
public
st_connector_base
<
Packer
,
Unpacker
,
Socket
>
{
protected:
typedef
st_connector_base
<
Packer
,
Unpacker
,
Socket
>
super
;
public:
using
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
TIMER_BEGIN
;
using
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
TIMER_END
;
using
s
uper
::
TIMER_BEGIN
;
using
s
uper
::
TIMER_END
;
st_ssl_connector_base
(
boost
::
asio
::
io_service
&
io_service_
,
boost
::
asio
::
ssl
::
context
&
ctx
)
:
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
(
io_service_
,
ctx
),
authorized_
(
false
)
{}
st_ssl_connector_base
(
boost
::
asio
::
io_service
&
io_service_
,
boost
::
asio
::
ssl
::
context
&
ctx
)
:
s
uper
(
io_service_
,
ctx
),
authorized_
(
false
)
{}
virtual
void
reset
()
{
authorized_
=
false
;
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
reset
();}
virtual
void
reset
()
{
authorized_
=
false
;
s
uper
::
reset
();}
bool
authorized
()
const
{
return
authorized_
;}
void
disconnect
(
bool
reconnect
=
false
)
{
force_close
(
reconnect
);}
...
...
@@ -45,7 +48,7 @@ public:
unified_out
::
error_out
(
"boost::asio::ssl::stream not support reuse!"
);
if
(
!
shutdown_ssl
())
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
force_close
(
false
);
s
uper
::
force_close
(
false
);
}
void
graceful_close
(
bool
reconnect
=
false
,
bool
sync
=
true
)
...
...
@@ -54,7 +57,7 @@ public:
unified_out
::
error_out
(
"boost::asio::ssl::stream not support reuse!"
);
if
(
!
shutdown_ssl
())
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
graceful_close
(
false
,
sync
);
s
uper
::
graceful_close
(
false
,
sync
);
}
protected:
...
...
@@ -76,8 +79,8 @@ protected:
return
false
;
}
virtual
void
on_unpack_error
()
{
authorized_
=
false
;
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
on_unpack_error
();}
virtual
void
on_recv_error
(
const
boost
::
system
::
error_code
&
ec
)
{
authorized_
=
false
;
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
on_recv_error
(
ec
);}
virtual
void
on_unpack_error
()
{
authorized_
=
false
;
s
uper
::
on_unpack_error
();}
virtual
void
on_recv_error
(
const
boost
::
system
::
error_code
&
ec
)
{
authorized_
=
false
;
s
uper
::
on_recv_error
(
ec
);}
virtual
void
on_handshake
(
const
boost
::
system
::
error_code
&
ec
)
{
if
(
!
ec
)
...
...
@@ -85,7 +88,7 @@ protected:
else
unified_out
::
error_out
(
"handshake failed: %s"
,
ec
.
message
().
data
());
}
virtual
bool
is_send_allowed
()
const
{
return
authorized
()
&&
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
is_send_allowed
();}
virtual
bool
is_send_allowed
()
const
{
return
authorized
()
&&
s
uper
::
is_send_allowed
();}
bool
shutdown_ssl
()
{
...
...
@@ -136,20 +139,21 @@ private:
protected:
bool
authorized_
;
};
typedef
st_ssl_connector_base
<>
st_ssl_connector
;
typedef
st_sclient
<
st_ssl_connector
>
st_ssl_tcp_sclient
;
template
<
typename
Object
>
class
st_ssl_object_pool
:
public
st_object_pool
<
Object
>
{
protected:
typedef
st_object_pool
<
Object
>
super
;
public:
using
s
t_object_pool
<
Object
>
::
TIMER_BEGIN
;
using
s
t_object_pool
<
Object
>
::
TIMER_END
;
using
s
uper
::
TIMER_BEGIN
;
using
s
uper
::
TIMER_END
;
st_ssl_object_pool
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
t_object_pool
<
Object
>
(
service_pump_
),
ctx
(
m
)
{}
st_ssl_object_pool
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
uper
(
service_pump_
),
ctx
(
m
)
{}
boost
::
asio
::
ssl
::
context
&
ssl_context
()
{
return
ctx
;}
using
s
t_object_pool
<
Object
>
::
create_object
;
using
s
uper
::
create_object
;
typename
st_ssl_object_pool
::
object_type
create_object
()
{
return
create_object
(
boost
::
ref
(
ST_THIS
service_pump
),
boost
::
ref
(
ctx
));}
template
<
typename
Arg
>
typename
st_ssl_object_pool
::
object_type
create_object
(
Arg
&
arg
)
{
return
create_object
(
arg
,
boost
::
ref
(
ctx
));}
...
...
@@ -157,27 +161,31 @@ public:
protected:
boost
::
asio
::
ssl
::
context
ctx
;
};
typedef
st_tcp_client_base
<
st_ssl_connector
,
st_ssl_object_pool
<
st_ssl_connector
>
>
st_ssl_tcp_client
;
template
<
typename
Packer
=
ST_ASIO_DEFAULT_PACKER
,
typename
Unpacker
=
ST_ASIO_DEFAULT_UNPACKER
,
typename
Server
=
i_server
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
template
<
typename
Packer
,
typename
Unpacker
,
typename
Server
=
i_server
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
class
st_ssl_server_socket_base
:
public
st_server_socket_base
<
Packer
,
Unpacker
,
Server
,
Socket
>
//so cumbersome, what should we do to make it as simple as normal edition?
{
protected:
typedef
st_server_socket_base
<
Packer
,
Unpacker
,
Server
,
Socket
>
super
;
public:
using
s
t_server_socket_base
<
Packer
,
Unpacker
,
Server
,
Socket
>
::
TIMER_BEGIN
;
using
s
t_server_socket_base
<
Packer
,
Unpacker
,
Server
,
Socket
>
::
TIMER_END
;
using
s
uper
::
TIMER_BEGIN
;
using
s
uper
::
TIMER_END
;
st_ssl_server_socket_base
(
Server
&
server_
,
boost
::
asio
::
ssl
::
context
&
ctx
)
:
s
t_server_socket_base
<
Packer
,
Unpacker
,
Server
,
Socket
>
(
server_
,
ctx
)
{}
st_ssl_server_socket_base
(
Server
&
server_
,
boost
::
asio
::
ssl
::
context
&
ctx
)
:
s
uper
(
server_
,
ctx
)
{}
};
typedef
st_ssl_server_socket_base
<>
st_ssl_server_socket
;
template
<
typename
Socket
=
st_ssl_server_socket
,
typename
Pool
=
st_ssl_object_pool
<
Socket
>,
typename
Server
=
i_server
>
template
<
typename
Socket
,
typename
Pool
=
st_ssl_object_pool
<
Socket
>,
typename
Server
=
i_server
>
class
st_ssl_server_base
:
public
st_server_base
<
Socket
,
Pool
,
Server
>
{
protected:
typedef
st_server_base
<
Socket
,
Pool
,
Server
>
super
;
public:
using
s
t_server_base
<
Socket
,
Pool
,
Server
>
::
TIMER_BEGIN
;
using
s
t_server_base
<
Socket
,
Pool
,
Server
>
::
TIMER_END
;
using
s
uper
::
TIMER_BEGIN
;
using
s
uper
::
TIMER_END
;
st_ssl_server_base
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
t_server_base
<
Socket
,
Pool
,
Server
>
(
service_pump_
,
m
)
{}
st_ssl_server_base
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
uper
(
service_pump_
,
m
)
{}
protected:
virtual
void
on_handshake
(
const
boost
::
system
::
error_code
&
ec
,
typename
st_ssl_server_base
::
object_ctype
&
client_ptr
)
...
...
@@ -220,7 +228,6 @@ private:
client_ptr
->
start
();
}
};
typedef
st_ssl_server_base
<>
st_ssl_server
;
}
//namespace
...
...
compatible_edition/include/st_asio_wrapper_udp_socket.h
浏览文件 @
94a3d07f
...
...
@@ -29,7 +29,7 @@ template <typename Packer, typename Unpacker, typename Socket = boost::asio::ip:
class
st_udp_socket_base
:
public
st_socket
<
Socket
,
Packer
,
Unpacker
,
udp_msg
<
typename
Packer
::
msg_type
>
,
udp_msg
<
typename
Unpacker
::
msg_type
>
>
{
protected:
typedef
st_socket
<
Socket
,
Packer
,
Unpacker
,
udp_msg
<
typename
Packer
::
msg_type
>
,
udp_msg
<
typename
Unpacker
::
msg_type
>>
super
;
typedef
st_socket
<
Socket
,
Packer
,
Unpacker
,
udp_msg
<
typename
Packer
::
msg_type
>
,
udp_msg
<
typename
Unpacker
::
msg_type
>
>
super
;
public:
typedef
udp_msg
<
typename
Packer
::
msg_type
>
in_msg_type
;
...
...
compatible_edition/pingpong_client/client.cpp
浏览文件 @
94a3d07f
...
...
@@ -12,7 +12,7 @@
#define ST_ASIO_MSG_BUFFER_SIZE 65536
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
compatible_edition/pingpong_server/server.cpp
浏览文件 @
94a3d07f
...
...
@@ -9,7 +9,7 @@
#define ST_ASIO_MSG_BUFFER_SIZE 65536
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
compatible_edition/ssl_test/ssl_test.cpp
浏览文件 @
94a3d07f
...
...
@@ -9,8 +9,9 @@
//#define ST_ASIO_DEFAULT_UNPACKER replaceable_unpacker
//configuration
#include "../include/st_asio_wrapper_ssl.h"
#include "../include/
ext/
st_asio_wrapper_ssl.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
#define QUIT_COMMAND "quit"
#define RESTART_COMMAND "restart"
...
...
compatible_edition/test_client/test_client.cpp
浏览文件 @
94a3d07f
...
...
@@ -30,7 +30,7 @@
#define ST_ASIO_DEFAULT_UNPACKER prefix_suffix_unpacker
#endif
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
compatible_edition/udp_test/udp_test.cpp
浏览文件 @
94a3d07f
...
...
@@ -6,7 +6,7 @@
//#define ST_ASIO_DEFAULT_UDP_UNPACKER replaceable_udp_unpacker
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
file_client/file_client.h
浏览文件 @
94a3d07f
...
...
@@ -5,7 +5,7 @@
#include <boost/timer/timer.hpp>
#include "../file_server/packer_unpacker.h"
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
file_server/file_socket.h
浏览文件 @
94a3d07f
...
...
@@ -3,7 +3,7 @@
#define FILE_SOCKET_H_
#include "packer_unpacker.h"
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
::
ext
;
class
file_socket
:
public
base_socket
,
public
st_server_socket
...
...
include/ext/st_asio_wrapper_
ex
t.h
→
include/ext/st_asio_wrapper_
ne
t.h
浏览文件 @
94a3d07f
/*
* st_asio_wrapper_
ex
t.h
* st_asio_wrapper_
ne
t.h
*
* Created on: 2016-7-30
* Author: youngwolf
...
...
@@ -10,10 +10,9 @@
* extensional, replaceable and indispensable components.
*/
#ifndef ST_ASIO_WRAPPER_
EX
T_H_
#define ST_ASIO_WRAPPER_
EX
T_H_
#ifndef ST_ASIO_WRAPPER_
NE
T_H_
#define ST_ASIO_WRAPPER_
NE
T_H_
#include "../st_asio_wrapper_base.h"
#include "../st_asio_wrapper_client.h"
#include "../st_asio_wrapper_tcp_client.h"
#include "../st_asio_wrapper_udp_client.h"
...
...
@@ -49,4 +48,4 @@ typedef st_udp_client_base<st_udp_socket> st_udp_client;
}}
//namespace
#endif
/* ST_ASIO_WRAPPER_
EX
T_H_ */
#endif
/* ST_ASIO_WRAPPER_
NE
T_H_ */
include/ext/st_asio_wrapper_ssl.h
0 → 100644
浏览文件 @
94a3d07f
/*
* st_asio_wrapper_ssl.h
*
* Created on: 2016-7-30
* Author: youngwolf
* email: mail2tao@163.com
* QQ: 676218192
* Community on QQ: 198941541
*
* extensional, replaceable and indispensable components.
*/
#ifndef ST_ASIO_WRAPPER_EXT_SSL_H_
#define ST_ASIO_WRAPPER_EXT_SSL_H_
#include "../st_asio_wrapper_ssl.h"
#include "st_asio_wrapper_packer.h"
#include "st_asio_wrapper_unpacker.h"
#ifndef ST_ASIO_DEFAULT_PACKER
#define ST_ASIO_DEFAULT_PACKER packer
#endif
#ifndef ST_ASIO_DEFAULT_UNPACKER
#define ST_ASIO_DEFAULT_UNPACKER unpacker
#endif
namespace
st_asio_wrapper
{
namespace
ext
{
typedef
st_ssl_server_socket_base
<
ST_ASIO_DEFAULT_PACKER
,
ST_ASIO_DEFAULT_UNPACKER
>
st_ssl_server_socket
;
typedef
st_ssl_server_base
<
st_ssl_server_socket
>
st_ssl_server
;
typedef
st_ssl_connector_base
<
ST_ASIO_DEFAULT_PACKER
,
ST_ASIO_DEFAULT_UNPACKER
>
st_ssl_connector
;
typedef
st_sclient
<
st_ssl_connector
>
st_ssl_tcp_sclient
;
typedef
st_tcp_client_base
<
st_ssl_connector
,
st_ssl_object_pool
<
st_ssl_connector
>
>
st_ssl_tcp_client
;
}}
//namespace
#endif
/* ST_ASIO_WRAPPER_EXT_SSL_H_ */
include/st_asio_wrapper_ssl.h
浏览文件 @
94a3d07f
/*
* st_asio_wrapper_ssl
_object
.h
* st_asio_wrapper_ssl.h
*
* Created on: 2012-3-2
* Author: youngwolf
...
...
@@ -26,16 +26,19 @@
namespace
st_asio_wrapper
{
template
<
typename
Packer
=
ST_ASIO_DEFAULT_PACKER
,
typename
Unpacker
=
ST_ASIO_DEFAULT_UNPACKER
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
template
<
typename
Packer
,
typename
Unpacker
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
class
st_ssl_connector_base
:
public
st_connector_base
<
Packer
,
Unpacker
,
Socket
>
{
protected:
typedef
st_connector_base
<
Packer
,
Unpacker
,
Socket
>
super
;
public:
using
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
TIMER_BEGIN
;
using
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
TIMER_END
;
using
s
uper
::
TIMER_BEGIN
;
using
s
uper
::
TIMER_END
;
st_ssl_connector_base
(
boost
::
asio
::
io_service
&
io_service_
,
boost
::
asio
::
ssl
::
context
&
ctx
)
:
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
(
io_service_
,
ctx
),
authorized_
(
false
)
{}
st_ssl_connector_base
(
boost
::
asio
::
io_service
&
io_service_
,
boost
::
asio
::
ssl
::
context
&
ctx
)
:
s
uper
(
io_service_
,
ctx
),
authorized_
(
false
)
{}
virtual
void
reset
()
{
authorized_
=
false
;
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
reset
();}
virtual
void
reset
()
{
authorized_
=
false
;
s
uper
::
reset
();}
bool
authorized
()
const
{
return
authorized_
;}
void
disconnect
(
bool
reconnect
=
false
)
{
force_close
(
reconnect
);}
...
...
@@ -45,7 +48,7 @@ public:
unified_out
::
error_out
(
"boost::asio::ssl::stream not support reuse!"
);
if
(
!
shutdown_ssl
())
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
force_close
(
false
);
s
uper
::
force_close
(
false
);
}
void
graceful_close
(
bool
reconnect
=
false
,
bool
sync
=
true
)
...
...
@@ -54,7 +57,7 @@ public:
unified_out
::
error_out
(
"boost::asio::ssl::stream not support reuse!"
);
if
(
!
shutdown_ssl
())
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
graceful_close
(
false
,
sync
);
s
uper
::
graceful_close
(
false
,
sync
);
}
protected:
...
...
@@ -76,8 +79,8 @@ protected:
return
false
;
}
virtual
void
on_unpack_error
()
{
authorized_
=
false
;
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
on_unpack_error
();}
virtual
void
on_recv_error
(
const
boost
::
system
::
error_code
&
ec
)
{
authorized_
=
false
;
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
on_recv_error
(
ec
);}
virtual
void
on_unpack_error
()
{
authorized_
=
false
;
s
uper
::
on_unpack_error
();}
virtual
void
on_recv_error
(
const
boost
::
system
::
error_code
&
ec
)
{
authorized_
=
false
;
s
uper
::
on_recv_error
(
ec
);}
virtual
void
on_handshake
(
const
boost
::
system
::
error_code
&
ec
)
{
if
(
!
ec
)
...
...
@@ -85,7 +88,7 @@ protected:
else
unified_out
::
error_out
(
"handshake failed: %s"
,
ec
.
message
().
data
());
}
virtual
bool
is_send_allowed
()
const
{
return
authorized
()
&&
s
t_connector_base
<
Packer
,
Unpacker
,
Socket
>
::
is_send_allowed
();}
virtual
bool
is_send_allowed
()
const
{
return
authorized
()
&&
s
uper
::
is_send_allowed
();}
bool
shutdown_ssl
()
{
...
...
@@ -136,20 +139,21 @@ private:
protected:
bool
authorized_
;
};
typedef
st_ssl_connector_base
<>
st_ssl_connector
;
typedef
st_sclient
<
st_ssl_connector
>
st_ssl_tcp_sclient
;
template
<
typename
Object
>
class
st_ssl_object_pool
:
public
st_object_pool
<
Object
>
{
protected:
typedef
st_object_pool
<
Object
>
super
;
public:
using
s
t_object_pool
<
Object
>
::
TIMER_BEGIN
;
using
s
t_object_pool
<
Object
>
::
TIMER_END
;
using
s
uper
::
TIMER_BEGIN
;
using
s
uper
::
TIMER_END
;
st_ssl_object_pool
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
t_object_pool
<
Object
>
(
service_pump_
),
ctx
(
m
)
{}
st_ssl_object_pool
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
uper
(
service_pump_
),
ctx
(
m
)
{}
boost
::
asio
::
ssl
::
context
&
ssl_context
()
{
return
ctx
;}
using
s
t_object_pool
<
Object
>
::
create_object
;
using
s
uper
::
create_object
;
typename
st_ssl_object_pool
::
object_type
create_object
()
{
return
create_object
(
ST_THIS
service_pump
,
ctx
);}
template
<
typename
Arg
>
typename
st_ssl_object_pool
::
object_type
create_object
(
Arg
&
arg
)
{
return
create_object
(
arg
,
ctx
);}
...
...
@@ -157,20 +161,21 @@ public:
protected:
boost
::
asio
::
ssl
::
context
ctx
;
};
typedef
st_tcp_client_base
<
st_ssl_connector
,
st_ssl_object_pool
<
st_ssl_connector
>>
st_ssl_tcp_client
;
template
<
typename
Packer
=
ST_ASIO_DEFAULT_PACKER
,
typename
Unpacker
=
ST_ASIO_DEFAULT_UNPACKER
,
typename
Server
=
i_server
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
template
<
typename
Packer
,
typename
Unpacker
,
typename
Server
=
i_server
,
typename
Socket
=
boost
::
asio
::
ssl
::
stream
<
boost
::
asio
::
ip
::
tcp
::
socket
>
>
using
st_ssl_server_socket_base
=
st_server_socket_base
<
Packer
,
Unpacker
,
Server
,
Socket
>
;
typedef
st_ssl_server_socket_base
<>
st_ssl_server_socket
;
template
<
typename
Socket
=
st_ssl_server_socket
,
typename
Pool
=
st_ssl_object_pool
<
Socket
>,
typename
Server
=
i_server
>
template
<
typename
Socket
,
typename
Pool
=
st_ssl_object_pool
<
Socket
>,
typename
Server
=
i_server
>
class
st_ssl_server_base
:
public
st_server_base
<
Socket
,
Pool
,
Server
>
{
protected:
typedef
st_server_base
<
Socket
,
Pool
,
Server
>
super
;
public:
using
s
t_server_base
<
Socket
,
Pool
,
Server
>
::
TIMER_BEGIN
;
using
s
t_server_base
<
Socket
,
Pool
,
Server
>
::
TIMER_END
;
using
s
uper
::
TIMER_BEGIN
;
using
s
uper
::
TIMER_END
;
st_ssl_server_base
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
t_server_base
<
Socket
,
Pool
,
Server
>
(
service_pump_
,
m
)
{}
st_ssl_server_base
(
st_service_pump
&
service_pump_
,
boost
::
asio
::
ssl
::
context
::
method
m
)
:
s
uper
(
service_pump_
,
m
)
{}
protected:
virtual
void
on_handshake
(
const
boost
::
system
::
error_code
&
ec
,
typename
st_ssl_server_base
::
object_ctype
&
client_ptr
)
...
...
@@ -213,7 +218,6 @@ private:
client_ptr
->
start
();
}
};
typedef
st_ssl_server_base
<>
st_ssl_server
;
}
//namespace
...
...
pingpong_client/client.cpp
浏览文件 @
94a3d07f
...
...
@@ -12,7 +12,7 @@
#define ST_ASIO_MSG_BUFFER_SIZE 65536
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
pingpong_server/server.cpp
浏览文件 @
94a3d07f
...
...
@@ -9,7 +9,7 @@
#define ST_ASIO_MSG_BUFFER_SIZE 65536
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
ssl_test/ssl_test.cpp
浏览文件 @
94a3d07f
...
...
@@ -9,8 +9,9 @@
//#define ST_ASIO_DEFAULT_UNPACKER replaceable_unpacker
//configuration
#include "../include/st_asio_wrapper_ssl.h"
#include "../include/
ext/
st_asio_wrapper_ssl.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
#define QUIT_COMMAND "quit"
#define RESTART_COMMAND "restart"
...
...
test_client/test_client.cpp
浏览文件 @
94a3d07f
...
...
@@ -28,7 +28,7 @@
#define ST_ASIO_DEFAULT_UNPACKER prefix_suffix_unpacker
#endif
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
udp_test/udp_test.cpp
浏览文件 @
94a3d07f
...
...
@@ -6,7 +6,7 @@
//#define ST_ASIO_DEFAULT_UDP_UNPACKER replaceable_udp_unpacker
//configuration
#include "../include/ext/st_asio_wrapper_
ex
t.h"
#include "../include/ext/st_asio_wrapper_
ne
t.h"
using
namespace
st_asio_wrapper
;
using
namespace
st_asio_wrapper
::
ext
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录