// Copyright 2013 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/utility/environment.h"

#include "mojo/public/utility/bindings_support_impl.h"
#include "mojo/public/utility/run_loop.h"

namespace mojo {
namespace utility {

Environment::Environment() : bindings_support_(NULL) {
  RunLoop::SetUp();

  internal::BindingsSupportImpl::SetUp();
  bindings_support_ = new internal::BindingsSupportImpl;
  BindingsSupport::Set(bindings_support_);
}

Environment::~Environment() {
  // Allow for someone to have replaced BindingsSupport.
  if (BindingsSupport::Get() == bindings_support_)
    BindingsSupport::Set(NULL);
  delete bindings_support_;
  internal::BindingsSupportImpl::TearDown();

  RunLoop::TearDown();
}

}  // namespace utility
}  // namespace mojo
