Translated using Weblate (Chinese (Simplified))
[cygwin-setup.git] / IniDBBuilderPackage.h
blob3e3a9e4b65c7297a2b757353c52abf948c1661cf
1 /*
2 * Copyright (c) 2002, Robert Collins.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * A copy of the GNU General Public License can be found at
10 * http://www.gnu.org/
12 * Written by Robert Collins <rbtcollins@hotmail.com>
16 #ifndef SETUP_INIDBBUILDERPACKAGE_H
17 #define SETUP_INIDBBUILDERPACKAGE_H
19 #include "IniDBBuilder.h"
20 #include <vector>
21 #include <set>
23 #include "package_message.h"
24 #include "String++.h"
25 #include "libsolv.h"
27 class IniParseFeedback;
28 class packagesource;
30 class IniDBBuilderPackage:public IniDBBuilder
32 public:
33 IniDBBuilderPackage (IniParseFeedback const &);
34 ~IniDBBuilderPackage ();
36 void buildTimestamp (const std::string& );
37 void buildVersion (const std::string& );
38 const std::string buildMinimumVersion(const std::string &);
39 void buildPackage (const std::string& );
40 void buildPackageVersion (const std::string& );
41 void buildPackageSDesc (const std::string& );
42 void buildPackageLDesc (const std::string& );
43 void buildPackageInstall (const std::string&, const std::string&,
44 char *, hashType);
45 void buildPackageSource (const std::string&, const std::string&,
46 char *, hashType);
48 void buildPackageTrust (trusts);
49 void buildPackageCategory (const std::string& );
51 void buildBeginDepends ();
52 void buildBeginBuildDepends ();
53 void buildBeginObsoletes ();
54 void buildBeginProvides ();
55 void buildBeginConflicts ();
56 void buildMessage (const std::string&, const std::string&);
57 void buildSourceName (const std::string& );
58 void buildSourceNameVersion (const std::string& );
59 void buildPackageListNode (const std::string& );
60 void buildPackageListOperator (PackageSpecification::_operators const &);
61 void buildPackageListOperatorVersion (const std::string& );
62 void buildPackageReplaceVersionsList (const std::string& );
64 void set_arch (const std::string& a) { arch = a; }
65 void set_release (const std::string& rel) { release = rel; }
67 // setup.ini header data
68 unsigned int timestamp;
69 std::string arch;
70 std::string release;
71 std::string version;
72 std::string parse_mirror;
74 private:
75 void process ();
77 // package data
78 std::string name;
79 std::set <std::string, casecompare_lt_op> categories;
80 std::string message_id;
81 std::string message_string;
82 PackageSpecification *currentSpec;
83 PackageDepends *currentNodeList;
84 PackageDepends dependsNodeList;
85 PackageDepends obsoletesNodeList;
86 PackageDepends providesNodeList;
87 PackageDepends conflictsNodeList;
88 SolverPool::addPackageData cbpv;
89 std::set <std::string> replace_versions;
91 IniParseFeedback const &_feedback;
92 bool minimum_version_checked;
95 #endif /* SETUP_INIDBBUILDERPACKAGE_H */