Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
actor-incubator
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
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-incubator
Commits
e512ec72
Commit
e512ec72
authored
Nov 28, 2019
by
Jakob Otto
Browse files
Options
Browse Files
Download
Plain Diff
Fix build
parents
f73d66f0
f69e5759
Changes
26
Show whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
90 additions
and
93 deletions
+90
-93
libcaf_net/caf/net/basp/application.hpp
libcaf_net/caf/net/basp/application.hpp
+0
-2
libcaf_net/caf/net/datagram_transport.hpp
libcaf_net/caf/net/datagram_transport.hpp
+3
-5
libcaf_net/caf/net/packet_writer_decorator.hpp
libcaf_net/caf/net/packet_writer_decorator.hpp
+0
-1
libcaf_net/caf/net/stream_transport.hpp
libcaf_net/caf/net/stream_transport.hpp
+3
-1
libcaf_net/caf/net/transport_worker_dispatcher.hpp
libcaf_net/caf/net/transport_worker_dispatcher.hpp
+1
-1
libcaf_net/src/application.cpp
libcaf_net/src/application.cpp
+9
-9
libcaf_net/src/host.cpp
libcaf_net/src/host.cpp
+2
-0
libcaf_net/src/multiplexer.cpp
libcaf_net/src/multiplexer.cpp
+1
-1
libcaf_net/src/pipe_socket.cpp
libcaf_net/src/pipe_socket.cpp
+3
-5
libcaf_net/src/pollset_updater.cpp
libcaf_net/src/pollset_updater.cpp
+2
-0
libcaf_net/src/udp_datagram_socket.cpp
libcaf_net/src/udp_datagram_socket.cpp
+0
-1
libcaf_net/test/application.cpp
libcaf_net/test/application.cpp
+1
-1
libcaf_net/test/datagram_transport.cpp
libcaf_net/test/datagram_transport.cpp
+4
-4
libcaf_net/test/doorman.cpp
libcaf_net/test/doorman.cpp
+4
-3
libcaf_net/test/endpoint_manager.cpp
libcaf_net/test/endpoint_manager.cpp
+9
-9
libcaf_net/test/header.cpp
libcaf_net/test/header.cpp
+2
-2
libcaf_net/test/multiplexer.cpp
libcaf_net/test/multiplexer.cpp
+1
-1
libcaf_net/test/net/basp/worker.cpp
libcaf_net/test/net/basp/worker.cpp
+2
-2
libcaf_net/test/pipe_socket.cpp
libcaf_net/test/pipe_socket.cpp
+2
-3
libcaf_net/test/stream_application.cpp
libcaf_net/test/stream_application.cpp
+8
-8
libcaf_net/test/stream_socket.cpp
libcaf_net/test/stream_socket.cpp
+8
-10
libcaf_net/test/stream_transport.cpp
libcaf_net/test/stream_transport.cpp
+4
-4
libcaf_net/test/string_application.cpp
libcaf_net/test/string_application.cpp
+9
-7
libcaf_net/test/transport_worker.cpp
libcaf_net/test/transport_worker.cpp
+4
-6
libcaf_net/test/transport_worker_dispatcher.cpp
libcaf_net/test/transport_worker_dispatcher.cpp
+1
-1
libcaf_net/test/udp_datagram_socket.cpp
libcaf_net/test/udp_datagram_socket.cpp
+7
-6
No files found.
libcaf_net/caf/net/basp/application.hpp
View file @
e512ec72
...
@@ -46,8 +46,6 @@
...
@@ -46,8 +46,6 @@
#include "caf/proxy_registry.hpp"
#include "caf/proxy_registry.hpp"
#include "caf/response_promise.hpp"
#include "caf/response_promise.hpp"
#include "caf/scoped_execution_unit.hpp"
#include "caf/scoped_execution_unit.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/span.hpp"
#include "caf/unit.hpp"
#include "caf/unit.hpp"
namespace
caf
::
net
::
basp
{
namespace
caf
::
net
::
basp
{
...
...
libcaf_net/caf/net/datagram_transport.hpp
View file @
e512ec72
...
@@ -30,7 +30,6 @@
...
@@ -30,7 +30,6 @@
#include "caf/net/transport_worker_dispatcher.hpp"
#include "caf/net/transport_worker_dispatcher.hpp"
#include "caf/net/udp_datagram_socket.hpp"
#include "caf/net/udp_datagram_socket.hpp"
#include "caf/sec.hpp"
#include "caf/sec.hpp"
#include "caf/span.hpp"
namespace
caf
::
net
{
namespace
caf
::
net
{
...
@@ -81,14 +80,13 @@ public:
...
@@ -81,14 +80,13 @@ public:
bool
handle_read_event
(
endpoint_manager
&
)
override
{
bool
handle_read_event
(
endpoint_manager
&
)
override
{
CAF_LOG_TRACE
(
CAF_ARG
(
this
->
handle_
.
id
));
CAF_LOG_TRACE
(
CAF_ARG
(
this
->
handle_
.
id
));
auto
ret
=
read
(
this
->
handle_
,
make_span
(
this
->
read_buf_
)
);
auto
ret
=
read
(
this
->
handle_
,
this
->
read_buf_
);
if
(
auto
res
=
get_if
<
std
::
pair
<
size_t
,
ip_endpoint
>>
(
&
ret
))
{
if
(
auto
res
=
get_if
<
std
::
pair
<
size_t
,
ip_endpoint
>>
(
&
ret
))
{
auto
num_bytes
=
res
->
first
;
auto
num_bytes
=
res
->
first
;
CAF_LOG_DEBUG
(
"received "
<<
num_bytes
<<
" bytes"
);
CAF_LOG_DEBUG
(
"received "
<<
num_bytes
<<
" bytes"
);
auto
ep
=
res
->
second
;
auto
ep
=
res
->
second
;
this
->
read_buf_
.
resize
(
num_bytes
);
this
->
read_buf_
.
resize
(
num_bytes
);
this
->
next_layer_
.
handle_data
(
*
this
,
make_span
(
this
->
read_buf_
),
this
->
next_layer_
.
handle_data
(
*
this
,
this
->
read_buf_
,
std
::
move
(
ep
));
std
::
move
(
ep
));
prepare_next_read
();
prepare_next_read
();
}
else
{
}
else
{
auto
err
=
get
<
sec
>
(
ret
);
auto
err
=
get
<
sec
>
(
ret
);
...
@@ -183,7 +181,7 @@ private:
...
@@ -183,7 +181,7 @@ private:
while
(
!
packet_queue_
.
empty
())
{
while
(
!
packet_queue_
.
empty
())
{
auto
&
packet
=
packet_queue_
.
front
();
auto
&
packet
=
packet_queue_
.
front
();
auto
ptrs
=
packet
.
get_buffer_ptrs
();
auto
ptrs
=
packet
.
get_buffer_ptrs
();
auto
write_ret
=
write
(
this
->
handle_
,
make_span
(
ptrs
)
,
packet
.
id
);
auto
write_ret
=
write
(
this
->
handle_
,
ptrs
,
packet
.
id
);
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
write_ret
))
{
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
write_ret
))
{
CAF_LOG_DEBUG
(
CAF_ARG
(
this
->
handle_
.
id
)
<<
CAF_ARG
(
*
num_bytes
));
CAF_LOG_DEBUG
(
CAF_ARG
(
this
->
handle_
.
id
)
<<
CAF_ARG
(
*
num_bytes
));
CAF_LOG_WARNING_IF
(
*
num_bytes
<
packet
.
size
,
CAF_LOG_WARNING_IF
(
*
num_bytes
<
packet
.
size
,
...
...
libcaf_net/caf/net/packet_writer_decorator.hpp
View file @
e512ec72
...
@@ -21,7 +21,6 @@
...
@@ -21,7 +21,6 @@
#include "caf/net/packet_writer.hpp"
#include "caf/net/packet_writer.hpp"
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/span.hpp"
namespace
caf
::
net
{
namespace
caf
::
net
{
...
...
libcaf_net/caf/net/stream_transport.hpp
View file @
e512ec72
...
@@ -84,7 +84,9 @@ public:
...
@@ -84,7 +84,9 @@ public:
<<
CAF_ARG
(
this
->
handle_
.
id
)
<<
CAF_ARG
(
*
num_bytes
));
<<
CAF_ARG
(
this
->
handle_
.
id
)
<<
CAF_ARG
(
*
num_bytes
));
this
->
collected_
+=
*
num_bytes
;
this
->
collected_
+=
*
num_bytes
;
if
(
this
->
collected_
>=
this
->
read_threshold_
)
{
if
(
this
->
collected_
>=
this
->
read_threshold_
)
{
if
(
auto
err
=
this
->
next_layer_
.
handle_data
(
*
this
,
this
->
read_buf_
))
{
if
(
auto
err
=
this
->
next_layer_
.
handle_data
(
*
this
,
make_span
(
this
->
read_buf_
)))
{
CAF_LOG_ERROR
(
"handle_data failed: "
<<
CAF_ARG
(
err
));
CAF_LOG_ERROR
(
"handle_data failed: "
<<
CAF_ARG
(
err
));
return
false
;
return
false
;
}
}
...
...
libcaf_net/caf/net/transport_worker_dispatcher.hpp
View file @
e512ec72
...
@@ -62,7 +62,7 @@ public:
...
@@ -62,7 +62,7 @@ public:
}
}
template
<
class
Parent
>
template
<
class
Parent
>
error
handle_data
(
Parent
&
parent
,
span
<
byte
>
data
,
id_type
id
)
{
error
handle_data
(
Parent
&
parent
,
span
<
const
byte
>
data
,
id_type
id
)
{
if
(
auto
worker
=
find_worker
(
id
))
if
(
auto
worker
=
find_worker
(
id
))
return
worker
->
handle_data
(
parent
,
data
);
return
worker
->
handle_data
(
parent
,
data
);
// TODO: Where to get node_id from here?
// TODO: Where to get node_id from here?
...
...
libcaf_net/src/application.cpp
View file @
e512ec72
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "caf/actor_system.hpp"
#include "caf/actor_system.hpp"
#include "caf/actor_system_config.hpp"
#include "caf/actor_system_config.hpp"
#include "caf/binary_deserializer.hpp"
#include "caf/binary_deserializer.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/defaults.hpp"
#include "caf/defaults.hpp"
#include "caf/detail/network_order.hpp"
#include "caf/detail/network_order.hpp"
...
@@ -37,7 +38,6 @@
...
@@ -37,7 +38,6 @@
#include "caf/none.hpp"
#include "caf/none.hpp"
#include "caf/sec.hpp"
#include "caf/sec.hpp"
#include "caf/send.hpp"
#include "caf/send.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/string_algorithms.hpp"
#include "caf/string_algorithms.hpp"
#include "caf/type_erased_tuple.hpp"
#include "caf/type_erased_tuple.hpp"
...
@@ -54,7 +54,7 @@ error application::write_message(
...
@@ -54,7 +54,7 @@ error application::write_message(
CAF_ASSERT
(
ptr
->
msg
!=
nullptr
);
CAF_ASSERT
(
ptr
->
msg
!=
nullptr
);
CAF_LOG_TRACE
(
CAF_ARG2
(
"content"
,
ptr
->
msg
->
content
()));
CAF_LOG_TRACE
(
CAF_ARG2
(
"content"
,
ptr
->
msg
->
content
()));
auto
payload_prefix
=
writer
.
next_payload_buffer
();
auto
payload_prefix
=
writer
.
next_payload_buffer
();
serializer_impl
<
buffer_type
>
sink
{
system
(),
payload_prefix
};
binary_serializer
sink
{
system
(),
payload_prefix
};
const
auto
&
src
=
ptr
->
msg
->
sender
;
const
auto
&
src
=
ptr
->
msg
->
sender
;
const
auto
&
dst
=
ptr
->
receiver
;
const
auto
&
dst
=
ptr
->
receiver
;
if
(
dst
==
nullptr
)
{
if
(
dst
==
nullptr
)
{
...
@@ -84,7 +84,7 @@ void application::resolve(packet_writer& writer, string_view path,
...
@@ -84,7 +84,7 @@ void application::resolve(packet_writer& writer, string_view path,
const
actor
&
listener
)
{
const
actor
&
listener
)
{
CAF_LOG_TRACE
(
CAF_ARG
(
path
)
<<
CAF_ARG
(
listener
));
CAF_LOG_TRACE
(
CAF_ARG
(
path
)
<<
CAF_ARG
(
listener
));
auto
payload
=
writer
.
next_payload_buffer
();
auto
payload
=
writer
.
next_payload_buffer
();
serializer_impl
<
buffer_type
>
sink
{
&
executor_
,
payload
};
binary_serializer
sink
{
&
executor_
,
payload
};
if
(
auto
err
=
sink
(
path
))
{
if
(
auto
err
=
sink
(
path
))
{
CAF_LOG_ERROR
(
"unable to serialize path"
<<
CAF_ARG
(
err
));
CAF_LOG_ERROR
(
"unable to serialize path"
<<
CAF_ARG
(
err
));
return
;
return
;
...
@@ -108,7 +108,7 @@ void application::new_proxy(packet_writer& writer, actor_id id) {
...
@@ -108,7 +108,7 @@ void application::new_proxy(packet_writer& writer, actor_id id) {
void
application
::
local_actor_down
(
packet_writer
&
writer
,
actor_id
id
,
void
application
::
local_actor_down
(
packet_writer
&
writer
,
actor_id
id
,
error
reason
)
{
error
reason
)
{
auto
payload
=
writer
.
next_payload_buffer
();
auto
payload
=
writer
.
next_payload_buffer
();
serializer_impl
<
buffer_type
>
sink
{
system
(),
payload
};
binary_serializer
sink
{
system
(),
payload
};
if
(
auto
err
=
sink
(
reason
))
if
(
auto
err
=
sink
(
reason
))
CAF_RAISE_ERROR
(
"unable to serialize an error"
);
CAF_RAISE_ERROR
(
"unable to serialize an error"
);
auto
hdr
=
writer
.
next_header_buffer
();
auto
hdr
=
writer
.
next_header_buffer
();
...
@@ -122,9 +122,9 @@ void application::local_actor_down(packet_writer& writer, actor_id id,
...
@@ -122,9 +122,9 @@ void application::local_actor_down(packet_writer& writer, actor_id id,
expected
<
std
::
vector
<
byte
>>
application
::
serialize
(
actor_system
&
sys
,
expected
<
std
::
vector
<
byte
>>
application
::
serialize
(
actor_system
&
sys
,
const
type_erased_tuple
&
x
)
{
const
type_erased_tuple
&
x
)
{
std
::
vector
<
byte
>
result
;
std
::
vector
<
byte
>
result
;
serializer_impl
<
std
::
vector
<
byte
>>
sink
{
sys
,
result
};
binary_serializer
sink
{
sys
,
result
};
if
(
auto
err
=
message
::
save
(
sink
,
x
))
if
(
auto
err
=
message
::
save
(
sink
,
x
))
return
err
;
return
err
.
value
()
;
return
result
;
return
result
;
}
}
...
@@ -307,7 +307,7 @@ error application::handle_resolve_request(packet_writer& writer, header rec_hdr,
...
@@ -307,7 +307,7 @@ error application::handle_resolve_request(packet_writer& writer, header rec_hdr,
}
}
// TODO: figure out how to obtain messaging interface.
// TODO: figure out how to obtain messaging interface.
auto
payload
=
writer
.
next_payload_buffer
();
auto
payload
=
writer
.
next_payload_buffer
();
serializer_impl
<
buffer_type
>
sink
{
&
executor_
,
payload
};
binary_serializer
sink
{
&
executor_
,
payload
};
if
(
auto
err
=
sink
(
aid
,
ifs
))
if
(
auto
err
=
sink
(
aid
,
ifs
))
return
err
;
return
err
;
auto
hdr
=
writer
.
next_header_buffer
();
auto
hdr
=
writer
.
next_header_buffer
();
...
@@ -363,7 +363,7 @@ error application::handle_monitor_message(packet_writer& writer,
...
@@ -363,7 +363,7 @@ error application::handle_monitor_message(packet_writer& writer,
}
else
{
}
else
{
error
reason
=
exit_reason
::
unknown
;
error
reason
=
exit_reason
::
unknown
;
auto
payload
=
writer
.
next_payload_buffer
();
auto
payload
=
writer
.
next_payload_buffer
();
serializer_impl
<
buffer_type
>
sink
{
&
executor_
,
payload
};
binary_serializer
sink
{
&
executor_
,
payload
};
if
(
auto
err
=
sink
(
reason
))
if
(
auto
err
=
sink
(
reason
))
return
err
;
return
err
;
auto
hdr
=
writer
.
next_header_buffer
();
auto
hdr
=
writer
.
next_header_buffer
();
...
@@ -389,7 +389,7 @@ error application::handle_down_message(packet_writer&, header received_hdr,
...
@@ -389,7 +389,7 @@ error application::handle_down_message(packet_writer&, header received_hdr,
}
}
error
application
::
generate_handshake
(
std
::
vector
<
byte
>&
buf
)
{
error
application
::
generate_handshake
(
std
::
vector
<
byte
>&
buf
)
{
serializer_impl
<
buffer_type
>
sink
{
&
executor_
,
buf
};
binary_serializer
sink
{
&
executor_
,
buf
};
return
sink
(
system
().
node
(),
return
sink
(
system
().
node
(),
get_or
(
system
().
config
(),
"middleman.app-identifiers"
,
get_or
(
system
().
config
(),
"middleman.app-identifiers"
,
defaults
::
middleman
::
app_identifiers
));
defaults
::
middleman
::
app_identifiers
));
...
...
libcaf_net/src/host.cpp
View file @
e512ec72
...
@@ -22,6 +22,8 @@
...
@@ -22,6 +22,8 @@
#include "caf/detail/net_syscall.hpp"
#include "caf/detail/net_syscall.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/error.hpp"
#include "caf/error.hpp"
#include "caf/make_message.hpp"
#include "caf/message.hpp"
#include "caf/net/socket.hpp"
#include "caf/net/socket.hpp"
#include "caf/none.hpp"
#include "caf/none.hpp"
...
...
libcaf_net/src/multiplexer.cpp
View file @
e512ec72
...
@@ -274,7 +274,7 @@ void multiplexer::write_to_pipe(uint8_t opcode, const socket_manager_ptr& mgr) {
...
@@ -274,7 +274,7 @@ void multiplexer::write_to_pipe(uint8_t opcode, const socket_manager_ptr& mgr) {
{
// Lifetime scope of guard.
{
// Lifetime scope of guard.
std
::
lock_guard
<
std
::
mutex
>
guard
{
write_lock_
};
std
::
lock_guard
<
std
::
mutex
>
guard
{
write_lock_
};
if
(
write_handle_
!=
invalid_socket
)
if
(
write_handle_
!=
invalid_socket
)
res
=
write
(
write_handle_
,
make_span
(
buf
)
);
res
=
write
(
write_handle_
,
buf
);
else
else
res
=
sec
::
socket_invalid
;
res
=
sec
::
socket_invalid
;
}
}
...
...
libcaf_net/src/pipe_socket.cpp
View file @
e512ec72
...
@@ -19,19 +19,17 @@
...
@@ -19,19 +19,17 @@
#include "caf/net/pipe_socket.hpp"
#include "caf/net/pipe_socket.hpp"
#include <cstdio>
#include <cstdio>
#include <cstdlib>
#include <utility>
#include <utility>
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/config.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/detail/net_syscall.hpp"
#include "caf/detail/socket_sys_aliases.hpp"
#include "caf/detail/socket_sys_aliases.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/error.hpp"
#include "caf/expected.hpp"
#include "caf/expected.hpp"
#include "caf/make_message.hpp"
#include "caf/message.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/sec.hpp"
#include "caf/sec.hpp"
#include "caf/span.hpp"
#include "caf/variant.hpp"
#include "caf/variant.hpp"
namespace
caf
::
net
{
namespace
caf
::
net
{
...
...
libcaf_net/src/pollset_updater.cpp
View file @
e512ec72
...
@@ -18,6 +18,8 @@
...
@@ -18,6 +18,8 @@
#include "caf/net/pollset_updater.hpp"
#include "caf/net/pollset_updater.hpp"
#include <cstring>
#include "caf/net/multiplexer.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/sec.hpp"
#include "caf/sec.hpp"
#include "caf/span.hpp"
#include "caf/span.hpp"
...
...
libcaf_net/src/udp_datagram_socket.cpp
View file @
e512ec72
...
@@ -27,7 +27,6 @@
...
@@ -27,7 +27,6 @@
#include "caf/ip_endpoint.hpp"
#include "caf/ip_endpoint.hpp"
#include "caf/logger.hpp"
#include "caf/logger.hpp"
#include "caf/net/socket_guard.hpp"
#include "caf/net/socket_guard.hpp"
#include "caf/span.hpp"
namespace
caf
::
net
{
namespace
caf
::
net
{
...
...
libcaf_net/test/application.cpp
View file @
e512ec72
...
@@ -58,7 +58,7 @@ struct fixture : test_coordinator_fixture<>,
...
@@ -58,7 +58,7 @@ struct fixture : test_coordinator_fixture<>,
template
<
class
...
Ts
>
template
<
class
...
Ts
>
buffer_type
to_buf
(
const
Ts
&
...
xs
)
{
buffer_type
to_buf
(
const
Ts
&
...
xs
)
{
buffer_type
buf
;
buffer_type
buf
;
serializer_impl
<
buffer_type
>
sink
{
system
(),
buf
};
binary_serializer
sink
{
system
(),
buf
};
REQUIRE_OK
(
sink
(
xs
...));
REQUIRE_OK
(
sink
(
xs
...));
return
buf
;
return
buf
;
}
}
...
...
libcaf_net/test/datagram_transport.cpp
View file @
e512ec72
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "caf/net/test/host_fixture.hpp"
#include "caf/net/test/host_fixture.hpp"
#include "caf/test/dsl.hpp"
#include "caf/test/dsl.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/make_actor.hpp"
#include "caf/make_actor.hpp"
...
@@ -33,7 +34,6 @@
...
@@ -33,7 +34,6 @@
#include "caf/net/make_endpoint_manager.hpp"
#include "caf/net/make_endpoint_manager.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/udp_datagram_socket.hpp"
#include "caf/net/udp_datagram_socket.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/span.hpp"
#include "caf/span.hpp"
using
namespace
caf
;
using
namespace
caf
;
...
@@ -83,7 +83,7 @@ struct fixture : test_coordinator_fixture<>, host_fixture {
...
@@ -83,7 +83,7 @@ struct fixture : test_coordinator_fixture<>, host_fixture {
uint8_t
receive_attempts
=
0
;
uint8_t
receive_attempts
=
0
;
variant
<
std
::
pair
<
size_t
,
ip_endpoint
>
,
sec
>
read_ret
;
variant
<
std
::
pair
<
size_t
,
ip_endpoint
>
,
sec
>
read_ret
;
do
{
do
{
read_ret
=
read
(
sock
,
make_span
(
buf
)
);
read_ret
=
read
(
sock
,
buf
);
if
(
auto
read_res
=
get_if
<
std
::
pair
<
size_t
,
ip_endpoint
>>
(
&
read_ret
))
{
if
(
auto
read_res
=
get_if
<
std
::
pair
<
size_t
,
ip_endpoint
>>
(
&
read_ret
))
{
buf
.
resize
(
read_res
->
first
);
buf
.
resize
(
read_res
->
first
);
}
else
if
(
get
<
sec
>
(
read_ret
)
!=
sec
::
unavailable_or_would_block
)
{
}
else
if
(
get
<
sec
>
(
read_ret
)
!=
sec
::
unavailable_or_would_block
)
{
...
@@ -169,9 +169,9 @@ public:
...
@@ -169,9 +169,9 @@ public:
static
expected
<
buffer_type
>
serialize
(
actor_system
&
sys
,
static
expected
<
buffer_type
>
serialize
(
actor_system
&
sys
,
const
type_erased_tuple
&
x
)
{
const
type_erased_tuple
&
x
)
{
buffer_type
result
;
buffer_type
result
;
serializer_impl
<
buffer_type
>
sink
{
sys
,
result
};
binary_serializer
sink
{
sys
,
result
};
if
(
auto
err
=
message
::
save
(
sink
,
x
))
if
(
auto
err
=
message
::
save
(
sink
,
x
))
return
err
;
return
err
.
value
()
;
return
result
;
return
result
;
}
}
...
...
libcaf_net/test/doorman.cpp
View file @
e512ec72
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include "caf/net/doorman.hpp"
#include "caf/net/doorman.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/net/endpoint_manager.hpp"
#include "caf/net/endpoint_manager.hpp"
#include "caf/net/ip.hpp"
#include "caf/net/ip.hpp"
#include "caf/net/make_endpoint_manager.hpp"
#include "caf/net/make_endpoint_manager.hpp"
...
@@ -62,9 +63,9 @@ public:
...
@@ -62,9 +63,9 @@ public:
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
const
type_erased_tuple
&
x
)
{
const
type_erased_tuple
&
x
)
{
std
::
vector
<
byte
>
result
;
std
::
vector
<
byte
>
result
;
serializer_impl
<
std
::
vector
<
byte
>>
sink
{
sys
,
result
};
binary_serializer
sink
{
sys
,
result
};
if
(
auto
err
=
message
::
save
(
sink
,
x
))
if
(
auto
err
=
message
::
save
(
sink
,
x
))
return
err
;
return
err
.
value
()
;
return
result
;
return
result
;
}
}
...
@@ -158,7 +159,7 @@ CAF_TEST(doorman accept) {
...
@@ -158,7 +159,7 @@ CAF_TEST(doorman accept) {
dummy_application_factory
{}});
dummy_application_factory
{}});
CAF_CHECK_EQUAL
(
mgr
->
init
(),
none
);
CAF_CHECK_EQUAL
(
mgr
->
init
(),
none
);
auto
before
=
mpx
->
num_socket_managers
();
auto
before
=
mpx
->
num_socket_managers
();
CAF_CHECK_EQUAL
(
before
,
2
);
CAF_CHECK_EQUAL
(
before
,
2
u
);
uri
::
authority_type
dst
;
uri
::
authority_type
dst
;
dst
.
port
=
port
;
dst
.
port
=
port
;
dst
.
host
=
"localhost"
s
;
dst
.
host
=
"localhost"
s
;
...
...
libcaf_net/test/endpoint_manager.cpp
View file @
e512ec72
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "caf/net/test/host_fixture.hpp"
#include "caf/net/test/host_fixture.hpp"
#include "caf/test/dsl.hpp"
#include "caf/test/dsl.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/make_actor.hpp"
#include "caf/make_actor.hpp"
...
@@ -30,7 +31,6 @@
...
@@ -30,7 +31,6 @@
#include "caf/net/make_endpoint_manager.hpp"
#include "caf/net/make_endpoint_manager.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/span.hpp"
#include "caf/span.hpp"
using
namespace
caf
;
using
namespace
caf
;
...
@@ -64,9 +64,9 @@ public:
...
@@ -64,9 +64,9 @@ public:
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
const
type_erased_tuple
&
x
)
{
const
type_erased_tuple
&
x
)
{
std
::
vector
<
byte
>
result
;
std
::
vector
<
byte
>
result
;
serializer_impl
<
std
::
vector
<
byte
>>
sink
{
sys
,
result
};
binary_serializer
sink
{
sys
,
result
};
if
(
auto
err
=
message
::
save
(
sink
,
x
))
if
(
auto
err
=
message
::
save
(
sink
,
x
))
return
err
;
return
err
.
value
()
;
return
result
;
return
result
;
}
}
};
};
...
@@ -94,7 +94,7 @@ public:
...
@@ -94,7 +94,7 @@ public:
template
<
class
Manager
>
template
<
class
Manager
>
bool
handle_read_event
(
Manager
&
)
{
bool
handle_read_event
(
Manager
&
)
{
auto
res
=
read
(
handle_
,
make_span
(
read_buf_
)
);
auto
res
=
read
(
handle_
,
read_buf_
);
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
res
))
{
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
res
))
{
data_
->
insert
(
data_
->
end
(),
read_buf_
.
begin
(),
data_
->
insert
(
data_
->
end
(),
read_buf_
.
begin
(),
read_buf_
.
begin
()
+
*
num_bytes
);
read_buf_
.
begin
()
+
*
num_bytes
);
...
@@ -109,7 +109,7 @@ public:
...
@@ -109,7 +109,7 @@ public:
auto
&
payload
=
x
->
payload
;
auto
&
payload
=
x
->
payload
;
buf_
.
insert
(
buf_
.
end
(),
payload
.
begin
(),
payload
.
end
());
buf_
.
insert
(
buf_
.
end
(),
payload
.
begin
(),
payload
.
end
());
}
}
auto
res
=
write
(
handle_
,
make_span
(
buf_
)
);
auto
res
=
write
(
handle_
,
buf_
);
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
res
))
{
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
res
))
{
buf_
.
erase
(
buf_
.
begin
(),
buf_
.
begin
()
+
*
num_bytes
);
buf_
.
erase
(
buf_
.
begin
(),
buf_
.
begin
()
+
*
num_bytes
);
return
buf_
.
size
()
>
0
;
return
buf_
.
size
()
>
0
;
...
@@ -168,7 +168,7 @@ CAF_TEST(send and receive) {
...
@@ -168,7 +168,7 @@ CAF_TEST(send and receive) {
auto
buf
=
std
::
make_shared
<
std
::
vector
<
byte
>>
();
auto
buf
=
std
::
make_shared
<
std
::
vector
<
byte
>>
();
auto
sockets
=
unbox
(
make_stream_socket_pair
());
auto
sockets
=
unbox
(
make_stream_socket_pair
());
nonblocking
(
sockets
.
second
,
true
);
nonblocking
(
sockets
.
second
,
true
);
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
make_span
(
read_buf
)
),
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
read_buf
),
sec
::
unavailable_or_would_block
);
sec
::
unavailable_or_would_block
);
auto
guard
=
detail
::
make_scope_guard
([
&
]
{
close
(
sockets
.
second
);
});
auto
guard
=
detail
::
make_scope_guard
([
&
]
{
close
(
sockets
.
second
);
});
auto
mgr
=
make_endpoint_manager
(
mpx
,
sys
,
auto
mgr
=
make_endpoint_manager
(
mpx
,
sys
,
...
@@ -183,7 +183,7 @@ CAF_TEST(send and receive) {
...
@@ -183,7 +183,7 @@ CAF_TEST(send and receive) {
CAF_CHECK_EQUAL
(
string_view
(
reinterpret_cast
<
char
*>
(
buf
->
data
()),
CAF_CHECK_EQUAL
(
string_view
(
reinterpret_cast
<
char
*>
(
buf
->
data
()),
buf
->
size
()),
buf
->
size
()),
hello_manager
);
hello_manager
);
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
make_span
(
read_buf
)
),
hello_test
.
size
());
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
read_buf
),
hello_test
.
size
());
CAF_CHECK_EQUAL
(
string_view
(
reinterpret_cast
<
char
*>
(
read_buf
.
data
()),
CAF_CHECK_EQUAL
(
string_view
(
reinterpret_cast
<
char
*>
(
read_buf
.
data
()),
hello_test
.
size
()),
hello_test
.
size
()),
hello_test
);
hello_test
);
...
@@ -200,7 +200,7 @@ CAF_TEST(resolve and proxy communication) {
...
@@ -200,7 +200,7 @@ CAF_TEST(resolve and proxy communication) {
CAF_CHECK_EQUAL
(
mgr
->
init
(),
none
);
CAF_CHECK_EQUAL
(
mgr
->
init
(),
none
);
CAF_CHECK_EQUAL
(
mgr
->
mask
(),
operation
::
read_write
);
CAF_CHECK_EQUAL
(
mgr
->
mask
(),
operation
::
read_write
);
run
();
run
();
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
make_span
(
read_buf
)
),
hello_test
.
size
());
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
read_buf
),
hello_test
.
size
());
mgr
->
resolve
(
unbox
(
make_uri
(
"test:id/42"
)),
self
);
mgr
->
resolve
(
unbox
(
make_uri
(
"test:id/42"
)),
self
);
run
();
run
();
self
->
receive
(
self
->
receive
(
...
@@ -211,7 +211,7 @@ CAF_TEST(resolve and proxy communication) {
...
@@ -211,7 +211,7 @@ CAF_TEST(resolve and proxy communication) {
after
(
std
::
chrono
::
seconds
(
0
))
>>
after
(
std
::
chrono
::
seconds
(
0
))
>>
[
&
]
{
CAF_FAIL
(
"manager did not respond with a proxy."
);
});
[
&
]
{
CAF_FAIL
(
"manager did not respond with a proxy."
);
});
run
();
run
();
auto
read_res
=
read
(
sockets
.
second
,
make_span
(
read_buf
)
);
auto
read_res
=
read
(
sockets
.
second
,
read_buf
);
if
(
!
holds_alternative
<
size_t
>
(
read_res
))
{
if
(
!
holds_alternative
<
size_t
>
(
read_res
))
{
CAF_ERROR
(
"read() returned an error: "
<<
sys
.
render
(
get
<
sec
>
(
read_res
)));
CAF_ERROR
(
"read() returned an error: "
<<
sys
.
render
(
get
<
sec
>
(
read_res
)));
return
;
return
;
...
...
libcaf_net/test/header.cpp
View file @
e512ec72
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
#include "caf/test/dsl.hpp"
#include "caf/test/dsl.hpp"
#include "caf/binary_deserializer.hpp"
#include "caf/binary_deserializer.hpp"
#include "caf/
serializer_impl
.hpp"
#include "caf/
binary_serializer
.hpp"
using
namespace
caf
;
using
namespace
caf
;
using
namespace
caf
::
net
;
using
namespace
caf
::
net
;
...
@@ -32,7 +32,7 @@ CAF_TEST(serialization) {
...
@@ -32,7 +32,7 @@ CAF_TEST(serialization) {
basp
::
header
x
{
basp
::
message_type
::
handshake
,
42
,
4
};
basp
::
header
x
{
basp
::
message_type
::
handshake
,
42
,
4
};
std
::
vector
<
byte
>
buf
;
std
::
vector
<
byte
>
buf
;
{
{
serializer_impl
<
std
::
vector
<
byte
>>
sink
{
nullptr
,
buf
};
binary_serializer
sink
{
nullptr
,
buf
};
CAF_CHECK_EQUAL
(
sink
(
x
),
none
);
CAF_CHECK_EQUAL
(
sink
(
x
),
none
);
}
}
CAF_CHECK_EQUAL
(
buf
.
size
(),
basp
::
header_size
);
CAF_CHECK_EQUAL
(
buf
.
size
(),
basp
::
header_size
);
...
...
libcaf_net/test/multiplexer.cpp
View file @
e512ec72
...
@@ -72,7 +72,7 @@ public:
...
@@ -72,7 +72,7 @@ public:
bool
handle_write_event
()
override
{
bool
handle_write_event
()
override
{
if
(
wr_buf_
.
size
()
==
0
)
if
(
wr_buf_
.
size
()
==
0
)
return
false
;
return
false
;
auto
res
=
write
(
handle
(),
make_span
(
wr_buf_
)
);
auto
res
=
write
(
handle
(),
wr_buf_
);
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
res
))
{
if
(
auto
num_bytes
=
get_if
<
size_t
>
(
&
res
))
{
CAF_ASSERT
(
*
num_bytes
>
0
);
CAF_ASSERT
(
*
num_bytes
>
0
);
wr_buf_
.
erase
(
wr_buf_
.
begin
(),
wr_buf_
.
begin
()
+
*
num_bytes
);
wr_buf_
.
erase
(
wr_buf_
.
begin
(),
wr_buf_
.
begin
()
+
*
num_bytes
);
...
...
libcaf_net/test/net/basp/worker.cpp
View file @
e512ec72
...
@@ -25,10 +25,10 @@
...
@@ -25,10 +25,10 @@
#include "caf/actor_cast.hpp"
#include "caf/actor_cast.hpp"
#include "caf/actor_control_block.hpp"
#include "caf/actor_control_block.hpp"
#include "caf/actor_system.hpp"
#include "caf/actor_system.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/make_actor.hpp"
#include "caf/make_actor.hpp"
#include "caf/net/basp/message_queue.hpp"
#include "caf/net/basp/message_queue.hpp"
#include "caf/proxy_registry.hpp"
#include "caf/proxy_registry.hpp"
#include "caf/serializer_impl.hpp"
using
namespace
caf
;
using
namespace
caf
;
...
@@ -109,7 +109,7 @@ CAF_TEST(deliver serialized message) {
...
@@ -109,7 +109,7 @@ CAF_TEST(deliver serialized message) {
CAF_MESSAGE
(
"create a fake message + BASP header"
);
CAF_MESSAGE
(
"create a fake message + BASP header"
);
std
::
vector
<
byte
>
payload
;
std
::
vector
<
byte
>
payload
;
std
::
vector
<
strong_actor_ptr
>
stages
;
std
::
vector
<
strong_actor_ptr
>
stages
;
serializer_impl
<
std
::
vector
<
byte
>>
sink
{
sys
,
payload
};
binary_serializer
sink
{
sys
,
payload
};
if
(
auto
err
=
sink
(
node_id
{},
self
->
id
(),
testee
.
id
(),
stages
,
if
(
auto
err
=
sink
(
node_id
{},
self
->
id
(),
testee
.
id
(),
stages
,
make_message
(
ok_atom
::
value
)))
make_message
(
ok_atom
::
value
)))
CAF_FAIL
(
"unable to serialize message: "
<<
sys
.
render
(
err
));
CAF_FAIL
(
"unable to serialize message: "
<<
sys
.
render
(
err
));
...
...
libcaf_net/test/pipe_socket.cpp
View file @
e512ec72
...
@@ -26,7 +26,6 @@
...
@@ -26,7 +26,6 @@
#include <vector>
#include <vector>
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/span.hpp"
using
namespace
caf
;
using
namespace
caf
;
using
namespace
caf
::
net
;
using
namespace
caf
::
net
;
...
@@ -41,8 +40,8 @@ CAF_TEST(send and receive) {
...
@@ -41,8 +40,8 @@ CAF_TEST(send and receive) {
pipe_socket
rd_sock
;
pipe_socket
rd_sock
;
pipe_socket
wr_sock
;
pipe_socket
wr_sock
;
std
::
tie
(
rd_sock
,
wr_sock
)
=
unbox
(
make_pipe
());
std
::
tie
(
rd_sock
,
wr_sock
)
=
unbox
(
make_pipe
());
CAF_CHECK_EQUAL
(
write
(
wr_sock
,
make_span
(
send_buf
)
),
send_buf
.
size
());
CAF_CHECK_EQUAL
(
write
(
wr_sock
,
send_buf
),
send_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
rd_sock
,
make_span
(
receive_buf
)
),
send_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
rd_sock
,
receive_buf
),
send_buf
.
size
());
CAF_CHECK
(
std
::
equal
(
send_buf
.
begin
(),
send_buf
.
end
(),
receive_buf
.
begin
()));
CAF_CHECK
(
std
::
equal
(
send_buf
.
begin
(),
send_buf
.
end
(),
receive_buf
.
begin
()));
}
}
...
...
libcaf_net/test/stream_application.cpp
View file @
e512ec72
...
@@ -82,7 +82,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
...
@@ -82,7 +82,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
template
<
class
...
Ts
>
template
<
class
...
Ts
>
buffer_type
to_buf
(
const
Ts
&
...
xs
)
{
buffer_type
to_buf
(
const
Ts
&
...
xs
)
{
buffer_type
buf
;
buffer_type
buf
;
serializer_impl
<
buffer_type
>
sink
{
system
(),
buf
};
binary_serializer
sink
{
system
(),
buf
};
REQUIRE_OK
(
sink
(
xs
...));
REQUIRE_OK
(
sink
(
xs
...));
return
buf
;
return
buf
;
}
}
...
@@ -90,7 +90,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
...
@@ -90,7 +90,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
template
<
class
...
Ts
>
template
<
class
...
Ts
>
void
mock
(
const
Ts
&
...
xs
)
{
void
mock
(
const
Ts
&
...
xs
)
{
auto
buf
=
to_buf
(
xs
...);
auto
buf
=
to_buf
(
xs
...);
if
(
fetch_size
(
write
(
sock
,
make_span
(
buf
)
))
!=
buf
.
size
())
if
(
fetch_size
(
write
(
sock
,
buf
))
!=
buf
.
size
())
CAF_FAIL
(
"unable to write "
<<
buf
.
size
()
<<
" bytes"
);
CAF_FAIL
(
"unable to write "
<<
buf
.
size
()
<<
" bytes"
);
run
();
run
();
}
}
...
@@ -103,20 +103,20 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
...
@@ -103,20 +103,20 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
static_cast
<
uint32_t
>
(
payload
.
size
()),
basp
::
version
});
static_cast
<
uint32_t
>
(
payload
.
size
()),
basp
::
version
});
CAF_CHECK_EQUAL
(
app
->
state
(),
CAF_CHECK_EQUAL
(
app
->
state
(),
basp
::
connection_state
::
await_handshake_payload
);
basp
::
connection_state
::
await_handshake_payload
);
write
(
sock
,
make_span
(
payload
)
);
write
(
sock
,
payload
);
run
();
run
();
}
}
void
consume_handshake
()
{
void
consume_handshake
()
{
buffer_type
buf
(
basp
::
header_size
);
buffer_type
buf
(
basp
::
header_size
);
if
(
fetch_size
(
read
(
sock
,
make_span
(
buf
)
))
!=
basp
::
header_size
)
if
(
fetch_size
(
read
(
sock
,
buf
))
!=
basp
::
header_size
)
CAF_FAIL
(
"unable to read "
<<
basp
::
header_size
<<
" bytes"
);
CAF_FAIL
(
"unable to read "
<<
basp
::
header_size
<<
" bytes"
);
auto
hdr
=
basp
::
header
::
from_bytes
(
buf
);
auto
hdr
=
basp
::
header
::
from_bytes
(
buf
);
if
(
hdr
.
type
!=
basp
::
message_type
::
handshake
||
hdr
.
payload_len
==
0
if
(
hdr
.
type
!=
basp
::
message_type
::
handshake
||
hdr
.
payload_len
==
0
||
hdr
.
operation_data
!=
basp
::
version
)
||
hdr
.
operation_data
!=
basp
::
version
)
CAF_FAIL
(
"invalid handshake header"
);
CAF_FAIL
(
"invalid handshake header"
);
buf
.
resize
(
hdr
.
payload_len
);
buf
.
resize
(
hdr
.
payload_len
);
if
(
fetch_size
(
read
(
sock
,
make_span
(
buf
)
))
!=
hdr
.
payload_len
)
if
(
fetch_size
(
read
(
sock
,
buf
))
!=
hdr
.
payload_len
)
CAF_FAIL
(
"unable to read "
<<
hdr
.
payload_len
<<
" bytes"
);
CAF_FAIL
(
"unable to read "
<<
hdr
.
payload_len
<<
" bytes"
);
node_id
nid
;
node_id
nid
;
std
::
vector
<
std
::
string
>
app_ids
;
std
::
vector
<
std
::
string
>
app_ids
;
...
@@ -149,7 +149,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
...
@@ -149,7 +149,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
std::tuple<unit_t>>::value) { \
std::tuple<unit_t>>::value) { \
auto payload = to_buf(__VA_ARGS__); \
auto payload = to_buf(__VA_ARGS__); \
mock(basp::header{kind, static_cast<uint32_t>(payload.size()), op}); \
mock(basp::header{kind, static_cast<uint32_t>(payload.size()), op}); \
write(sock,
make_span(payload));
\
write(sock,
payload);
\
} else { \
} else { \
mock(basp::header{kind, 0, op}); \
mock(basp::header{kind, 0, op}); \
} \
} \
...
@@ -160,7 +160,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
...
@@ -160,7 +160,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
do { \
do { \
CAF_MESSAGE("receive " << msg_type); \
CAF_MESSAGE("receive " << msg_type); \
buffer_type buf(basp::header_size); \
buffer_type buf(basp::header_size); \
if (fetch_size(read(sock,
make_span(buf))) != basp::header_size)
\
if (fetch_size(read(sock,
buf)) != basp::header_size)
\
CAF_FAIL("unable to read " << basp::header_size << " bytes"); \
CAF_FAIL("unable to read " << basp::header_size << " bytes"); \
auto hdr = basp::header::from_bytes(buf); \
auto hdr = basp::header::from_bytes(buf); \
CAF_CHECK_EQUAL(hdr.type, msg_type); \
CAF_CHECK_EQUAL(hdr.type, msg_type); \
...
@@ -168,7 +168,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
...
@@ -168,7 +168,7 @@ struct fixture : host_fixture, test_coordinator_fixture<config> {
if (!std::is_same<decltype(std::make_tuple(__VA_ARGS__)), \
if (!std::is_same<decltype(std::make_tuple(__VA_ARGS__)), \
std::tuple<unit_t>>::value) { \
std::tuple<unit_t>>::value) { \
buf.resize(hdr.payload_len); \
buf.resize(hdr.payload_len); \
if (fetch_size(read(sock,
make_span(buf))) != size_t{hdr.payload_len})
\
if (fetch_size(read(sock,
buf)) != size_t{hdr.payload_len})
\
CAF_FAIL("unable to read " << hdr.payload_len << " bytes"); \
CAF_FAIL("unable to read " << hdr.payload_len << " bytes"); \
binary_deserializer source{sys, buf}; \
binary_deserializer source{sys, buf}; \
if (auto err = source(__VA_ARGS__)) \
if (auto err = source(__VA_ARGS__)) \
...
...
libcaf_net/test/stream_socket.cpp
View file @
e512ec72
...
@@ -74,31 +74,29 @@ struct fixture : host_fixture {
...
@@ -74,31 +74,29 @@ struct fixture : host_fixture {
CAF_TEST_FIXTURE_SCOPE
(
network_socket_tests
,
fixture
)
CAF_TEST_FIXTURE_SCOPE
(
network_socket_tests
,
fixture
)
CAF_TEST
(
read
on
empty
sockets
)
{
CAF_TEST
(
read
on
empty
sockets
)
{
CAF_CHECK_EQUAL
(
read
(
first
,
make_span
(
rd_buf
)),
CAF_CHECK_EQUAL
(
read
(
first
,
rd_buf
),
sec
::
unavailable_or_would_block
);
sec
::
unavailable_or_would_block
);
CAF_CHECK_EQUAL
(
read
(
second
,
rd_buf
),
sec
::
unavailable_or_would_block
);
CAF_CHECK_EQUAL
(
read
(
second
,
make_span
(
rd_buf
)),
sec
::
unavailable_or_would_block
);
}
}
CAF_TEST
(
transfer
data
from
first
to
second
socket
)
{
CAF_TEST
(
transfer
data
from
first
to
second
socket
)
{
std
::
vector
<
byte
>
wr_buf
{
1
_b
,
2
_b
,
4
_b
,
8
_b
,
16
_b
,
32
_b
,
64
_b
};
std
::
vector
<
byte
>
wr_buf
{
1
_b
,
2
_b
,
4
_b
,
8
_b
,
16
_b
,
32
_b
,
64
_b
};
CAF_MESSAGE
(
"transfer data from first to second socket"
);
CAF_MESSAGE
(
"transfer data from first to second socket"
);
CAF_CHECK_EQUAL
(
write
(
first
,
make_span
(
wr_buf
)
),
wr_buf
.
size
());
CAF_CHECK_EQUAL
(
write
(
first
,
wr_buf
),
wr_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
second
,
make_span
(
rd_buf
)
),
wr_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
second
,
rd_buf
),
wr_buf
.
size
());
CAF_CHECK
(
std
::
equal
(
wr_buf
.
begin
(),
wr_buf
.
end
(),
rd_buf
.
begin
()));
CAF_CHECK
(
std
::
equal
(
wr_buf
.
begin
(),
wr_buf
.
end
(),
rd_buf
.
begin
()));
rd_buf
.
assign
(
rd_buf
.
size
(),
byte
(
0
));
rd_buf
.
assign
(
rd_buf
.
size
(),
byte
(
0
));
}
}
CAF_TEST
(
transfer
data
from
second
to
first
socket
)
{
CAF_TEST
(
transfer
data
from
second
to
first
socket
)
{
std
::
vector
<
byte
>
wr_buf
{
1
_b
,
2
_b
,
4
_b
,
8
_b
,
16
_b
,
32
_b
,
64
_b
};
std
::
vector
<
byte
>
wr_buf
{
1
_b
,
2
_b
,
4
_b
,
8
_b
,
16
_b
,
32
_b
,
64
_b
};
CAF_CHECK_EQUAL
(
write
(
second
,
make_span
(
wr_buf
)
),
wr_buf
.
size
());
CAF_CHECK_EQUAL
(
write
(
second
,
wr_buf
),
wr_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
first
,
make_span
(
rd_buf
)
),
wr_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
first
,
rd_buf
),
wr_buf
.
size
());
CAF_CHECK
(
std
::
equal
(
wr_buf
.
begin
(),
wr_buf
.
end
(),
rd_buf
.
begin
()));
CAF_CHECK
(
std
::
equal
(
wr_buf
.
begin
(),
wr_buf
.
end
(),
rd_buf
.
begin
()));
}
}
CAF_TEST
(
shut
down
first
socket
and
observe
shutdown
on
the
second
one
)
{
CAF_TEST
(
shut
down
first
socket
and
observe
shutdown
on
the
second
one
)
{
close
(
first
);
close
(
first
);
CAF_CHECK_EQUAL
(
read
(
second
,
make_span
(
rd_buf
)
),
sec
::
socket_disconnected
);
CAF_CHECK_EQUAL
(
read
(
second
,
rd_buf
),
sec
::
socket_disconnected
);
first
.
id
=
invalid_socket_id
;
first
.
id
=
invalid_socket_id
;
}
}
...
@@ -110,7 +108,7 @@ CAF_TEST(transfer data using multiple buffers) {
...
@@ -110,7 +108,7 @@ CAF_TEST(transfer data using multiple buffers) {
full_buf
.
insert
(
full_buf
.
end
(),
wr_buf_2
.
begin
(),
wr_buf_2
.
end
());
full_buf
.
insert
(
full_buf
.
end
(),
wr_buf_2
.
begin
(),
wr_buf_2
.
end
());
CAF_CHECK_EQUAL
(
write
(
second
,
{
make_span
(
wr_buf_1
),
make_span
(
wr_buf_2
)}),
CAF_CHECK_EQUAL
(
write
(
second
,
{
make_span
(
wr_buf_1
),
make_span
(
wr_buf_2
)}),
full_buf
.
size
());
full_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
first
,
make_span
(
rd_buf
)
),
full_buf
.
size
());
CAF_CHECK_EQUAL
(
read
(
first
,
rd_buf
),
full_buf
.
size
());
CAF_CHECK
(
std
::
equal
(
full_buf
.
begin
(),
full_buf
.
end
(),
rd_buf
.
begin
()));
CAF_CHECK
(
std
::
equal
(
full_buf
.
begin
(),
full_buf
.
end
(),
rd_buf
.
begin
()));
}
}
...
...
libcaf_net/test/stream_transport.cpp
View file @
e512ec72
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
#include "caf/test/dsl.hpp"
#include "caf/test/dsl.hpp"
#include "caf/binary_deserializer.hpp"
#include "caf/binary_deserializer.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/make_actor.hpp"
#include "caf/make_actor.hpp"
...
@@ -34,7 +35,6 @@
...
@@ -34,7 +35,6 @@
#include "caf/net/multiplexer.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/socket_guard.hpp"
#include "caf/net/socket_guard.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/span.hpp"
#include "caf/span.hpp"
using
namespace
caf
;
using
namespace
caf
;
...
@@ -140,9 +140,9 @@ public:
...
@@ -140,9 +140,9 @@ public:
static
expected
<
buffer_type
>
serialize
(
actor_system
&
sys
,
static
expected
<
buffer_type
>
serialize
(
actor_system
&
sys
,
const
type_erased_tuple
&
x
)
{
const
type_erased_tuple
&
x
)
{
buffer_type
result
;
buffer_type
result
;
serializer_impl
<
buffer_type
>
sink
{
sys
,
result
};
binary_serializer
sink
{
sys
,
result
};
if
(
auto
err
=
message
::
save
(
sink
,
x
))
if
(
auto
err
=
message
::
save
(
sink
,
x
))
return
err
;
return
err
.
value
()
;
return
result
;
return
result
;
}
}
...
@@ -194,7 +194,7 @@ CAF_TEST(resolve and proxy communication) {
...
@@ -194,7 +194,7 @@ CAF_TEST(resolve and proxy communication) {
after
(
std
::
chrono
::
seconds
(
0
))
>>
after
(
std
::
chrono
::
seconds
(
0
))
>>
[
&
]
{
CAF_FAIL
(
"manager did not respond with a proxy."
);
});
[
&
]
{
CAF_FAIL
(
"manager did not respond with a proxy."
);
});
run
();
run
();
auto
read_res
=
read
(
recv_socket_guard
.
socket
(),
make_span
(
recv_buf
)
);
auto
read_res
=
read
(
recv_socket_guard
.
socket
(),
recv_buf
);
if
(
!
holds_alternative
<
size_t
>
(
read_res
))
if
(
!
holds_alternative
<
size_t
>
(
read_res
))
CAF_FAIL
(
"read() returned an error: "
<<
sys
.
render
(
get
<
sec
>
(
read_res
)));
CAF_FAIL
(
"read() returned an error: "
<<
sys
.
render
(
get
<
sec
>
(
read_res
)));
recv_buf
.
resize
(
get
<
size_t
>
(
read_res
));
recv_buf
.
resize
(
get
<
size_t
>
(
read_res
));
...
...
libcaf_net/test/string_application.cpp
View file @
e512ec72
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include <vector>
#include <vector>
#include "caf/binary_deserializer.hpp"
#include "caf/binary_deserializer.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/make_actor.hpp"
#include "caf/make_actor.hpp"
...
@@ -34,7 +35,6 @@
...
@@ -34,7 +35,6 @@
#include "caf/net/make_endpoint_manager.hpp"
#include "caf/net/make_endpoint_manager.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/net/stream_socket.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/span.hpp"
#include "caf/span.hpp"
using
namespace
caf
;
using
namespace
caf
;
...
@@ -105,18 +105,19 @@ public:
...
@@ -105,18 +105,19 @@ public:
if
(
ptr
->
msg
==
nullptr
)
if
(
ptr
->
msg
==
nullptr
)
return
;
return
;
auto
header_buf
=
parent
.
next_header_buffer
();
auto
header_buf
=
parent
.
next_header_buffer
();
serializer_impl
<
buffer_type
>
sink
{
sys_
,
header_buf
};
binary_serializer
sink
{
sys_
,
header_buf
};
header_type
header
{
static_cast
<
uint32_t
>
(
ptr
->
payload
.
size
())};
header_type
header
{
static_cast
<
uint32_t
>
(
ptr
->
payload
.
size
())};
sink
(
header
);
if
(
auto
err
=
sink
(
header
))
CAF_FAIL
(
"serializing failed: "
<<
err
);
parent
.
write_packet
(
header_buf
,
ptr
->
payload
);
parent
.
write_packet
(
header_buf
,
ptr
->
payload
);
}
}
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
const
type_erased_tuple
&
x
)
{
const
type_erased_tuple
&
x
)
{
std
::
vector
<
byte
>
result
;
std
::
vector
<
byte
>
result
;
serializer_impl
<
std
::
vector
<
byte
>>
sink
{
sys
,
result
};
binary_serializer
sink
{
sys
,
result
};
if
(
auto
err
=
message
::
save
(
sink
,
x
))
if
(
auto
err
=
message
::
save
(
sink
,
x
))
return
err
;
return
err
.
value
()
;
return
result
;
return
result
;
}
}
...
@@ -152,7 +153,8 @@ public:
...
@@ -152,7 +153,8 @@ public:
if
(
data
.
size
()
!=
sizeof
(
header_type
))
if
(
data
.
size
()
!=
sizeof
(
header_type
))
CAF_FAIL
(
""
);
CAF_FAIL
(
""
);
binary_deserializer
source
{
nullptr
,
data
};
binary_deserializer
source
{
nullptr
,
data
};
source
(
header_
);
if
(
auto
err
=
source
(
header_
))
CAF_FAIL
(
"serializing failed: "
<<
err
);
if
(
header_
.
payload
==
0
)
if
(
header_
.
payload
==
0
)
Base
::
handle_packet
(
parent
,
header_
,
span
<
const
byte
>
{});
Base
::
handle_packet
(
parent
,
header_
,
span
<
const
byte
>
{});
else
else
...
@@ -214,7 +216,7 @@ CAF_TEST(receive) {
...
@@ -214,7 +216,7 @@ CAF_TEST(receive) {
auto
buf
=
std
::
make_shared
<
std
::
vector
<
byte
>>
();
auto
buf
=
std
::
make_shared
<
std
::
vector
<
byte
>>
();
auto
sockets
=
unbox
(
make_stream_socket_pair
());
auto
sockets
=
unbox
(
make_stream_socket_pair
());
nonblocking
(
sockets
.
second
,
true
);
nonblocking
(
sockets
.
second
,
true
);
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
make_span
(
read_buf
)
),
CAF_CHECK_EQUAL
(
read
(
sockets
.
second
,
read_buf
),
sec
::
unavailable_or_would_block
);
sec
::
unavailable_or_would_block
);
CAF_MESSAGE
(
"adding both endpoint managers"
);
CAF_MESSAGE
(
"adding both endpoint managers"
);
auto
mgr1
=
make_endpoint_manager
(
mpx
,
sys
,
auto
mgr1
=
make_endpoint_manager
(
mpx
,
sys
,
...
...
libcaf_net/test/transport_worker.cpp
View file @
e512ec72
...
@@ -23,13 +23,13 @@
...
@@ -23,13 +23,13 @@
#include "caf/net/test/host_fixture.hpp"
#include "caf/net/test/host_fixture.hpp"
#include "caf/test/dsl.hpp"
#include "caf/test/dsl.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/byte.hpp"
#include "caf/byte.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/detail/scope_guard.hpp"
#include "caf/ip_endpoint.hpp"
#include "caf/ip_endpoint.hpp"
#include "caf/make_actor.hpp"
#include "caf/make_actor.hpp"
#include "caf/net/actor_proxy_impl.hpp"
#include "caf/net/actor_proxy_impl.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/net/multiplexer.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/span.hpp"
#include "caf/span.hpp"
using
namespace
caf
;
using
namespace
caf
;
...
@@ -105,9 +105,9 @@ public:
...
@@ -105,9 +105,9 @@ public:
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
static
expected
<
std
::
vector
<
byte
>>
serialize
(
actor_system
&
sys
,
const
type_erased_tuple
&
x
)
{
const
type_erased_tuple
&
x
)
{
std
::
vector
<
byte
>
result
;
std
::
vector
<
byte
>
result
;
serializer_impl
<
std
::
vector
<
byte
>>
sink
{
sys
,
result
};
binary_serializer
sink
{
sys
,
result
};
if
(
auto
err
=
message
::
save
(
sink
,
x
))
if
(
auto
err
=
message
::
save
(
sink
,
x
))
return
err
;
return
err
.
value
()
;
return
result
;
return
result
;
}
}
...
@@ -202,9 +202,7 @@ CAF_TEST(write_message) {
...
@@ -202,9 +202,7 @@ CAF_TEST(write_message) {
auto
msg
=
make_message
();
auto
msg
=
make_message
();
auto
elem
=
make_mailbox_element
(
strong_actor
,
make_message_id
(
12345
),
stack
,
auto
elem
=
make_mailbox_element
(
strong_actor
,
make_message_id
(
12345
),
stack
,
msg
);
msg
);
auto
test_span
=
make_span
(
reinterpret_cast
<
byte
*>
(
auto
test_span
=
as_bytes
(
make_span
(
hello_test
));
const_cast
<
char
*>
(
hello_test
.
data
())),
hello_test
.
size
());
std
::
vector
<
byte
>
payload
(
test_span
.
begin
(),
test_span
.
end
());
std
::
vector
<
byte
>
payload
(
test_span
.
begin
(),
test_span
.
end
());
using
message_type
=
endpoint_manager_queue
::
message
;
using
message_type
=
endpoint_manager_queue
::
message
;
auto
message
=
detail
::
make_unique
<
message_type
>
(
std
::
move
(
elem
),
nullptr
,
auto
message
=
detail
::
make_unique
<
message_type
>
(
std
::
move
(
elem
),
nullptr
,
...
...
libcaf_net/test/transport_worker_dispatcher.cpp
View file @
e512ec72
...
@@ -247,7 +247,7 @@ struct fixture : host_fixture {
...
@@ -247,7 +247,7 @@ struct fixture : host_fixture {
};
};
#define CHECK_HANDLE_DATA(testcase) \
#define CHECK_HANDLE_DATA(testcase) \
dispatcher.handle_data(dummy, span<
byte>{}, testcase.ep);
\
dispatcher.handle_data(dummy, span<
const byte>{}, testcase.ep);
\
CAF_CHECK_EQUAL(buf->size(), 1u); \
CAF_CHECK_EQUAL(buf->size(), 1u); \
CAF_CHECK_EQUAL(static_cast<byte>(testcase.worker_id), buf->at(0)); \
CAF_CHECK_EQUAL(static_cast<byte>(testcase.worker_id), buf->at(0)); \
buf->clear();
buf->clear();
...
...
libcaf_net/test/udp_datagram_socket.cpp
View file @
e512ec72
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "caf/net/test/host_fixture.hpp"
#include "caf/net/test/host_fixture.hpp"
#include "caf/test/dsl.hpp"
#include "caf/test/dsl.hpp"
#include "caf/binary_serializer.hpp"
#include "caf/detail/net_syscall.hpp"
#include "caf/detail/net_syscall.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/ip_address.hpp"
#include "caf/ip_address.hpp"
...
@@ -68,7 +69,7 @@ error read_from_socket(udp_datagram_socket sock, std::vector<byte>& buf) {
...
@@ -68,7 +69,7 @@ error read_from_socket(udp_datagram_socket sock, std::vector<byte>& buf) {
uint8_t
receive_attempts
=
0
;
uint8_t
receive_attempts
=
0
;
variant
<
std
::
pair
<
size_t
,
ip_endpoint
>
,
sec
>
read_ret
;
variant
<
std
::
pair
<
size_t
,
ip_endpoint
>
,
sec
>
read_ret
;
do
{
do
{
read_ret
=
read
(
sock
,
make_span
(
buf
)
);
read_ret
=
read
(
sock
,
buf
);
if
(
auto
read_res
=
get_if
<
std
::
pair
<
size_t
,
ip_endpoint
>>
(
&
read_ret
))
{
if
(
auto
read_res
=
get_if
<
std
::
pair
<
size_t
,
ip_endpoint
>>
(
&
read_ret
))
{
buf
.
resize
(
read_res
->
first
);
buf
.
resize
(
read_res
->
first
);
}
else
if
(
get
<
sec
>
(
read_ret
)
!=
sec
::
unavailable_or_would_block
)
{
}
else
if
(
get
<
sec
>
(
read_ret
)
!=
sec
::
unavailable_or_would_block
)
{
...
@@ -105,8 +106,7 @@ CAF_TEST_FIXTURE_SCOPE(udp_datagram_socket_test, fixture)
...
@@ -105,8 +106,7 @@ CAF_TEST_FIXTURE_SCOPE(udp_datagram_socket_test, fixture)
CAF_TEST
(
read
/
write
using
span
<
byte
>
)
{
CAF_TEST
(
read
/
write
using
span
<
byte
>
)
{
if
(
auto
err
=
nonblocking
(
socket_cast
<
net
::
socket
>
(
receive_socket
),
true
))
if
(
auto
err
=
nonblocking
(
socket_cast
<
net
::
socket
>
(
receive_socket
),
true
))
CAF_FAIL
(
"setting socket to nonblocking failed: "
<<
err
);
CAF_FAIL
(
"setting socket to nonblocking failed: "
<<
err
);
CAF_CHECK_EQUAL
(
read
(
receive_socket
,
make_span
(
buf
)),
CAF_CHECK_EQUAL
(
read
(
receive_socket
,
buf
),
sec
::
unavailable_or_would_block
);
sec
::
unavailable_or_would_block
);
CAF_MESSAGE
(
"sending data to "
<<
to_string
(
ep
));
CAF_MESSAGE
(
"sending data to "
<<
to_string
(
ep
));
CAF_CHECK_EQUAL
(
write
(
send_socket
,
as_bytes
(
make_span
(
hello_test
)),
ep
),
CAF_CHECK_EQUAL
(
write
(
send_socket
,
as_bytes
(
make_span
(
hello_test
)),
ep
),
hello_test
.
size
());
hello_test
.
size
());
...
@@ -119,21 +119,22 @@ CAF_TEST(read / write using span<std::vector<byte>*>) {
...
@@ -119,21 +119,22 @@ CAF_TEST(read / write using span<std::vector<byte>*>) {
// generate header and payload in separate buffers
// generate header and payload in separate buffers
header
hdr
{
hello_test
.
size
()};
header
hdr
{
hello_test
.
size
()};
std
::
vector
<
byte
>
hdr_buf
;
std
::
vector
<
byte
>
hdr_buf
;
serializer_impl
<
std
::
vector
<
byte
>>
sink
(
sys
,
hdr_buf
);
binary_serializer
sink
(
sys
,
hdr_buf
);
if
(
auto
err
=
sink
(
hdr
))
if
(
auto
err
=
sink
(
hdr
))
CAF_FAIL
(
"serializing payload failed"
<<
sys
.
render
(
err
));
CAF_FAIL
(
"serializing payload failed"
<<
sys
.
render
(
err
));
auto
bytes
=
as_bytes
(
make_span
(
hello_test
));
auto
bytes
=
as_bytes
(
make_span
(
hello_test
));
std
::
vector
<
byte
>
payload_buf
(
bytes
.
begin
(),
bytes
.
end
());
std
::
vector
<
byte
>
payload_buf
(
bytes
.
begin
(),
bytes
.
end
());
auto
packet_size
=
hdr_buf
.
size
()
+
payload_buf
.
size
();
auto
packet_size
=
hdr_buf
.
size
()
+
payload_buf
.
size
();
std
::
vector
<
std
::
vector
<
byte
>*>
bufs
{
&
hdr_buf
,
&
payload_buf
};
std
::
vector
<
std
::
vector
<
byte
>*>
bufs
{
&
hdr_buf
,
&
payload_buf
};
CAF_CHECK_EQUAL
(
write
(
send_socket
,
make_span
(
bufs
)
,
ep
),
packet_size
);
CAF_CHECK_EQUAL
(
write
(
send_socket
,
bufs
,
ep
),
packet_size
);
// receive both as one single packet.
// receive both as one single packet.
buf
.
resize
(
packet_size
);
buf
.
resize
(
packet_size
);
CAF_CHECK_EQUAL
(
read_from_socket
(
receive_socket
,
buf
),
none
);
CAF_CHECK_EQUAL
(
read_from_socket
(
receive_socket
,
buf
),
none
);
CAF_CHECK_EQUAL
(
buf
.
size
(),
packet_size
);
CAF_CHECK_EQUAL
(
buf
.
size
(),
packet_size
);
binary_deserializer
source
(
nullptr
,
buf
);
binary_deserializer
source
(
nullptr
,
buf
);
header
recv_hdr
;
header
recv_hdr
;
source
(
recv_hdr
);
if
(
auto
err
=
source
(
recv_hdr
))
CAF_FAIL
(
"serializing failed: "
<<
err
);
CAF_CHECK_EQUAL
(
hdr
.
payload_size
,
recv_hdr
.
payload_size
);
CAF_CHECK_EQUAL
(
hdr
.
payload_size
,
recv_hdr
.
payload_size
);
string_view
received
{
reinterpret_cast
<
const
char
*>
(
buf
.
data
())
string_view
received
{
reinterpret_cast
<
const
char
*>
(
buf
.
data
())
+
sizeof
(
header
),
+
sizeof
(
header
),
...
...
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