X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fconfig.h;h=9043208364b554e518feb8a74ff1a18e37df730e;hb=f7e0a54c49480981a8d9bec064375323fce0aaf1;hp=d7f7351f00d4420eb324cb492abbf388b2732645;hpb=43bd25ffcb0b4f7882773f4676b209a99cb73c04;p=builder.git diff --git a/source/config.h b/source/config.h index d7f7351..9043208 100644 --- a/source/config.h +++ b/source/config.h @@ -29,13 +29,11 @@ public: }; typedef std::map OptionMap; + typedef std::map InputOptions; private: - class Loader: public Msp::DataFile::Loader + class Loader: public Msp::DataFile::ObjectLoader { - private: - Config &conf; - public: Loader(Config &); private: @@ -44,8 +42,9 @@ private: SourcePackage &package; OptionMap options; + InputOptions pending_options; Msp::Time::TimeStamp mtime; - bool freeze_mtime; + bool changed; public: Config(SourcePackage &); @@ -62,25 +61,13 @@ public: /** Checks whether an option exists. */ bool is_option(const std::string &) const; - /** Selects the last profile used. If the profile cache file is not - present, the default profile is assumed. */ - void select_last_profile(); - - /** Selects a profile. The profile cache file is updated, unless doing a - dry run. */ - void select_profile(const std::string &); - /** Processes options from the given raw option map. Nonexistent options are ignored. If any options were changed, the mtime of the configuration is updated to the current time. Return value indicates whether any options were changed. */ bool update(const StringMap &); - /** Expands any variable references in options. */ - void finish(); - void save() const; -private: bool set_option(const std::string &, const std::string &); void load(); };