~ubuntu-branches/ubuntu/trusty/schroot/trusty

« back to all changes in this revision

Viewing changes to sbuild/sbuild-chroot-facet-personality.h

  • Committer: Bazaar Package Importer
  • Author(s): Roger Leigh
  • Date: 2009-11-07 10:46:54 UTC
  • mfrom: (1.1.20 upstream) (2.1.6 experimental)
  • Revision ID: james.westby@ubuntu.com-20091107104654-kk1fp1icv8dzfyfi
* New upstream development release.
* schroot:
  - Return success when ending a session and the operation
    succeeded (Closes: #554907).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright © 2005-2009  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_PERSONALITY_H
 
20
#define SBUILD_CHROOT_FACET_PERSONALITY_H
 
21
 
 
22
#include <sbuild/sbuild-chroot-facet.h>
 
23
#include <sbuild/sbuild-personality.h>
 
24
 
 
25
namespace sbuild
 
26
{
 
27
 
 
28
  /**
 
29
   * Chroot support for kernel personalities (execution domains).
 
30
   */
 
31
  class chroot_facet_personality : public chroot_facet
 
32
  {
 
33
  public:
 
34
    /// A shared_ptr to a chroot facet object.
 
35
    typedef std::tr1::shared_ptr<chroot_facet_personality> ptr;
 
36
 
 
37
    /// A shared_ptr to a const chroot facet object.
 
38
    typedef std::tr1::shared_ptr<const chroot_facet_personality> const_ptr;
 
39
 
 
40
  private:
 
41
    /// The constructor.
 
42
    chroot_facet_personality ();
 
43
 
 
44
  public:
 
45
    /// The destructor.
 
46
    virtual ~chroot_facet_personality ();
 
47
 
 
48
    /**
 
49
     * Create a chroot facet.
 
50
     *
 
51
     * @returns a shared_ptr to the new chroot facet.
 
52
     */
 
53
    static ptr
 
54
    create ();
 
55
 
 
56
    virtual chroot_facet::ptr
 
57
    clone () const;
 
58
 
 
59
    virtual std::string const&
 
60
    get_name () const;
 
61
 
 
62
    /**
 
63
     * Get the process execution domain for the chroot.
 
64
     *
 
65
     * @returns the personality.
 
66
     */
 
67
    personality const&
 
68
    get_persona () const;
 
69
 
 
70
    /**
 
71
     * Set the process execution domain for the chroot.
 
72
     *
 
73
     * @param persona the personality.
 
74
     */
 
75
    void
 
76
    set_persona (personality const& persona);
 
77
 
 
78
    virtual void
 
79
    setup_env (chroot const& chroot,
 
80
               environment&  env) const;
 
81
 
 
82
    virtual chroot::session_flags
 
83
    get_session_flags (chroot const& chroot) const;
 
84
 
 
85
    virtual void
 
86
    get_details (chroot const&  chroot,
 
87
                 format_detail& detail) const;
 
88
 
 
89
    virtual void
 
90
    get_keyfile (chroot const& chroot,
 
91
                 keyfile&      keyfile) const;
 
92
 
 
93
    virtual void
 
94
    set_keyfile (chroot&        chroot,
 
95
                 keyfile const& keyfile,
 
96
                 string_list&   used_keys);
 
97
 
 
98
  private:
 
99
    /// Process execution domain (Linux only).
 
100
    personality   persona;
 
101
  };
 
102
 
 
103
}
 
104
 
 
105
#endif /* SBUILD_CHROOT_FACET_PERSONALITY_H */
 
106
 
 
107
/*
 
108
 * Local Variables:
 
109
 * mode:C++
 
110
 * End:
 
111
 */