00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef SBUILD_CHROOT_BTRFS_SNAPSHOT_H
00020 #define SBUILD_CHROOT_BTRFS_SNAPSHOT_H
00021
00022 #include <sbuild/sbuild-chroot.h>
00023
00024 namespace sbuild
00025 {
00026
00032 class chroot_btrfs_snapshot : public chroot
00033 {
00034 protected:
00036 chroot_btrfs_snapshot ();
00037
00039 chroot_btrfs_snapshot (const chroot_btrfs_snapshot& rhs);
00040
00041 friend class chroot;
00042
00043 public:
00045 virtual ~chroot_btrfs_snapshot ();
00046
00047 virtual chroot::ptr
00048 clone () const;
00049
00050 virtual chroot::ptr
00051 clone_session (std::string const& session_id,
00052 std::string const& alias,
00053 std::string const& user,
00054 bool root) const;
00055
00056 virtual chroot::ptr
00057 clone_source () const;
00058
00065 std::string const&
00066 get_source_subvolume () const;
00067
00074 void
00075 set_source_subvolume (std::string const& source_subvolume);
00076
00082 std::string const&
00083 get_snapshot_directory () const;
00084
00090 void
00091 set_snapshot_directory (std::string const& snapshot_directory);
00092
00099 std::string const&
00100 get_snapshot_name () const;
00101
00108 void
00109 set_snapshot_name (std::string const& snapshot_name);
00110
00111 virtual std::string const&
00112 get_chroot_type () const;
00113
00114 virtual std::string
00115 get_path () const;
00116
00117 virtual void
00118 setup_env (chroot const& chroot,
00119 environment& env) const;
00120
00121 virtual session_flags
00122 get_session_flags (chroot const& chroot) const;
00123
00124 protected:
00125 virtual void
00126 setup_lock (chroot::setup_type type,
00127 bool lock,
00128 int status);
00129
00130 virtual void
00131 get_details (chroot const& chroot,
00132 format_detail& detail) const;
00133
00134 virtual void
00135 get_keyfile (chroot const& chroot,
00136 keyfile& keyfile) const;
00137
00138 virtual void
00139 set_keyfile (chroot& chroot,
00140 keyfile const& keyfile,
00141 string_list& used_keys);
00142
00143 private:
00145 std::string source_subvolume;
00147 std::string snapshot_directory;
00149 std::string snapshot_name;
00150 };
00151
00152 }
00153
00154 #endif
00155
00156
00157
00158
00159
00160