Commit 4f47cb6d authored by Dominik Charousset's avatar Dominik Charousset

Avoid weak-vtables warnings

parent 34706f13
......@@ -101,6 +101,8 @@ class base_actor : public event_based_actor {
// nop
}
~base_actor();
inline actor_ostream& print() {
return m_out << m_color << m_name << " (id = " << id() << "): ";
}
......@@ -117,6 +119,10 @@ class base_actor : public event_based_actor {
actor_ostream m_out;
};
base_actor::~base_actor() {
// avoid weak-vtables warning
}
// encapsulates an HTTP request
class client_job : public base_actor {
public:
......@@ -125,6 +131,8 @@ class client_job : public base_actor {
// nop
}
~client_job();
protected:
behavior make_behavior() override {
print() << "init" << color::reset_endl;
......@@ -149,6 +157,10 @@ class client_job : public base_actor {
}
};
client_job::~client_job() {
// avoid weak-vtables warning
}
// spawns HTTP requests
class client : public base_actor {
public:
......@@ -158,6 +170,8 @@ class client : public base_actor {
// nop
}
~client();
protected:
behavior make_behavior() override {
using std::chrono::milliseconds;
......@@ -185,15 +199,20 @@ class client : public base_actor {
size_t m_count;
};
client::~client() {
// avoid weak-vtables warning
}
// manages a CURL session
class curl_worker : public base_actor {
public:
curl_worker(const actor& parent)
: base_actor(parent, "curl_worker", color::yellow) {
// nop
}
~curl_worker();
protected:
behavior make_behavior() override {
print() << "init" << color::reset_endl;
......@@ -275,6 +294,11 @@ class curl_worker : public base_actor {
buffer_type m_buf;
};
curl_worker::~curl_worker() {
// avoid weak-vtables warning
}
// manages {num_curl_workers} workers with a round-robin protocol
class curl_master : public base_actor {
public:
......@@ -282,6 +306,8 @@ class curl_master : public base_actor {
// nop
}
~curl_master();
protected:
behavior make_behavior() override {
print() << "init" << color::reset_endl;
......@@ -337,8 +363,14 @@ class curl_master : public base_actor {
std::vector<actor> m_busy_worker;
};
curl_master::~curl_master() {
// avoid weak-vtables warning
}
// signal handling for ctrl+c
namespace {
std::atomic<bool> shutdown_flag{false};
} // namespace <anonymous>
int main() {
// random number setup
......
......@@ -51,6 +51,8 @@ class blocking_actor
blocking_actor();
~blocking_actor();
/**************************************************************************
* utility stuff and receive() member function family *
**************************************************************************/
......
......@@ -30,6 +30,10 @@ blocking_actor::blocking_actor() {
is_blocking(true);
}
blocking_actor::~blocking_actor() {
// avoid weak-vtables warning
}
void blocking_actor::await_all_other_actors_done() {
detail::singletons::get_actor_registry()->await_running_count_equal(1);
}
......
......@@ -46,6 +46,8 @@ class message_builder::dynamic_msg_data : public detail::message_data {
// nop
}
~dynamic_msg_data();
const void* at(size_t pos) const override {
CAF_REQUIRE(pos < size());
return m_elements[pos]->val;
......@@ -76,6 +78,10 @@ class message_builder::dynamic_msg_data : public detail::message_data {
std::vector<uniform_value> m_elements;
};
message_builder::dynamic_msg_data::~dynamic_msg_data() {
// avoid weak-vtables warning
}
message_builder::message_builder() {
init();
}
......
......@@ -9,7 +9,9 @@ using std::cout;
using std::endl;
using namespace caf;
namespace {
std::atomic<long> s_dudes;
} // namespace <anonymous>
class dude : public event_based_actor {
public:
......@@ -17,9 +19,7 @@ class dude : public event_based_actor {
++s_dudes;
}
~dude() {
--s_dudes;
}
~dude();
behavior make_behavior() {
return {
......@@ -30,6 +30,12 @@ class dude : public event_based_actor {
}
};
dude::~dude() {
// avoid weak-vtables warning
--s_dudes;
}
behavior linking_dude(event_based_actor* self, const actor& other_dude) {
CAF_CHECKPOINT();
self->trap_exit(true);
......
......@@ -6,6 +6,7 @@ using namespace caf;
class exception_testee : public event_based_actor {
public:
~exception_testee();
exception_testee() {
set_exception_handler([](const std::exception_ptr&) -> optional<uint32_t> {
return exit_reason::user_defined + 2;
......@@ -20,6 +21,11 @@ class exception_testee : public event_based_actor {
}
};
exception_testee::~exception_testee() {
// avoid weak-vtables warning
}
void test_custom_exception_handler() {
auto handler = [](const std::exception_ptr& eptr) -> optional<uint32_t> {
try {
......
......@@ -41,6 +41,9 @@ class fixed_stack : public sb_actor<fixed_stack> {
}
);
}
~fixed_stack();
private:
size_t max_size = 10;
std::vector<int> data;
......@@ -50,6 +53,11 @@ class fixed_stack : public sb_actor<fixed_stack> {
behavior& init_state = empty;
};
fixed_stack::~fixed_stack() {
// avoid weak-vtables warning
}
void test_fixed_stack_actor() {
scoped_actor self;
auto st = spawn<fixed_stack>(size_t{10});
......
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