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
12 * Written by Robert Collins <rbtcollins@hotmail.com>
16 #ifndef SETUP_INIDBBUILDERPACKAGE_H
17 #define SETUP_INIDBBUILDERPACKAGE_H
19 #include "IniDBBuilder.h"
23 #include "package_message.h"
27 class IniParseFeedback
;
30 class IniDBBuilderPackage
:public IniDBBuilder
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
&,
45 void buildPackageSource (const std::string
&, const std::string
&,
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
;
72 std::string parse_mirror
;
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 */