#include <application_config.h>

Public Member Functions | |
| application_config (const istring &config_file, const istring &basename) | |
| manages application settings for in the "config_file". | |
| virtual | ~application_config () |
| IMPLEMENT_CLASS_NAME ("application_config") | |
| bool | product_exists (const istring &product) |
| returns true if the section for "product" exists in the TOC. | |
| istring | find_program (const istring &product, const istring &app_name, int &level) |
| seeks out the entry for the "product" and "app_name" in our info. | |
| bool | find_section (const istring §ion_name, string_table &info_found) |
| locates the entries for "section_name" and stores them in "info_found". | |
| bool | add_section (const istring §ion_name, const string_table &info) |
| puts a chunk of "info" into the section for "section_name". | |
| bool | replace_section (const istring §ion_name, const string_table &info) |
| replaces the section for "section_name" with "info". | |
| bool | add_program (const istring &product, const istring &app_name, const istring &full_path, int level) |
| registers a program "app_name" into the "product" section. | |
| bool | remove_program (const istring &product, const istring &app_name) |
| takes a previously registered "app_name" out of the list for "product". | |
| bool | add_startup_entry (const istring &product, const istring &app_name, const istring ¶meters, int one_shot) |
| establishes the "app_name" as a program launched at object startup. | |
| bool | remove_startup_entry (const istring &product, const istring &app_name) |
| takes an existing entry for the "app_name" out of the startup section. | |
Static Public Member Functions | |
| static const char * | STARTUP_SECTION () |
| the section where startup info is stored. | |
| static const char * | STARTUP_APP_NAME () |
| a special placeholder name that will appear in the startup list. | |
| static bool | find_entry (const string_table &table, const istring &name, istring &location) |
| returns true if the key "name" for a program is found in the "table". | |
| static istring | make_startup_entry (const istring &product, const istring &parms, bool one_shot) |
| returns the appropriate string for a startup record. | |
| static bool | parse_startup_entry (const istring &info, istring &product, istring &parms, bool &one_shot) |
| processes the items in "info" as an application startup list. | |
This records the list of programs that are allowed to be executed as well as the list of applications launched at object startup time.
Definition at line 35 of file application_config.h.
manages application settings for in the "config_file".
the "basename" is used for the section name of a list of products that can be managed by this class. each product has a set of applications that are part of the product's full package.
Definition at line 59 of file application_config.cpp.
References symbol_table< contents >::add(), add_section(), find_section(), FUNCDEF, LOG, make_startup_entry(), STARTUP_APP_NAME(), and STARTUP_SECTION().
| application_config::~application_config | ( | ) | [virtual] |
| application_config::IMPLEMENT_CLASS_NAME | ( | "application_config" | ) |
| const char * application_config::STARTUP_SECTION | ( | ) | [static] |
the section where startup info is stored.
Definition at line 85 of file application_config.cpp.
Referenced by add_startup_entry(), application_config(), and remove_startup_entry().
| const char * application_config::STARTUP_APP_NAME | ( | ) | [static] |
a special placeholder name that will appear in the startup list.
it is not to be executed like the other programs for startup.
Definition at line 88 of file application_config.cpp.
Referenced by application_config().
| bool application_config::find_entry | ( | const string_table & | table, | |
| const istring & | name, | |||
| istring & | location | |||
| ) | [static] |
returns true if the key "name" for a program is found in the "table".
the "location" is set to the value found in the table if successful.
Definition at line 242 of file application_config.cpp.
References symbol_table< contents >::find().
Referenced by remove_startup_entry().
| istring application_config::make_startup_entry | ( | const istring & | product, | |
| const istring & | parms, | |||
| bool | one_shot | |||
| ) | [static] |
returns the appropriate string for a startup record.
Definition at line 215 of file application_config.cpp.
References ASSIGN_TOKEN(), ONESHOT_HEADING(), PARMS_HEADING(), PRODUCT_HEADING(), SEPARATOR_TEXT(), and istring::SPRINTF.
Referenced by add_startup_entry(), and application_config().
| bool application_config::parse_startup_entry | ( | const istring & | info, | |
| istring & | product, | |||
| istring & | parms, | |||
| bool & | one_shot | |||
| ) | [static] |
processes the items in "info" as an application startup list.
using a string "info" that was listed as the startup entry for an application, the "product", "parms" and "one_shot" bits are parsed out and returned.
Definition at line 224 of file application_config.cpp.
References ASSIGN_TOKEN(), istring::convert(), tokenizer::find(), FUNCDEF, ONESHOT_HEADING(), PARMS_HEADING(), tokenizer::parse(), PRODUCT_HEADING(), and SEPARATOR_TOKEN().
| bool application_config::product_exists | ( | const istring & | product | ) |
returns true if the section for "product" exists in the TOC.
Definition at line 91 of file application_config.cpp.
References section_manager::section_exists().
Referenced by process_manager::launch_at_startup(), process_manager::launch_now(), process_manager::query_application(), process_manager::remove_from_startup(), and process_manager::zap_process().
| istring application_config::find_program | ( | const istring & | product, | |
| const istring & | app_name, | |||
| int & | level | |||
| ) |
seeks out the entry for the "product" and "app_name" in our info.
the returned string will either be empty (on failure) or will contain the full path to the application (on success). the "level" will specify the ordering of shutdown, where larger levels are shut down first.
Definition at line 98 of file application_config.cpp.
References section_manager::config(), istring::convert(), istring::find(), istring::iequals(), configurator::load(), section_manager::make_section_heading(), negative(), parser_bits::substitute_env_vars(), and istring::zap().
Referenced by process_manager::launch_at_startup(), process_manager::launch_now(), process_manager::query_application(), process_manager::remove_from_startup(), and process_manager::zap_process().
| bool application_config::find_section | ( | const istring & | section_name, | |
| string_table & | info_found | |||
| ) |
locates the entries for "section_name" and stores them in "info_found".
Definition at line 188 of file application_config.cpp.
References section_manager::find_section(), FUNCDEF, LOG, and symbol_table< contents >::reset().
Referenced by add_program(), add_startup_entry(), application_config(), remove_program(), and remove_startup_entry().
| bool application_config::add_section | ( | const istring & | section_name, | |
| const string_table & | info | |||
| ) |
puts a chunk of "info" into the section for "section_name".
this fails if the section already exists.
Definition at line 201 of file application_config.cpp.
References section_manager::add_section().
Referenced by add_program(), application_config(), and remove_startup_entry().
| bool application_config::replace_section | ( | const istring & | section_name, | |
| const string_table & | info | |||
| ) |
replaces the section for "section_name" with "info".
this fails if the section does not already exist.
Definition at line 208 of file application_config.cpp.
References section_manager::replace_section().
Referenced by add_program(), add_startup_entry(), remove_program(), and remove_startup_entry().
| bool application_config::add_program | ( | const istring & | product, | |
| const istring & | app_name, | |||
| const istring & | full_path, | |||
| int | level | |||
| ) |
registers a program "app_name" into the "product" section.
the "full_path" specifies where to find the program and the "level" gives the application an ordering for shutdown. higher levels are shut down before lower ones.
Definition at line 138 of file application_config.cpp.
References symbol_table< contents >::add(), add_section(), find_section(), FUNCDEF, LOG, symbol_table< contents >::name(), replace_section(), istring::s(), section_manager::section_exists(), symbol_table< contents >::symbols(), and symbol_table< contents >::whack().
takes a previously registered "app_name" out of the list for "product".
Definition at line 173 of file application_config.cpp.
References find_section(), FUNCDEF, replace_section(), and symbol_table< contents >::whack().
| bool application_config::add_startup_entry | ( | const istring & | product, | |
| const istring & | app_name, | |||
| const istring & | parameters, | |||
| int | one_shot | |||
| ) |
establishes the "app_name" as a program launched at object startup.
adds an entry to the startup section for a program that will be launched when the application manager restarts.
Definition at line 253 of file application_config.cpp.
References symbol_table< contents >::add(), find_section(), FUNCDEF, LOG, make_startup_entry(), replace_section(), and STARTUP_SECTION().
Referenced by process_manager::launch_at_startup().
takes an existing entry for the "app_name" out of the startup section.
COMPLAIN_PRODUCT;
Definition at line 280 of file application_config.cpp.
References add_section(), find_entry(), find_section(), FUNCDEF, LOG, replace_section(), STARTUP_SECTION(), and symbol_table< contents >::whack().
Referenced by process_manager::remove_from_startup().
1.5.6