X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcondition.h;h=0cdc2bb482723e756dd94abcc32e94f9367045a3;hb=d9028dec3b81c84560c580008fa68490f049e723;hp=2f3a5ef9888a67a0f978f0944eb956d5261620b9;hpb=c679a9dd1a97ae3b1ffa568143d42d02c2ca9e74;p=builder.git diff --git a/source/condition.h b/source/condition.h index 2f3a5ef..0cdc2bb 100644 --- a/source/condition.h +++ b/source/condition.h @@ -1,16 +1,8 @@ -/* $Id$ - -This file is part of builder -Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef CONDITION_H_ #define CONDITION_H_ #include #include "buildinfo.h" -#include "misc.h" class Config; class SourcePackage; @@ -18,27 +10,30 @@ class SourcePackage; class Condition { public: - class Loader: public Msp::DataFile::Loader + class Loader: public Msp::DataFile::ObjectLoader { public: Loader(Condition &); private: - Condition &cond; - void require(const std::string &); void build_info(); }; - Condition(SourcePackage &, const std::string &); - const StringList &get_requires() const { return requires; } - const BuildInfo &get_build_info() const { return build_info; } - bool eval(); + typedef std::list RequireList; + private: + typedef std::map Expression; + SourcePackage &pkg; - StringMap expression; - StringList requires; - BuildInfo build_info; + Expression expression; + RequireList requires; + BuildInfo build_info; + +public: + Condition(SourcePackage &, const std::string &); + const RequireList &get_requires() const { return requires; } + const BuildInfo &get_build_info() const { return build_info; } + bool eval(); }; -typedef std::list ConditionList; #endif