Skip to content
Snippets Groups Projects
Select Git revision
  • cba3d3697555059ab9e17002cf98d9d71a4c5509
  • main default protected
  • f-sss4grpc
  • dev
  • 108-implement-rpc-call-for-server-side-scripting
  • f-windows-conan-create
  • f-to-string
  • f-update-requirements
  • f-related-projects
  • f-role
  • f-remote-path
  • f-rel-path
  • f-consol-message
  • v0.3.0
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.2
  • v0.1.1
  • v0.1
  • v0.0.19
  • v0.0.18
  • v0.0.16
  • v0.0.15
  • v0.0.10
  • v0.0.9
  • v0.0.8
  • v0.0.7
  • v0.0.6
  • v0.0.5
  • v0.0.4
  • v0.0.3
  • v0.0.2
33 results

FileWriter.h

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    FileWriter.h 729 B
    #pragma once
    
    #include "FileLock.h"
    
    #include <fstream>
    #include <memory>
    #include <string>
    
    namespace FileExchange {
    
    class FileWriter final {
    public:
      FileWriter(const std::string &filename);
      FileWriter(const std::string &filename,
                 const std::shared_ptr<FileMutex> &mutexPtr);
    
      ~FileWriter() = default;
    
      FileWriter(const FileWriter &) = delete;
      FileWriter &operator=(const FileWriter &) = delete;
    
      FileWriter(FileWriter &&) = default;
      FileWriter &operator=(FileWriter &&) = default;
    
      void write(const std::string &buffer);
    
    private:
      void openFile();
    
      std::ofstream stream_;
      std::string filename_;
    
      std::shared_ptr<FileMutex> mutexPtr_;
      FileWriteLock lock_;
    };
    
    } // namespace FileExchange