1/* 2 * Copyright 2013, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _PACKAGE__SOLVER_RESULT_H_ 6#define _PACKAGE__SOLVER_RESULT_H_ 7 8 9#include <ObjectList.h> 10 11 12namespace BPackageKit { 13 14 15class BSolverPackage; 16 17 18class BSolverResultElement { 19public: 20 enum BType { 21 B_TYPE_INSTALL, 22 B_TYPE_UNINSTALL 23 }; 24 25public: 26 BSolverResultElement(BType type, 27 BSolverPackage* package); 28 BSolverResultElement( 29 const BSolverResultElement& other); 30 ~BSolverResultElement(); 31 32 BType Type() const; 33 BSolverPackage* Package() const; 34 35 BSolverResultElement& operator=(const BSolverResultElement& other); 36 37private: 38 BType fType; 39 BSolverPackage* fPackage; 40}; 41 42 43class BSolverResult { 44public: 45 BSolverResult(); 46 ~BSolverResult(); 47 48 bool IsEmpty() const; 49 int32 CountElements() const; 50 const BSolverResultElement* ElementAt(int32 index) const; 51 52 void MakeEmpty(); 53 bool AppendElement( 54 const BSolverResultElement& element); 55 56private: 57 typedef BObjectList<BSolverResultElement> ElementList; 58 59private: 60 ElementList fElements; 61}; 62 63 64} // namespace BPackageKit 65 66 67#endif // _PACKAGE__SOLVER_RESULT_H_ 68