haiku/headers/os/package/solver/SolverProblemSolution.h
Ingo Weinhold 5e01af3199 package kit: Add data structures for problem solutions
... and add the problem solutions in LibsolvSolver.
2013-04-09 17:24:27 +02:00

91 lines
1.8 KiB
C++

/*
* 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_