00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef SBUILD_CHROOT_LOOPBACK_H
00020 #define SBUILD_CHROOT_LOOPBACK_H
00021
00022 #include <sbuild/sbuild-config.h>
00023 #include <sbuild/sbuild-chroot.h>
00024
00025 namespace sbuild
00026 {
00027
00033 class chroot_loopback : public chroot
00034 {
00035 public:
00037 typedef chroot::error error;
00038
00039 protected:
00041 chroot_loopback ();
00042
00044 chroot_loopback (const chroot_loopback& rhs);
00045
00046 friend class chroot;
00047
00048 public:
00050 virtual ~chroot_loopback ();
00051
00052 virtual chroot::ptr
00053 clone () const;
00054
00055 virtual chroot::ptr
00056 clone_session (std::string const& session_id,
00057 std::string const& alias,
00058 std::string const& user,
00059 bool root) const;
00060
00061 virtual chroot::ptr
00062 clone_source () const;
00063
00069 std::string const&
00070 get_file () const;
00071
00077 void
00078 set_file (std::string const& file);
00079
00080 std::string const&
00081 get_chroot_type () const;
00082
00083 virtual std::string
00084 get_path () const;
00085
00086 virtual void
00087 setup_env (chroot const& chroot,
00088 environment& env) const;
00089
00090 virtual session_flags
00091 get_session_flags (chroot const& chroot) const;
00092
00093 protected:
00094 virtual void
00095 setup_lock (chroot::setup_type type,
00096 bool lock,
00097 int status);
00098
00099 virtual void
00100 get_details (chroot const& chroot,
00101 format_detail& detail) const;
00102
00103 virtual void
00104 get_keyfile (chroot const& chroot,
00105 keyfile& keyfile) const;
00106
00107 virtual void
00108 set_keyfile (chroot& chroot,
00109 keyfile const& keyfile,
00110 string_list& used_keys);
00111
00112 private:
00114 std::string file;
00115 };
00116
00117 }
00118
00119 #endif
00120
00121
00122
00123
00124
00125