#ifndef CONTENT_APP_MOJO_IPC_SUPPORT_H_
#define CONTENT_APP_MOJO_IPC_SUPPORT_H_
#include <memory>
#include "base/threading/thread.h"
#include "content/common/content_export.h"
namespace mojo {
namespace core {
class ScopedIPCSupport;
}
}
namespace content {
class BrowserProcessIOThread;
struct StartupDataImpl;
class CONTENT_EXPORT MojoIpcSupport {
public:
explicit MojoIpcSupport(std::unique_ptr<BrowserProcessIOThread> io_thread);
MojoIpcSupport(const MojoIpcSupport&) = delete;
MojoIpcSupport& operator=(const MojoIpcSupport&) = delete;
~MojoIpcSupport();
BrowserProcessIOThread* io_thread() { return io_thread_.get(); }
std::unique_ptr<StartupDataImpl> CreateBrowserStartupData();
private:
std::unique_ptr<BrowserProcessIOThread> io_thread_;
base::Thread mojo_ipc_thread_{"Mojo IPC"};
std::unique_ptr<mojo::core::ScopedIPCSupport> mojo_ipc_support_;
};
}
#endif