// Copyright 2019 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 "base/fuchsia/scoped_service_binding.h" #include #include #include namespace base { namespace fuchsia { namespace internal { ScopedServiceBindingBase::ScopedServiceBindingBase( sys::OutgoingDirectory* outgoing_directory) : ScopedServiceBindingBase( outgoing_directory->GetOrCreateDirectory("svc")) {} ScopedServiceBindingBase::ScopedServiceBindingBase(vfs::PseudoDir* pseudo_dir) : pseudo_dir_(pseudo_dir) {} ScopedServiceBindingBase::~ScopedServiceBindingBase() = default; void ScopedServiceBindingBase::RegisterService(const char* service_name, Connector connector) { pseudo_dir_->AddEntry(service_name, std::make_unique(std::move(connector))); } void ScopedServiceBindingBase::UnregisterService(const char* service_name) { pseudo_dir_->RemoveEntry(service_name); } } // namespace internal } // namespace fuchsia } // namespace base