OLD | NEW |
| (Empty) |
1 // Copyright 2015 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 IPC_ATTACHMENT_BROKER_WIN_H_ | |
6 #define IPC_ATTACHMENT_BROKER_WIN_H_ | |
7 | |
8 #include <vector> | |
9 | |
10 #include "base/memory/ref_counted.h" | |
11 #include "ipc/attachment_broker.h" | |
12 #include "ipc/brokerable_attachment.h" | |
13 #include "ipc/handle_attachment_win.h" | |
14 #include "ipc/ipc_export.h" | |
15 | |
16 namespace IPC { | |
17 | |
18 class Sender; | |
19 | |
20 // This class is an implementation of AttachmentBroker for the Windows platform | |
21 // for non-privileged processes. | |
22 class IPC_EXPORT AttachmentBrokerWin : public IPC::AttachmentBroker { | |
23 public: | |
24 AttachmentBrokerWin(); | |
25 ~AttachmentBrokerWin() override; | |
26 | |
27 // IPC::AttachmentBroker overrides. | |
28 bool SendAttachmentToProcess(const BrokerableAttachment* attachment, | |
29 base::ProcessId destination_process) override; | |
30 | |
31 // IPC::Listener overrides. | |
32 bool OnMessageReceived(const Message& message) override; | |
33 | |
34 // |sender_| is used to send Messages to the broker. |sender_| must live at | |
35 // least as long as this instance. | |
36 void set_sender(IPC::Sender* sender) { sender_ = sender; } | |
37 | |
38 private: | |
39 // IPC message handlers. | |
40 void OnWinHandleHasBeenDuplicated( | |
41 const IPC::internal::HandleAttachmentWin::WireFormat& wire_format); | |
42 | |
43 // |sender_| is used to send Messages to the broker. |sender_| must live at | |
44 // least as long as this instance. | |
45 IPC::Sender* sender_; | |
46 DISALLOW_COPY_AND_ASSIGN(AttachmentBrokerWin); | |
47 }; | |
48 | |
49 } // namespace IPC | |
50 | |
51 #endif // IPC_ATTACHMENT_BROKER_WIN_H_ | |
OLD | NEW |