This effectively reverts commit 618bd457849ed44d301d27d81d3b2f262f798897. --- IniDBBuilder.h | 58 +++++++++++++++++++++++++++++++++++++++++++ IniDBBuilderPackage.h | 6 ++--- ini.h | 4 +-- inilex.ll | 4 +-- iniparse.yy | 4 +-- 5 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 IniDBBuilder.h
diff --git a/IniDBBuilder.h b/IniDBBuilder.h new file mode 100644 index 0000000..3b89041 --- /dev/null +++ b/IniDBBuilder.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2002, Robert Collins. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * A copy of the GNU General Public License can be found at + * http://www.gnu.org/ + * + * Written by Robert Collins <rbtcoll...@hotmail.com> + * + */ + +#ifndef SETUP_INIDBBUILDER_H +#define SETUP_INIDBBUILDER_H + +#include "PackageSpecification.h" +#include "PackageTrust.h" + +enum class hashType { none, md5, sha512 }; + +class IniDBBuilder +{ +public: + virtual ~IniDBBuilder() {}; + + virtual void buildTimestamp (const std::string& ) = 0; + virtual void buildVersion (const std::string& ) = 0; + virtual const std::string buildMinimumVersion(const std::string &) = 0; + virtual void buildPackage (const std::string& ) = 0; + virtual void buildPackageVersion (const std::string& ) = 0; + virtual void buildPackageSDesc (const std::string& ) = 0; + virtual void buildPackageLDesc (const std::string& ) = 0; + virtual void buildPackageInstall (const std::string&, const std::string&, + char *, hashType) = 0; + virtual void buildPackageSource (const std::string&, const std::string&, + char *, hashType) = 0; + virtual void buildPackageTrust (trusts) = 0; + virtual void buildPackageCategory (const std::string& ) = 0; + virtual void buildBeginDepends () = 0; + virtual void buildBeginBuildDepends () = 0; + virtual void buildBeginObsoletes () = 0; + virtual void buildBeginProvides () = 0; + virtual void buildBeginConflicts () = 0; + virtual void buildMessage (const std::string&, const std::string&) = 0; + virtual void buildSourceName (const std::string& ) = 0; + virtual void buildSourceNameVersion (const std::string& ) = 0; + virtual void buildPackageListNode (const std::string& ) = 0; + virtual void buildPackageListOperator (PackageSpecification::_operators const &) = 0; + virtual void buildPackageListOperatorVersion (const std::string& ) = 0; + virtual void buildPackageReplaceVersionsList (const std::string& ) = 0; + virtual void set_arch (const std::string& a) = 0; + virtual void set_release (const std::string& rel) = 0; +}; + +#endif /* SETUP_INIDBBUILDER_H */ diff --git a/IniDBBuilderPackage.h b/IniDBBuilderPackage.h index e5d3662..3e3a9e4 100644 --- a/IniDBBuilderPackage.h +++ b/IniDBBuilderPackage.h @@ -16,20 +16,18 @@ #ifndef SETUP_INIDBBUILDERPACKAGE_H #define SETUP_INIDBBUILDERPACKAGE_H +#include "IniDBBuilder.h" #include <vector> #include <set> #include "package_message.h" -#include "PackageTrust.h" #include "String++.h" #include "libsolv.h" class IniParseFeedback; class packagesource; -enum class hashType { none, md5, sha512 }; - -class IniDBBuilderPackage +class IniDBBuilderPackage:public IniDBBuilder { public: IniDBBuilderPackage (IniParseFeedback const &); diff --git a/ini.h b/ini.h index 3ff9617..1e4f889 100644 --- a/ini.h +++ b/ini.h @@ -30,9 +30,9 @@ extern std::string SetupIniDir; extern std::string SetupBaseName; class IniState; -class IniDBBuilderPackage; +class IniDBBuilder; class IniParseFeedback; -void ini_init (io_stream *, IniDBBuilderPackage *, IniParseFeedback &); +void ini_init (io_stream *, IniDBBuilder *, IniParseFeedback &); #define YYSTYPE char * /* When setup.ini is parsed, the information is stored according to diff --git a/inilex.ll b/inilex.ll index 0147b4d..26a95e3 100644 --- a/inilex.ll +++ b/inilex.ll @@ -166,11 +166,11 @@ B64 [a-zA-Z0-9_-] #include "io_stream.h" static io_stream *input_stream = 0; -extern IniDBBuilderPackage *iniBuilder; +extern IniDBBuilder *iniBuilder; static IniParseFeedback *iniFeedback; void -ini_init(io_stream *stream, IniDBBuilderPackage *aBuilder, IniParseFeedback &aFeedback) +ini_init(io_stream *stream, IniDBBuilder *aBuilder, IniParseFeedback &aFeedback) { input_stream = stream; iniBuilder = aBuilder; diff --git a/iniparse.yy b/iniparse.yy index f85fe13..ca9b8a7 100644 --- a/iniparse.yy +++ b/iniparse.yy @@ -25,13 +25,13 @@ extern int yyerror (const std::string& s); int yylex (); -#include "IniDBBuilderPackage.h" +#include "IniDBBuilder.h" #define YYERROR_VERBOSE 1 #define YYINITDEPTH 1000 /*#define YYDEBUG 1*/ -IniDBBuilderPackage *iniBuilder; +IniDBBuilder *iniBuilder; extern int yylineno; %} -- 2.21.0