Commit 9386fc7e authored by Dominik Charousset's avatar Dominik Charousset

renamed `group` -> `abstract_group`

this patch renames the class `group` to be consistent with
actors and channels
parent 51494159
...@@ -130,6 +130,7 @@ set(LIBCPPA_SRC ...@@ -130,6 +130,7 @@ set(LIBCPPA_SRC
${LIBCPPA_PLATFORM_SRC} ${LIBCPPA_PLATFORM_SRC}
src/abstract_actor.cpp src/abstract_actor.cpp
src/abstract_channel.cpp src/abstract_channel.cpp
src/abstract_group.cpp
src/abstract_tuple.cpp src/abstract_tuple.cpp
src/actor.cpp src/actor.cpp
src/actor_addr.cpp src/actor_addr.cpp
...@@ -168,7 +169,6 @@ set(LIBCPPA_SRC ...@@ -168,7 +169,6 @@ set(LIBCPPA_SRC
src/functor_based_blocking_actor.cpp src/functor_based_blocking_actor.cpp
src/get_root_uuid.cpp src/get_root_uuid.cpp
src/get_mac_addresses.cpp src/get_mac_addresses.cpp
src/group.cpp
src/group_manager.cpp src/group_manager.cpp
src/ipv4_acceptor.cpp src/ipv4_acceptor.cpp
src/ipv4_io_stream.cpp src/ipv4_io_stream.cpp
......
cppa/abstract_actor.hpp cppa/abstract_actor.hpp
cppa/abstract_channel.hpp cppa/abstract_channel.hpp
cppa/abstract_group.hpp
cppa/actor.hpp cppa/actor.hpp
cppa/actor_addr.hpp cppa/actor_addr.hpp
cppa/actor_namespace.hpp cppa/actor_namespace.hpp
cppa/actor_ostream.hpp
cppa/actor_proxy.hpp cppa/actor_proxy.hpp
cppa/actor_state.hpp cppa/actor_state.hpp
cppa/announce.hpp cppa/announce.hpp
...@@ -11,13 +13,12 @@ cppa/anything.hpp ...@@ -11,13 +13,12 @@ cppa/anything.hpp
cppa/atom.hpp cppa/atom.hpp
cppa/attachable.hpp cppa/attachable.hpp
cppa/behavior.hpp cppa/behavior.hpp
cppa/behavior_stack_based.hpp
cppa/binary_deserializer.hpp cppa/binary_deserializer.hpp
cppa/binary_serializer.hpp cppa/binary_serializer.hpp
cppa/blocking_actor.hpp cppa/blocking_actor.hpp
cppa/channel.hpp cppa/channel.hpp
cppa/untyped_actor_handle.hpp
cppa/config.hpp cppa/config.hpp
cppa/policy/context_switching_resume.hpp
cppa/cow_ptr.hpp cppa/cow_ptr.hpp
cppa/cow_tuple.hpp cppa/cow_tuple.hpp
cppa/cppa.hpp cppa/cppa.hpp
...@@ -36,6 +37,8 @@ cppa/detail/demangle.hpp ...@@ -36,6 +37,8 @@ cppa/detail/demangle.hpp
cppa/detail/disablable_delete.hpp cppa/detail/disablable_delete.hpp
cppa/detail/empty_tuple.hpp cppa/detail/empty_tuple.hpp
cppa/detail/fd_util.hpp cppa/detail/fd_util.hpp
cppa/detail/functor_based_actor.hpp
cppa/detail/functor_based_blocking_actor.hpp
cppa/detail/group_manager.hpp cppa/detail/group_manager.hpp
cppa/detail/handle.hpp cppa/detail/handle.hpp
cppa/detail/ieee_754.hpp cppa/detail/ieee_754.hpp
...@@ -48,9 +51,11 @@ cppa/detail/opt_impls.hpp ...@@ -48,9 +51,11 @@ cppa/detail/opt_impls.hpp
cppa/detail/optional_variant_data.hpp cppa/detail/optional_variant_data.hpp
cppa/detail/pair_member.hpp cppa/detail/pair_member.hpp
cppa/detail/projection.hpp cppa/detail/projection.hpp
cppa/detail/proper_actor.hpp
cppa/detail/pseudo_tuple.hpp cppa/detail/pseudo_tuple.hpp
cppa/detail/ptype_to_type.hpp cppa/detail/ptype_to_type.hpp
cppa/detail/raw_access.hpp cppa/detail/raw_access.hpp
cppa/detail/response_future_util.hpp
cppa/detail/serialize_tuple.hpp cppa/detail/serialize_tuple.hpp
cppa/detail/singleton_manager.hpp cppa/detail/singleton_manager.hpp
cppa/detail/singleton_mixin.hpp cppa/detail/singleton_mixin.hpp
...@@ -71,13 +76,12 @@ cppa/detail/uniform_type_info_map.hpp ...@@ -71,13 +76,12 @@ cppa/detail/uniform_type_info_map.hpp
cppa/detail/value_guard.hpp cppa/detail/value_guard.hpp
cppa/detail/yield_interface.hpp cppa/detail/yield_interface.hpp
cppa/enable_weak_ptr.hpp cppa/enable_weak_ptr.hpp
cppa/policy/event_based_resume.hpp cppa/event_based_actor.hpp
cppa/exception.hpp cppa/exception.hpp
cppa/exit_reason.hpp cppa/exit_reason.hpp
cppa/extend.hpp cppa/extend.hpp
cppa/from_string.hpp cppa/from_string.hpp
cppa/get.hpp cppa/get.hpp
cppa/group.hpp
cppa/guard_expr.hpp cppa/guard_expr.hpp
cppa/intrusive/blocking_single_reader_queue.hpp cppa/intrusive/blocking_single_reader_queue.hpp
cppa/intrusive/single_reader_queue.hpp cppa/intrusive/single_reader_queue.hpp
...@@ -102,6 +106,7 @@ cppa/io/remote_actor_proxy.hpp ...@@ -102,6 +106,7 @@ cppa/io/remote_actor_proxy.hpp
cppa/io/stream.hpp cppa/io/stream.hpp
cppa/local_actor.hpp cppa/local_actor.hpp
cppa/logging.hpp cppa/logging.hpp
cppa/mailbox_based.hpp
cppa/mailbox_element.hpp cppa/mailbox_element.hpp
cppa/match.hpp cppa/match.hpp
cppa/match_expr.hpp cppa/match_expr.hpp
...@@ -127,9 +132,21 @@ cppa/opt.hpp ...@@ -127,9 +132,21 @@ cppa/opt.hpp
cppa/optional.hpp cppa/optional.hpp
cppa/optional_variant.hpp cppa/optional_variant.hpp
cppa/partial_function.hpp cppa/partial_function.hpp
cppa/policy.hpp
cppa/policy/context_switching_resume.hpp
cppa/policy/cooperative_scheduling.hpp
cppa/policy/event_based_resume.hpp
cppa/policy/invoke_policy.hpp cppa/policy/invoke_policy.hpp
cppa/policy/middleman_scheduling.hpp
cppa/policy/nestable_invoke.hpp cppa/policy/nestable_invoke.hpp
cppa/policy/no_resume.hpp
cppa/policy/no_scheduling.hpp
cppa/policy/not_prioritizing.hpp
cppa/policy/policies.hpp
cppa/policy/prioritizing.hpp cppa/policy/prioritizing.hpp
cppa/policy/priority_policy.hpp
cppa/policy/resume_policy.hpp
cppa/policy/scheduling_policy.hpp
cppa/policy/sequential_invoke.hpp cppa/policy/sequential_invoke.hpp
cppa/primitive_type.hpp cppa/primitive_type.hpp
cppa/primitive_variant.hpp cppa/primitive_variant.hpp
...@@ -137,6 +154,7 @@ cppa/qtsupport/actor_widget_mixin.hpp ...@@ -137,6 +154,7 @@ cppa/qtsupport/actor_widget_mixin.hpp
cppa/ref_counted.hpp cppa/ref_counted.hpp
cppa/replies_to.hpp cppa/replies_to.hpp
cppa/response_promise.hpp cppa/response_promise.hpp
cppa/resumable.hpp
cppa/sb_actor.hpp cppa/sb_actor.hpp
cppa/scheduler.hpp cppa/scheduler.hpp
cppa/scoped_actor.hpp cppa/scoped_actor.hpp
...@@ -144,6 +162,7 @@ cppa/serializer.hpp ...@@ -144,6 +162,7 @@ cppa/serializer.hpp
cppa/singletons.hpp cppa/singletons.hpp
cppa/spawn.hpp cppa/spawn.hpp
cppa/spawn_options.hpp cppa/spawn_options.hpp
cppa/system_messages.hpp
cppa/timeout_definition.hpp cppa/timeout_definition.hpp
cppa/to_string.hpp cppa/to_string.hpp
cppa/tpartial_function.hpp cppa/tpartial_function.hpp
...@@ -155,7 +174,7 @@ cppa/typed_actor_ptr.hpp ...@@ -155,7 +174,7 @@ cppa/typed_actor_ptr.hpp
cppa/typed_behavior.hpp cppa/typed_behavior.hpp
cppa/uniform_type_info.hpp cppa/uniform_type_info.hpp
cppa/unit.hpp cppa/unit.hpp
cppa/event_based_actor.hpp cppa/untyped_actor_handle.hpp
cppa/util/abstract_uniform_type_info.hpp cppa/util/abstract_uniform_type_info.hpp
cppa/util/algorithm.hpp cppa/util/algorithm.hpp
cppa/util/arg_match_t.hpp cppa/util/arg_match_t.hpp
...@@ -211,10 +230,12 @@ examples/type_system/announce_4.cpp ...@@ -211,10 +230,12 @@ examples/type_system/announce_4.cpp
examples/type_system/announce_5.cpp examples/type_system/announce_5.cpp
src/abstract_actor.cpp src/abstract_actor.cpp
src/abstract_channel.cpp src/abstract_channel.cpp
src/abstract_group.cpp
src/abstract_tuple.cpp src/abstract_tuple.cpp
src/actor.cpp src/actor.cpp
src/actor_addr.cpp src/actor_addr.cpp
src/actor_namespace.cpp src/actor_namespace.cpp
src/actor_ostream.cpp
src/actor_proxy.cpp src/actor_proxy.cpp
src/actor_registry.cpp src/actor_registry.cpp
src/algorithm.cpp src/algorithm.cpp
...@@ -225,10 +246,10 @@ src/behavior.cpp ...@@ -225,10 +246,10 @@ src/behavior.cpp
src/behavior_stack.cpp src/behavior_stack.cpp
src/binary_deserializer.cpp src/binary_deserializer.cpp
src/binary_serializer.cpp src/binary_serializer.cpp
src/blocking_actor.cpp
src/broker.cpp src/broker.cpp
src/buffer.cpp src/buffer.cpp
src/channel.cpp src/channel.cpp
src/untyped_actor_handle.cpp
src/context_switching_resume.cpp src/context_switching_resume.cpp
src/continuable.cpp src/continuable.cpp
src/decorated_tuple.cpp src/decorated_tuple.cpp
...@@ -236,14 +257,16 @@ src/demangle.cpp ...@@ -236,14 +257,16 @@ src/demangle.cpp
src/deserializer.cpp src/deserializer.cpp
src/duration.cpp src/duration.cpp
src/empty_tuple.cpp src/empty_tuple.cpp
src/event_based_actor.cpp
src/exception.cpp src/exception.cpp
src/exit_reason.cpp src/exit_reason.cpp
src/factory.cpp src/factory.cpp
src/fd_util.cpp src/fd_util.cpp
src/fiber.cpp src/fiber.cpp
src/functor_based_actor.cpp
src/functor_based_blocking_actor.cpp
src/get_mac_addresses.cpp src/get_mac_addresses.cpp
src/get_root_uuid.cpp src/get_root_uuid.cpp
src/group.cpp
src/group_manager.cpp src/group_manager.cpp
src/ipv4_acceptor.cpp src/ipv4_acceptor.cpp
src/ipv4_io_stream.cpp src/ipv4_io_stream.cpp
...@@ -275,6 +298,7 @@ src/protocol.cpp ...@@ -275,6 +298,7 @@ src/protocol.cpp
src/ref_counted.cpp src/ref_counted.cpp
src/remote_actor_proxy.cpp src/remote_actor_proxy.cpp
src/response_promise.cpp src/response_promise.cpp
src/resumable.cpp
src/ripemd_160.cpp src/ripemd_160.cpp
src/scheduler.cpp src/scheduler.cpp
src/scoped_actor.cpp src/scoped_actor.cpp
...@@ -289,6 +313,7 @@ src/type_lookup_table.cpp ...@@ -289,6 +313,7 @@ src/type_lookup_table.cpp
src/unicast_network.cpp src/unicast_network.cpp
src/uniform_type_info.cpp src/uniform_type_info.cpp
src/uniform_type_info_map.cpp src/uniform_type_info_map.cpp
src/untyped_actor_handle.cpp
src/weak_ptr_anchor.cpp src/weak_ptr_anchor.cpp
src/yield_interface.cpp src/yield_interface.cpp
unit_testing/ping_pong.cpp unit_testing/ping_pong.cpp
...@@ -315,28 +340,3 @@ unit_testing/test_tuple.cpp ...@@ -315,28 +340,3 @@ unit_testing/test_tuple.cpp
unit_testing/test_typed_spawn.cpp unit_testing/test_typed_spawn.cpp
unit_testing/test_uniform_type.cpp unit_testing/test_uniform_type.cpp
unit_testing/test_yield_interface.cpp unit_testing/test_yield_interface.cpp
cppa/detail/proper_actor.hpp
cppa/policy/no_resume.hpp
cppa/policy.hpp
cppa/detail/functor_based_actor.hpp
cppa/policy/no_scheduling.hpp
cppa/policy/resume_policy.hpp
cppa/policy/cooperative_scheduling.hpp
cppa/policy/scheduling_policy.hpp
cppa/policy/priority_policy.hpp
cppa/policy/not_prioritizing.hpp
cppa/detail/functor_based_blocking_actor.hpp
src/functor_based_actor.cpp
cppa/mailbox_based.hpp
cppa/behavior_stack_based.hpp
cppa/resumable.hpp
src/resumable.cpp
cppa/policy/middleman_scheduling.hpp
src/event_based_actor.cpp
src/functor_based_blocking_actor.cpp
src/blocking_actor.cpp
cppa/policy/policies.hpp
cppa/detail/response_future_util.hpp
cppa/system_messages.hpp
cppa/actor_ostream.hpp
src/actor_ostream.cpp
...@@ -54,7 +54,7 @@ class deserializer; ...@@ -54,7 +54,7 @@ class deserializer;
/** /**
* @brief A multicast group. * @brief A multicast group.
*/ */
class group : public abstract_channel { class abstract_group : public abstract_channel {
friend class detail::group_manager; friend class detail::group_manager;
friend class detail::peer_connection; // needs access to remote_enqueue friend class detail::peer_connection; // needs access to remote_enqueue
...@@ -69,7 +69,7 @@ class group : public abstract_channel { ...@@ -69,7 +69,7 @@ class group : public abstract_channel {
// unsubscribes its channel from the group on destruction // unsubscribes its channel from the group on destruction
class subscription { class subscription {
friend class group; friend class abstract_group;
subscription(const subscription&) = delete; subscription(const subscription&) = delete;
subscription& operator=(const subscription&) = delete; subscription& operator=(const subscription&) = delete;
...@@ -78,7 +78,7 @@ class group : public abstract_channel { ...@@ -78,7 +78,7 @@ class group : public abstract_channel {
subscription() = default; subscription() = default;
subscription(subscription&&) = default; subscription(subscription&&) = default;
subscription(const channel& s, const intrusive_ptr<group>& g); subscription(const channel& s, const intrusive_ptr<abstract_group>& g);
~subscription(); ~subscription();
...@@ -87,7 +87,7 @@ class group : public abstract_channel { ...@@ -87,7 +87,7 @@ class group : public abstract_channel {
private: private:
channel m_subscriber; channel m_subscriber;
intrusive_ptr<group> m_group; intrusive_ptr<abstract_group> m_group;
}; };
...@@ -116,9 +116,9 @@ class group : public abstract_channel { ...@@ -116,9 +116,9 @@ class group : public abstract_channel {
* the name @p group_name. * the name @p group_name.
* @threadsafe * @threadsafe
*/ */
virtual intrusive_ptr<group> get(const std::string& group_name) = 0; virtual intrusive_ptr<abstract_group> get(const std::string& group_name) = 0;
virtual intrusive_ptr<group> deserialize(deserializer* source) = 0; virtual intrusive_ptr<abstract_group> deserialize(deserializer* source) = 0;
}; };
...@@ -154,7 +154,7 @@ class group : public abstract_channel { ...@@ -154,7 +154,7 @@ class group : public abstract_channel {
* @p group_identifier from the module @p module_name. * @p group_identifier from the module @p module_name.
* @threadsafe * @threadsafe
*/ */
static intrusive_ptr<group> get(const std::string& module_name, static intrusive_ptr<abstract_group> get(const std::string& module_name,
const std::string& group_identifier); const std::string& group_identifier);
/** /**
...@@ -164,7 +164,7 @@ class group : public abstract_channel { ...@@ -164,7 +164,7 @@ class group : public abstract_channel {
* of an anonymous group. Anonymous groups can be used whenever * of an anonymous group. Anonymous groups can be used whenever
* a set of actors wants to communicate using an exclusive channel. * a set of actors wants to communicate using an exclusive channel.
*/ */
static intrusive_ptr<group> anonymous(); static intrusive_ptr<abstract_group> anonymous();
/** /**
* @brief Add a new group module to the libcppa group management. * @brief Add a new group module to the libcppa group management.
...@@ -180,7 +180,7 @@ class group : public abstract_channel { ...@@ -180,7 +180,7 @@ class group : public abstract_channel {
protected: protected:
group(module_ptr module, std::string group_id); abstract_group(module_ptr module, std::string group_id);
virtual void unsubscribe(const channel& who) = 0; virtual void unsubscribe(const channel& who) = 0;
...@@ -193,7 +193,7 @@ class group : public abstract_channel { ...@@ -193,7 +193,7 @@ class group : public abstract_channel {
* @brief A smart pointer type that manages instances of {@link group}. * @brief A smart pointer type that manages instances of {@link group}.
* @relates group * @relates group
*/ */
typedef intrusive_ptr<group> group_ptr; typedef intrusive_ptr<abstract_group> group_ptr;
/** /**
* @brief Makes *all* local groups accessible via network on address @p addr * @brief Makes *all* local groups accessible via network on address @p addr
...@@ -201,7 +201,7 @@ typedef intrusive_ptr<group> group_ptr; ...@@ -201,7 +201,7 @@ typedef intrusive_ptr<group> group_ptr;
* @throws bind_failure * @throws bind_failure
* @throws network_error * @throws network_error
*/ */
void publish_local_groups_at(std::uint16_t port, const char* addr = nullptr); void publish_local_groups(std::uint16_t port, const char* addr = nullptr);
} // namespace cppa } // namespace cppa
......
...@@ -37,7 +37,7 @@ namespace cppa { ...@@ -37,7 +37,7 @@ namespace cppa {
// classes // classes
class actor; class actor;
class group; class abstract_group;
class channel; class channel;
class node_id; class node_id;
class behavior; class behavior;
...@@ -66,7 +66,7 @@ template<typename> class intrusive_ptr; ...@@ -66,7 +66,7 @@ template<typename> class intrusive_ptr;
template<typename> class weak_intrusive_ptr; template<typename> class weak_intrusive_ptr;
// intrusive pointer typedefs // intrusive pointer typedefs
typedef intrusive_ptr<group> group_ptr; typedef intrusive_ptr<abstract_group> group_ptr;
typedef intrusive_ptr<actor_proxy> actor_proxy_ptr; typedef intrusive_ptr<actor_proxy> actor_proxy_ptr;
typedef intrusive_ptr<node_id> node_id_ptr; typedef intrusive_ptr<node_id> node_id_ptr;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include <mutex> #include <mutex>
#include <thread> #include <thread>
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/util/shared_spinlock.hpp" #include "cppa/util/shared_spinlock.hpp"
#include "cppa/detail/singleton_mixin.hpp" #include "cppa/detail/singleton_mixin.hpp"
...@@ -48,18 +48,18 @@ class group_manager : public singleton_mixin<group_manager> { ...@@ -48,18 +48,18 @@ class group_manager : public singleton_mixin<group_manager> {
public: public:
intrusive_ptr<group> get(const std::string& module_name, intrusive_ptr<abstract_group> get(const std::string& module_name,
const std::string& group_identifier); const std::string& group_identifier);
intrusive_ptr<group> anonymous(); intrusive_ptr<abstract_group> anonymous();
void add_module(group::unique_module_ptr); void add_module(abstract_group::unique_module_ptr);
group::module_ptr get_module(const std::string& module_name); abstract_group::module_ptr get_module(const std::string& module_name);
private: private:
typedef std::map<std::string, group::unique_module_ptr> modules_map; typedef std::map<std::string, abstract_group::unique_module_ptr> modules_map;
modules_map m_mmap; modules_map m_mmap;
std::mutex m_mmap_mtx; std::mutex m_mmap_mtx;
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
#include <functional> #include <functional>
#include "cppa/actor.hpp" #include "cppa/actor.hpp"
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/extend.hpp" #include "cppa/extend.hpp"
#include "cppa/channel.hpp" #include "cppa/channel.hpp"
#include "cppa/behavior.hpp" #include "cppa/behavior.hpp"
...@@ -423,7 +423,7 @@ class local_actor : public extend<abstract_actor>::with<memory_cached> { ...@@ -423,7 +423,7 @@ class local_actor : public extend<abstract_actor>::with<memory_cached> {
mailbox_element* m_current_node; mailbox_element* m_current_node;
// {group => subscription} map of all joined groups // {group => subscription} map of all joined groups
std::map<group_ptr, group::subscription> m_subscriptions; std::map<group_ptr, abstract_group::subscription> m_subscriptions;
// set by quit // set by quit
std::uint32_t m_planned_exit_reason; std::uint32_t m_planned_exit_reason;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include "cppa/atom.hpp" // included for to_string(atom_value) #include "cppa/atom.hpp" // included for to_string(atom_value)
#include "cppa/actor.hpp" #include "cppa/actor.hpp"
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/object.hpp" #include "cppa/object.hpp"
#include "cppa/channel.hpp" #include "cppa/channel.hpp"
#include "cppa/node_id.hpp" #include "cppa/node_id.hpp"
......
...@@ -52,7 +52,7 @@ void ChatWidget::sendChatMessage() { ...@@ -52,7 +52,7 @@ void ChatWidget::sendChatMessage() {
match_split(line.midRef(1).toUtf8().constData(), ' ') ( match_split(line.midRef(1).toUtf8().constData(), ' ') (
on("join", arg_match) >> [=](const string& mod, const string& g) { on("join", arg_match) >> [=](const string& mod, const string& g) {
group_ptr gptr; group_ptr gptr;
try { gptr = group::get(mod, g); } try { gptr = abstract_group::get(mod, g); }
catch (exception& e) { catch (exception& e) {
print("*** exception: " + QString::fromUtf8((e.what()))); print("*** exception: " + QString::fromUtf8((e.what())));
} }
...@@ -110,7 +110,7 @@ void ChatWidget::joinGroup() { ...@@ -110,7 +110,7 @@ void ChatWidget::joinGroup() {
string gid = gname.midRef(pos+1).toUtf8().constData(); string gid = gname.midRef(pos+1).toUtf8().constData();
group_ptr gptr; group_ptr gptr;
try { try {
auto gptr = group::get(mod, gid); auto gptr = abstract_group::get(mod, gid);
send_as(as_actor(), as_actor(), atom("join"), gptr); send_as(as_actor(), as_actor(), atom("join"), gptr);
} }
catch (exception& e) { catch (exception& e) {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#include <QLineEdit> #include <QLineEdit>
#include <QTextEdit> #include <QTextEdit>
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/qtsupport/actor_widget_mixin.hpp" #include "cppa/qtsupport/actor_widget_mixin.hpp"
class ChatWidget : public cppa::actor_widget_mixin<QWidget> { class ChatWidget : public cppa::actor_widget_mixin<QWidget> {
......
...@@ -70,7 +70,7 @@ int main(int argc, char** argv) { ...@@ -70,7 +70,7 @@ int main(int argc, char** argv) {
} }
else { else {
try { try {
gptr = group::get(group_id.substr(0, p), gptr = abstract_group::get(group_id.substr(0, p),
group_id.substr(p + 1)); group_id.substr(p + 1));
} }
catch (exception& e) { catch (exception& e) {
......
...@@ -102,7 +102,7 @@ int main(int argc, char** argv) { ...@@ -102,7 +102,7 @@ int main(int argc, char** argv) {
} }
else { else {
try { try {
auto g = group::get(group_id.substr(0, p), auto g = abstract_group::get(group_id.substr(0, p),
group_id.substr(p + 1)); group_id.substr(p + 1));
anon_send(client_actor, atom("join"), g); anon_send(client_actor, atom("join"), g);
} }
...@@ -120,7 +120,7 @@ int main(int argc, char** argv) { ...@@ -120,7 +120,7 @@ int main(int argc, char** argv) {
match_each (lines, eof, split_line) ( match_each (lines, eof, split_line) (
on("/join", arg_match) >> [&](const string& mod, const string& id) { on("/join", arg_match) >> [&](const string& mod, const string& id) {
try { try {
anon_send(client_actor, atom("join"), group::get(mod, id)); anon_send(client_actor, atom("join"), abstract_group::get(mod, id));
} }
catch (exception& e) { catch (exception& e) {
cerr << "*** exception: " << to_verbose_string(e) << endl; cerr << "*** exception: " << to_verbose_string(e) << endl;
......
...@@ -40,7 +40,7 @@ int main(int argc, char** argv) { ...@@ -40,7 +40,7 @@ int main(int argc, char** argv) {
// group::get("remote", "<group>@<host>:<port>"); // group::get("remote", "<group>@<host>:<port>");
// note: it is not needed to explicitly create a <group> on the server, // note: it is not needed to explicitly create a <group> on the server,
// as groups are created on-the-fly on first usage // as groups are created on-the-fly on first usage
publish_local_groups_at(port); publish_local_groups(port);
} }
catch (bind_failure& e) { catch (bind_failure& e) {
// thrown if <port> is already in use // thrown if <port> is already in use
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#include "cppa/cppa.hpp" #include "cppa/cppa.hpp"
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/any_tuple.hpp" #include "cppa/any_tuple.hpp"
#include "cppa/singletons.hpp" #include "cppa/singletons.hpp"
#include "cppa/util/shared_spinlock.hpp" #include "cppa/util/shared_spinlock.hpp"
...@@ -41,49 +41,49 @@ ...@@ -41,49 +41,49 @@
namespace cppa { namespace cppa {
intrusive_ptr<group> group::get(const std::string& arg0, intrusive_ptr<abstract_group> abstract_group::get(const std::string& arg0,
const std::string& arg1) { const std::string& arg1) {
return get_group_manager()->get(arg0, arg1); return get_group_manager()->get(arg0, arg1);
} }
intrusive_ptr<group> group::anonymous() { intrusive_ptr<abstract_group> abstract_group::anonymous() {
return get_group_manager()->anonymous(); return get_group_manager()->anonymous();
} }
void group::add_module(group::unique_module_ptr ptr) { void abstract_group::add_module(abstract_group::unique_module_ptr ptr) {
get_group_manager()->add_module(std::move(ptr)); get_group_manager()->add_module(std::move(ptr));
} }
group::module_ptr group::get_module(const std::string& module_name) { abstract_group::module_ptr abstract_group::get_module(const std::string& module_name) {
return get_group_manager()->get_module(module_name); return get_group_manager()->get_module(module_name);
} }
group::subscription::subscription(const channel& s, abstract_group::subscription::subscription(const channel& s,
const intrusive_ptr<group>& g) const intrusive_ptr<abstract_group>& g)
: m_subscriber(s), m_group(g) { } : m_subscriber(s), m_group(g) { }
group::subscription::~subscription() { abstract_group::subscription::~subscription() {
if (valid()) m_group->unsubscribe(m_subscriber); if (valid()) m_group->unsubscribe(m_subscriber);
} }
group::module::module(std::string name) : m_name(std::move(name)) { } abstract_group::module::module(std::string name) : m_name(std::move(name)) { }
const std::string& group::module::name() { const std::string& abstract_group::module::name() {
return m_name; return m_name;
} }
group::group(group::module_ptr mod, std::string id) abstract_group::abstract_group(abstract_group::module_ptr mod, std::string id)
: m_module(mod), m_identifier(std::move(id)) { } : m_module(mod), m_identifier(std::move(id)) { }
const std::string& group::identifier() const { const std::string& abstract_group::identifier() const {
return m_identifier; return m_identifier;
} }
group::module_ptr group::get_module() const { abstract_group::module_ptr abstract_group::get_module() const {
return m_module; return m_module;
} }
const std::string& group::module_name() const { const std::string& abstract_group::module_name() const {
return get_module()->name(); return get_module()->name();
} }
...@@ -91,7 +91,7 @@ struct group_nameserver : event_based_actor { ...@@ -91,7 +91,7 @@ struct group_nameserver : event_based_actor {
behavior make_behavior() override { behavior make_behavior() override {
return ( return (
on(atom("GET_GROUP"), arg_match) >> [](const std::string& name) { on(atom("GET_GROUP"), arg_match) >> [](const std::string& name) {
return make_cow_tuple(atom("GROUP"), group::get("local", name)); return make_cow_tuple(atom("GROUP"), abstract_group::get("local", name));
}, },
on(atom("SHUTDOWN")) >> [=] { on(atom("SHUTDOWN")) >> [=] {
quit(); quit();
...@@ -100,7 +100,7 @@ struct group_nameserver : event_based_actor { ...@@ -100,7 +100,7 @@ struct group_nameserver : event_based_actor {
} }
}; };
void publish_local_groups_at(std::uint16_t port, const char* addr) { void publish_local_groups(std::uint16_t port, const char* addr) {
auto gn = spawn<group_nameserver, hidden>(); auto gn = spawn<group_nameserver, hidden>();
try { try {
publish(gn, port, addr); publish(gn, port, addr);
......
...@@ -65,7 +65,7 @@ typedef util::upgrade_lock_guard<util::shared_spinlock> upgrade_guard; ...@@ -65,7 +65,7 @@ typedef util::upgrade_lock_guard<util::shared_spinlock> upgrade_guard;
class local_broker; class local_broker;
class local_group_module; class local_group_module;
class local_group : public group { class local_group : public abstract_group {
public: public:
...@@ -101,7 +101,7 @@ class local_group : public group { ...@@ -101,7 +101,7 @@ class local_group : public group {
return {success, m_subscribers.size()}; return {success, m_subscribers.size()};
} }
group::subscription subscribe(const channel& who) { abstract_group::subscription subscribe(const channel& who) {
CPPA_LOG_TRACE(CPPA_TARG(who, to_string)); CPPA_LOG_TRACE(CPPA_TARG(who, to_string));
if (add_subscriber(who).first) { if (add_subscriber(who).first) {
return {who, this}; return {who, this};
...@@ -224,7 +224,7 @@ class local_group_proxy : public local_group { ...@@ -224,7 +224,7 @@ class local_group_proxy : public local_group {
m_proxy_broker = spawn<proxy_broker, hidden>(this); m_proxy_broker = spawn<proxy_broker, hidden>(this);
} }
group::subscription subscribe(const channel& who) { abstract_group::subscription subscribe(const channel& who) {
CPPA_LOG_TRACE(CPPA_TSARG(who)); CPPA_LOG_TRACE(CPPA_TSARG(who));
auto res = add_subscriber(who); auto res = add_subscriber(who);
if (res.first) { if (res.first) {
...@@ -282,9 +282,9 @@ class proxy_broker : public event_based_actor { ...@@ -282,9 +282,9 @@ class proxy_broker : public event_based_actor {
}; };
class local_group_module : public group::module { class local_group_module : public abstract_group::module {
typedef group::module super; typedef abstract_group::module super;
public: public:
...@@ -309,7 +309,7 @@ class local_group_module : public group::module { ...@@ -309,7 +309,7 @@ class local_group_module : public group::module {
} }
} }
intrusive_ptr<group> deserialize(deserializer* source) { intrusive_ptr<abstract_group> deserialize(deserializer* source) {
// deserialize {identifier, process_id, node_id} // deserialize {identifier, process_id, node_id}
auto identifier = source->read<string>(); auto identifier = source->read<string>();
// deserialize broker // deserialize broker
...@@ -358,16 +358,16 @@ class local_group_module : public group::module { ...@@ -358,16 +358,16 @@ class local_group_module : public group::module {
}; };
class remote_group : public group { class remote_group : public abstract_group {
typedef group super; typedef abstract_group super;
public: public:
remote_group(group::module_ptr parent, string id, local_group_ptr decorated) remote_group(abstract_group::module_ptr parent, string id, local_group_ptr decorated)
: super(parent, move(id)), m_decorated(decorated) { } : super(parent, move(id)), m_decorated(decorated) { }
group::subscription subscribe(const channel& who) { abstract_group::subscription subscribe(const channel& who) {
CPPA_LOG_TRACE(CPPA_TSARG(who)); CPPA_LOG_TRACE(CPPA_TSARG(who));
return m_decorated->subscribe(who); return m_decorated->subscribe(who);
} }
...@@ -452,15 +452,15 @@ class shared_map : public ref_counted { ...@@ -452,15 +452,15 @@ class shared_map : public ref_counted {
typedef intrusive_ptr<shared_map> shared_map_ptr; typedef intrusive_ptr<shared_map> shared_map_ptr;
class remote_group_module : public group::module { class remote_group_module : public abstract_group::module {
typedef group::module super; typedef abstract_group::module super;
public: public:
remote_group_module() : super("remote") { remote_group_module() : super("remote") {
auto sm = make_counted<shared_map>(); auto sm = make_counted<shared_map>();
group::module_ptr _this = this; abstract_group::module_ptr _this = this;
m_map = sm; m_map = sm;
m_map->m_worker = spawn<hidden>([=](event_based_actor* self) -> behavior { m_map->m_worker = spawn<hidden>([=](event_based_actor* self) -> behavior {
CPPA_LOGC_TRACE(detail::demangle(typeid(*_this)), CPPA_LOGC_TRACE(detail::demangle(typeid(*_this)),
...@@ -545,15 +545,15 @@ class remote_group_module : public group::module { ...@@ -545,15 +545,15 @@ class remote_group_module : public group::module {
}); });
} }
intrusive_ptr<group> get(const std::string& group_name) { intrusive_ptr<abstract_group> get(const std::string& group_name) {
return m_map->get(group_name); return m_map->get(group_name);
} }
intrusive_ptr<group> deserialize(deserializer* source) { intrusive_ptr<abstract_group> deserialize(deserializer* source) {
return get(source->read<string>()); return get(source->read<string>());
} }
void serialize(group* ptr, serializer* sink) { void serialize(abstract_group* ptr, serializer* sink) {
sink->write_value(ptr->identifier()); sink->write_value(ptr->identifier());
} }
...@@ -566,7 +566,7 @@ class remote_group_module : public group::module { ...@@ -566,7 +566,7 @@ class remote_group_module : public group::module {
local_group::local_group(bool spawn_local_broker, local_group::local_group(bool spawn_local_broker,
local_group_module* mod, local_group_module* mod,
string id) string id)
: group(mod, move(id)) { : abstract_group(mod, move(id)) {
if (spawn_local_broker) m_broker = spawn<local_broker, hidden>(this); if (spawn_local_broker) m_broker = spawn<local_broker, hidden>(this);
} }
...@@ -587,19 +587,19 @@ atomic<size_t> m_ad_hoc_id; ...@@ -587,19 +587,19 @@ atomic<size_t> m_ad_hoc_id;
namespace cppa { namespace detail { namespace cppa { namespace detail {
group_manager::group_manager() { group_manager::group_manager() {
group::unique_module_ptr ptr(new local_group_module); abstract_group::unique_module_ptr ptr(new local_group_module);
m_mmap.insert(make_pair(string("local"), move(ptr))); m_mmap.insert(make_pair(string("local"), move(ptr)));
ptr.reset(new remote_group_module); ptr.reset(new remote_group_module);
m_mmap.insert(make_pair(string("remote"), move(ptr))); m_mmap.insert(make_pair(string("remote"), move(ptr)));
} }
intrusive_ptr<group> group_manager::anonymous() { intrusive_ptr<abstract_group> group_manager::anonymous() {
string id = "__#"; string id = "__#";
id += std::to_string(++m_ad_hoc_id); id += std::to_string(++m_ad_hoc_id);
return get_module("local")->get(id); return get_module("local")->get(id);
} }
intrusive_ptr<group> group_manager::get(const string& module_name, intrusive_ptr<abstract_group> group_manager::get(const string& module_name,
const string& group_identifier) { const string& group_identifier) {
auto mod = get_module(module_name); auto mod = get_module(module_name);
if (mod) { if (mod) {
...@@ -611,7 +611,7 @@ intrusive_ptr<group> group_manager::get(const string& module_name, ...@@ -611,7 +611,7 @@ intrusive_ptr<group> group_manager::get(const string& module_name,
throw logic_error(error_msg); throw logic_error(error_msg);
} }
void group_manager::add_module(unique_ptr<group::module> mptr) { void group_manager::add_module(unique_ptr<abstract_group::module> mptr) {
if (!mptr) return; if (!mptr) return;
const string& mname = mptr->name(); const string& mname = mptr->name();
{ // lifetime scope of guard { // lifetime scope of guard
...@@ -626,7 +626,7 @@ void group_manager::add_module(unique_ptr<group::module> mptr) { ...@@ -626,7 +626,7 @@ void group_manager::add_module(unique_ptr<group::module> mptr) {
throw logic_error(error_msg); throw logic_error(error_msg);
} }
group::module* group_manager::get_module(const string& module_name) { abstract_group::module* group_manager::get_module(const string& module_name) {
lock_guard<mutex> guard(m_mmap_mtx); lock_guard<mutex> guard(m_mmap_mtx);
auto i = m_mmap.find(module_name); auto i = m_mmap.find(module_name);
return (i != m_mmap.end()) ? i->second.get() : nullptr; return (i != m_mmap.end()) ? i->second.get() : nullptr;
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
#include "cppa/atom.hpp" #include "cppa/atom.hpp"
#include "cppa/actor.hpp" #include "cppa/actor.hpp"
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/channel.hpp" #include "cppa/channel.hpp"
#include "cppa/any_tuple.hpp" #include "cppa/any_tuple.hpp"
#include "cppa/any_tuple.hpp" #include "cppa/any_tuple.hpp"
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include <algorithm> #include <algorithm>
#include <type_traits> #include <type_traits>
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/logging.hpp" #include "cppa/logging.hpp"
#include "cppa/announce.hpp" #include "cppa/announce.hpp"
#include "cppa/any_tuple.hpp" #include "cppa/any_tuple.hpp"
...@@ -208,7 +208,7 @@ void serialize_impl(const group_ptr& ptr, serializer* sink) { ...@@ -208,7 +208,7 @@ void serialize_impl(const group_ptr& ptr, serializer* sink) {
void deserialize_impl(group_ptr& ptrref, deserializer* source) { void deserialize_impl(group_ptr& ptrref, deserializer* source) {
auto modname = source->read<std::string>(); auto modname = source->read<std::string>();
if (modname.empty()) ptrref.reset(); if (modname.empty()) ptrref.reset();
else ptrref = group::get_module(modname)->deserialize(source); else ptrref = abstract_group::get_module(modname)->deserialize(source);
} }
void serialize_impl(const channel& ptr, serializer* sink) { void serialize_impl(const channel& ptr, serializer* sink) {
...@@ -231,7 +231,7 @@ void serialize_impl(const channel& ptr, serializer* sink) { ...@@ -231,7 +231,7 @@ void serialize_impl(const channel& ptr, serializer* sink) {
serialize_impl(detail::raw_access::unsafe_cast(aptr), sink); serialize_impl(detail::raw_access::unsafe_cast(aptr), sink);
} }
else { else {
auto gptr = group_ptr{dynamic_cast<group*>(rptr)}; auto gptr = group_ptr{dynamic_cast<abstract_group*>(rptr)};
if (gptr != nullptr) { if (gptr != nullptr) {
flag = 2; flag = 2;
sink->write_value(flag); sink->write_value(flag);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "cppa/on.hpp" #include "cppa/on.hpp"
#include "cppa/cppa.hpp" #include "cppa/cppa.hpp"
#include "cppa/actor.hpp" #include "cppa/actor.hpp"
#include "cppa/group.hpp" #include "cppa/abstract_group.hpp"
#include "cppa/ref_counted.hpp" #include "cppa/ref_counted.hpp"
#include "cppa/intrusive_ptr.hpp" #include "cppa/intrusive_ptr.hpp"
......
...@@ -104,7 +104,7 @@ void spawn5_server_impl(event_based_actor* self, actor client, group_ptr grp) { ...@@ -104,7 +104,7 @@ void spawn5_server_impl(event_based_actor* self, actor client, group_ptr grp) {
// receive seven reply messages (2 local, 5 remote) // receive seven reply messages (2 local, 5 remote)
void spawn5_server(event_based_actor* self, actor client, bool inverted) { void spawn5_server(event_based_actor* self, actor client, bool inverted) {
if (!inverted) spawn5_server_impl(self, client, group::get("local", "foobar")); if (!inverted) spawn5_server_impl(self, client, abstract_group::get("local", "foobar"));
else { else {
CPPA_LOGF_INFO("request group"); CPPA_LOGF_INFO("request group");
self->sync_send(client, atom("GetGroup")).then ( self->sync_send(client, atom("GetGroup")).then (
...@@ -119,7 +119,7 @@ void spawn5_client(event_based_actor* self) { ...@@ -119,7 +119,7 @@ void spawn5_client(event_based_actor* self) {
self->become ( self->become (
on(atom("GetGroup")) >> []() -> group_ptr { on(atom("GetGroup")) >> []() -> group_ptr {
CPPA_LOGF_INFO("received {'GetGroup'}"); CPPA_LOGF_INFO("received {'GetGroup'}");
return group::get("local", "foobar"); return abstract_group::get("local", "foobar");
}, },
on(atom("Spawn5"), arg_match) >> [=](const group_ptr& grp) -> any_tuple { on(atom("Spawn5"), arg_match) >> [=](const group_ptr& grp) -> any_tuple {
CPPA_LOGF_INFO("received {'Spawn5'}"); CPPA_LOGF_INFO("received {'Spawn5'}");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment