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 11 namespace remoting { 12 namespace protocol { 13 14 ClipboardThreadProxy::~ClipboardThreadProxy() { 15 } 16 17 ClipboardThreadProxy::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 24 void 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 31 void 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