aboutsummaryrefslogtreecommitdiff
path: root/src/commander.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2018-11-30 17:50:47 +0100
committerFelix Morgner <felix.morgner@gmail.com>2018-11-30 17:50:47 +0100
commit9f266f1ed5f45d6c673eb7b3fe6276f73ac99252 (patch)
tree6bd9bba8d8f9cf6c497cd07d4ebdef1cdaf6420f /src/commander.cpp
parent3abece6f0a7edca476ee0c493f30dda8f8bcefd5 (diff)
downloadwanda-9f266f1ed5f45d6c673eb7b3fe6276f73ac99252.tar.xz
wanda-9f266f1ed5f45d6c673eb7b3fe6276f73ac99252.zip
core: move state to connection
Diffstat (limited to 'src/commander.cpp')
-rw-r--r--src/commander.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/commander.cpp b/src/commander.cpp
index 762cd83..98fc0d0 100644
--- a/src/commander.cpp
+++ b/src/commander.cpp
@@ -22,24 +22,14 @@ void commander::start()
}
else
{
- std::clog << "[commander::start] Control connection established\n";
m_connection = wanda::make_control_connection(std::move(m_socket));
m_connection->add(this);
m_connection->start();
- send({"C", "HELLO", "1.0.0"});
+ m_connection->send({"C", "HELLO", "1.0.0"});
}
});
}
-void commander::send(message message)
-{
- if (m_connection)
- {
- std::clog << "[commander::send] sending message: " << message << '\n';
- m_connection->send(std::move(message));
- }
-}
-
void commander::on_error(wanda::control_connection::pointer connection, boost::system::error_code error)
{
std::cerr << "[commander::on_error] error occured: " << error.message() << '\n';
@@ -47,7 +37,14 @@ void commander::on_error(wanda::control_connection::pointer connection, boost::s
void commander::on_received(wanda::control_connection::pointer connection, message message)
{
- std::clog << "[commander::on_receive] Received message: " << message << '\n';
+ if (auto state = connection->current_state(); message.command == "HELLO" && state == control_connection::state::fresh)
+ {
+ connection->update(control_connection::state::established);
+ }
+ else
+ {
+ std::cerr << "[commander::on_receive] unexpected message: " << message << '\n';
+ }
}
} // namespace wanda \ No newline at end of file