1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef COMPONENTS_NACL_COMMON_NACL_SERVICE_H_ 6*6777b538SAndroid Build Coastguard Worker #define COMPONENTS_NACL_COMMON_NACL_SERVICE_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/memory/scoped_refptr.h" 9*6777b538SAndroid Build Coastguard Worker #include "base/task/single_thread_task_runner.h" 10*6777b538SAndroid Build Coastguard Worker #include "mojo/core/embedder/scoped_ipc_support.h" 11*6777b538SAndroid Build Coastguard Worker #include "mojo/public/cpp/system/message_pipe.h" 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker // Helper which establishes and holds open an IPC connection to the parent 14*6777b538SAndroid Build Coastguard Worker // process. This should exist as long as IPC needs to be possible. 15*6777b538SAndroid Build Coastguard Worker class NaClService { 16*6777b538SAndroid Build Coastguard Worker public: 17*6777b538SAndroid Build Coastguard Worker explicit NaClService( 18*6777b538SAndroid Build Coastguard Worker scoped_refptr<base::SingleThreadTaskRunner> ipc_task_runner); 19*6777b538SAndroid Build Coastguard Worker ~NaClService(); 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker // Returns a message pipe to use for the client endpoint of a legacy IPC 22*6777b538SAndroid Build Coastguard Worker // Channel in this process. Must only be called once. 23*6777b538SAndroid Build Coastguard Worker mojo::ScopedMessagePipeHandle TakeChannelPipe(); 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker private: 26*6777b538SAndroid Build Coastguard Worker const mojo::core::ScopedIPCSupport ipc_support_; 27*6777b538SAndroid Build Coastguard Worker }; 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker #endif // COMPONENTS_NACL_COMMON_NACL_SERVICE_H_ 30