sbuild::chroot_file Class Reference

A chroot stored in a file archive (tar or zip). More...

#include <sbuild-chroot-file.h>

Inheritance diagram for sbuild::chroot_file:

Inheritance graph
[legend]
Collaboration diagram for sbuild::chroot_file:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~chroot_file ()
 The destructor.
virtual chroot::ptr clone () const
 Copy the chroot.
virtual chroot::ptr clone_source () const
 Create a source chroot.
std::string const & get_file () const
 Get the file used by the chroot.
void set_file (std::string const &file)
 Set the file used by the chroot.
bool get_file_repack () const
 Get the repack status.
void set_file_repack (bool repack)
 Set the file repack status.
virtual std::string const & get_chroot_type () const
 Get the type of the chroot.
virtual void setup_env (environment &env)
 Set environment.
virtual session_flags get_session_flags () const
 Get the session flags of the chroot.

Protected Member Functions

 chroot_file ()
 The constructor.
virtual void setup_lock (chroot::setup_type type, bool lock, int status)
 Unlock a chroot during setup.
virtual void get_details (format_detail &detail) const
 Get detailed information about the chroot for output.
virtual void get_keyfile (keyfile &keyfile) const
 Copy the chroot properties into a keyfile.
virtual void set_keyfile (keyfile const &keyfile)
 Set the chroot properties from a keyfile.

Private Attributes

std::string file
 The file to use.
bool repack
 Should the chroot be repacked?

Friends

class chroot

Detailed Description

A chroot stored in a file archive (tar or zip).

The archive will be unpacked on demand.

Definition at line 33 of file sbuild-chroot-file.h.


Constructor & Destructor Documentation

chroot_file::chroot_file (  )  [protected]

The constructor.

Definition at line 39 of file sbuild-chroot-file.cc.

References sbuild::chroot::set_run_exec_scripts(), and sbuild::chroot::set_run_setup_scripts().

Referenced by clone(), and clone_source().

Here is the call graph for this function:

Here is the caller graph for this function:

chroot_file::~chroot_file (  )  [virtual]

The destructor.

Definition at line 49 of file sbuild-chroot-file.cc.


Member Function Documentation

sbuild::chroot::ptr chroot_file::clone (  )  const [virtual]

Copy the chroot.

This is a virtual copy constructor.

Returns:
a shared_ptr to the new copy of the chroot.

Implements sbuild::chroot.

Definition at line 54 of file sbuild-chroot-file.cc.

References chroot_file().

Referenced by clone_source().

Here is the call graph for this function:

Here is the caller graph for this function:

sbuild::chroot::ptr chroot_file::clone_source (  )  const [virtual]

Create a source chroot.

Returns:
a source chroot.

Implements sbuild::chroot_source.

Definition at line 60 of file sbuild-chroot-file.cc.

References chroot_file(), clone(), sbuild::chroot_source::clone_source_setup(), and repack.

Here is the call graph for this function:

std::string const & chroot_file::get_file (  )  const

Get the file used by the chroot.

Returns:
the file.

Definition at line 72 of file sbuild-chroot-file.cc.

References file.

Referenced by get_details(), get_keyfile(), and setup_env().

Here is the caller graph for this function:

void chroot_file::set_file ( std::string const &  file  ) 

Set the file used by the chroot.

Parameters:
file the file.

Definition at line 78 of file sbuild-chroot-file.cc.

References sbuild::chroot::FILE_ABS, and sbuild::is_absname().

Referenced by set_keyfile().

Here is the call graph for this function:

Here is the caller graph for this function:

bool chroot_file::get_file_repack (  )  const

Get the repack status.

This is true if the unpacked archive file will be repacked.

Returns:
the repack status.

Definition at line 87 of file sbuild-chroot-file.cc.

References repack.

Referenced by get_keyfile().

Here is the caller graph for this function:

void chroot_file::set_file_repack ( bool  repack  ) 

Set the file repack status.

Set to true if the unpacked archive file will be repacked on session cleanup, or false to discard.

Parameters:
repack the repack status.

Definition at line 93 of file sbuild-chroot-file.cc.

Referenced by set_keyfile().

Here is the caller graph for this function:

std::string const & chroot_file::get_chroot_type (  )  const [virtual]

Get the type of the chroot.

Returns:
the chroot type.

Implements sbuild::chroot.

Definition at line 99 of file sbuild-chroot-file.cc.

void chroot_file::setup_env ( environment env  )  [virtual]

Set environment.

Set the environment that the setup scripts will see during execution.

Parameters:
env the environment to set.

Reimplemented from sbuild::chroot_source.

Definition at line 107 of file sbuild-chroot-file.cc.

References sbuild::environment::add(), get_file(), sbuild::chroot_source::setup_env(), and sbuild::chroot::setup_env().

Here is the call graph for this function:

sbuild::chroot::session_flags chroot_file::get_session_flags (  )  const [virtual]

Get the session flags of the chroot.

These determine how the Session controlling the chroot will operate.

Returns:
the session flags.

Implements sbuild::chroot.

Definition at line 149 of file sbuild-chroot-file.cc.

References sbuild::chroot::SESSION_CREATE.

void chroot_file::setup_lock ( chroot::setup_type  type,
bool  lock,
int  status 
) [protected, virtual]

Unlock a chroot during setup.

The locking technique (if any) may vary depending upon the chroot type and setup stage. For example, during creation of an LVM snapshot a block device might require locking, but afterwards this will change to the new block device.

An error will be thrown on failure.

Parameters:
type the type of setup being performed
lock true to lock, false to unlock
status the exit status of the setup commands (0 for success, nonzero for failure).

Implements sbuild::chroot.

Definition at line 117 of file sbuild-chroot-file.cc.

References sbuild::chroot::FILE_NOTREG, sbuild::chroot::FILE_OWNER, sbuild::chroot::FILE_PERMS, sbuild::chroot::FILE_STAT, sbuild::chroot::setup_session_info(), sbuild::chroot::SETUP_START, and sbuild::chroot::SETUP_STOP.

Here is the call graph for this function:

void chroot_file::get_details ( format_detail detail  )  const [protected, virtual]

Get detailed information about the chroot for output.

Parameters:
detail the details to output to.

Reimplemented from sbuild::chroot_source.

Definition at line 155 of file sbuild-chroot-file.cc.

References _, sbuild::format_detail::add(), sbuild::chroot_source::get_details(), sbuild::chroot::get_details(), and get_file().

Here is the call graph for this function:

void chroot_file::get_keyfile ( keyfile keyfile  )  const [protected, virtual]

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.

Parameters:
keyfile the keyfile to use.

Reimplemented from sbuild::chroot_source.

Definition at line 167 of file sbuild-chroot-file.cc.

References sbuild::chroot::get_active(), get_file(), get_file_repack(), sbuild::chroot_source::get_keyfile(), sbuild::chroot::get_keyfile(), sbuild::chroot::get_name(), and sbuild::keyfile::set_object_value().

Here is the call graph for this function:

void chroot_file::set_keyfile ( keyfile const &  keyfile  )  [protected, virtual]

Set the chroot properties from a keyfile.

The chroot name must have previously been set, so that the correct keyfile group may be determined.

Parameters:
keyfile the keyfile to get the properties from.

Reimplemented from sbuild::chroot_source.

Definition at line 181 of file sbuild-chroot-file.cc.

References sbuild::chroot::get_active(), sbuild::chroot::get_name(), sbuild::keyfile::get_object_value(), sbuild::keyfile::PRIORITY_DISALLOWED, sbuild::keyfile::PRIORITY_REQUIRED, set_file(), set_file_repack(), sbuild::chroot_source::set_keyfile(), and sbuild::chroot::set_keyfile().

Here is the call graph for this function:


Friends And Related Function Documentation

friend class chroot [friend]

Reimplemented from sbuild::chroot_source.

Definition at line 40 of file sbuild-chroot-file.h.


Member Data Documentation

std::string sbuild::chroot_file::file [private]

The file to use.

Definition at line 113 of file sbuild-chroot-file.h.

Referenced by get_file().

bool sbuild::chroot_file::repack [private]

Should the chroot be repacked?

Definition at line 115 of file sbuild-chroot-file.h.

Referenced by clone_source(), and get_file_repack().


The documentation for this class was generated from the following files:
Generated on Sat Jan 27 16:13:25 2007 for schroot by  doxygen 1.5.1