clipboard_thread_proxy.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. #include "remoting/protocol/clipboard_thread_proxy.h"
  5. #include "base/bind.h"
  6. #include "remoting/proto/event.pb.h"
  7. namespace remoting {
  8. namespace protocol {
  9. ClipboardThreadProxy::~ClipboardThreadProxy() = default;
  10. ClipboardThreadProxy::ClipboardThreadProxy(
  11. const base::WeakPtr<ClipboardStub>& clipboard_stub,
  12. scoped_refptr<base::TaskRunner> clipboard_stub_task_runner)
  13. : clipboard_stub_(clipboard_stub),
  14. clipboard_stub_task_runner_(clipboard_stub_task_runner) {
  15. }
  16. void ClipboardThreadProxy::InjectClipboardEvent(const ClipboardEvent& event) {
  17. clipboard_stub_task_runner_->PostTask(
  18. FROM_HERE,
  19. base::BindOnce(&ClipboardThreadProxy::InjectClipboardEventStatic,
  20. clipboard_stub_, event));
  21. }
  22. void ClipboardThreadProxy::InjectClipboardEventStatic(
  23. const base::WeakPtr<ClipboardStub>& clipboard_stub,
  24. const ClipboardEvent& event) {
  25. if (clipboard_stub.get()) {
  26. clipboard_stub->InjectClipboardEvent(event);
  27. }
  28. }
  29. } // namespace protocol
  30. } // namespace remoting