1// Copyright 2013 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.
4
5#include "mojo/public/utility/environment.h"
6
7#include "mojo/public/utility/bindings_support_impl.h"
8#include "mojo/public/utility/run_loop.h"
9
10namespace mojo {
11namespace utility {
12
13Environment::Environment() : bindings_support_(NULL) {
14  RunLoop::SetUp();
15
16  internal::BindingsSupportImpl::SetUp();
17  bindings_support_ = new internal::BindingsSupportImpl;
18  BindingsSupport::Set(bindings_support_);
19}
20
21Environment::~Environment() {
22  // Allow for someone to have replaced BindingsSupport.
23  if (BindingsSupport::Get() == bindings_support_)
24    BindingsSupport::Set(NULL);
25  delete bindings_support_;
26  internal::BindingsSupportImpl::TearDown();
27
28  RunLoop::TearDown();
29}
30
31}  // namespace utility
32}  // namespace mojo
33