/usr/include/sbuild/sbuild-chroot-facet.h is in libsbuild-dev 1.6.10-1ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | /* Copyright © 2005-2009 Roger Leigh <rleigh@debian.org>
*
* schroot is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* schroot is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
* <http://www.gnu.org/licenses/>.
*
*********************************************************************/
#ifndef SBUILD_CHROOT_FACET_H
#define SBUILD_CHROOT_FACET_H
#include <sbuild/sbuild-environment.h>
#include <sbuild/sbuild-format-detail.h>
#include <sbuild/sbuild-keyfile.h>
#include <sbuild/sbuild-types.h>
#include <sbuild/sbuild-chroot.h>
#include <string>
namespace sbuild
{
/**
* Common chroot data. This class contains all of the metadata
* associated with a single chroot, for all chroot types. This is
* the in-core representation of a chroot definition in the
* configuration file, and may be initialised directly from an open
* keyfile.
*/
class chroot_facet
{
public:
/// A shared_ptr to a chroot facet object.
typedef std::shared_ptr<chroot_facet> ptr;
/// A shared_ptr to a const chroot facet object.
typedef std::shared_ptr<const chroot_facet> const_ptr;
protected:
/// The constructor.
chroot_facet(): owner(0) {};
/**
* Set containing chroot.
*
* @param chroot the chroot containing this facet.
*/
void
set_chroot(chroot& chroot)
{
this->owner = &chroot;
}
friend class chroot;
public:
/// The destructor.
virtual ~chroot_facet () {};
/**
* Copy the chroot facet. This is a virtual copy constructor.
*
* @returns a shared_ptr to the new copy of the chroot facet.
*/
virtual ptr
clone () const = 0;
/**
* Get the name of the chroot facet.
*
* @returns the chroot facet name.
*/
virtual std::string const&
get_name () const = 0;
/**
* Set environment. Set the environment that the setup scripts
* will see during execution.
*
* @param chroot the chroot to use.
* @param env the environment to set.
*/
virtual void
setup_env (chroot const& chroot,
environment& env) const = 0;
/**
* Get the session flags of the chroot. These determine how the
* Session controlling the chroot will operate.
*
* @param chroot the chroot to use.
* @returns the session flags.
*/
virtual chroot::session_flags
get_session_flags (chroot const& chroot) const = 0;
/**
* Get detailed information about the chroot for output.
*
* @param chroot the chroot to use.
* @param detail the details to output to.
*/
virtual void
get_details (chroot const& chroot,
format_detail& detail) const = 0;
/**
* Copy the chroot properties into a keyfile. The keyfile group
* with the name of the chroot will be set; if it already exists,
* it will be removed before setting it.
*
* @param chroot the chroot to use.
* @param keyfile the keyfile to use.
*/
virtual void
get_keyfile (chroot const& chroot,
keyfile& keyfile) const = 0;
/**
* Set the chroot properties from a keyfile. The chroot name must
* have previously been set, so that the correct keyfile group may
* be determined.
*
* @param chroot the chroot to use.
* @param keyfile the keyfile to get the properties from.
* @param used_keys a list of the keys used will be set.
*/
virtual void
set_keyfile (chroot& chroot,
keyfile const& keyfile,
string_list& used_keys) = 0;
protected:
/// Chroot owning this facet.
chroot *owner;
};
}
#endif /* SBUILD_CHROOT_FACET_H */
/*
* Local Variables:
* mode:C++
* End:
*/
|