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.
5 #ifndef IPC_ATTACHMENT_BROKER_PRIVILEGED_H_
6 #define IPC_ATTACHMENT_BROKER_PRIVILEGED_H_
10 #include "ipc/attachment_broker.h"
11 #include "ipc/ipc_export.h"
17 // This abstract subclass of AttachmentBroker is intended for use in a
18 // privileged process . When unprivileged processes want to send attachments,
19 // the attachments get routed through the privileged process, and more
20 // specifically, an instance of this class.
21 class IPC_EXPORT AttachmentBrokerPrivileged
: public IPC::AttachmentBroker
{
23 AttachmentBrokerPrivileged();
24 ~AttachmentBrokerPrivileged() override
;
26 // Each unprivileged process should have one IPC channel on which it
27 // communicates attachment information with the broker process. In the broker
28 // process, these channels must be registered and deregistered with the
29 // Attachment Broker as they are created and destroyed.
30 void RegisterCommunicationChannel(Channel
* channel
);
31 void DeregisterCommunicationChannel(Channel
* channel
);
34 // Returns nullptr if no channel is found.
35 Channel
* GetChannelWithProcessId(base::ProcessId id
);
38 std::vector
<Channel
*> channels_
;
39 DISALLOW_COPY_AND_ASSIGN(AttachmentBrokerPrivileged
);
44 #endif // IPC_ATTACHMENT_BROKER_PRIVILEGED_H_