1/* 2 * Copyright 2013, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _PACKAGE__SOLVER_PROBLEM_SOLUTION_H_ 6#define _PACKAGE__SOLVER_PROBLEM_SOLUTION_H_ 7 8 9#include <ObjectList.h> 10#include <String.h> 11 12 13namespace BPackageKit { 14 15 16class BSolverPackage; 17 18 19class BSolverProblemSolutionElement { 20public: 21 enum BType { 22 B_UNSPECIFIED, 23 B_DONT_KEEP, 24 B_DONT_INSTALL, 25 B_DONT_INSTALL_MOST_RECENT, 26 B_DONT_FORBID_INSTALLATION, 27 B_DONT_DEINSTALL, 28 B_DONT_DEINSTALL_ALL, 29 B_DONT_LOCK, 30 B_KEEP_INFERIOR_ARCHITECTURE, 31 B_KEEP_EXCLUDED, 32 B_KEEP_OLD, 33 B_INSTALL_INFERIOR_ARCHITECTURE, 34 B_INSTALL_EXCLUDED, 35 B_INSTALL_OLD, 36 B_ALLOW_DOWNGRADE, 37 B_ALLOW_NAME_CHANGE, 38 B_ALLOW_ARCHITECTURE_CHANGE, 39 B_ALLOW_VENDOR_CHANGE, 40 B_ALLOW_REPLACEMENT, 41 B_ALLOW_DEINSTALLATION 42 }; 43 44public: 45 BSolverProblemSolutionElement(BType type, 46 BSolverPackage* sourcePackage, 47 BSolverPackage* targetPackage, 48 const BString& selection); 49 ~BSolverProblemSolutionElement(); 50 51 BType Type() const; 52 BSolverPackage* SourcePackage() const; 53 BSolverPackage* TargetPackage() const; 54 const BString& Selection() const; 55 56 BString ToString() const; 57 58private: 59 BType fType; 60 BSolverPackage* fSourcePackage; 61 BSolverPackage* fTargetPackage; 62 BString fSelection; 63}; 64 65 66class BSolverProblemSolution { 67public: 68 typedef BSolverProblemSolutionElement Element; 69 70public: 71 BSolverProblemSolution(); 72 ~BSolverProblemSolution(); 73 74 int32 CountElements() const; 75 const Element* ElementAt(int32 index) const; 76 77 bool AppendElement(const Element& element); 78 79private: 80 typedef BObjectList<Element> ElementList; 81 82private: 83 ElementList fElements; 84}; 85 86 87} // namespace BPackageKit 88 89 90#endif // _PACKAGE__SOLVER_PROBLEM_SOLUTION_H_ 91