package kit: Add data structures for problem solutions
... and add the problem solutions in LibsolvSolver.
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright 2013, Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _PACKAGE__SOLVER_PROBLEM_SOLUTION_H_
|
||||
#define _PACKAGE__SOLVER_PROBLEM_SOLUTION_H_
|
||||
|
||||
|
||||
#include <ObjectList.h>
|
||||
#include <String.h>
|
||||
|
||||
|
||||
namespace BPackageKit {
|
||||
|
||||
|
||||
class BSolverPackage;
|
||||
|
||||
|
||||
class BSolverProblemSolutionElement {
|
||||
public:
|
||||
enum BType {
|
||||
B_UNSPECIFIED,
|
||||
B_DONT_KEEP,
|
||||
B_DONT_INSTALL,
|
||||
B_DONT_INSTALL_MOST_RECENT,
|
||||
B_DONT_FORBID_INSTALLATION,
|
||||
B_DONT_DEINSTALL,
|
||||
B_DONT_DEINSTALL_ALL,
|
||||
B_DONT_LOCK,
|
||||
B_KEEP_INFERIOR_ARCHITECTURE,
|
||||
B_KEEP_EXCLUDED,
|
||||
B_KEEP_OLD,
|
||||
B_INSTALL_INFERIOR_ARCHITECTURE,
|
||||
B_INSTALL_EXCLUDED,
|
||||
B_INSTALL_OLD,
|
||||
B_ALLOW_DOWNGRADE,
|
||||
B_ALLOW_NAME_CHANGE,
|
||||
B_ALLOW_ARCHITECTURE_CHANGE,
|
||||
B_ALLOW_VENDOR_CHANGE,
|
||||
B_ALLOW_REPLACEMENT,
|
||||
B_ALLOW_DEINSTALLATION
|
||||
};
|
||||
|
||||
public:
|
||||
BSolverProblemSolutionElement(BType type,
|
||||
BSolverPackage* sourcePackage,
|
||||
BSolverPackage* targetPackage,
|
||||
const BString& selection);
|
||||
~BSolverProblemSolutionElement();
|
||||
|
||||
BType Type() const;
|
||||
BSolverPackage* SourcePackage() const;
|
||||
BSolverPackage* TargetPackage() const;
|
||||
const BString& Selection() const;
|
||||
|
||||
BString ToString() const;
|
||||
|
||||
private:
|
||||
BType fType;
|
||||
BSolverPackage* fSourcePackage;
|
||||
BSolverPackage* fTargetPackage;
|
||||
BString fSelection;
|
||||
};
|
||||
|
||||
|
||||
class BSolverProblemSolution {
|
||||
public:
|
||||
typedef BSolverProblemSolutionElement Element;
|
||||
|
||||
public:
|
||||
BSolverProblemSolution();
|
||||
~BSolverProblemSolution();
|
||||
|
||||
int32 CountElements() const;
|
||||
const Element* ElementAt(int32 index) const;
|
||||
|
||||
bool AppendElement(const Element& element);
|
||||
|
||||
private:
|
||||
typedef BObjectList<Element> ElementList;
|
||||
|
||||
private:
|
||||
ElementList fElements;
|
||||
};
|
||||
|
||||
|
||||
} // namespace BPackageKit
|
||||
|
||||
|
||||
#endif // _PACKAGE__SOLVER_PROBLEM_SOLUTION_H_
|
||||
Reference in New Issue
Block a user