sbuild  1.7.1
session.h
1 /* Copyright © 2005-2013 Roger Leigh <rleigh@debian.org>
2  *
3  * schroot is free software: you can redistribute it and/or modify it
4  * under the terms of the GNU General Public License as published by
5  * the Free Software Foundation, either version 3 of the License, or
6  * (at your option) any later version.
7  *
8  * schroot is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see
15  * <http://www.gnu.org/licenses/>.
16  *
17  *********************************************************************/
18 
19 #ifndef SBUILD_CHROOT_FACET_SESSION_H
20 #define SBUILD_CHROOT_FACET_SESSION_H
21 
22 #include <sbuild/chroot/facet/facet.h>
23 #include <sbuild/session.h>
24 
25 namespace sbuild
26 {
27  namespace chroot
28  {
29  namespace facet
30  {
31 
39  class session : public facet
40  {
41  public:
44 
46  typedef std::shared_ptr<session> ptr;
47 
49  typedef std::shared_ptr<const session> const_ptr;
50 
51  private:
53  session ();
54 
55  public:
57  virtual ~session ();
58 
64  static ptr
65  create ();
66 
67  virtual facet::ptr
68  clone () const;
69 
70  virtual std::string const&
71  get_name () const;
72 
78  std::string const&
79  get_original_name () const;
80 
87  void
88  set_original_name (const std::string& name);
89 
95  std::string const&
96  get_selected_name () const;
97 
103  void
104  set_selected_name (const std::string& name);
105 
111  void
112  setup_session_info (bool start);
113 
114  virtual void
115  setup_env (environment& env) const;
116 
117  virtual void
118  get_details (format_detail& detail) const;
119 
120  virtual void
121  get_used_keys (string_list& used_keys) const;
122 
123  virtual void
124  get_keyfile (keyfile& keyfile) const;
125 
126  virtual void
127  set_keyfile (const keyfile& keyfile);
128 
129  private:
131  std::string original_chroot_name;
133  std::string selected_chroot_name;
134  };
135 
136  }
137  }
138 }
139 
140 #endif /* SBUILD_CHROOT_FACET_SESSION_H */
141 
142 /*
143  * Local Variables:
144  * mode:C++
145  * End:
146  */