Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
823b8ad1
Commit
823b8ad1
authored
Sep 29, 2021
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix formatting
parent
e9eb8ba4
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
51 additions
and
52 deletions
+51
-52
libcaf_net/caf/net/connection_acceptor.hpp
libcaf_net/caf/net/connection_acceptor.hpp
+2
-1
libcaf_net/caf/net/producer_adapter.hpp
libcaf_net/caf/net/producer_adapter.hpp
+2
-3
libcaf_net/caf/net/stream_transport.hpp
libcaf_net/caf/net/stream_transport.hpp
+3
-2
libcaf_net/caf/net/tcp_accept_socket.hpp
libcaf_net/caf/net/tcp_accept_socket.hpp
+3
-2
libcaf_net/caf/net/transport_base.hpp
libcaf_net/caf/net/transport_base.hpp
+2
-2
libcaf_net/caf/net/transport_worker_dispatcher.hpp
libcaf_net/caf/net/transport_worker_dispatcher.hpp
+2
-2
libcaf_net/caf/net/web_socket/flow.hpp
libcaf_net/caf/net/web_socket/flow.hpp
+1
-1
libcaf_net/caf/net/web_socket/server.hpp
libcaf_net/caf/net/web_socket/server.hpp
+1
-2
libcaf_net/src/multiplexer.cpp
libcaf_net/src/multiplexer.cpp
+4
-4
libcaf_net/test/endpoint_manager.cpp
libcaf_net/test/endpoint_manager.cpp
+3
-2
libcaf_net/test/net/producer_adapter.cpp
libcaf_net/test/net/producer_adapter.cpp
+4
-3
libcaf_net/test/net/web_socket/client.cpp
libcaf_net/test/net/web_socket/client.cpp
+10
-11
libcaf_net/test/net/web_socket/flow.cpp
libcaf_net/test/net/web_socket/flow.cpp
+1
-3
libcaf_net/test/net/web_socket/handshake.cpp
libcaf_net/test/net/web_socket/handshake.cpp
+9
-10
libcaf_net/test/stream_transport.cpp
libcaf_net/test/stream_transport.cpp
+4
-4
No files found.
libcaf_net/caf/net/connection_acceptor.hpp
View file @
823b8ad1
...
...
@@ -38,7 +38,8 @@ public:
// -- member functions -------------------------------------------------------
template
<
class
LowerLayerPtr
>
error
init
(
socket_manager
*
owner
,
LowerLayerPtr
parent
,
const
settings
&
config
)
{
error
init
(
socket_manager
*
owner
,
LowerLayerPtr
parent
,
const
settings
&
config
)
{
CAF_LOG_TRACE
(
""
);
owner_
=
owner
;
cfg_
=
config
;
...
...
libcaf_net/caf/net/producer_adapter.hpp
View file @
823b8ad1
...
...
@@ -39,9 +39,8 @@ public:
void
on_consumer_demand
(
size_t
new_demand
)
override
{
auto
prev
=
demand_
.
fetch_add
(
new_demand
);
if
(
prev
==
0
)
mgr_
->
mpx
().
schedule_fn
([
adapter
=
strong_this
()]
{
adapter
->
continue_reading
();
});
mgr_
->
mpx
().
schedule_fn
(
[
adapter
=
strong_this
()]
{
adapter
->
continue_reading
();
});
}
void
ref_producer
()
const
noexcept
override
{
...
...
libcaf_net/caf/net/stream_transport.hpp
View file @
823b8ad1
...
...
@@ -130,8 +130,9 @@ public:
error
init
(
socket_manager
*
owner
,
ParentPtr
parent
,
const
settings
&
config
)
{
namespace
mm
=
defaults
::
middleman
;
auto
default_max_reads
=
static_cast
<
uint32_t
>
(
mm
::
max_consecutive_reads
);
max_consecutive_reads_
=
get_or
(
config
,
"caf.middleman.max-consecutive-reads"
,
default_max_reads
);
max_consecutive_reads_
=
get_or
(
config
,
"caf.middleman.max-consecutive-reads"
,
default_max_reads
);
auto
sock
=
parent
->
handle
();
if
constexpr
(
std
::
is_base_of
<
tcp_stream_socket
,
decltype
(
sock
)
>::
value
)
{
if
(
auto
err
=
nodelay
(
sock
,
true
))
{
...
...
libcaf_net/caf/net/tcp_accept_socket.hpp
View file @
823b8ad1
...
...
@@ -27,8 +27,9 @@ struct CAF_NET_EXPORT tcp_accept_socket : network_socket {
/// Passing the address `0.0.0.0` will accept incoming connection from any host.
/// Passing port 0 lets the OS choose the port.
/// @relates tcp_accept_socket
expected
<
tcp_accept_socket
>
CAF_NET_EXPORT
make_tcp_accept_socket
(
ip_endpoint
node
,
bool
reuse_addr
=
false
);
expected
<
tcp_accept_socket
>
CAF_NET_EXPORT
make_tcp_accept_socket
(
ip_endpoint
node
,
bool
reuse_addr
=
false
);
/// Creates a new TCP socket to accept connections on a given port.
/// @param node The endpoint to listen on and the filter for incoming addresses.
...
...
libcaf_net/caf/net/transport_base.hpp
View file @
823b8ad1
...
...
@@ -110,8 +110,8 @@ public:
[
&
](
auto
&
layer
)
->
decltype
(
layer
.
resolve
(
*
this
,
locator
,
listener
))
{
return
layer
.
resolve
(
*
this
,
locator
,
listener
);
},
[
&
](
auto
&
layer
)
->
decltype
(
layer
.
resolve
(
*
this
,
locator
.
path
(),
listener
))
{
[
&
](
auto
&
layer
)
->
decltype
(
layer
.
resolve
(
*
this
,
locator
.
path
(),
listener
))
{
return
layer
.
resolve
(
*
this
,
locator
.
path
(),
listener
);
});
f
(
next_layer_
);
...
...
libcaf_net/caf/net/transport_worker_dispatcher.hpp
View file @
823b8ad1
...
...
@@ -118,8 +118,8 @@ public:
}
template
<
class
Parent
>
expected
<
worker_ptr
>
add_new_worker
(
Parent
&
parent
,
node_id
node
,
id_type
id
)
{
expected
<
worker_ptr
>
add_new_worker
(
Parent
&
parent
,
node_id
node
,
id_type
id
)
{
CAF_LOG_TRACE
(
CAF_ARG
(
node
)
<<
CAF_ARG
(
id
));
auto
application
=
factory_
.
make
();
auto
worker
=
std
::
make_shared
<
worker_type
>
(
std
::
move
(
application
),
id
);
...
...
libcaf_net/caf/net/web_socket/flow.hpp
View file @
823b8ad1
...
...
@@ -42,7 +42,7 @@ public:
}
template
<
class
LowerLayerPtr
>
error
init
(
net
::
socket_manager
*
mgr
,
LowerLayerPtr
&&
,
const
settings
&
cfg
)
{
error
init
(
net
::
socket_manager
*
mgr
,
LowerLayerPtr
&&
,
const
settings
&
cfg
)
{
if
(
auto
err
=
reader_
.
init
(
cfg
))
return
err
;
if
(
auto
err
=
writer_
.
init
(
cfg
))
...
...
libcaf_net/caf/net/web_socket/server.hpp
View file @
823b8ad1
...
...
@@ -36,8 +36,7 @@ public:
// -- constructors, destructors, and assignment operators --------------------
template
<
class
...
Ts
>
explicit
server
(
Ts
&&
...
xs
)
:
upper_layer_
(
std
::
forward
<
Ts
>
(
xs
)...)
{
explicit
server
(
Ts
&&
...
xs
)
:
upper_layer_
(
std
::
forward
<
Ts
>
(
xs
)...)
{
// > A server MUST NOT mask any frames that it sends to the client.
// See RFC 6455, Section 5.1.
upper_layer_
.
mask_outgoing_frames
=
false
;
...
...
libcaf_net/src/multiplexer.cpp
View file @
823b8ad1
...
...
@@ -177,9 +177,9 @@ void multiplexer::discard(const socket_manager_ptr& mgr) {
if
(
shutting_down_
)
{
// nop
}
else
{
mgr
->
handle_error
(
sec
::
discarded
);
if
(
auto
mgr_index
=
index_of
(
mgr
);
mgr_index
!=
-
1
)
del
(
mgr_index
);
mgr
->
handle_error
(
sec
::
discarded
);
if
(
auto
mgr_index
=
index_of
(
mgr
);
mgr_index
!=
-
1
)
del
(
mgr_index
);
}
}
else
{
write_to_pipe
(
pollset_updater
::
code
::
discard_manager
,
mgr
.
get
());
...
...
@@ -387,7 +387,7 @@ short multiplexer::handle(const socket_manager_ptr& mgr, short events,
mgr
->
mask_del
(
operation
::
read_write
);
events
=
0
;
}
else
{
switch
(
mgr
->
mask
()){
switch
(
mgr
->
mask
())
{
case
operation
:
:
read
:
events
=
input_mask
;
break
;
...
...
libcaf_net/test/endpoint_manager.cpp
View file @
823b8ad1
...
...
@@ -110,8 +110,9 @@ public:
auto
hid
=
string_view
(
"0011223344556677889900112233445566778899"
);
auto
nid
=
unbox
(
make_node_id
(
42
,
hid
));
actor_config
cfg
;
auto
p
=
make_actor
<
actor_proxy_impl
,
strong_actor_ptr
>
(
aid
,
nid
,
&
mgr
.
system
(),
cfg
,
&
mgr
);
auto
p
=
make_actor
<
actor_proxy_impl
,
strong_actor_ptr
>
(
aid
,
nid
,
&
mgr
.
system
(),
cfg
,
&
mgr
);
std
::
string
path
{
locator
.
path
().
begin
(),
locator
.
path
().
end
()};
anon_send
(
listener
,
resolve_atom_v
,
std
::
move
(
path
),
p
);
}
...
...
libcaf_net/test/net/producer_adapter.cpp
View file @
823b8ad1
...
...
@@ -147,7 +147,7 @@ SCENARIO("publisher adapters suspend reads if the buffer becomes full") {
.
from_resource
(
rd
)
.
for_each
([
&
outputs
](
int32_t
x
)
{
outputs
.
emplace_back
(
x
);
});
});
WHEN
(
"a producer reads from a socket and publishes to the buffer"
){
WHEN
(
"a producer reads from a socket and publishes to the buffer"
)
{
auto
[
fd1
,
fd2
]
=
unbox
(
net
::
make_stream_socket_pair
());
auto
writer_thread
=
std
::
thread
{[
fd1
{
fd1
}]
{
writer
out
{
fd1
};
...
...
@@ -157,8 +157,9 @@ SCENARIO("publisher adapters suspend reads if the buffer becomes full") {
if
(
auto
err
=
nonblocking
(
fd2
,
true
))
FAIL
(
"nonblocking(fd2) returned an error: "
<<
err
);
auto
mgr
=
net
::
make_socket_manager
<
app_t
,
net
::
length_prefix_framing
,
net
::
stream_transport
>
(
fd2
,
mm
.
mpx_ptr
(),
std
::
move
(
wr
));
net
::
stream_transport
>
(
fd2
,
mm
.
mpx_ptr
(),
std
::
move
(
wr
));
if
(
auto
err
=
mgr
->
init
(
content
(
cfg
)))
FAIL
(
"mgr->init() failed: "
<<
err
);
THEN
(
"the actor receives all items from the writer (socket)"
)
{
...
...
libcaf_net/test/net/web_socket/client.cpp
View file @
823b8ad1
...
...
@@ -59,16 +59,15 @@ struct app_t {
constexpr
auto
key
=
"the sample nonce"
_sv
;
constexpr
auto
http_request
=
"GET /chat HTTP/1.1
\r\n
"
"Host: server.example.com
\r\n
"
"Upgrade: websocket
\r\n
"
"Connection: Upgrade
\r\n
"
"Sec-WebSocket-Version: 13
\r\n
"
"Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
\r\n
"
"Origin: http://example.com
\r\n
"
"Sec-WebSocket-Protocol: chat, superchat
\r\n
"
"
\r\n
"
_sv
;
constexpr
auto
http_request
=
"GET /chat HTTP/1.1
\r\n
"
"Host: server.example.com
\r\n
"
"Upgrade: websocket
\r\n
"
"Connection: Upgrade
\r\n
"
"Sec-WebSocket-Version: 13
\r\n
"
"Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
\r\n
"
"Origin: http://example.com
\r\n
"
"Sec-WebSocket-Protocol: chat, superchat
\r\n
"
"
\r\n
"
_sv
;
constexpr
auto
http_response
=
"HTTP/1.1 101 Switching Protocols
\r\n
"
...
...
@@ -102,7 +101,7 @@ BEGIN_FIXTURE_SCOPE(host_fixture)
SCENARIO
(
"the client performs the WebSocket handshake on startup"
)
{
GIVEN
(
"valid WebSocket handshake data"
)
{
WHEN
(
"starting a WebSocket client"
){
WHEN
(
"starting a WebSocket client"
)
{
mock_client_type
client
{
make_handshake
()};
THEN
(
"the client sends its HTTP request when initializing it"
)
{
CHECK_EQ
(
client
.
init
(),
error
{});
...
...
libcaf_net/test/net/web_socket/flow.cpp
View file @
823b8ad1
...
...
@@ -12,9 +12,7 @@ using namespace caf;
namespace
{
struct
fixture
{
};
struct
fixture
{};
}
// namespace
...
...
libcaf_net/test/net/web_socket/handshake.cpp
View file @
823b8ad1
...
...
@@ -18,16 +18,15 @@ namespace {
constexpr
auto
key
=
"the sample nonce"
_sv
;
constexpr
auto
http_request
=
"GET /chat HTTP/1.1
\r\n
"
"Host: server.example.com
\r\n
"
"Upgrade: websocket
\r\n
"
"Connection: Upgrade
\r\n
"
"Sec-WebSocket-Version: 13
\r\n
"
"Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
\r\n
"
"Origin: http://example.com
\r\n
"
"Sec-WebSocket-Protocol: chat, superchat
\r\n
"
"
\r\n
"
_sv
;
constexpr
auto
http_request
=
"GET /chat HTTP/1.1
\r\n
"
"Host: server.example.com
\r\n
"
"Upgrade: websocket
\r\n
"
"Connection: Upgrade
\r\n
"
"Sec-WebSocket-Version: 13
\r\n
"
"Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
\r\n
"
"Origin: http://example.com
\r\n
"
"Sec-WebSocket-Protocol: chat, superchat
\r\n
"
"
\r\n
"
_sv
;
constexpr
auto
http_response
=
"HTTP/1.1 101 Switching Protocols
\r\n
"
...
...
libcaf_net/test/stream_transport.cpp
View file @
823b8ad1
...
...
@@ -145,10 +145,10 @@ CAF_TEST(receive) {
recv_socket_guard
.
release
(),
&
mpx
,
shared_recv_buf
,
shared_send_buf
);
CAF_CHECK_EQUAL
(
mgr
->
init
(
config
),
none
);
CAF_CHECK_EQUAL
(
mpx
.
num_socket_managers
(),
2u
);
CAF_CHECK_EQUAL
(
static_cast
<
size_t
>
(
write
(
send_socket_guard
.
socket
(),
as_bytes
(
make_span
(
hello_manager
)))),
hello_manager
.
size
());
CAF_CHECK_EQUAL
(
static_cast
<
size_t
>
(
write
(
send_socket_guard
.
socket
(),
as_bytes
(
make_span
(
hello_manager
)))),
hello_manager
.
size
());
CAF_MESSAGE
(
"wrote "
<<
hello_manager
.
size
()
<<
" bytes."
);
run
();
CAF_CHECK_EQUAL
(
string_view
(
reinterpret_cast
<
char
*>
(
shared_recv_buf
->
data
()),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment