#pragma once #ifndef MESSMER_CRYFSCLI_PROGRAMOPTIONS_PROGRAMOPTIONS_H #define MESSMER_CRYFSCLI_PROGRAMOPTIONS_PROGRAMOPTIONS_H #include #include #include #include #include namespace cryfs_cli { namespace program_options { class ProgramOptions final { public: ProgramOptions(boost::filesystem::path baseDir, boost::optional configFile, boost::filesystem::path localStateDir, bool allowFilesystemUpgrade, bool allowReplacedFilesystem, bool createMissingBasedir, boost::optional cipher, boost::optional blocksizeBytes, bool allowIntegrityViolations, boost::optional missingBlockIsIntegrityViolation); ProgramOptions(ProgramOptions &&rhs) = default; const boost::filesystem::path &baseDir() const; const boost::optional &configFile() const; const boost::filesystem::path &localStateDir() const; bool allowFilesystemUpgrade() const; bool allowReplacedFilesystem() const; bool createMissingBasedir() const; const boost::optional &cipher() const; const boost::optional &blocksizeBytes() const; bool allowIntegrityViolations() const; const boost::optional &missingBlockIsIntegrityViolation() const; private: boost::filesystem::path _baseDir; // this is always absolute boost::optional _configFile; boost::filesystem::path _localStateDir; bool _allowFilesystemUpgrade; bool _allowReplacedFilesystem; bool _createMissingBasedir; boost::optional _cipher; boost::optional _blocksizeBytes; bool _allowIntegrityViolations; boost::optional _missingBlockIsIntegrityViolation; DISALLOW_COPY_AND_ASSIGN(ProgramOptions); }; } } #endif