| Index: chrome/browser/extensions/api/serial/serial_connection.h
|
| diff --git a/chrome/browser/extensions/api/serial/serial_connection.h b/chrome/browser/extensions/api/serial/serial_connection.h
|
| deleted file mode 100644
|
| index 6ad87d6aa5d1e0af90695a9659276d706ab77fdd..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/serial/serial_connection.h
|
| +++ /dev/null
|
| @@ -1,216 +0,0 @@
|
| -// Copyright 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_BROWSER_EXTENSIONS_API_SERIAL_SERIAL_CONNECTION_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_API_SERIAL_SERIAL_CONNECTION_H_
|
| -
|
| -#include <set>
|
| -#include <string>
|
| -
|
| -#include "base/callback.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/time/time.h"
|
| -#include "chrome/common/extensions/api/serial.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "device/serial/serial_io_handler.h"
|
| -#include "extensions/browser/api/api_resource.h"
|
| -#include "extensions/browser/api/api_resource_manager.h"
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace extensions {
|
| -
|
| -// Encapsulates an open serial port.
|
| -// NOTE: Instances of this object should only be constructed on the IO thread,
|
| -// and all methods should only be called on the IO thread unless otherwise
|
| -// noted.
|
| -class SerialConnection : public ApiResource,
|
| - public base::SupportsWeakPtr<SerialConnection> {
|
| - public:
|
| - typedef device::SerialIoHandler::OpenCompleteCallback OpenCompleteCallback;
|
| -
|
| - // This is the callback type expected by Receive. Note that an error result
|
| - // does not necessarily imply an empty |data| string, since a receive may
|
| - // complete partially before being interrupted by an error condition.
|
| - typedef base::Callback<
|
| - void(const std::string& data, api::serial::ReceiveError error)>
|
| - ReceiveCompleteCallback;
|
| -
|
| - // This is the callback type expected by Send. Note that an error result
|
| - // does not necessarily imply 0 bytes sent, since a send may complete
|
| - // partially before being interrupted by an error condition.
|
| - typedef base::Callback<void(int bytes_sent, api::serial::SendError error)>
|
| - SendCompleteCallback;
|
| -
|
| - SerialConnection(const std::string& port,
|
| - const std::string& owner_extension_id);
|
| - virtual ~SerialConnection();
|
| -
|
| - // ApiResource override.
|
| - virtual bool IsPersistent() const OVERRIDE;
|
| -
|
| - void set_persistent(bool persistent) { persistent_ = persistent; }
|
| - bool persistent() const { return persistent_; }
|
| -
|
| - void set_name(const std::string& name) { name_ = name; }
|
| - const std::string& name() const { return name_; }
|
| -
|
| - void set_buffer_size(int buffer_size);
|
| - int buffer_size() const { return buffer_size_; }
|
| -
|
| - void set_receive_timeout(int receive_timeout);
|
| - int receive_timeout() const { return receive_timeout_; }
|
| -
|
| - void set_send_timeout(int send_timeout);
|
| - int send_timeout() const { return send_timeout_; }
|
| -
|
| - void set_paused(bool paused);
|
| - bool paused() const { return paused_; }
|
| -
|
| - // Initiates an asynchronous Open of the device. It is the caller's
|
| - // responsibility to ensure that this SerialConnection stays alive
|
| - // until |callback| is run.
|
| - void Open(const OpenCompleteCallback& callback);
|
| -
|
| - // Begins an asynchronous receive operation. Calling this while a Receive
|
| - // is already pending is a no-op and returns |false| without calling
|
| - // |callback|.
|
| - bool Receive(const ReceiveCompleteCallback& callback);
|
| -
|
| - // Begins an asynchronous send operation. Calling this while a Send
|
| - // is already pending is a no-op and returns |false| without calling
|
| - // |callback|.
|
| - bool Send(const std::string& data, const SendCompleteCallback& callback);
|
| -
|
| - // Flushes input and output buffers.
|
| - bool Flush() const;
|
| -
|
| - // Configures some subset of port options for this connection.
|
| - // Omitted options are unchanged. Returns |true| iff the configuration
|
| - // changes were successful.
|
| - bool Configure(const api::serial::ConnectionOptions& options);
|
| -
|
| - // Connection configuration query. Fills values in an existing
|
| - // ConnectionInfo. Returns |true| iff the connection's information
|
| - // was successfully retrieved.
|
| - bool GetInfo(api::serial::ConnectionInfo* info) const;
|
| -
|
| - // Reads current control signals (DCD, CTS, etc.) into an existing
|
| - // DeviceControlSignals structure. Returns |true| iff the signals were
|
| - // successfully read.
|
| - bool GetControlSignals(
|
| - api::serial::DeviceControlSignals* control_signals) const;
|
| -
|
| - // Sets one or more control signals (DTR and/or RTS). Returns |true| iff
|
| - // the signals were successfully set. Unininitialized flags in the
|
| - // HostControlSignals structure are left unchanged.
|
| - bool SetControlSignals(
|
| - const api::serial::HostControlSignals& control_signals);
|
| -
|
| - // Overrides |io_handler_| for testing.
|
| - void SetIoHandlerForTest(scoped_refptr<device::SerialIoHandler> handler);
|
| -
|
| - static const BrowserThread::ID kThreadId = BrowserThread::IO;
|
| -
|
| - private:
|
| - friend class ApiResourceManager<SerialConnection>;
|
| - static const char* service_name() { return "SerialConnectionManager"; }
|
| -
|
| - // Encapsulates a cancelable, delayed timeout task. Posts a delayed
|
| - // task upon construction and implicitly cancels the task upon
|
| - // destruction if it hasn't run yet.
|
| - class TimeoutTask {
|
| - public:
|
| - TimeoutTask(const base::Closure& closure, const base::TimeDelta& delay);
|
| - ~TimeoutTask();
|
| -
|
| - private:
|
| - void Run() const;
|
| -
|
| - base::WeakPtrFactory<TimeoutTask> weak_factory_;
|
| - base::Closure closure_;
|
| - base::TimeDelta delay_;
|
| - };
|
| -
|
| - // Handles a receive timeout.
|
| - void OnReceiveTimeout();
|
| -
|
| - // Handles a send timeout.
|
| - void OnSendTimeout();
|
| -
|
| - // Receives read completion notification from the |io_handler_|.
|
| - void OnAsyncReadComplete(const std::string& data,
|
| - device::serial::ReceiveError error);
|
| -
|
| - // Receives write completion notification from the |io_handler_|.
|
| - void OnAsyncWriteComplete(int bytes_sent, device::serial::SendError error);
|
| -
|
| - // The pathname of the serial device.
|
| - std::string port_;
|
| -
|
| - // Flag indicating whether or not the connection should persist when
|
| - // its host app is suspended.
|
| - bool persistent_;
|
| -
|
| - // User-specified connection name.
|
| - std::string name_;
|
| -
|
| - // Size of the receive buffer.
|
| - int buffer_size_;
|
| -
|
| - // Amount of time (in ms) to wait for a Read to succeed before triggering a
|
| - // timeout response via onReceiveError.
|
| - int receive_timeout_;
|
| -
|
| - // Amount of time (in ms) to wait for a Write to succeed before triggering
|
| - // a timeout response.
|
| - int send_timeout_;
|
| -
|
| - // Flag indicating that the connection is paused. A paused connection will not
|
| - // raise new onReceive events.
|
| - bool paused_;
|
| -
|
| - // Callback to handle the completion of a pending Receive() request.
|
| - ReceiveCompleteCallback receive_complete_;
|
| -
|
| - // Callback to handle the completion of a pending Send() request.
|
| - SendCompleteCallback send_complete_;
|
| -
|
| - // Closure which will trigger a receive timeout unless cancelled. Reset on
|
| - // initialization and after every successful Receive().
|
| - scoped_ptr<TimeoutTask> receive_timeout_task_;
|
| -
|
| - // Write timeout closure. Reset on initialization and after every successful
|
| - // Send().
|
| - scoped_ptr<TimeoutTask> send_timeout_task_;
|
| -
|
| - // Asynchronous I/O handler.
|
| - scoped_refptr<device::SerialIoHandler> io_handler_;
|
| -};
|
| -
|
| -} // namespace extensions
|
| -
|
| -namespace mojo {
|
| -
|
| -template <>
|
| -class TypeConverter<device::serial::HostControlSignalsPtr,
|
| - extensions::api::serial::HostControlSignals> {
|
| - public:
|
| - static device::serial::HostControlSignalsPtr ConvertFrom(
|
| - const extensions::api::serial::HostControlSignals& input);
|
| -};
|
| -
|
| -template <>
|
| -class TypeConverter<device::serial::ConnectionOptionsPtr,
|
| - extensions::api::serial::ConnectionOptions> {
|
| - public:
|
| - static device::serial::ConnectionOptionsPtr ConvertFrom(
|
| - const extensions::api::serial::ConnectionOptions& input);
|
| -};
|
| -
|
| -} // namespace mojo
|
| -
|
| -#endif // CHROME_BROWSER_EXTENSIONS_API_SERIAL_SERIAL_CONNECTION_H_
|
|
|