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
914e17d6
Commit
914e17d6
authored
Nov 25, 2016
by
Joseph Noir
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename dgram_communicator to dgram_stream
parent
9c128526
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
53 additions
and
53 deletions
+53
-53
libcaf_io/CMakeLists.txt
libcaf_io/CMakeLists.txt
+1
-1
libcaf_io/caf/io/abstract_broker.hpp
libcaf_io/caf/io/abstract_broker.hpp
+1
-1
libcaf_io/caf/io/dgram_doorman.hpp
libcaf_io/caf/io/dgram_doorman.hpp
+1
-1
libcaf_io/caf/io/dgram_scribe.hpp
libcaf_io/caf/io/dgram_scribe.hpp
+2
-2
libcaf_io/caf/io/network/default_multiplexer.hpp
libcaf_io/caf/io/network/default_multiplexer.hpp
+6
-6
libcaf_io/caf/io/network/dgram_stream_manager.hpp
libcaf_io/caf/io/network/dgram_stream_manager.hpp
+6
-6
libcaf_io/src/default_multiplexer.cpp
libcaf_io/src/default_multiplexer.cpp
+33
-33
libcaf_io/src/dgram_stream_manager.cpp
libcaf_io/src/dgram_stream_manager.cpp
+3
-3
No files found.
libcaf_io/CMakeLists.txt
View file @
914e17d6
...
...
@@ -25,8 +25,8 @@ set (LIBCAF_IO_SRCS
src/uri.cpp
src/dgram_scribe.cpp
src/dgram_doorman.cpp
src/dgram_stream_manager.cpp
src/dgram_acceptor_manager.cpp
src/dgram_communicator_manager.cpp
src/visitors.cpp
# BASP files
src/header.cpp
...
...
libcaf_io/caf/io/abstract_broker.hpp
View file @
914e17d6
...
...
@@ -38,7 +38,7 @@
#include "caf/io/network/native_socket.hpp"
#include "caf/io/network/stream_manager.hpp"
#include "caf/io/network/acceptor_manager.hpp"
#include "caf/io/network/dgram_
communicator
_manager.hpp"
#include "caf/io/network/dgram_
stream
_manager.hpp"
#include "caf/io/network/dgram_acceptor_manager.hpp"
namespace
caf
{
...
...
libcaf_io/caf/io/dgram_doorman.hpp
View file @
914e17d6
...
...
@@ -27,7 +27,7 @@
#include "caf/io/broker_servant.hpp"
#include "caf/io/system_messages.hpp"
#include "caf/io/dgram_doorman_handle.hpp"
#include "caf/io/network/dgram_
communica
tor_manager.hpp"
#include "caf/io/network/dgram_
accep
tor_manager.hpp"
namespace
caf
{
namespace
io
{
...
...
libcaf_io/caf/io/dgram_scribe.hpp
View file @
914e17d6
...
...
@@ -27,12 +27,12 @@
#include "caf/io/broker_servant.hpp"
#include "caf/io/system_messages.hpp"
#include "caf/io/dgram_scribe_handle.hpp"
#include "caf/io/network/dgram_
acceptor
_manager.hpp"
#include "caf/io/network/dgram_
stream
_manager.hpp"
namespace
caf
{
namespace
io
{
using
dgram_scribe_base
=
broker_servant
<
network
::
dgram_
communicator
_manager
,
using
dgram_scribe_base
=
broker_servant
<
network
::
dgram_
stream
_manager
,
dgram_scribe_handle
,
new_datagram_msg
>
;
...
...
libcaf_io/caf/io/network/default_multiplexer.hpp
View file @
914e17d6
...
...
@@ -38,7 +38,7 @@
#include "caf/io/network/multiplexer.hpp"
#include "caf/io/network/stream_manager.hpp"
#include "caf/io/network/acceptor_manager.hpp"
#include "caf/io/network/dgram_
communicator
_manager.hpp"
#include "caf/io/network/dgram_
stream
_manager.hpp"
#include "caf/io/network/dgram_acceptor_manager.hpp"
#include "caf/io/network/native_socket.hpp"
...
...
@@ -560,20 +560,20 @@ private:
native_socket
sock_
;
};
/// A dgram_
communicator
is responsible for sending datagrams to an endpoint.
class
dgram_
communicator
:
public
event_handler
{
/// A dgram_
stream
is responsible for sending datagrams to an endpoint.
class
dgram_
stream
:
public
event_handler
{
public:
/// A manger providing the TODO
using
manager_type
=
dgram_
communicator
_manager
;
using
manager_type
=
dgram_
stream
_manager
;
/// A smart pointer to a datagram sink manger
using
manager_ptr
=
intrusive_ptr
<
dgram_
communicator
_manager
>
;
using
manager_ptr
=
intrusive_ptr
<
dgram_
stream
_manager
>
;
/// A buffer class providing a compatible
/// interface to `std::vector`.
using
buffer_type
=
std
::
vector
<
char
>
;
dgram_
communicator
(
default_multiplexer
&
backend_ref
,
native_socket
sockfd
);
dgram_
stream
(
default_multiplexer
&
backend_ref
,
native_socket
sockfd
);
/// Configures how much buffer will be provided for the next datagram.
/// @warning Must not be called outside the IO multiplexers event loop
...
...
libcaf_io/caf/io/network/dgram_
communicator
_manager.hpp
→
libcaf_io/caf/io/network/dgram_
stream
_manager.hpp
View file @
914e17d6
...
...
@@ -17,8 +17,8 @@
* http://www.boost.org/LICENSE_1_0.txt. *
******************************************************************************/
#ifndef CAF_IO_NETWORK_DGRAM_
COMMUNICATOR
_MANGER_HPP
#define CAF_IO_NETWORK_DGRAM_
COMMUNICATOR
_MANGER_HPP
#ifndef CAF_IO_NETWORK_DGRAM_
STREAM
_MANGER_HPP
#define CAF_IO_NETWORK_DGRAM_
STREAM
_MANGER_HPP
#include "caf/io/network/manager.hpp"
...
...
@@ -28,11 +28,11 @@ namespace network {
/// A datagram manager provides callbacks for outgoing
/// datagrams as well as for error handling.
class
dgram_
communicator
_manager
:
public
manager
{
class
dgram_
stream
_manager
:
public
manager
{
public:
dgram_
communicator
_manager
(
abstract_broker
*
ptr
);
dgram_
stream
_manager
(
abstract_broker
*
ptr
);
~
dgram_
communicator
_manager
();
~
dgram_
stream
_manager
();
/// Called by the underlying I/O device whenever it received data.
/// @returns `true` if the manager accepts further reads, otherwise `false`.
...
...
@@ -46,4 +46,4 @@ public:
}
// namespace io
}
// namespace caf
#endif // CAF_IO_NETWORK_DGRAM_
COMMUNICATOR
_MANGER_HPP
#endif // CAF_IO_NETWORK_DGRAM_
STREAM
_MANGER_HPP
libcaf_io/src/default_multiplexer.cpp
View file @
914e17d6
...
...
@@ -909,48 +909,48 @@ default_multiplexer::add_dgram_scribe(abstract_broker* self, native_socket fd,
impl
(
abstract_broker
*
ptr
,
default_multiplexer
&
mx
,
native_socket
sockfd
)
:
dgram_scribe
(
ptr
,
network
::
dg_sink_hdl_from_socket
(
sockfd
)),
launched_
(
false
),
communicator
_
(
mx
,
sockfd
)
{
stream
_
(
mx
,
sockfd
)
{
// nop
}
void
configure_datagram_size
(
size_t
buf_size
)
override
{
CAF_LOG_TRACE
(
""
);
communicator
_
.
configure_datagram_size
(
buf_size
);
stream
_
.
configure_datagram_size
(
buf_size
);
// TODO: Do we need this?
if
(
!
launched_
)
launch
();
}
void
ack_writes
(
bool
enable
)
override
{
communicator
_
.
ack_writes
(
enable
);
stream
_
.
ack_writes
(
enable
);
}
std
::
vector
<
char
>&
wr_buf
()
override
{
return
communicator
_
.
wr_buf
();
return
stream
_
.
wr_buf
();
}
std
::
vector
<
char
>&
rd_buf
()
override
{
return
communicator
_
.
rd_buf
();
return
stream
_
.
rd_buf
();
}
void
stop_reading
()
override
{
CAF_LOG_TRACE
(
""
);
communicator
_
.
stop_reading
();
detach
(
&
communicator
_
.
backend
(),
false
);
stream
_
.
stop_reading
();
detach
(
&
stream
_
.
backend
(),
false
);
}
void
flush
()
override
{
CAF_LOG_TRACE
(
""
);
communicator
_
.
flush
(
this
);
stream
_
.
flush
(
this
);
}
std
::
string
addr
()
const
override
{
auto
x
=
remote_addr_of_fd
(
communicator
_
.
fd
());
auto
x
=
remote_addr_of_fd
(
stream
_
.
fd
());
if
(
!
x
)
return
""
;
return
*
x
;
}
uint16_t
local_port
()
const
override
{
auto
x
=
local_port_of_fd
(
communicator
_
.
fd
());
auto
x
=
local_port_of_fd
(
stream
_
.
fd
());
if
(
!
x
)
return
0
;
return
*
x
;
}
uint16_t
port
()
const
override
{
auto
x
=
remote_port_of_fd
(
communicator
_
.
fd
());
auto
x
=
remote_port_of_fd
(
stream
_
.
fd
());
if
(
!
x
)
return
0
;
return
*
x
;
...
...
@@ -959,21 +959,21 @@ default_multiplexer::add_dgram_scribe(abstract_broker* self, native_socket fd,
CAF_LOG_TRACE
(
""
);
CAF_ASSERT
(
!
launched_
);
launched_
=
true
;
communicator
_
.
start
(
this
);
stream
_
.
start
(
this
);
}
void
add_to_loop
()
override
{
communicator
_
.
activate
(
this
);
stream
_
.
activate
(
this
);
}
void
remove_from_loop
()
override
{
communicator
_
.
passivate
();
stream
_
.
passivate
();
}
void
set_endpoint_addr
(
const
sockaddr_storage
&
addr
,
size_t
len
,
bool
is_tmp_endpoint
)
{
communicator
_
.
set_endpoint_addr
(
addr
,
len
,
is_tmp_endpoint
);
stream
_
.
set_endpoint_addr
(
addr
,
len
,
is_tmp_endpoint
);
}
private:
bool
launched_
;
network
::
dgram_
communicator
communicator
_
;
network
::
dgram_
stream
stream
_
;
};
auto
ptr
=
make_counted
<
impl
>
(
self
,
*
this
,
fd
);
if
(
addr
)
...
...
@@ -1576,7 +1576,7 @@ void acceptor::removed_from_loop(operation op) {
mgr_
.
reset
();
}
dgram_
communicator
::
dgram_communicator
(
default_multiplexer
&
backend_ref
,
dgram_
stream
::
dgram_stream
(
default_multiplexer
&
backend_ref
,
native_socket
sockfd
)
:
event_handler
(
backend_ref
,
sockfd
),
dgram_size_
(
0
),
...
...
@@ -1587,12 +1587,12 @@ dgram_communicator::dgram_communicator(default_multiplexer& backend_ref,
configure_datagram_size
(
1500
);
}
void
dgram_
communicator
::
start
(
manager_type
*
mgr
)
{
void
dgram_
stream
::
start
(
manager_type
*
mgr
)
{
CAF_ASSERT
(
mgr
!=
nullptr
);
activate
(
mgr
);
}
void
dgram_
communicator
::
activate
(
manager_type
*
mgr
)
{
void
dgram_
stream
::
activate
(
manager_type
*
mgr
)
{
if
(
!
reader_
)
{
reader_
.
reset
(
mgr
);
event_handler
::
activate
();
...
...
@@ -1600,22 +1600,22 @@ void dgram_communicator::activate(manager_type* mgr) {
}
}
void
dgram_
communicator
::
configure_datagram_size
(
size_t
size
)
{
void
dgram_
stream
::
configure_datagram_size
(
size_t
size
)
{
dgram_size_
=
size
;
}
void
dgram_
communicator
::
ack_writes
(
bool
x
)
{
void
dgram_
stream
::
ack_writes
(
bool
x
)
{
ack_writes_
=
x
;
}
void
dgram_
communicator
::
write
(
const
void
*
buf
,
size_t
num_bytes
)
{
void
dgram_
stream
::
write
(
const
void
*
buf
,
size_t
num_bytes
)
{
CAF_LOG_TRACE
(
CAF_ARG
(
num_bytes
));
auto
first
=
reinterpret_cast
<
const
char
*>
(
buf
);
auto
last
=
first
+
num_bytes
;
wr_offline_buf_
.
insert
(
wr_offline_buf_
.
end
(),
std
::
vector
<
char
>
{
first
,
last
});
}
void
dgram_
communicator
::
flush
(
const
manager_ptr
&
mgr
)
{
void
dgram_
stream
::
flush
(
const
manager_ptr
&
mgr
)
{
CAF_ASSERT
(
mgr
!=
nullptr
);
CAF_LOG_TRACE
(
CAF_ARG
(
wr_offline_buf_
.
size
()));
if
(
!
wr_offline_buf_
.
empty
()
&&
!
writing_
)
{
...
...
@@ -1626,13 +1626,13 @@ void dgram_communicator::flush(const manager_ptr& mgr) {
}
}
void
dgram_
communicator
::
stop_reading
()
{
void
dgram_
stream
::
stop_reading
()
{
CAF_LOG_TRACE
(
""
);
close_read_channel
();
passivate
();
}
void
dgram_
communicator
::
removed_from_loop
(
operation
op
)
{
void
dgram_
stream
::
removed_from_loop
(
operation
op
)
{
switch
(
op
)
{
case
operation
:
:
read
:
reader_
.
reset
();
break
;
case
operation
:
:
write
:
writer_
.
reset
();
break
;
...
...
@@ -1640,11 +1640,11 @@ void dgram_communicator::removed_from_loop(operation op) {
};
}
void
dgram_
communicator
::
handle_event
(
operation
op
)
{
void
dgram_
stream
::
handle_event
(
operation
op
)
{
CAF_LOG_TRACE
(
CAF_ARG
(
op
));
switch
(
op
)
{
case
operation
:
:
read
:
{
// incoming message should signify a new remote enpoint
// incoming message should signify a new remote en
d
point
size_t
rb
;
if
(
!
receive_datagram
(
rb
,
fd
(),
rd_buf_
.
data
(),
rd_buf_
.
size
(),
sockaddr_
,
sockaddr_len_
))
{
...
...
@@ -1653,9 +1653,9 @@ void dgram_communicator::handle_event(operation op) {
return
;
}
// currently handles the change from acceptor
// to
communicator
, TODO: Find a better solution
// to
stream
, TODO: Find a better solution
// Either keep sending to the same endpoint,
// Which would require some logic to determin if
// Which would require some logic to determin
e
if
// the sender is a new endpoint ...
if
(
waiting_for_remote_endpoint
)
{
std
::
tie
(
host_
,
port_
)
=
sender_from_sockaddr
(
sockaddr_
,
sockaddr_len_
);
...
...
@@ -1700,12 +1700,12 @@ void dgram_communicator::handle_event(operation op) {
}
}
void
dgram_
communicator
::
prepare_next_write
()
{
void
dgram_
stream
::
prepare_next_write
()
{
CAF_LOG_TRACE
(
CAF_ARG
(
wr_buf_
.
size
())
<<
CAF_ARG
(
wr_offline_buf_
.
size
()));
wr_buf_
.
clear
();
/*
while (wr_offline_buf_.size() > 0 && wr_offline_buf_.front().size() == 0) {
std::cerr << "Removing empy element from buffer ... " << std::endl;
std::cerr << "Removing emp
t
y element from buffer ... " << std::endl;
wr_offline_buf_.pop_front();
}
*/
...
...
@@ -1718,12 +1718,12 @@ void dgram_communicator::prepare_next_write() {
}
}
void
dgram_
communicator
::
prepare_next_read
()
{
void
dgram_
stream
::
prepare_next_read
()
{
CAF_LOG_TRACE
(
CAF_ARG
(
wr_buf_
.
size
())
<<
CAF_ARG
(
wr_offline_buf_
.
size
()));
rd_buf_
.
resize
(
dgram_size_
);
}
void
dgram_
communicator
::
set_endpoint_addr
(
const
sockaddr_storage
&
sa
,
void
dgram_
stream
::
set_endpoint_addr
(
const
sockaddr_storage
&
sa
,
size_t
len
,
bool
is_tmp_endpoint
)
{
waiting_for_remote_endpoint
=
is_tmp_endpoint
;
...
...
libcaf_io/src/dgram_
communicator
_manager.cpp
→
libcaf_io/src/dgram_
stream
_manager.cpp
View file @
914e17d6
...
...
@@ -17,18 +17,18 @@
* http://www.boost.org/LICENSE_1_0.txt. *
******************************************************************************/
#include "caf/io/network/dgram_
communicator
_manager.hpp"
#include "caf/io/network/dgram_
stream
_manager.hpp"
namespace
caf
{
namespace
io
{
namespace
network
{
dgram_
communicator_manager
::
dgram_communicator
_manager
(
abstract_broker
*
ptr
)
dgram_
stream_manager
::
dgram_stream
_manager
(
abstract_broker
*
ptr
)
:
manager
(
ptr
)
{
// nop
}
dgram_
communicator_manager
::~
dgram_communicator
_manager
()
{
dgram_
stream_manager
::~
dgram_stream
_manager
()
{
// nop
}
...
...
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