Event loop friendly C++ actor micro-framework
|
%!s(int64=4) %!d(string=hai) anos | |
---|---|---|
cmake | %!s(int64=5) %!d(string=hai) anos | |
docs | %!s(int64=4) %!d(string=hai) anos | |
doxygen @ e7a0ba227c | %!s(int64=4) %!d(string=hai) anos | |
examples | %!s(int64=4) %!d(string=hai) anos | |
include | %!s(int64=4) %!d(string=hai) anos | |
src | %!s(int64=4) %!d(string=hai) anos | |
tests | %!s(int64=4) %!d(string=hai) anos | |
.clang-format | %!s(int64=6) %!d(string=hai) anos | |
.gitmodules | %!s(int64=6) %!d(string=hai) anos | |
.travis.yml | %!s(int64=4) %!d(string=hai) anos | |
CMakeLists.txt | %!s(int64=4) %!d(string=hai) anos | |
LICENSE | %!s(int64=6) %!d(string=hai) anos | |
README.md | %!s(int64=4) %!d(string=hai) anos | |
appveyor.yml | %!s(int64=5) %!d(string=hai) anos |
rotor
is event loop friendly C++ actor micro framework.
MIT
Please read tutorial, design principles and manual here
make_response
methods when message should be created, but
send later delayedexamples/boost-asio/ping-pong-timer.cpp
(new)examples/boost-asio/beast-scrapper.cpp
(updated)actor_config_t
was introduced, which now holds pointer to
supervisor, init and shutdown timeoutsbuilder
pattern was introduced to simplify actors constructionsupervisor_config_t
was changed (inherited from actor_config_t
)actor_base_t
and supervisor_t
constructors has changed - now
appropriate config is taken as single parameter. All descendant classes should
be changedconfig_t
inside the class, and templated config_builder_t
.supervisor_ev_t
not always correctly released EV-resources, which
lead to leakactor_base_t
can be shutted down properly even if it did not
started yetrotor::supervisor_t
and rotor::asio::supervisor_asio_t
rotor::asio::forwarder_t
now more correctly dispatches
boost::asio
events to actor methods; e.g. it works correctly now with
async_accept
method of socket_acceptor
supervisor_policy_t
was introduced to control supervisor
behavior on a child-actor startup failureexamples/ev/pong-registry.cpp
how to use registryrotor::arc_base
, to allow
forwarding requests without copying it (i.e. just intrusive pointer is created)examples/boost-asio/beast-scrapper.cpp
has been added; it
demonstrates an app with pool of actor workers with request-response forwardingsupervisor_config_t
,
which contains shutdown timeout valuecreate_actor
method now takes child max
init time value. If it does not confirm, the child actor will be asked
for shut down.message::shutdown_request_t
message::init_request_t
message::state_request_t
,
which follows the generic request/response pattern. The response type
is now message::state_response_t
.outbound
field in rotor::supervisor_t
was renamed just to queue
rotor::address_t
now contains const void*
localityrotor::asio::supervisor_config_t
now contains
std::shared_ptr
to strand
, instead of creating private strand
for each supervisordo_start()
method in rotor::supervisor_t
was
removed, since supervisor now is able to start self after compliting
initialization.rotor::supervisor_t
sends initialize_actor_t
to self
to advance own state to INITIALIZED
via common actor mechanism,
instead of changeing state directly on early initialization phase
(do_initialize
)rotor::asio::forwarder_t
now more correctly dispatches
boost::asio events to actor methodsrotor::ev::supervisor_ev_t
properly handles refcounterInitial version