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

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
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 }

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.
const class 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 196 of file rconfig.h.


Member Typedef Documentation

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

Definition at line 224 of file rconfig.h.

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

Definition at line 225 of file rconfig.h.

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

Definition at line 226 of file rconfig.h.

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

Definition at line 227 of file rconfig.h.


Member Enumeration Documentation

enum configuration_manager::action_type
 

Enumeration values:
action_help 
action_version 
action_archive 
action_relink 
action_check_config 

Definition at line 199 of file rconfig.h.

enum configuration_manager::cfgfile_type
 

Enumeration values:
config_file 
job_file 

Definition at line 206 of file rconfig.h.

enum configuration_manager::logging_type
 

Enumeration values:
logging_manager 
logging_child 
logging_rsync 

Definition at line 219 of file rconfig.h.

enum configuration_manager::overflow_type
 

Enumeration values:
overflow_quit 
overflow_delete_oldest 
overflow_delete_until_free 

Definition at line 210 of file rconfig.h.

enum configuration_manager::selection_type
 

Enumeration values:
selection_round_robin 
selection_max_free 

Definition at line 215 of file rconfig.h.


Constructor & Destructor Documentation

configuration_manager::configuration_manager  ) 
 

C'tor.

Definition at line 1028 of file rconfig.cc.

References clear(), config, and INTERNAL_ERROR.

Here is the call graph for this function:


Member Function Documentation

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

Return the action rvm is to take.

Definition at line 1264 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:

void configuration_manager::check void   )  const
 

Perform sanity checks on configuration settings.

Definition at line 1199 of file rconfig.cc.

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

Referenced by init().

Here is the call graph for this function:

void configuration_manager::clear void   ) 
 

Reset configuration to default settings.

Definition at line 996 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:

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

Return the default configuration filename.

Definition at line 1288 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_default_file.

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 1282 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 job & configuration_manager::default_job void   )  const
 

Return the default job configuration.

Definition at line 1438 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_default_job.

Referenced by test().

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 1297 of file rconfig.cc.

References m_log_dir, and TRY_nomem.

Referenced by test().

const bool configuration_manager::delete_old_log_files void   )  const
 

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

Definition at line 1330 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 1339 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 configuration_manager::logging_type & configuration_manager::error_logging_level void   )  const
 

Return the error-logging-level.

Definition at line 1465 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::init int  argc,
char *  argv[]
 

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

Definition at line 1038 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:

const bool configuration_manager::initialized void   )  const
 

Return the initialized state of the configuration manager.

Definition at line 1257 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 uint16 & configuration_manager::io_poll_interval void   )  const
 

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

Definition at line 1366 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 configuration_manager::jobs_type & configuration_manager::jobs void   )  const
 

Return a list of jobs.

Definition at line 1447 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 std::string & configuration_manager::link_catalog_dir void   )  const
 

Return the link-catalog-dir path.

Definition at line 1312 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 1321 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 configuration_manager::logging_type & configuration_manager::logging_level void   )  const
 

Return the logging-level.

Definition at line 1456 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:

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

Read a configuration file.

Definition at line 1474 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 1495 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:

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

Return the rsync-local-path.

Definition at line 1348 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 1357 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 class timestamp & configuration_manager::timestamp void   )  const
 

Return the timestamp of this instance of rvm.

Definition at line 1303 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 timestamp::resolution_type configuration_manager::timestamp_resolution void   )  const
 

Return the timestamp-resolution.

Definition at line 1375 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 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 1273 of file rconfig.cc.

References initialized(), INTERNAL_ERROR, and m_default.

Referenced by init().

Here is the call graph for this function:

const bool configuration_manager::vault_locking void   )  const
 

Return the vault-locking selection.

Definition at line 1429 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 configuration_manager::overflow_type & configuration_manager::vault_overflow_behavior void   )  const
 

Return the vault-overflow-behavior.

Definition at line 1393 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 1402 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 1411 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 1420 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 configuration_manager::vaults_type & configuration_manager::vaults void   )  const
 

Return the vaults.

Definition at line 1384 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:


Friends And Related Function Documentation

friend class global_parser [friend]
 

Definition at line 288 of file rconfig.h.

Referenced by read_config().

friend class job_parser [friend]
 

Definition at line 289 of file rconfig.h.

Referenced by read_job().


Member Data Documentation

action_type configuration_manager::m_action [private]
 

Definition at line 266 of file rconfig.h.

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

class cfgfiles_type configuration_manager::m_cfgfiles [private]
 

Definition at line 269 of file rconfig.h.

Referenced by clear(), and init().

uint16 configuration_manager::m_configs_read [private]
 

Definition at line 264 of file rconfig.h.

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

bool configuration_manager::m_default [private]
 

Definition at line 267 of file rconfig.h.

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

std::string configuration_manager::m_default_file [private]
 

Definition at line 265 of file rconfig.h.

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

job configuration_manager::m_default_job [private]
 

Definition at line 283 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().

bool configuration_manager::m_delete_old_log_files [private]
 

Definition at line 281 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 282 of file rconfig.h.

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

logging_type configuration_manager::m_error_logging_level [private]
 

Definition at line 286 of file rconfig.h.

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

bool configuration_manager::m_initialized [private]
 

Definition at line 263 of file rconfig.h.

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

uint16 configuration_manager::m_io_poll_interval [private]
 

Definition at line 274 of file rconfig.h.

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

jobs_type configuration_manager::m_jobs [private]
 

Definition at line 284 of file rconfig.h.

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

std::string configuration_manager::m_link_catalog_dir [private]
 

Definition at line 270 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 271 of file rconfig.h.

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

logging_type configuration_manager::m_logging_level [private]
 

Definition at line 285 of file rconfig.h.

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

std::string configuration_manager::m_rsync_local_path [private]
 

Definition at line 272 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 273 of file rconfig.h.

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

class timestamp configuration_manager::m_timestamp [private]
 

Definition at line 268 of file rconfig.h.

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

bool configuration_manager::m_vault_locking [private]
 

Definition at line 280 of file rconfig.h.

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

overflow_type configuration_manager::m_vault_overflow_behavior [private]
 

Definition at line 276 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 277 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 278 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 279 of file rconfig.h.

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

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

Definition at line 275 of file rconfig.h.

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


The documentation for this class was generated from the following files:
Generated on Fri Jun 23 16:55:24 2006 for rvm by  doxygen 1.4.2