[PATCH setup 4/7] Restore abstract base class IniDBBuilder
Jon Turney
jon.turney@dronecode.org.uk
Sat Feb 15 17:04:00 GMT 2020
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 <rbtcollins@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
More information about the Cygwin-apps
mailing list