1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "remoting/protocol/clipboard_thread_proxy.h"
6
7#include "base/bind.h"
8#include "base/message_loop/message_loop.h"
9#include "remoting/proto/event.pb.h"
10
11namespace remoting {
12namespace protocol {
13
14ClipboardThreadProxy::~ClipboardThreadProxy() {
15}
16
17ClipboardThreadProxy::ClipboardThreadProxy(
18    const base::WeakPtr<ClipboardStub>& clipboard_stub,
19    scoped_refptr<base::TaskRunner> clipboard_stub_task_runner)
20    : clipboard_stub_(clipboard_stub),
21      clipboard_stub_task_runner_(clipboard_stub_task_runner) {
22}
23
24void ClipboardThreadProxy::InjectClipboardEvent(const ClipboardEvent& event) {
25  clipboard_stub_task_runner_->PostTask(FROM_HERE, base::Bind(
26      &ClipboardThreadProxy::InjectClipboardEventStatic,
27      clipboard_stub_,
28      event));
29}
30
31void ClipboardThreadProxy::InjectClipboardEventStatic(
32    const base::WeakPtr<ClipboardStub>& clipboard_stub,
33    const ClipboardEvent& event) {
34  if (clipboard_stub.get()) {
35    clipboard_stub->InjectClipboardEvent(event);
36  }
37}
38
39}  // namespace protocol
40}  // namespace remoting
41