mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "mojo/public/cpp/environment/environment.h"
|
|
|
|
#include "base/message_loop/message_loop.h"
|
|
#include "mojo/environment/default_async_waiter.h"
|
|
#include "mojo/environment/default_logger.h"
|
|
|
|
namespace mojo {
|
|
|
|
// TODO(vtl): Probably we should share the following async waiter and logger
|
|
// code with the "standalone" implementation. (The only difference is what the
|
|
// |internal::kDefault...| are.)
|
|
|
|
const MojoAsyncWaiter* g_default_async_waiter = &internal::kDefaultAsyncWaiter;
|
|
const MojoLogger* g_default_logger = &internal::kDefaultLogger;
|
|
|
|
// static
|
|
const MojoAsyncWaiter* Environment::GetDefaultAsyncWaiter() {
|
|
return g_default_async_waiter;
|
|
}
|
|
|
|
// static
|
|
void Environment::SetDefaultAsyncWaiter(const MojoAsyncWaiter* async_waiter) {
|
|
g_default_async_waiter =
|
|
async_waiter ? async_waiter : &internal::kDefaultAsyncWaiter;
|
|
}
|
|
|
|
// static
|
|
const MojoLogger* Environment::GetDefaultLogger() {
|
|
return g_default_logger;
|
|
}
|
|
|
|
// static
|
|
void Environment::SetDefaultLogger(const MojoLogger* logger) {
|
|
g_default_logger = logger ? logger : &internal::kDefaultLogger;
|
|
}
|
|
|
|
// static
|
|
void Environment::InstantiateDefaultRunLoop() {
|
|
CHECK(!base::MessageLoop::current());
|
|
// Not leaked: accessible from |base::MessageLoop::current()|.
|
|
base::MessageLoop* message_loop = new base::MessageLoop();
|
|
CHECK_EQ(message_loop, base::MessageLoop::current());
|
|
}
|
|
|
|
// static
|
|
void Environment::DestroyDefaultRunLoop() {
|
|
CHECK(base::MessageLoop::current());
|
|
delete base::MessageLoop::current();
|
|
CHECK(!base::MessageLoop::current());
|
|
}
|
|
|
|
} // namespace mojo
|