| Index: chrome/browser/extensions/api/serial/serial_api.cc
|
| diff --git a/chrome/browser/extensions/api/serial/serial_api.cc b/chrome/browser/extensions/api/serial/serial_api.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..da52f5ed4d9a898a1647bdf90ceb86d5a1313090
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/api/serial/serial_api.cc
|
| @@ -0,0 +1,86 @@
|
| +// Copyright (c) 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.
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/bind.h"
|
| +#include "base/values.h"
|
| +#include "chrome/browser/extensions/api/serial/serial_api.h"
|
| +#include "content/public/browser/browser_thread.h"
|
| +
|
| +using content::BrowserThread;
|
| +
|
| +namespace extensions {
|
| +
|
| +const char kConnectionIdKey[] = "connectionId";
|
| +
|
| +SerialOpenFunction::SerialOpenFunction() {
|
| +}
|
| +
|
| +SerialOpenFunction::~SerialOpenFunction() {
|
| +}
|
| +
|
| +bool SerialOpenFunction::RunImpl() {
|
| + EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &port_));
|
| +
|
| + bool rv = BrowserThread::PostTask(
|
| + BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&SerialOpenFunction::WorkOnIOThread, this));
|
| + DCHECK(rv);
|
| +
|
| + return true;
|
| +}
|
| +
|
| +void SerialOpenFunction::WorkOnIOThread() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| +
|
| + DictionaryValue* result = new DictionaryValue();
|
| + result->SetInteger(kConnectionIdKey, 42);
|
| + result_.reset(result);
|
| +
|
| + bool rv = BrowserThread::PostTask(
|
| + BrowserThread::UI, FROM_HERE,
|
| + base::Bind(&SerialOpenFunction::RespondOnUIThread, this));
|
| + DCHECK(rv);
|
| +}
|
| +
|
| +void SerialOpenFunction::RespondOnUIThread() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + SendResponse(true);
|
| +}
|
| +
|
| +SerialCloseFunction::SerialCloseFunction() {
|
| +}
|
| +
|
| +SerialCloseFunction::~SerialCloseFunction() {
|
| +}
|
| +
|
| +bool SerialCloseFunction::RunImpl() {
|
| + EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &connection_id_));
|
| +
|
| + bool rv = BrowserThread::PostTask(
|
| + BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&SerialCloseFunction::WorkOnIOThread, this));
|
| + DCHECK(rv);
|
| +
|
| + return true;
|
| +}
|
| +
|
| +void SerialCloseFunction::WorkOnIOThread() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| +
|
| + result_.reset(Value::CreateBooleanValue(true));
|
| +
|
| + bool rv = BrowserThread::PostTask(
|
| + BrowserThread::UI, FROM_HERE,
|
| + base::Bind(&SerialCloseFunction::RespondOnUIThread, this));
|
| + DCHECK(rv);
|
| +}
|
| +
|
| +void SerialCloseFunction::RespondOnUIThread() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + SendResponse(true);
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|