github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/executor/_include/flatbuffers/file_manager.h (about)

     1  /*
     2   * Copyright 2023 Google Inc. All rights reserved.
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  
    17  #ifndef FLATBUFFERS_FILE_MANAGER_H_
    18  #define FLATBUFFERS_FILE_MANAGER_H_
    19  
    20  #include <set>
    21  #include <string>
    22  
    23  #include "flatbuffers/util.h"
    24  
    25  namespace flatbuffers {
    26  
    27  // A File interface to write data to file by default or
    28  // save only file names
    29  class FileManager {
    30   public:
    31    FileManager() = default;
    32    virtual ~FileManager() = default;
    33  
    34    virtual bool SaveFile(const std::string &absolute_file_name,
    35                          const std::string &content) = 0;
    36  
    37    virtual bool LoadFile(const std::string &absolute_file_name,
    38                          std::string *buf) = 0;
    39  
    40   private:
    41    // Copying is not supported.
    42    FileManager(const FileManager &) = delete;
    43    FileManager &operator=(const FileManager &) = delete;
    44  };
    45  
    46  }  // namespace flatbuffers
    47  
    48  #endif  // FLATBUFFERS_FILE_MANAGER_H_