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
dcf5127b
Commit
dcf5127b
authored
Apr 15, 2019
by
Jakob Otto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add configurable base-ptr to newb events
parent
fa755f75
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
14 deletions
+18
-14
libcaf_io/caf/io/network/newb_base.hpp
libcaf_io/caf/io/network/newb_base.hpp
+4
-0
libcaf_io/caf/io/newb.hpp
libcaf_io/caf/io/newb.hpp
+10
-10
libcaf_io/test/newb.cpp
libcaf_io/test/newb.cpp
+4
-4
No files found.
libcaf_io/caf/io/network/newb_base.hpp
View file @
dcf5127b
...
...
@@ -109,6 +109,10 @@ struct newb_base : public extend<scheduled_actor, newb_base>::template
virtual
void
stop_writing
()
=
0
;
virtual
void
read_event
(
newb_base
*
=
nullptr
)
=
0
;
virtual
void
write_event
(
newb_base
*
=
nullptr
)
=
0
;
// -- members ----------------------------------------------------------------
void
init_newb
();
...
...
libcaf_io/caf/io/newb.hpp
View file @
dcf5127b
...
...
@@ -127,10 +127,10 @@ struct newb : public network::newb_base {
CAF_LOG_TRACE
(
""
);
switch
(
op
)
{
case
io
:
:
network
::
operation
::
read
:
read_event
();
read_event
(
this
);
break
;
case
io
:
:
network
::
operation
::
write
:
write_event
();
write_event
(
this
);
break
;
case
io
:
:
network
::
operation
::
propagate_error
:
handle_error
();
...
...
@@ -256,14 +256,14 @@ struct newb : public network::newb_base {
trans
->
flush
(
this
);
}
void
read_event
(
)
{
auto
err
=
trans
->
read_some
(
this
,
*
proto
);
void
read_event
(
network
::
newb_base
*
base
)
override
{
auto
err
=
trans
->
read_some
(
base
,
*
proto
);
if
(
err
)
io_error
(
network
::
operation
::
read
,
std
::
move
(
err
));
}
void
write_event
(
)
{
if
(
trans
->
write_some
(
this
)
==
network
::
rw_state
::
failure
)
void
write_event
(
network
::
newb_base
*
base
)
override
{
if
(
trans
->
write_some
(
base
)
==
network
::
rw_state
::
failure
)
io_error
(
network
::
operation
::
write
,
sec
::
runtime_error
);
}
...
...
@@ -457,11 +457,11 @@ struct newb_acceptor : network::acceptor_base {
CAF_LOG_DEBUG
(
"new event: "
<<
to_string
(
op
));
switch
(
op
)
{
case
network
:
:
operation
::
read
:
read_event
();
read_event
(
this
);
break
;
case
network
:
:
operation
::
write
:
// Required to multiplex over a single socket.
write_event
();
write_event
(
this
);
break
;
case
network
:
:
operation
::
propagate_error
:
CAF_LOG_DEBUG
(
"acceptor got error operation"
);
...
...
@@ -549,7 +549,7 @@ struct newb_acceptor : network::acceptor_base {
// -- members ----------------------------------------------------------------
void
read_event
(
)
{
void
read_event
(
network
::
newb_base
*
)
override
{
if
(
accept_pol
->
manual_read
)
{
accept_pol
->
read_event
(
this
);
}
else
{
...
...
@@ -575,7 +575,7 @@ struct newb_acceptor : network::acceptor_base {
}
}
void
write_event
(
)
{
void
write_event
(
network
::
newb_base
*
base
)
override
{
accept_pol
->
write_event
(
this
);
}
...
...
libcaf_io/test/newb.cpp
View file @
dcf5127b
...
...
@@ -325,7 +325,7 @@ CAF_TEST(read event) {
write_packet
(
buf
,
ohdr
,
bhdr
,
payload
);
dummy
.
trans
->
received_bytes
=
buf
.
size
();
CAF_MESSAGE
(
"trigger a read event"
);
dummy
.
read_event
();
dummy
.
read_event
(
&
dummy
);
CAF_MESSAGE
(
"check the basp header and payload"
);
CAF_REQUIRE
(
!
dummy
.
state
.
messages
.
empty
());
auto
&
msg
=
dummy
.
state
.
messages
.
front
().
first
;
...
...
@@ -370,7 +370,7 @@ CAF_TEST(timeouts) {
exec_all
();
CAF_MESSAGE
(
"trigger read event"
);
auto
&
dummy
=
deref
<
newb_t
>
(
test_newb
);
dummy
.
read_event
();
dummy
.
read_event
(
&
dummy
);
CAF_CHECK
(
!
dummy
.
state
.
expected
.
empty
());
CAF_MESSAGE
(
"trigger waiting timeouts"
);
// Trigger timeout.
...
...
@@ -400,12 +400,12 @@ CAF_TEST(message ordering) {
CAF_MESSAGE
(
"read second message first"
);
write_packet
(
buf
,
ohdr_second
,
bhdr_second
,
payload_second
);
dummy
.
trans
->
received_bytes
=
buf
.
size
();
dummy
.
read_event
();
dummy
.
read_event
(
&
dummy
);
CAF_MESSAGE
(
"followed by first message"
);
buf
.
clear
();
write_packet
(
buf
,
ohdr_first
,
bhdr_first
,
payload_first
);
dummy
.
trans
->
received_bytes
=
buf
.
size
();
dummy
.
read_event
();
dummy
.
read_event
(
&
dummy
);
}
CAF_TEST
(
write
buf
)
{
...
...
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