configuration_manager Class Reference

Keep up with configuration settings for RVM and it's jobs. More...

#include <rconfig.h>

Collaboration diagram for configuration_manager:

Collaboration graph
[legend]
List of all members.

Public Types

enum  action_type {
  action_help, action_version, action_archive, action_relink,
  action_check_config
}
enum  cfgfile_type { config_file, job_file }
enum  overflow_type { overflow_quit, overflow_delete_oldest, overflow_delete_until_free }
enum  selection_type { selection_round_robin, selection_max_free }
enum  logging_type { logging_manager, logging_child, logging_rsync }
typedef std::pair< cfgfile_type,
std::string > 
cfgfile_element
typedef std::vector< cfgfile_elementcfgfiles_type
typedef std::vector< jobjobs_type
typedef std::vector< std::string > vaults_type

Public Member Functions

void clear (void)
 Reset configuration to default settings.
 configuration_manager ()
 C'tor.
void init (int argc, char *argv[])
 Initialize the configuration manager from rvm's command line options.
void check (void) const
 Perform sanity checks on configuration settings.
const bool initialized (void) const
 Return the initialized state of the configuration manager.
const action_type action (void) const
 Return the action rvm is to take.
const bool use_default (void) const
 Return whether or not rvm is to try to read it's default configuration file.
void default_file (const std::string &a_path)
 Set the default configuration filename.
const std::string & default_file (void) const
 Return the default configuration filename.
void default_logdir (const std::string &a_path)
 Return the default log-dir.
timestamptimestamp (void) const
 Return the timestamp of this instance of rvm.
const std::string & link_catalog_dir (void) const
 Return the link-catalog-dir path.
const std::string & log_dir (void) const
 Return the log-dir path.
const bool delete_old_log_files (void) const
 Return the value of delete-old-log-files.
const bool delete_old_report_files (void) const
 Return the value of delete-old-report-files.
const std::string & rsync_local_path (void) const
 Return the rsync-local-path.
const uint16 & rsync_parallel (void) const
 Return the rsync-parallel.
const uint16 & io_poll_interval (void) const
 Return the number of seconds to sleep between polling for I/O.
const timestamp::resolution_type timestamp_resolution (void) const
 Return the timestamp-resolution.
const vaults_typevaults (void) const
 Return the vaults.
const overflow_typevault_overflow_behavior (void) const
 Return the vault-overflow-behavior.
const uint16 & vault_overflow_blocks (void) const
 Return the vault-overflow-blocks.
const uint16 & vault_overflow_inodes (void) const
 Return the vault-overflow-inodes.
const selection_typevault_selection_behavior (void) const
 Return the vault-selection-behavior.
const bool vault_locking (void) const
 Return the vault-locking selection.
const jobdefault_job (void) const
 Return the default job configuration.
const jobs_typejobs (void) const
 Return a list of jobs.
const logging_typelogging_level (void) const
 Return the logging-level.
const logging_typeerror_logging_level (void) const
 Return the error-logging-level.

Private Member Functions

void read_config (const std::string &a_path)
 Read a configuration file.
void read_job (const std::string &a_path)
 Read a job configuration file.

Private Attributes

bool m_initialized
uint16 m_configs_read
std::string m_default_file
action_type m_action
bool m_default
timestamp m_timestamp
cfgfiles_type m_cfgfiles
std::string m_link_catalog_dir
std::string m_log_dir
std::string m_rsync_local_path
uint16 m_rsync_parallel
uint16 m_io_poll_interval
std::vector< std::string > m_vaults
overflow_type m_vault_overflow_behavior
uint16 m_vault_overflow_blocks
uint16 m_vault_overflow_inodes
selection_type m_vault_selection_behavior
bool m_vault_locking
bool m_delete_old_log_files
bool m_delete_old_report_files
job m_default_job
jobs_type m_jobs
logging_type m_logging_level
logging_type m_error_logging_level

Friends

class global_parser
class job_parser

Detailed Description

Keep up with configuration settings for RVM and it's jobs.

Definition at line 200 of file rconfig.h.


Member Typedef Documentation

typedef std::pair<cfgfile_type, std::string> configuration_manager::cfgfile_element

Definition at line 228 of file rconfig.h.

typedef class std::vector< cfgfile_element > configuration_manager::cfgfiles_type

Definition at line 229 of file rconfig.h.

typedef std::vector<job> configuration_manager::jobs_type

Definition at line 230 of file rconfig.h.

typedef std::vector<std::string> configuration_manager::vaults_type

Definition at line 231 of file rconfig.h.


Member Enumeration Documentation

enum configuration_manager::action_type

Enumerator:
action_help 
action_version 
action_archive 
action_relink 
action_check_config 

Definition at line 203 of file rconfig.h.

enum configuration_manager::cfgfile_type

Enumerator:
config_file 
job_file 

Definition at line 210 of file rconfig.h.

enum configuration_manager::overflow_type

Enumerator:
overflow_quit 
overflow_delete_oldest 
overflow_delete_until_free 

Definition at line 214 of file rconfig.h.

enum configuration_manager::selection_type

Enumerator:
selection_round_robin 
selection_max_free 

Definition at line 219 of file rconfig.h.

enum configuration_manager::logging_type

Enumerator:
logging_manager 
logging_child 
logging_rsync 

Definition at line 223 of file rconfig.h.


Constructor & Destructor Documentation

configuration_manager::configuration_manager (  ) 

C'tor.

Definition at line 1143 of file rconfig.cc.

References clear(), config, and INTERNAL_ERROR.

Here is the call graph for this function:


Member Function Documentation

void configuration_manager::clear ( void   ) 

Reset configuration to default settings.

Definition at line 1111 of file rconfig.cc.

References action_help, job::clear(), CONFIGFILE, LOCAL_RSYNC, LOGDIR, logging_child, logging_rsync, m_action, m_cfgfiles, m_configs_read, m_default, m_default_file, m_default_job, m_delete_old_log_files, m_delete_old_report_files, m_error_logging_level, m_initialized, m_io_poll_interval, m_jobs, m_link_catalog_dir, m_log_dir, m_logging_level, m_rsync_local_path, m_rsync_parallel, m_timestamp, m_vault_locking, m_vault_overflow_behavior, m_vault_overflow_blocks, m_vault_overflow_inodes, m_vault_selection_behavior, m_vaults, overflow_quit, selection_round_robin, timestamp::set(), and TRY_nomem.

Referenced by configuration_manager(), test(), test_rvm(), and test_vaulter().

Here is the call graph for this function:

void configuration_manager::init ( int  argc,
char *  argv[] 
)

Initialize the configuration manager from rvm's command line options.

Definition at line 1153 of file rconfig.cc.

References action_archive, action_check_config, action_help, action_relink, action_version, timestamp::assign(), check(), config_file, err_unknown, ERROR, ERROR_INSTANCE, job_file, m_action, m_cfgfiles, m_configs_read, m_default, m_default_file, m_initialized, m_timestamp, directory::path(), error::push_back(), read_config(), read_job(), TRY, TRY_nomem, and use_default().

Referenced by main(), test(), test_rvm(), test_vaulter(), test_vaulter1(), test_vaulter2(), and test_vaulter3().

Here is the call graph for this function:

void configuration_manager::check ( void   )  const

Perform sanity checks on configuration settings.

Definition at line 1314 of file rconfig.cc.

References ERROR, initialized(), INTERNAL_ERROR, jobs(), m_log_dir, m_rsync_local_path, m_vaults, filestatus::path(), subdirectory::path(), TRY, TRY_instead, and TRY_nomem.

Referenced by init().

Here is the call graph for this function:

const bool configuration_manager::initialized ( void   )  const

Return the initialized state of the configuration manager.

Definition at line 1372 of file rconfig.cc.

References m_initialized.

Referenced by action(), check(), default_file(), default_job(), delete_old_log_files(), delete_old_report_files(), error_logging_level(), report_manager::init(), io_poll_interval(), jobs(), link_catalog_dir(), log_dir(), logging_level(), main(), rsync_local_path(), rsync_parallel(), timestamp(), timestamp_resolution(), use_default(), vault_locking(), vault_overflow_behavior(), vault_overflow_blocks(), vault_overflow_inodes(), vault_selection_behavior(), and vaults().

const configuration_manager::action_type configuration_manager::action ( void   )  const

Return the action rvm is to take.

Definition at line 1379 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_action.

Referenced by log_manager::init(), and main().

Here is the call graph for this function:

const bool configuration_manager::use_default ( void   )  const

Return whether or not rvm is to try to read it's default configuration file.

Definition at line 1388 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_default.

Referenced by init().

Here is the call graph for this function:

void configuration_manager::default_file ( const std::string &  a_path  ) 

Set the default configuration filename.

Definition at line 1397 of file rconfig.cc.

References m_default_file, and TRY_nomem.

Referenced by test(), test_rvm(), test_vaulter(), test_vaulter1(), test_vaulter2(), and test_vaulter3().

const std::string & configuration_manager::default_file ( void   )  const

Return the default configuration filename.

Definition at line 1403 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_default_file.

Here is the call graph for this function:

void configuration_manager::default_logdir ( const std::string &  a_path  ) 

Return the default log-dir.

Definition at line 1412 of file rconfig.cc.

References m_log_dir, and TRY_nomem.

Referenced by test().

class timestamp & configuration_manager::timestamp ( void   )  const

Return the timestamp of this instance of rvm.

Definition at line 1418 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_timestamp.

Referenced by archive_manager::archive_path(), vault_manager::delete_oldest_archive(), report_manager::file_report(), vault_report::format_synopsis(), log_manager::init(), archive_manager::init(), job_archiver::mf_do_chores(), vault_manager::select(), test(), and test_rvm().

Here is the call graph for this function:

const std::string & configuration_manager::link_catalog_dir ( void   )  const

Return the link-catalog-dir path.

Definition at line 1427 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_link_catalog_dir.

Referenced by catalog_manager::catalog(), catalog_manager::erase(), and test().

Here is the call graph for this function:

const std::string & configuration_manager::log_dir ( void   )  const

Return the log-dir path.

Definition at line 1436 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_log_dir.

Referenced by vault_manager::delete_oldest_archive(), report_manager::file_report(), log_manager::init(), test(), and test_rvm().

Here is the call graph for this function:

const bool configuration_manager::delete_old_log_files ( void   )  const

Return the value of delete-old-log-files.

Definition at line 1445 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_delete_old_log_files.

Referenced by vault_manager::delete_oldest_archive(), and test().

Here is the call graph for this function:

const bool configuration_manager::delete_old_report_files ( void   )  const

Return the value of delete-old-report-files.

Definition at line 1454 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_delete_old_report_files.

Referenced by vault_manager::delete_oldest_archive(), and test().

Here is the call graph for this function:

const std::string & configuration_manager::rsync_local_path ( void   )  const

Return the rsync-local-path.

Definition at line 1463 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_rsync_local_path.

Referenced by job_archiver::mf_do_chores(), and test().

Here is the call graph for this function:

const uint16 & configuration_manager::rsync_parallel ( void   )  const

Return the rsync-parallel.

Definition at line 1472 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_rsync_parallel.

Referenced by archive_manager::archive(), and test().

Here is the call graph for this function:

const uint16 & configuration_manager::io_poll_interval ( void   )  const

Return the number of seconds to sleep between polling for I/O.

Definition at line 1481 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_io_poll_interval.

Referenced by job_archiver::mf_process_child_io(), and job_archiver::mf_process_rsync_io().

Here is the call graph for this function:

const timestamp::resolution_type configuration_manager::timestamp_resolution ( void   )  const

Return the timestamp-resolution.

Definition at line 1490 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, m_timestamp, and timestamp::resolution().

Referenced by test().

Here is the call graph for this function:

const configuration_manager::vaults_type & configuration_manager::vaults ( void   )  const

Return the vaults.

Definition at line 1499 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_vaults.

Referenced by catalog_manager::catalog(), vault_manager::select(), and test().

Here is the call graph for this function:

const configuration_manager::overflow_type & configuration_manager::vault_overflow_behavior ( void   )  const

Return the vault-overflow-behavior.

Definition at line 1508 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_vault_overflow_behavior.

Referenced by vault_manager::prepare(), and test().

Here is the call graph for this function:

const uint16 & configuration_manager::vault_overflow_blocks ( void   )  const

Return the vault-overflow-blocks.

Definition at line 1517 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_vault_overflow_blocks.

Referenced by vault_manager::overflow(), and test().

Here is the call graph for this function:

const uint16 & configuration_manager::vault_overflow_inodes ( void   )  const

Return the vault-overflow-inodes.

Definition at line 1526 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_vault_overflow_inodes.

Referenced by vault_manager::overflow(), and test().

Here is the call graph for this function:

const configuration_manager::selection_type & configuration_manager::vault_selection_behavior ( void   )  const

Return the vault-selection-behavior.

Definition at line 1535 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_vault_selection_behavior.

Referenced by vault_manager::select(), and test().

Here is the call graph for this function:

const bool configuration_manager::vault_locking ( void   )  const

Return the vault-locking selection.

Definition at line 1544 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_vault_locking.

Referenced by vault_manager::select(), and test().

Here is the call graph for this function:

const job & configuration_manager::default_job ( void   )  const

Return the default job configuration.

Definition at line 1553 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_default_job.

Referenced by test().

Here is the call graph for this function:

const configuration_manager::jobs_type & configuration_manager::jobs ( void   )  const

Return a list of jobs.

Definition at line 1562 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_jobs.

Referenced by archive_manager::archive(), check(), job::check(), test(), and test_rvm().

Here is the call graph for this function:

const configuration_manager::logging_type & configuration_manager::logging_level ( void   )  const

Return the logging-level.

Definition at line 1571 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_logging_level.

Referenced by log_manager::write().

Here is the call graph for this function:

const configuration_manager::logging_type & configuration_manager::error_logging_level ( void   )  const

Return the error-logging-level.

Definition at line 1580 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_error_logging_level.

Referenced by log_manager::write().

Here is the call graph for this function:

void configuration_manager::read_config ( const std::string &  a_path  )  [private]

Read a configuration file.

Definition at line 1589 of file rconfig.cc.

References ERROR, global_parser, m_configs_read, and TRY_nomem.

Referenced by init().

void configuration_manager::read_job ( const std::string &  a_path  )  [private]

Read a job configuration file.

Definition at line 1610 of file rconfig.cc.

References job::check(), ERROR, job_parser, m_default_job, and TRY_nomem.

Referenced by init().

Here is the call graph for this function:


Friends And Related Function Documentation

friend class global_parser [friend]

Definition at line 292 of file rconfig.h.

Referenced by read_config().

friend class job_parser [friend]

Definition at line 293 of file rconfig.h.

Referenced by read_job().


Member Data Documentation

bool configuration_manager::m_initialized [private]

Definition at line 267 of file rconfig.h.

Referenced by clear(), init(), and initialized().

uint16 configuration_manager::m_configs_read [private]

Definition at line 268 of file rconfig.h.

Referenced by clear(), init(), global_parser::read_config(), and read_config().

std::string configuration_manager::m_default_file [private]

Definition at line 269 of file rconfig.h.

Referenced by clear(), default_file(), and init().

action_type configuration_manager::m_action [private]

Definition at line 270 of file rconfig.h.

Referenced by action(), clear(), and init().

bool configuration_manager::m_default [private]

Definition at line 271 of file rconfig.h.

Referenced by clear(), init(), and use_default().

class timestamp configuration_manager::m_timestamp [private]

Definition at line 272 of file rconfig.h.

Referenced by clear(), init(), global_parser::parse_timestamp_resolution(), timestamp(), and timestamp_resolution().

cfgfiles_type configuration_manager::m_cfgfiles [private]

Definition at line 273 of file rconfig.h.

Referenced by clear(), and init().

std::string configuration_manager::m_link_catalog_dir [private]

Definition at line 274 of file rconfig.h.

Referenced by clear(), link_catalog_dir(), and global_parser::parse_link_catalog_dir().

std::string configuration_manager::m_log_dir [private]

Definition at line 275 of file rconfig.h.

Referenced by check(), clear(), default_logdir(), log_dir(), and global_parser::parse_log_dir().

std::string configuration_manager::m_rsync_local_path [private]

Definition at line 276 of file rconfig.h.

Referenced by check(), clear(), global_parser::parse_rsync_local_path(), and rsync_local_path().

uint16 configuration_manager::m_rsync_parallel [private]

Definition at line 277 of file rconfig.h.

Referenced by clear(), global_parser::parse_rsync_parallel(), and rsync_parallel().

uint16 configuration_manager::m_io_poll_interval [private]

Definition at line 278 of file rconfig.h.

Referenced by clear(), io_poll_interval(), and global_parser::parse_io_poll_interval().

std::vector<std::string> configuration_manager::m_vaults [private]

Definition at line 279 of file rconfig.h.

Referenced by check(), clear(), global_parser::parse_vault(), and vaults().

overflow_type configuration_manager::m_vault_overflow_behavior [private]

Definition at line 280 of file rconfig.h.

Referenced by clear(), global_parser::parse_vault_overflow_behavior(), and vault_overflow_behavior().

uint16 configuration_manager::m_vault_overflow_blocks [private]

Definition at line 281 of file rconfig.h.

Referenced by clear(), global_parser::parse_vault_overflow_blocks(), and vault_overflow_blocks().

uint16 configuration_manager::m_vault_overflow_inodes [private]

Definition at line 282 of file rconfig.h.

Referenced by clear(), global_parser::parse_vault_overflow_inodes(), and vault_overflow_inodes().

selection_type configuration_manager::m_vault_selection_behavior [private]

Definition at line 283 of file rconfig.h.

Referenced by clear(), global_parser::parse_vault_selection_behavior(), and vault_selection_behavior().

bool configuration_manager::m_vault_locking [private]

Definition at line 284 of file rconfig.h.

Referenced by clear(), global_parser::parse_vault_locking(), and vault_locking().

bool configuration_manager::m_delete_old_log_files [private]

Definition at line 285 of file rconfig.h.

Referenced by clear(), delete_old_log_files(), and global_parser::parse_delete_old_log_files().

bool configuration_manager::m_delete_old_report_files [private]

Definition at line 286 of file rconfig.h.

Referenced by clear(), delete_old_report_files(), and global_parser::parse_delete_old_report_files().

job configuration_manager::m_default_job [private]

Definition at line 287 of file rconfig.h.

Referenced by clear(), default_job(), global_parser::parse_default(), global_parser::parse_include_job(), global_parser::parse_job(), and read_job().

jobs_type configuration_manager::m_jobs [private]

Definition at line 288 of file rconfig.h.

Referenced by clear(), jobs(), global_parser::parse_include_job(), and global_parser::parse_job().

logging_type configuration_manager::m_logging_level [private]

Definition at line 289 of file rconfig.h.

Referenced by clear(), logging_level(), and global_parser::parse_logging_level().

logging_type configuration_manager::m_error_logging_level [private]

Definition at line 290 of file rconfig.h.

Referenced by clear(), error_logging_level(), and global_parser::parse_error_logging_level().


The documentation for this class was generated from the following files:
Generated on Tue Jul 1 12:11:22 2008 for rvm by  doxygen 1.5.1