00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef SBUILD_CHROOT_BLOCK_DEVICE_H
00020 #define SBUILD_CHROOT_BLOCK_DEVICE_H
00021
00022 #include <sbuild/sbuild-config.h>
00023 #include <sbuild/sbuild-chroot-block-device-base.h>
00024 #include <sbuild/sbuild-chroot-lvm-snapshot.h>
00025
00026 namespace sbuild
00027 {
00028
00034 class chroot_block_device : public chroot_block_device_base
00035 {
00036 public:
00038 typedef chroot::error error;
00039
00040 protected:
00042 chroot_block_device ();
00043
00045 chroot_block_device (const chroot_block_device& rhs);
00046
00047 #ifdef SBUILD_FEATURE_LVMSNAP
00048
00049 chroot_block_device (const chroot_lvm_snapshot& rhs);
00050 #endif
00051
00052 friend class chroot;
00053 #ifdef SBUILD_FEATURE_LVMSNAP
00054 friend class chroot_lvm_snapshot;
00055 #endif
00056
00057 public:
00059 virtual ~chroot_block_device ();
00060
00061 virtual chroot::ptr
00062 clone () const;
00063
00064 virtual chroot::ptr
00065 clone_session (std::string const& session_id,
00066 std::string const& alias,
00067 std::string const& user,
00068 bool root) const;
00069
00070 virtual chroot::ptr
00071 clone_source () const;
00072
00073 std::string const&
00074 get_chroot_type () const;
00075
00076 virtual void
00077 setup_env (chroot const& chroot,
00078 environment& env) const;
00079
00080 virtual session_flags
00081 get_session_flags (chroot const& chroot) const;
00082
00083 protected:
00084 virtual void
00085 setup_lock (chroot::setup_type type,
00086 bool lock,
00087 int status);
00088
00089
00090 virtual void
00091 get_details (chroot const& chroot,
00092 format_detail& detail) const;
00093
00094 virtual void
00095 get_keyfile (chroot const& chroot,
00096 keyfile& keyfile) const;
00097
00098 virtual void
00099 set_keyfile (chroot& chroot,
00100 keyfile const& keyfile,
00101 string_list& used_keys);
00102 };
00103
00104 }
00105
00106 #endif
00107
00108
00109
00110
00111
00112