From 7f617254f0e1890764565547707dd73de711b41f Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 22 Jul 2021 19:03:34 +0300 Subject: [PATCH] Move HandshakeActor methods to cpp. --- td/mtproto/HandshakeActor.cpp | 20 ++++++++++++++++++++ td/mtproto/HandshakeActor.h | 27 ++++++++++----------------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/td/mtproto/HandshakeActor.cpp b/td/mtproto/HandshakeActor.cpp index d11a169c1..3bb95d1e2 100644 --- a/td/mtproto/HandshakeActor.cpp +++ b/td/mtproto/HandshakeActor.cpp @@ -49,6 +49,26 @@ void HandshakeActor::loop() { } } +void HandshakeActor::hangup() { + finish(Status::Error(1, "Canceled")); + stop(); +} + +void HandshakeActor::timeout_expired() { + finish(Status::Error("Timeout expired")); + stop(); +} + +void HandshakeActor::tear_down() { + finish(Status::OK()); +} + +void HandshakeActor::finish(Status status) { + // NB: order may be important for parent + return_connection(std::move(status)); + return_handshake(); +} + void HandshakeActor::return_connection(Status status) { auto raw_connection = connection_->move_as_raw_connection(); if (!raw_connection) { diff --git a/td/mtproto/HandshakeActor.h b/td/mtproto/HandshakeActor.h index a49b56f89..61b5010e3 100644 --- a/td/mtproto/HandshakeActor.h +++ b/td/mtproto/HandshakeActor.h @@ -18,7 +18,7 @@ namespace td { namespace mtproto { -// Has Raw connection. Generates new auth key. And returns it and raw_connection. Or error... +// Owns RawConnection. Generates new auth key. And returns it and RawConnection. Or error... class HandshakeActor final : public Actor { public: HandshakeActor(unique_ptr handshake, unique_ptr raw_connection, @@ -36,26 +36,19 @@ class HandshakeActor final : public Actor { Promise> handshake_promise_; void start_up() final; - void tear_down() final { - finish(Status::OK()); - } - void hangup() final { - finish(Status::Error(1, "Canceled")); - stop(); - } - void timeout_expired() final { - finish(Status::Error("Timeout expired")); - stop(); - } + + void tear_down() final; + + void hangup() final; + + void timeout_expired() final; + void loop() final; - void finish(Status status) { - // NB: order may be important for parent - return_connection(std::move(status)); - return_handshake(); - } + void finish(Status status); void return_connection(Status status); + void return_handshake(); };