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
fdfe20ef
Commit
fdfe20ef
authored
Aug 01, 2019
by
Jakob Otto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename scribe-class/file
parent
3bcdc372
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
43 deletions
+37
-43
libcaf_net/CMakeLists.txt
libcaf_net/CMakeLists.txt
+1
-1
libcaf_net/caf/policy/scribe.hpp
libcaf_net/caf/policy/scribe.hpp
+32
-38
libcaf_net/src/scribe.cpp
libcaf_net/src/scribe.cpp
+4
-4
No files found.
libcaf_net/CMakeLists.txt
View file @
fdfe20ef
...
...
@@ -18,7 +18,7 @@ set(LIBCAF_NET_SRCS
src/socket.cpp
src/socket_manager.cpp
src/stream_socket.cpp
src/scribe_policy
.cpp
src/scribe
.cpp
)
add_custom_target
(
libcaf_net
)
...
...
libcaf_net/caf/policy/scribe
_policy
.hpp
→
libcaf_net/caf/policy/scribe.hpp
View file @
fdfe20ef
...
...
@@ -18,32 +18,31 @@
#pragma once
#include <caf/fwd.hpp>
#include <caf/net/stream_socket.hpp>
#include <caf/net/receive_policy.hpp>
#include <caf/error.hpp>
#include <caf/fwd.hpp>
#include <caf/logger.hpp>
#include <caf/net/endpoint_manager.hpp>
#include <caf/net/receive_policy.hpp>
#include <caf/net/stream_socket.hpp>
#include <caf/sec.hpp>
#include <caf/variant.hpp>
#include <caf/net/endpoint_manager.hpp>
#ifdef CAF_WINDOWS
# include <winsock2.h>
#else
#
include <sys/types.h
>
#
include <caf/actor.hpp
>
# include <sys/socket.h>
#
include <caf/actor.hpp
>
#
include <sys/types.h
>
#endif
namespace
caf
{
namespace
policy
{
class
scribe
_policy
{
class
scribe
{
public:
explicit
scribe
_policy
(
net
::
stream_socket
handle
)
:
handle_
(
handle
),
explicit
scribe
(
net
::
stream_socket
handle
)
:
handle_
(
handle
),
max_consecutive_reads_
(
0
),
read_threshold_
(
1024
),
collected_
(
0
),
...
...
@@ -80,8 +79,9 @@ public:
}
CAF_LOG_DEBUG
(
CAF_ARG
(
len
)
<<
CAF_ARG
(
handle_
.
id
)
<<
CAF_ARG
(
rres
));
auto
result
=
(
get
<
size_t
>
(
rres
)
>
0
)
?
static_cast
<
size_t
>
(
get
<
size_t
>
(
rres
))
:
0
;
auto
result
=
(
get
<
size_t
>
(
rres
)
>
0
)
?
static_cast
<
size_t
>
(
get
<
size_t
>
(
rres
))
:
0
;
collected_
+=
result
;
if
(
collected_
>=
read_threshold_
)
{
parent
.
application
().
process
(
read_buf_
,
*
this
,
parent
);
...
...
@@ -94,20 +94,13 @@ public:
template
<
class
Parent
>
bool
handle_write_event
(
Parent
&
parent
)
{
while
(
write_some
(
parent
));
// write while write_buf not empty
// check new messages in parents message_queue
std
::
unique_ptr
<
caf
::
net
::
endpoint_manager
::
message
>
msg
;
while
((
msg
=
parent
.
next_message
()))
{
parent
.
application
().
prepare
(
std
::
move
(
msg
),
*
this
,
parent
);
}
// write prepared data
return
write_some
(
parent
);
for
(
auto
msg
=
parent
.
next_message
();
msg
!=
nullptr
;
msg
=
parent
.
next_message
())
{
parent
.
application
().
prepare
(
std
::
move
(
msg
),
*
this
);
}
template
<
class
Parent
>
bool
write_some
(
Parent
&
parent
)
{
if
(
write_buf_
.
empty
())
return
false
;
// write prepared data
if
(
write_buf_
.
empty
())
return
false
;
auto
len
=
write_buf_
.
size
()
-
written_
;
void
*
buf
=
write_buf_
.
data
()
+
written_
;
CAF_LOG_TRACE
(
CAF_ARG
(
handle_
.
id
)
<<
CAF_ARG
(
len
));
...
...
@@ -117,9 +110,11 @@ public:
handle_error
(
parent
,
get
<
caf
::
sec
>
(
sres
));
return
false
;
}
CAF_LOG_DEBUG
(
CAF_ARG
(
len
)
<<
CAF_ARG
(
handle_
.
id
)
<<
CAF_ARG
(
sres
));
auto
result
=
(
get
<
size_t
>
(
sres
)
>
0
)
?
static_cast
<
size_t
>
(
get
<
size_t
>
(
sres
))
:
0
;
CAF_LOG_DEBUG
(
CAF_ARG
(
len
)
<<
CAF_ARG
(
handle_
.
id
)
<<
CAF_ARG
(
sres
));
auto
result
=
(
get
<
size_t
>
(
sres
)
>
0
)
?
static_cast
<
size_t
>
(
get
<
size_t
>
(
sres
))
:
0
;
// update state
written_
+=
result
;
...
...
@@ -134,7 +129,7 @@ public:
template
<
class
Parent
>
void
resolve
(
Parent
&
parent
,
const
std
::
string
&
path
,
actor
listener
)
{
parent
.
application
().
resolve
(
*
this
,
path
,
listener
);
parent
.
application
().
resolve
(
parent
,
path
,
listener
);
// TODO should parent be passed as well?
}
...
...
@@ -168,6 +163,5 @@ private:
size_t
written_
;
};
}
// namespace policy
}
// namespace caf
libcaf_net/src/scribe
_policy
.cpp
→
libcaf_net/src/scribe.cpp
View file @
fdfe20ef
...
...
@@ -16,7 +16,7 @@
* http://www.boost.org/LICENSE_1_0.txt. *
******************************************************************************/
#include "caf/policy/scribe
_policy
.hpp"
#include "caf/policy/scribe.hpp"
#include <system_error>
...
...
@@ -26,7 +26,7 @@
namespace
caf
{
namespace
policy
{
void
scribe
_policy
::
prepare_next_read
()
{
void
scribe
::
prepare_next_read
()
{
collected_
=
0
;
// This cast does nothing, but prevents a weird compiler error on GCC <= 4.9.
// TODO: remove cast when dropping support for GCC 4.9.
...
...
@@ -52,13 +52,13 @@ void scribe_policy::prepare_next_read() {
}
}
void
scribe
_policy
::
configure_read
(
net
::
receive_policy
::
config
cfg
)
{
void
scribe
::
configure_read
(
net
::
receive_policy
::
config
cfg
)
{
rd_flag_
=
cfg
.
first
;
max_
=
cfg
.
second
;
prepare_next_read
();
}
std
::
vector
<
char
>&
scribe
_policy
::
wr_buf
()
{
std
::
vector
<
char
>&
scribe
::
wr_buf
()
{
return
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