Config* Config::_instance = 0;
int const Config::_current_version = 3;
-boost::signals2::signal<void ()> Config::FailedToLoad;
+boost::signals2::signal<void (Config::LoadFailure)> Config::FailedToLoad;
boost::signals2::signal<void (string)> Config::Warning;
boost::signals2::signal<bool (Config::BadReason)> Config::Bad;
void
Config::read ()
+{
+ read_config();
+ read_cinemas();
+ read_dkdm_recipients();
+}
+
+
+void
+Config::read_config()
try
{
cxml::Document f ("Config");
_last_release_notes_version = f.optional_string_child("LastReleaseNotesVersion");
_export.read(f.optional_node_child("Export"));
-
- if (boost::filesystem::exists (_cinemas_file)) {
- cxml::Document f ("Cinemas");
- f.read_file (_cinemas_file);
- read_cinemas (f);
- }
-
- if (boost::filesystem::exists (_dkdm_recipients_file)) {
- cxml::Document f ("DKDMRecipients");
- f.read_file (_dkdm_recipients_file);
- read_dkdm_recipients (f);
- }
}
catch (...) {
if (have_existing("config.xml") || have_existing("cinemas.xml") || have_existing("dkdm_recipients.xml")) {
backup ();
/* We have a config file but it didn't load */
- FailedToLoad ();
+ FailedToLoad(LoadFailure::CONFIG);
}
set_defaults ();
/* Make a new set of signing certificates and key */
write ();
}
+
+void
+Config::read_cinemas()
+{
+ if (boost::filesystem::exists (_cinemas_file)) {
+ cxml::Document f ("Cinemas");
+ f.read_file (_cinemas_file);
+ read_cinemas (f);
+ }
+}
+
+
+void
+Config::read_dkdm_recipients()
+{
+ if (boost::filesystem::exists (_dkdm_recipients_file)) {
+ cxml::Document f ("DKDMRecipients");
+ f.read_file (_dkdm_recipients_file);
+ read_dkdm_recipients (f);
+ }
+}
+
+
/** @return Singleton instance */
Config *
Config::instance ()