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 #ifndef REMOTING_HOST_CLIPBOARD_H_ 6 #define REMOTING_HOST_CLIPBOARD_H_ 7 8 #include <string> 9 10 #include "base/callback.h" 11 12 namespace remoting { 13 14 namespace protocol { 15 class ClipboardEvent; 16 class ClipboardStub; 17 } // namespace protocol 18 19 // All Clipboard methods should be run on the UI thread, so that the Clipboard 20 // can get change notifications. 21 class Clipboard { 22 public: ~Clipboard()23 virtual ~Clipboard() {} 24 25 // Initialises any objects needed to read from or write to the clipboard. 26 virtual void Start(scoped_ptr<protocol::ClipboardStub> client_clipboard) = 0; 27 28 // Destroys any objects initialised by Start(). 29 virtual void Stop() = 0; 30 31 // Writes an item to the clipboard. It must be called after Start(). 32 virtual void InjectClipboardEvent(const protocol::ClipboardEvent& event) = 0; 33 34 static scoped_ptr<Clipboard> Create(); 35 }; 36 37 } // namespace remoting 38 39 #endif // REMOTING_HOST_CLIPBOARD_H_ 40