00001 /* Copyright © 2005-2008 Roger Leigh <rleigh@debian.org> 00002 * 00003 * schroot is free software: you can redistribute it and/or modify it 00004 * under the terms of the GNU General Public License as published by 00005 * the Free Software Foundation, either version 3 of the License, or 00006 * (at your option) any later version. 00007 * 00008 * schroot is distributed in the hope that it will be useful, but 00009 * WITHOUT ANY WARRANTY; without even the implied warranty of 00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 * General Public License for more details. 00012 * 00013 * You should have received a copy of the GNU General Public License 00014 * along with this program. If not, see 00015 * <http://www.gnu.org/licenses/>. 00016 * 00017 *********************************************************************/ 00018 00019 #ifndef SBUILD_CHROOT_MOUNTABLE_H 00020 #define SBUILD_CHROOT_MOUNTABLE_H 00021 00022 #include <sbuild/sbuild-chroot.h> 00023 00024 namespace sbuild 00025 { 00026 00032 class chroot_mountable : virtual public chroot 00033 { 00034 protected: 00036 chroot_mountable (); 00037 00038 friend class chroot; 00039 00040 public: 00042 virtual ~chroot_mountable (); 00043 00044 virtual std::string const& 00045 get_mount_device () const = 0; 00046 00052 std::string const& 00053 get_mount_options () const; 00054 00060 void 00061 set_mount_options (std::string const& mount_options); 00062 00069 virtual std::string const& 00070 get_location () const; 00071 00078 virtual void 00079 set_location (std::string const& location); 00080 00081 virtual void 00082 setup_env (environment& env); 00083 00084 virtual session_flags 00085 get_session_flags () const; 00086 00087 protected: 00088 virtual void 00089 get_details (format_detail& detail) const; 00090 00091 virtual void 00092 get_keyfile (keyfile& keyfile) const; 00093 00094 virtual void 00095 set_keyfile (keyfile const& keyfile, 00096 string_list& used_keys); 00097 00098 private: 00100 std::string mount_options; 00101 }; 00102 00103 } 00104 00105 #endif /* SBUILD_CHROOT_MOUNTABLE_H */ 00106 00107 /* 00108 * Local Variables: 00109 * mode:C++ 00110 * End: 00111 */