usb code
authorJustin Dickow <jjdickow@gmail.com>
Wed, 9 Jul 2014 15:44:36 +0000 (11:44 -0400)
committerJustin Dickow <jjdickow@gmail.com>
Wed, 9 Jul 2014 15:44:36 +0000 (11:44 -0400)
Signed-off-by: Justin Dickow <jjdickow@gmail.com>
src/components/transport_manager/include/transport_manager/usb/usb_adapter.h [new file with mode: 0644]
src/components/transport_manager/src/transport_manager_default.cc
src/components/transport_manager/src/usb/usb_adapter.cc [new file with mode: 0644]

diff --git a/src/components/transport_manager/include/transport_manager/usb/usb_adapter.h b/src/components/transport_manager/include/transport_manager/usb/usb_adapter.h
new file mode 100644 (file)
index 0000000..8f5b4e5
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * 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_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_ADAPTER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_ADAPTER_H_
+
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class UsbAdapter : public TransportAdapterImpl {
+ public:
+  UsbAdapter();
+  virtual ~UsbAdapter();
+
+ protected:
+  virtual DeviceType GetDeviceType() const;
+  virtual bool IsInitialised() const;
+  virtual TransportAdapter::Error Init();
+  virtual bool ToBeAutoConnected(DeviceSptr device) const;
+
+ private:
+  bool is_initialised_;
+  UsbHandlerSptr usb_handler_;
+};
+
+}  // namespace transport_adapter
+}  // namespace transport_manager
+
+#endif  // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_AOA_ADAPTER
index 0d6efbe..b3c2a77 100644 (file)
@@ -1,8 +1,5 @@
 /*
- * \file transport_manager_default.cc
- * \brief TransportManagerDefault class source file.
- *
- * Copyright (c) 2013, Ford Motor Company
+ * Copyright (c) 2014, Ford Motor Company
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -41,7 +38,7 @@
 #endif
 
 #ifdef USB_SUPPORT
-#include "transport_manager/usb/usb_aoa_adapter.h"
+#include "transport_manager/usb/usb_adapter.h"
 #endif
 
 
@@ -58,7 +55,7 @@ int TransportManagerDefault::Init() {
   const uint16_t kTcpAdapterPort = 12345;
   AddTransportAdapter(new transport_adapter::TcpTransportAdapter(kTcpAdapterPort));
 #ifdef USB_SUPPORT
-  AddTransportAdapter(new transport_adapter::UsbAoaAdapter);
+  AddTransportAdapter(new transport_adapter::UsbAdapter);
 #endif
 
   return E_SUCCESS;
diff --git a/src/components/transport_manager/src/usb/usb_adapter.cc b/src/components/transport_manager/src/usb/usb_adapter.cc
new file mode 100644 (file)
index 0000000..f0a6aa2
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * 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 "transport_manager/usb/usb_adapter.h"
+#include "transport_manager/usb/usb_device_scanner.h"
+#include "transport_manager/usb/usb_connection_factory.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+UsbAdapter::UsbAdapter()
+    : TransportAdapterImpl(new UsbDeviceScanner(this),
+                           new UsbConnectionFactory(this), 0),
+      is_initialised_(false),
+      usb_handler_(new UsbHandler()) {
+  static_cast<UsbDeviceScanner*>(device_scanner_)->SetUsbHandler(usb_handler_);
+  static_cast<UsbConnectionFactory*>(server_connection_factory_)
+      ->SetUsbHandler(usb_handler_);
+}
+
+UsbAdapter::~UsbAdapter() {}
+
+DeviceType UsbAdapter::GetDeviceType() const { return "sdl-usb-aoa"; }
+
+bool UsbAdapter::IsInitialised() const {
+  return is_initialised_ && TransportAdapterImpl::IsInitialised();
+}
+
+TransportAdapter::Error UsbAdapter::Init() {
+  TransportAdapter::Error error = usb_handler_->Init();
+  if (error != TransportAdapter::OK) {
+    return error;
+  }
+  error = TransportAdapterImpl::Init();
+  if (error != TransportAdapter::OK) {
+    return error;
+  }
+  is_initialised_ = true;
+  return TransportAdapter::OK;
+}
+
+bool UsbAdapter::ToBeAutoConnected(DeviceSptr device) const {
+  return true;
+}
+
+}  // namespace transport_adapter
+}  // namespace transport_manager