Files
tubestation/ipc/glue/IOThreadChild.h
Nika Layzell 0afc20237a Bug 1706374 - Part 12a: Initialize NodeController when creating IO thread, r=handyman
This also consumes the existing channel created when launching a process to
create the the conneciton required by NodeController for communicating between
processes. In part 12b, consumers of the broken APIs will be adjusted to use
the new interface.

The new routing approach is not used for the fork server process, as an IO
thread and the NodeController object cannot be initialized before the fork has
been performed, and the IPC requirements of that process are fairly minimal.

Differential Revision: https://phabricator.services.mozilla.com/D112776
2021-06-22 18:17:22 +00:00

49 lines
1.4 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef dom_plugins_IOThreadChild_h
#define dom_plugins_IOThreadChild_h 1
#include "chrome/common/child_thread.h"
#include "mozilla/ipc/NodeController.h"
namespace mozilla {
namespace ipc {
//-----------------------------------------------------------------------------
// The IOThreadChild class represents a background thread where the
// IPC IO MessageLoop lives.
class IOThreadChild : public ChildThread {
public:
IOThreadChild()
: ChildThread(base::Thread::Options(MessageLoop::TYPE_IO,
0)) // stack size
{}
~IOThreadChild() = default;
static MessageLoop* message_loop() {
return IOThreadChild::current()->Thread::message_loop();
}
static ScopedPort TakeInitialPort() {
return IOThreadChild::current()->ChildThread::TakeInitialPort();
}
protected:
static IOThreadChild* current() {
return static_cast<IOThreadChild*>(ChildThread::current());
}
private:
DISALLOW_EVIL_CONSTRUCTORS(IOThreadChild);
};
} // namespace ipc
} // namespace mozilla
#endif // ifndef dom_plugins_IOThreadChild_h