00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef SBUILD_CHROOT_LVM_SNAPSHOT_H
00020 #define SBUILD_CHROOT_LVM_SNAPSHOT_H
00021
00022 #include <sbuild/sbuild-chroot-block-device-base.h>
00023
00024 namespace sbuild
00025 {
00026
00032 class chroot_lvm_snapshot : public chroot_block_device_base
00033 {
00034 protected:
00036 chroot_lvm_snapshot ();
00037
00039 chroot_lvm_snapshot (const chroot_lvm_snapshot& rhs);
00040
00041 friend class chroot;
00042
00043 public:
00045 virtual ~chroot_lvm_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_snapshot_device () const;
00067
00074 void
00075 set_snapshot_device (std::string const& snapshot_device);
00076
00083 std::string const&
00084 get_snapshot_options () const;
00085
00092 void
00093 set_snapshot_options (std::string const& snapshot_options);
00094
00095 virtual std::string const&
00096 get_chroot_type () const;
00097
00098 virtual void
00099 setup_env (chroot const& chroot,
00100 environment& env) const;
00101
00102 virtual session_flags
00103 get_session_flags (chroot const& chroot) const;
00104
00105 protected:
00106 virtual void
00107 setup_lock (chroot::setup_type type,
00108 bool lock,
00109 int status);
00110
00111 virtual void
00112 get_details (chroot const& chroot,
00113 format_detail& detail) const;
00114
00115 virtual void
00116 get_keyfile (chroot const& chroot,
00117 keyfile& keyfile) const;
00118
00119 virtual void
00120 set_keyfile (chroot& chroot,
00121 keyfile const& keyfile,
00122 string_list& used_keys);
00123
00124 private:
00126 std::string snapshot_device;
00128 std::string snapshot_options;
00129 };
00130
00131 }
00132
00133 #endif
00134
00135
00136
00137
00138
00139