// 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. #ifndef COMPONENTS_FILESYSTEM_FILE_SYSTEM_APP_H_ #define COMPONENTS_FILESYSTEM_FILE_SYSTEM_APP_H_ #include "base/macros.h" #include "components/filesystem/directory_impl.h" #include "components/filesystem/file_system_impl.h" #include "components/filesystem/lock_table.h" #include "components/filesystem/public/interfaces/file_system.mojom.h" #include "services/service_manager/public/cpp/interface_factory.h" #include "services/service_manager/public/cpp/service.h" #include "services/tracing/public/cpp/provider.h" namespace filesystem { class FileSystemApp : public service_manager::Service, public service_manager::InterfaceFactory { public: FileSystemApp(); ~FileSystemApp() override; private: // Gets the system specific toplevel profile directory. static base::FilePath GetUserDataDir(); // |service_manager::Service| override: void OnStart() override; bool OnConnect(const service_manager::ServiceInfo& remote_info, service_manager::InterfaceRegistry* registry) override; // |InterfaceFactory| implementation: void Create(const service_manager::Identity& remote_identity, mojo::InterfaceRequest request) override; tracing::Provider tracing_; scoped_refptr lock_table_; DISALLOW_COPY_AND_ASSIGN(FileSystemApp); }; } // namespace filesystem #endif // COMPONENTS_FILESYSTEM_FILE_SYSTEM_APP_H_