.. _program_listing_file__tmp_ws_src_rmf_task_rmf_task_include_rmf_task_BackupFileManager.hpp: Program Listing for File BackupFileManager.hpp ============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/rmf_task/rmf_task/include/rmf_task/BackupFileManager.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * Copyright (C) 2021 Open Source Robotics Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef RMF_TASK__BACKUPFILEMANAGER_HPP #define RMF_TASK__BACKUPFILEMANAGER_HPP #include #include namespace rmf_task { //============================================================================== class BackupFileManager { public: class Group; class Robot; BackupFileManager(std::filesystem::path root_directory, std::function info_logger = nullptr, std::function debug_logger = nullptr); BackupFileManager& clear_on_startup(bool value = true); BackupFileManager& clear_on_shutdown(bool value = true); std::shared_ptr make_group(std::string name); class Implementation; private: rmf_utils::unique_impl_ptr _pimpl; }; //============================================================================== class BackupFileManager::Group { public: std::shared_ptr make_robot(std::string name); // TODO(MXG): Add an API for saving the task assignments of the Group. When // the Group is constructed/destructed, it should clear out those task // assignments, according to the RAII settings of its parent BackupFileManager // instance. class Implementation; private: Group(); rmf_utils::unique_impl_ptr _pimpl; }; //============================================================================== class BackupFileManager::Robot { public: std::optional read() const; void write(const Task::Active::Backup& backup); class Implementation; private: Robot(); rmf_utils::unique_impl_ptr _pimpl; }; } // namespace rmf_task #endif // RMF_TASK__BACKUPFILEMANAGER_HPP