diff options
Diffstat (limited to 'src/components/transport_manager/src/android/android_socket_connection.cc')
-rw-r--r-- | src/components/transport_manager/src/android/android_socket_connection.cc | 124 |
1 files changed, 67 insertions, 57 deletions
diff --git a/src/components/transport_manager/src/android/android_socket_connection.cc b/src/components/transport_manager/src/android/android_socket_connection.cc index 8915c26079..b6810b5f6f 100644 --- a/src/components/transport_manager/src/android/android_socket_connection.cc +++ b/src/components/transport_manager/src/android/android_socket_connection.cc @@ -34,8 +34,8 @@ #include "transport_manager/android/android_socket_connection.h" #include "transport_manager/android/android_ipc_device.h" -#include "transport_manager/transport_adapter/transport_adapter_controller.h" #include "transport_manager/android/android_transport_adapter.h" +#include "transport_manager/transport_adapter/transport_adapter_controller.h" #include "utils/logger.h" @@ -51,80 +51,90 @@ AndroidSocketConnection::AndroidSocketConnection( , device_uid_(device_uid) , app_handle_(app_handle) , controller_(controller) - , sender_(new LocalSocketSender(std::bind(&AndroidSocketConnection::OnMessageSent, this, std::placeholders::_1), - std::bind(&AndroidSocketConnection::OnClientConnectionDone, this, std::placeholders::_1))) + , sender_(new LocalSocketSender( + std::bind(&AndroidSocketConnection::OnMessageSent, + this, + std::placeholders::_1), + std::bind(&AndroidSocketConnection::OnClientConnectionDone, + this, + std::placeholders::_1))) , receiver_(new LocalSocketReceiver( - std::bind(&AndroidSocketConnection::ProcessMessage, this, std::placeholders::_1))) - {} + std::bind(&AndroidSocketConnection::ProcessMessage, + this, + std::placeholders::_1))) {} AndroidSocketConnection::~AndroidSocketConnection() {} void AndroidSocketConnection::ProcessMessage(const std::vector<uint8_t>& data) { - if (data.size() > 0) { - SDL_LOG_DEBUG("Received " << data.size() << " bytes from Java adapter"); - ::protocol_handler::RawMessagePtr frame( - new protocol_handler::RawMessage(0, 0, data.data(), data.size(), false)); - controller_->DataReceiveDone(device_uid_, app_handle_, frame); - } else { - controller_->DataReceiveFailed(device_uid_, app_handle_, DataReceiveError()); - } + if (data.size() > 0) { + SDL_LOG_DEBUG("Received " << data.size() << " bytes from Java adapter"); + ::protocol_handler::RawMessagePtr frame(new protocol_handler::RawMessage( + 0, 0, data.data(), data.size(), false)); + controller_->DataReceiveDone(device_uid_, app_handle_, frame); + } else { + controller_->DataReceiveFailed( + device_uid_, app_handle_, DataReceiveError()); + } } -void AndroidSocketConnection::OnMessageSent(protocol_handler::RawMessagePtr msg) { - if (msg) { - SDL_LOG_DEBUG("Successfully sent " << msg->data_size() << " bytes to Java adapter"); - controller_->DataSendDone(device_uid_, app_handle_, msg); - } else { - SDL_LOG_ERROR("Failed to send " << msg->data_size() << " bytes to Java adapter"); - controller_->DataSendFailed(device_uid_, app_handle_, msg, DataSendError()); - } +void AndroidSocketConnection::OnMessageSent( + protocol_handler::RawMessagePtr msg) { + if (msg) { + SDL_LOG_DEBUG("Successfully sent " << msg->data_size() + << " bytes to Java adapter"); + controller_->DataSendDone(device_uid_, app_handle_, msg); + } else { + SDL_LOG_ERROR("Failed to send " << msg->data_size() + << " bytes to Java adapter"); + controller_->DataSendFailed(device_uid_, app_handle_, msg, DataSendError()); + } } void AndroidSocketConnection::OnClientConnectionDone(const bool is_connected) { - if (is_connected) { - SDL_LOG_DEBUG("Successfully connected to Java adapter"); - controller_->ConnectDone(device_uid_, app_handle_); - } else { - SDL_LOG_ERROR("Failed to connect to Java adapter"); - controller_->ConnectFailed(device_uid_, app_handle_, ConnectError()); - } + if (is_connected) { + SDL_LOG_DEBUG("Successfully connected to Java adapter"); + controller_->ConnectDone(device_uid_, app_handle_); + } else { + SDL_LOG_ERROR("Failed to connect to Java adapter"); + controller_->ConnectFailed(device_uid_, app_handle_, ConnectError()); + } } -TransportAdapter::Error -AndroidSocketConnection::SendData(::protocol_handler::RawMessagePtr message) { - SDL_LOG_AUTO_TRACE(); - sender_->Send(message); - return TransportAdapter::OK; +TransportAdapter::Error AndroidSocketConnection::SendData( + ::protocol_handler::RawMessagePtr message) { + SDL_LOG_AUTO_TRACE(); + sender_->Send(message); + return TransportAdapter::OK; } TransportAdapter::Error AndroidSocketConnection::Disconnect() { - SDL_LOG_DEBUG("Disconnecting from Java adapter"); - sender_->Stop(); - if (sender_thread_.joinable()) { - sender_thread_.join(); - } - - receiver_->Stop(); - if (receiver_thread_.joinable()) { - receiver_thread_.join(); - } - - return TransportAdapter::OK; + SDL_LOG_DEBUG("Disconnecting from Java adapter"); + sender_->Stop(); + if (sender_thread_.joinable()) { + sender_thread_.join(); + } + + receiver_->Stop(); + if (receiver_thread_.joinable()) { + receiver_thread_.join(); + } + + return TransportAdapter::OK; } TransportAdapter::Error AndroidSocketConnection::Start() { - SDL_LOG_DEBUG("Initializing Android IPC connection threads"); - - receiver_thread_ = std::thread([&]() { - receiver_->Init(controller_->GetReceiverSocketName()); - receiver_->Run(); - }); - sender_thread_ = std::thread([&]() { - sender_->Init(controller_->GetSenderSocketName()); - sender_->Run(); - }); - - return TransportAdapter::OK; + SDL_LOG_DEBUG("Initializing Android IPC connection threads"); + + receiver_thread_ = std::thread([&]() { + receiver_->Init(controller_->GetReceiverSocketName()); + receiver_->Run(); + }); + sender_thread_ = std::thread([&]() { + sender_->Init(controller_->GetSenderSocketName()); + sender_->Run(); + }); + + return TransportAdapter::OK; } } // namespace transport_adapter |