diff options
author | Justin Dickow <jjdickow@gmail.com> | 2014-03-18 13:46:46 -0400 |
---|---|---|
committer | Justin Dickow <jjdickow@gmail.com> | 2014-03-18 13:46:46 -0400 |
commit | ba492fb83c258bc60ca68120ce964a95b41133b5 (patch) | |
tree | af99c087941d65a19831397c1ec5eb34850cfc7f /SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h | |
parent | 8504605b01177da2e55bee6abe4c3f20c82da379 (diff) | |
download | smartdevicelink-ba492fb83c258bc60ca68120ce964a95b41133b5.tar.gz |
initial commit for API 3.0 (replaced all)
Diffstat (limited to 'SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h')
-rw-r--r-- | SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h new file mode 100644 index 000000000..44565c84d --- /dev/null +++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h @@ -0,0 +1,192 @@ +/** + * \file transport_adapter_controller.h + * \brief TransportAdapterController class header file. + * Copyright (c) 2013, 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_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_CONTROLLER_H_ +#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_CONTROLLER_H_ + +#include "transport_manager/transport_adapter/device.h" +#include "transport_manager/transport_adapter/connection.h" + +namespace transport_manager { + +namespace transport_adapter { + + +class TransportAdapterController { + public: + + virtual ~TransportAdapterController() { + } + + /** + * @brief Add device to the container(map), if container doesn't hold it yet. + * + * @param device Smart pointer to the device. + * + * @return Smart pointer to the device. + */ + virtual DeviceSptr AddDevice(DeviceSptr device) = 0; + + /** + * @brief Search for device in container of devices, if it is not there - adds it. + * + * @param devices Container(vector) of smart pointers to devices. + */ + virtual void SearchDeviceDone(const DeviceVector& devices) = 0; + + /** + * @brief Launch OnSearchDeviceFailed event in device adapter listener. + * + * @param error Error class that contains details of this error situation. + */ + virtual void SearchDeviceFailed(const SearchDeviceError& error) = 0; + + /** + * @brief Find device in the internal container(map). + * + * @param device_handle Device unique identifier. + * + * @return Smart pointer to the device. + */ + virtual DeviceSptr FindDevice(const DeviceUID& device_handle) const = 0; + + /** + * @brief Create connection and fill its parameters. + * + * @param connection Smart pointer to the connection. + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + */ + virtual void ConnectionCreated(ConnectionSptr connection, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle) = 0; + + /** + * @brief Make state of specified connection - ESTABLISHED and launch OnConnectDone event in device adapter listener. + * + * @param devcie_handle Device unique identifier. + * @param app_handle Handle of application. + */ + virtual void ConnectDone(const DeviceUID& device_handle, + const ApplicationHandle& app_handle) = 0; + + /** + * @brief Delete connection from the container of connections and launch OnConnectFailed event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + */ + virtual void ConnectFailed(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ConnectError& error) = 0; + + /** + * @brief Make state of specified connection - FINILIZING. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + */ + virtual void ConnectionFinished(const DeviceUID& device_handle, + const ApplicationHandle& app_handle) = 0; + + /** + * @brief Set specified connection state to FINILIZING and launch OnUnexpectedDisconnect event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + * @param error Error class that contains details of this error situation. + */ + virtual void ConnectionAborted(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const CommunicationError& error) = 0; + + /** + * @brief Delete specified connection from the container(map) of connections and launch event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + */ + virtual void DisconnectDone(const DeviceUID& device_handle, + const ApplicationHandle& app_handle) = 0; + + /** + * @brief Launch OnDataReceiveDone event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + * @param message Smart pointer to the raw message. + */ + virtual void DataReceiveDone(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + RawMessageSptr message) = 0; + + /** + * @brief Launch OnDataReceiveFailed event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + * @param error Class that contains details of this error situation. + */ + virtual void DataReceiveFailed(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const DataReceiveError&) = 0; + + /** + * @brief Launch OnDataSendDone event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + * @param message Smart pointer to raw message. + */ + virtual void DataSendDone(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + RawMessageSptr message) = 0; + + /** + * @brief Launch OnDataSendFailed event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + * @param message Smart pointer to raw message. + * @param error Class that contains details of this error situation. + */ + virtual void DataSendFailed(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + RawMessageSptr message, const DataSendError&) = 0; +}; + +} // namespace transport_adapter +} // namespace transport_manager + +#endif /* transport_adapter_CONTROLLER_H_ */ |