sbuild
1.4.26
|
00001 /* Copyright © 2005-2009 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_FACET_PERSONALITY_H 00020 #define SBUILD_CHROOT_FACET_PERSONALITY_H 00021 00022 #include <sbuild/sbuild-chroot-facet.h> 00023 #include <sbuild/sbuild-personality.h> 00024 00025 namespace sbuild 00026 { 00027 00031 class chroot_facet_personality : public chroot_facet 00032 { 00033 public: 00035 typedef std::tr1::shared_ptr<chroot_facet_personality> ptr; 00036 00038 typedef std::tr1::shared_ptr<const chroot_facet_personality> const_ptr; 00039 00040 private: 00042 chroot_facet_personality (); 00043 00044 public: 00046 virtual ~chroot_facet_personality (); 00047 00053 static ptr 00054 create (); 00055 00056 virtual chroot_facet::ptr 00057 clone () const; 00058 00059 virtual std::string const& 00060 get_name () const; 00061 00067 personality const& 00068 get_persona () const; 00069 00075 void 00076 set_persona (personality const& persona); 00077 00078 virtual void 00079 setup_env (chroot const& chroot, 00080 environment& env) const; 00081 00082 virtual chroot::session_flags 00083 get_session_flags (chroot const& chroot) const; 00084 00085 virtual void 00086 get_details (chroot const& chroot, 00087 format_detail& detail) const; 00088 00089 virtual void 00090 get_keyfile (chroot const& chroot, 00091 keyfile& keyfile) const; 00092 00093 virtual void 00094 set_keyfile (chroot& chroot, 00095 keyfile const& keyfile, 00096 string_list& used_keys); 00097 00098 private: 00100 personality persona; 00101 }; 00102 00103 } 00104 00105 #endif /* SBUILD_CHROOT_FACET_PERSONALITY_H */ 00106 00107 /* 00108 * Local Variables: 00109 * mode:C++ 00110 * End: 00111 */