| Index: mojo/edk/system/node_controller.h
|
| diff --git a/mojo/edk/system/node_controller.h b/mojo/edk/system/node_controller.h
|
| index 75d28926e09af39007215fde0d841b47906ae2dd..34c26444a85297f48fd6eb069e86a066d4911001 100644
|
| --- a/mojo/edk/system/node_controller.h
|
| +++ b/mojo/edk/system/node_controller.h
|
| @@ -25,11 +25,16 @@
|
| #include "mojo/edk/system/ports/node.h"
|
| #include "mojo/edk/system/ports/node_delegate.h"
|
|
|
| +namespace base {
|
| +class PortProvider;
|
| +}
|
| +
|
| namespace mojo {
|
| namespace edk {
|
|
|
| class Broker;
|
| class Core;
|
| +class MachPortRelay;
|
| class PortsMessage;
|
|
|
| // The owner of ports::Node which facilitates core EDK implementation. All
|
| @@ -56,6 +61,11 @@ class NodeController : public ports::NodeDelegate,
|
| return io_task_runner_;
|
| }
|
|
|
| +#if defined(OS_MACOSX) && !defined(OS_IOS)
|
| + // Create the relay used to transfer mach ports between processes.
|
| + void CreateMachPortRelay(base::PortProvider* port_provider);
|
| +#endif
|
| +
|
| // Called exactly once, shortly after construction, and before any other
|
| // methods are called on this object.
|
| void SetIOTaskRunner(scoped_refptr<base::TaskRunner> io_task_runner);
|
| @@ -162,13 +172,16 @@ class NodeController : public ports::NodeDelegate,
|
| void OnIntroduce(const ports::NodeName& from_node,
|
| const ports::NodeName& name,
|
| ScopedPlatformHandle channel_handle) override;
|
| -#if defined(OS_WIN)
|
| +#if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS))
|
| void OnRelayPortsMessage(const ports::NodeName& from_node,
|
| base::ProcessHandle from_process,
|
| const ports::NodeName& destination,
|
| Channel::MessagePtr message) override;
|
| #endif
|
| void OnChannelError(const ports::NodeName& from_node) override;
|
| +#if defined(OS_MACOSX) && !defined(OS_IOS)
|
| + MachPortRelay* GetMachPortRelay() override;
|
| +#endif
|
|
|
| // Marks this NodeController for destruction when the IO thread shuts down.
|
| // This is used in case Core is torn down before the IO thread. Must only be
|
| @@ -258,6 +271,12 @@ class NodeController : public ports::NodeDelegate,
|
| scoped_ptr<Broker> broker_;
|
| #endif
|
|
|
| +#if defined(OS_MACOSX) && !defined(OS_IOS)
|
| + base::Lock mach_port_relay_lock_;
|
| + // Relay for transferring mach ports to/from children.
|
| + scoped_ptr<MachPortRelay> mach_port_relay_;
|
| +#endif
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(NodeController);
|
| };
|
|
|
|
|