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_MOJO_SCOPED_IPC_SUPPORT_H_
6 #define IPC_MOJO_SCOPED_IPC_SUPPORT_H_
8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/task_runner.h"
11 #include "ipc/ipc_export.h"
15 // Perform any necessary Mojo IPC initialization. A ScopedIPCSupport object
16 // should be instantiated and retained by any component which makes direct calls
17 // to the Mojo EDK. This is used to ensure that the EDK is initialized within
18 // the current process and that it is shutdown cleanly when no longer in use.
20 // NOTE: Unless you are making explicit calls to functions in the
21 // mojo::embedder namespace, you almost definitely DO NOT need this and should
23 class IPC_MOJO_EXPORT ScopedIPCSupport
{
25 ScopedIPCSupport(scoped_refptr
<base::TaskRunner
> io_thread_task_runner
);
29 DISALLOW_COPY_AND_ASSIGN(ScopedIPCSupport
);
34 #endif // IPC_MOJO_SCOPED_IPC_SUPPORT_H_