sbuild::chroot_block_device Class Reference

A chroot stored on an unmounted block device. More...

#include <sbuild-chroot-block-device.h>

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

List of all members.

Public Types

typedef chroot::error error
 Exception type.

Public Member Functions

virtual ~chroot_block_device ()
 The destructor.
virtual chroot::ptr clone () const
 Copy the chroot.
virtual chroot::ptr clone_session (std::string const &session_id, std::string const &user, bool root) const
 Create a session chroot.
virtual chroot::ptr clone_source () const
 Create a source chroot.
virtual void setup_env (chroot const &chroot, environment &env) const
virtual session_flags get_session_flags (chroot const &chroot) const

Protected Member Functions

 chroot_block_device ()
 The constructor.
 chroot_block_device (const chroot_block_device &rhs)
 The copy constructor.
 chroot_block_device (const chroot_lvm_snapshot &rhs)
 The copy constructor.
virtual void setup_lock (chroot::setup_type type, bool lock, int status)
 Unlock a chroot during setup.
virtual void get_details (chroot const &chroot, format_detail &detail) const
virtual void get_keyfile (chroot const &chroot, keyfile &keyfile) const
virtual void set_keyfile (chroot &chroot, keyfile const &keyfile, string_list &used_keys)

Friends

class chroot
class chroot_lvm_snapshot

Detailed Description

A chroot stored on an unmounted block device.

The device will be mounted on demand.


Member Typedef Documentation

Exception type.

Reimplemented from sbuild::chroot.


Constructor & Destructor Documentation

chroot_block_device::chroot_block_device (  )  [protected]
chroot_block_device::chroot_block_device ( const chroot_block_device rhs  )  [protected]

The copy constructor.

chroot_block_device::chroot_block_device ( const chroot_lvm_snapshot rhs  )  [protected]

The copy constructor.

References sbuild::chroot::add_facet(), and sbuild::chroot_facet_union::create().

chroot_block_device::~chroot_block_device (  )  [virtual]

The destructor.


Member Function Documentation

sbuild::chroot::ptr chroot_block_device::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.

References chroot_block_device().

Referenced by clone_source().

sbuild::chroot::ptr chroot_block_device::clone_session ( std::string const &  session_id,
std::string const &  user,
bool  root 
) const [virtual]

Create a session chroot.

Parameters:
session_id the identifier for the new session.
user the user creating the session.
root true if the user has root access, otherwise false.
Returns:
a session chroot.

Implements sbuild::chroot.

References chroot_block_device().

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

Create a source chroot.

Returns:
a source chroot.

Implements sbuild::chroot.

References chroot_block_device(), and clone().

void chroot_block_device::get_details ( chroot const &  chroot,
format_detail detail 
) const [protected, virtual]

Reimplemented from sbuild::chroot_block_device_base.

void chroot_block_device::get_keyfile ( chroot const &  chroot,
keyfile keyfile 
) const [protected, virtual]

Reimplemented from sbuild::chroot_block_device_base.

sbuild::chroot::session_flags chroot_block_device::get_session_flags ( chroot const &  chroot  )  const [virtual]
void chroot_block_device::set_keyfile ( chroot chroot,
keyfile const &  keyfile,
string_list used_keys 
) [protected, virtual]

Reimplemented from sbuild::chroot_block_device_base.

void chroot_block_device::setup_env ( chroot const &  chroot,
environment env 
) const [virtual]

Reimplemented from sbuild::chroot_block_device_base.

void chroot_block_device::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.

References sbuild::chroot_block_device_base::device, sbuild::chroot::DEVICE_LOCK, sbuild::chroot::DEVICE_NOTBLOCK, sbuild::chroot::DEVICE_UNLOCK, sbuild::chroot_block_device_base::get_device(), sbuild::chroot::get_facet(), sbuild::lock::LOCK_EXCLUSIVE, sbuild::device_lock::set_lock(), sbuild::chroot::setup_session_info(), sbuild::chroot::SETUP_START, sbuild::chroot::SETUP_STOP, and sbuild::device_lock::unset_lock().


Friends And Related Function Documentation

friend class chroot [friend]

Reimplemented from sbuild::chroot_block_device_base.

friend class chroot_lvm_snapshot [friend]

The documentation for this class was generated from the following files:

Generated on Fri Feb 12 03:19:07 2010 for sbuild by  doxygen 1.6.1