Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #include "remoting/protocol/clipboard_duplicate_filter.h" | |
|
Wez
2012/05/18 18:51:52
Copyright notice?
simonmorris
2012/05/21 17:16:00
Done.
| |
| 2 | |
| 3 #include "remoting/proto/event.pb.h" | |
| 4 | |
| 5 namespace remoting { | |
| 6 namespace protocol { | |
| 7 | |
| 8 ClipboardDuplicateFilter::ClipboardDuplicateFilter() | |
| 9 : host_stub_(NULL), | |
| 10 client_stub_(NULL), | |
| 11 client_filter_(this), | |
| 12 host_filter_(this) { | |
| 13 } | |
| 14 | |
| 15 void ClipboardDuplicateFilter::set_client_stub(ClipboardStub* client_stub) { | |
| 16 client_stub_ = client_stub; | |
| 17 } | |
| 18 | |
| 19 void ClipboardDuplicateFilter::set_host_stub(ClipboardStub* host_stub) { | |
| 20 host_stub_ = host_stub; | |
| 21 } | |
| 22 | |
| 23 ClipboardStub* ClipboardDuplicateFilter::get_client_filter() { | |
| 24 return &client_filter_; | |
| 25 } | |
| 26 | |
| 27 ClipboardStub* ClipboardDuplicateFilter::get_host_filter() { | |
| 28 return &host_filter_; | |
| 29 } | |
| 30 | |
| 31 void ClipboardDuplicateFilter::InjectClipboardEventToClient( | |
| 32 const ClipboardEvent& event) { | |
| 33 if (!client_stub_) { | |
| 34 return; | |
| 35 } | |
| 36 if (event.mime_type() == recent_mime_type_ && event.data() == recent_data_) { | |
| 37 return; | |
| 38 } | |
| 39 client_stub_->InjectClipboardEvent(event); | |
| 40 recent_mime_type_ = event.mime_type(); | |
| 41 recent_data_ = event.data(); | |
| 42 } | |
| 43 | |
| 44 void ClipboardDuplicateFilter::InjectClipboardEventToHost( | |
| 45 const ClipboardEvent& event) { | |
| 46 recent_mime_type_ = event.mime_type(); | |
| 47 recent_data_ = event.data(); | |
| 48 if (host_stub_) { | |
| 49 host_stub_->InjectClipboardEvent(event); | |
| 50 } | |
| 51 } | |
| 52 | |
| 53 ClipboardDuplicateFilter::ClientFilter::ClientFilter( | |
| 54 ClipboardDuplicateFilter* filter) : filter_(filter) { | |
| 55 } | |
| 56 | |
| 57 void ClipboardDuplicateFilter::ClientFilter::InjectClipboardEvent( | |
| 58 const ClipboardEvent& event) { | |
| 59 filter_->InjectClipboardEventToClient(event); | |
| 60 } | |
| 61 | |
| 62 ClipboardDuplicateFilter::HostFilter::HostFilter( | |
| 63 ClipboardDuplicateFilter* filter) : filter_(filter) { | |
| 64 } | |
| 65 | |
| 66 void ClipboardDuplicateFilter::HostFilter::InjectClipboardEvent( | |
| 67 const ClipboardEvent& event) { | |
| 68 filter_->InjectClipboardEventToHost(event); | |
| 69 } | |
| 70 | |
| 71 } // namespace protocol | |
| 72 } // namespace remoting | |
| OLD | NEW |