diff options
6 files changed, 0 insertions, 367 deletions
diff --git a/src/appMain/life_cycle.cc b/src/appMain/life_cycle.cc index 3c3895d02f..f3f7474344 100644 --- a/src/appMain/life_cycle.cc +++ b/src/appMain/life_cycle.cc @@ -292,15 +292,6 @@ bool LifeCycle::InitMessageSystem() { } #endif // DBUS_HMIADAPTER -#ifdef MQUEUE_HMIADAPTER -bool LifeCycle::InitMessageSystem() { - hmi_message_adapter_ = new hmi_message_handler::MqueueAdapter(hmi_handler_); - hmi_handler.AddHMIMessageAdapter(hmi_message_adapter_); - return true; -} - -#endif // MQUEUE_HMIADAPTER - namespace { void sig_handler(int sig) { switch (sig) { diff --git a/src/components/hmi_message_handler/CMakeLists.txt b/src/components/hmi_message_handler/CMakeLists.txt index aa10729458..49aea93bda 100644 --- a/src/components/hmi_message_handler/CMakeLists.txt +++ b/src/components/hmi_message_handler/CMakeLists.txt @@ -55,7 +55,6 @@ set (SOURCES ${COMPONENTS_DIR}/hmi_message_handler/src/hmi_message_handler_impl.cc ${COMPONENTS_DIR}/hmi_message_handler/src/messagebroker_adapter.cc ${COMPONENTS_DIR}/hmi_message_handler/src/hmi_message_adapter_impl.cc - ${COMPONENTS_DIR}/hmi_message_handler/src/mqueue_adapter.cc ${DBUS_SOURCE} ) diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/mqueue_adapter.h b/src/components/hmi_message_handler/include/hmi_message_handler/mqueue_adapter.h deleted file mode 100644 index 69634ea00e..0000000000 --- a/src/components/hmi_message_handler/include/hmi_message_handler/mqueue_adapter.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_MQUEUE_ADAPTER_H_ -#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_MQUEUE_ADAPTER_H_ - -#include <memory> -#include <mqueue.h> -#include "utils/threads/thread.h" -#include "hmi_message_handler/hmi_message_adapter_impl.h" - -namespace hmi_message_handler { - -class ReceiverThreadDelegate; - -/** - * \brief HMI message adapter for mqueue - */ -class MqueueAdapter : public HMIMessageAdapterImpl { - public: - MqueueAdapter(HMIMessageHandler* hmi_message_handler); - virtual ~MqueueAdapter(); - - protected: - virtual void SendMessageToHMI(MessageSharedPointer message); - virtual void SubscribeTo(); - - private: - mqd_t sdl_to_hmi_mqueue_; - mqd_t hmi_to_sdl_mqueue_; - - ReceiverThreadDelegate* receiver_thread_delegate_; - threads::Thread* receiver_thread_; -}; - -} // namespace hmi_message_handler -#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_MQUEUE_ADAPTER_H_ diff --git a/src/components/hmi_message_handler/src/mqueue_adapter.cc b/src/components/hmi_message_handler/src/mqueue_adapter.cc deleted file mode 100644 index 4cfebbe9e8..0000000000 --- a/src/components/hmi_message_handler/src/mqueue_adapter.cc +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "hmi_message_handler/mqueue_adapter.h" -#include "hmi_message_handler/hmi_message_handler.h" -#include "utils/logger.h" - -namespace hmi_message_handler { - -const uint32_t kMqueueSize = 100; -const uint32_t kMqueueMessageSize = 65536; -const char* kSdlToHmiQueue = "/sdl_to_hmi"; -const char* kHmiToSdlQueue = "/hmi_to_sdl"; - -CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler") - -class ReceiverThreadDelegate : public threads::ThreadDelegate { - public: - ReceiverThreadDelegate(mqd_t mqueue_descriptor, - HMIMessageHandler* hmi_message_handler) - : mqueue_descriptor_(mqueue_descriptor) - , hmi_message_handler_(hmi_message_handler) {} - - private: - virtual void threadMain() { - while (true) { - static char buffer[kMqueueMessageSize]; - const ssize_t size = - mq_receive(mqueue_descriptor_, buffer, kMqueueMessageSize, NULL); - if (-1 == size) { - LOG4CXX_ERROR(logger_, "Message queue receive failed, error " << errno); - continue; - } - const std::string message_string(buffer, buffer + size); - LOG4CXX_DEBUG(logger_, "Message: " << message_string); - MessageSharedPointer message(new application_manager::Message( - protocol_handler::MessagePriority::kDefault)); - message->set_json_message(message_string); - message->set_protocol_version(application_manager::ProtocolVersion::kHMI); - hmi_message_handler_->OnMessageReceived(message); - } - } - - const mqd_t mqueue_descriptor_; - HMIMessageHandler* hmi_message_handler_; -}; - -MqueueAdapter::MqueueAdapter(HMIMessageHandler* hmi_message_handler) - : HMIMessageAdapterImpl(hmi_message_handler) - , sdl_to_hmi_mqueue_(-1) - , hmi_to_sdl_mqueue_(-1) - , receiver_thread_(NULL) { - mq_attr mq_attributes; - mq_attributes.mq_maxmsg = kMqueueSize; - mq_attributes.mq_msgsize = kMqueueMessageSize; - sdl_to_hmi_mqueue_ = - mq_open(kSdlToHmiQueue, O_CREAT | O_RDWR, S_IRWXU, &mq_attributes); - if (-1 == sdl_to_hmi_mqueue_) { - LOG4CXX_ERROR(logger_, - "Could not open message queue " << kSdlToHmiQueue - << ", error " << errno); - return; - } - hmi_to_sdl_mqueue_ = - mq_open(kHmiToSdlQueue, O_CREAT | O_RDWR, S_IRWXU, &mq_attributes); - if (-1 == hmi_to_sdl_mqueue_) { - LOG4CXX_ERROR(logger_, - "Could not open message queue " << kHmiToSdlQueue - << ", error " << errno); - return; - } - receiver_thread_delegate_ = - new ReceiverThreadDelegate(hmi_to_sdl_mqueue_, hmi_message_handler); - receiver_thread_ = - threads::CreateThread("MqueueAdapter", receiver_thread_delegate_); - receiver_thread_->start(); -} - -MqueueAdapter::~MqueueAdapter() { - receiver_thread_->join(); - delete receiver_thread_delegate_; - threads::DeleteThread(receiver_thread_); - if (-1 != hmi_to_sdl_mqueue_) - mq_close(hmi_to_sdl_mqueue_); - if (-1 != sdl_to_hmi_mqueue_) - mq_close(sdl_to_hmi_mqueue_); - mq_unlink(kHmiToSdlQueue); - mq_unlink(kSdlToHmiQueue); -} - -void MqueueAdapter::SendMessageToHMI(const MessageSharedPointer message) { - LOG4CXX_AUTO_TRACE(logger_); - - if (-1 == sdl_to_hmi_mqueue_) { - LOG4CXX_ERROR(logger_, "Message queue is not opened"); - return; - } - const std::string& json = message->json_message(); - if (json.size() > kMqueueMessageSize) { - LOG4CXX_ERROR(logger_, "Message size " << json.size() << " is too big"); - return; - } - const int rc = mq_send(sdl_to_hmi_mqueue_, json.c_str(), json.size(), 0); - if (0 != rc) { - LOG4CXX_ERROR(logger_, "Could not send message, error " << errno); - return; - } -} - -void MqueueAdapter::SubscribeTo() { - // empty implementation of pure virtual method, actually it's not called -} - -} // namespace hmi_message_handler diff --git a/src/components/hmi_message_handler/test/mqueue_adapter_test.cc b/src/components/hmi_message_handler/test/mqueue_adapter_test.cc deleted file mode 100644 index e5c5d2a396..0000000000 --- a/src/components/hmi_message_handler/test/mqueue_adapter_test.cc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <gtest/gtest.h> -#include <gmock/gmock.h> - -#include "hmi_message_handler/hmi_message_handler.h" -#include "hmi_message_handler/mqueue_adapter.h" - -using hmi_message_handler::MessageSharedPointer; -using hmi_message_handler::HMIMessageHandler; -using hmi_message_handler::HMIMessageAdapter; -using hmi_message_handler::MqueueAdapter; -using application_manager::Message; - -class MockHandler : public HMIMessageHandler { - public: - MOCK_METHOD1(OnMessageReceived, void(MessageSharedPointer message)); - MOCK_METHOD1(AddHMIMessageAdapter, void(HMIMessageAdapter* adapter)); - MOCK_METHOD1(RemoveHMIMessageAdapter, void(HMIMessageAdapter* adapter)); - MOCK_METHOD1(OnErrorSending, void(MessageSharedPointer message)); - MOCK_METHOD1(SendMessageToHMI, void(MessageSharedPointer message)); -}; - -// TODO{ALeshin}: APPLINK-10846 -// TEST(MqueueAdapter, Send) { -// MockHandler handler; -// HMIMessageAdapter* adapter = new MqueueAdapter(&handler); - -// MessageSharedPointer message( -// new Message(protocol_handler::MessagePriority::kDefault)); -// message->set_json_message("{}"); -// adapter->SendMessageToHMI(message); - -// mqd_t mqd = mq_open("/sdl_to_hmi", O_RDONLY); -// ASSERT_NE(-1, mqd); -// static char buf[65536]; -// ssize_t sz = mq_receive(mqd, buf, 65536, NULL); -// ASSERT_EQ(2, sz); -// EXPECT_STREQ("{}", buf); - -// delete adapter; -//} - -// TODO{ALeshin}: APPLINK-10846 -// TEST(MqueueAdapter, Receive) { -// MockHandler handler; -// HMIMessageAdapter* adapter = new MqueueAdapter(&handler); - -// using ::testing::Property; -// using ::testing::Pointee; -// EXPECT_CALL( -// handler, -// OnMessageReceived(Property( -// &MessageSharedPointer::get, -// Pointee(Property(&Message::json_message, std::string("()")))))); - -// mqd_t mqd = mq_open("/hmi_to_sdl", O_WRONLY); -// ASSERT_NE(-1, mqd); -// const char buf[] = "()"; -// int rc = mq_send(mqd, buf, sizeof(buf) - 1, 0); -// ASSERT_EQ(0, rc); - -// delete adapter; -//} diff --git a/src/components/include/test/hmi_message_handler/mock_hmi_message_handler.h b/src/components/include/test/hmi_message_handler/mock_hmi_message_handler.h deleted file mode 100644 index 19aa92f932..0000000000 --- a/src/components/include/test/hmi_message_handler/mock_hmi_message_handler.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef SRC_COMPONENTS_INCLUDE_TEST_HMI_MESSAGE_HANDLER_MOCK_HMI_MESSAGE_HANDLER_H_ -#define SRC_COMPONENTS_INCLUDE_TEST_HMI_MESSAGE_HANDLER_MOCK_HMI_MESSAGE_HANDLER_H_ - -#include "gmock/gmock.h" -#include "hmi_message_handler/hmi_message_handler.h" - -namespace test { -namespace components { -namespace hmi_message_handler_test { - -using hmi_message_handler::HMIMessageAdapter; - -class MockHMIMessageHandler : public ::hmi_message_handler::HMIMessageHandler { - public: - MOCK_METHOD1(AddHMIMessageAdapter, void(HMIMessageAdapter* adapter)); - MOCK_METHOD1(RemoveHMIMessageAdapter, void(HMIMessageAdapter* adapter)); -}; -} // namespace hmi_message_handler_test -} // namespace components -} // namespace test - -#endif // SRC_COMPONENTS_INCLUDE_TEST_HMI_MESSAGE_HANDLER_MOCK_HMI_MESSAGE_HANDLER_H_ |