// Copyright 2015 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/bindings/associated_group.h" #include "mojo/public/cpp/bindings/associated_group_controller.h" namespace mojo { AssociatedGroup::AssociatedGroup() = default; AssociatedGroup::AssociatedGroup( scoped_refptr<AssociatedGroupController> controller) : controller_(std::move(controller)) {} AssociatedGroup::AssociatedGroup(const ScopedInterfaceEndpointHandle& handle) : controller_getter_(handle.CreateGroupControllerGetter()) {} AssociatedGroup::AssociatedGroup(const AssociatedGroup& other) = default; AssociatedGroup::~AssociatedGroup() = default; AssociatedGroup& AssociatedGroup::operator=(const AssociatedGroup& other) = default; AssociatedGroupController* AssociatedGroup::GetController() { if (controller_) return controller_.get(); return controller_getter_.Run(); } } // namespace mojo