1/* 2 * Copyright 2013, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Ingo Weinhold <ingo_weinhold@gmx.de> 7 */ 8 9 10#include <package/solver/SolverResult.h> 11 12 13namespace BPackageKit { 14 15 16// #pragma mark - BSolverResultElement 17 18 19BSolverResultElement::BSolverResultElement(BType type, BSolverPackage* package) 20 : 21 fType(type), 22 fPackage(package) 23{ 24} 25 26 27BSolverResultElement::BSolverResultElement(const BSolverResultElement& other) 28 : 29 fType(other.fType), 30 fPackage(other.fPackage) 31{ 32} 33 34 35BSolverResultElement::~BSolverResultElement() 36{ 37} 38 39 40BSolverResultElement::BType 41BSolverResultElement::Type() const 42{ 43 return fType; 44} 45 46 47BSolverPackage* 48BSolverResultElement::Package() const 49{ 50 return fPackage; 51} 52 53 54BSolverResultElement& 55BSolverResultElement::operator=(const BSolverResultElement& other) 56{ 57 fType = other.fType; 58 fPackage = other.fPackage; 59 return *this; 60} 61 62 63// #pragma mark - BSolverResult 64 65 66BSolverResult::BSolverResult() 67 : 68 fElements(20, true) 69{ 70} 71 72 73BSolverResult::~BSolverResult() 74{ 75} 76 77 78bool 79BSolverResult::IsEmpty() const 80{ 81 return fElements.IsEmpty(); 82} 83 84 85int32 86BSolverResult::CountElements() const 87{ 88 return fElements.CountItems(); 89} 90 91 92const BSolverResultElement* 93BSolverResult::ElementAt(int32 index) const 94{ 95 return fElements.ItemAt(index); 96} 97 98 99void 100BSolverResult::MakeEmpty() 101{ 102 fElements.MakeEmpty(); 103} 104 105 106bool 107BSolverResult::AppendElement(const BSolverResultElement& element) 108{ 109 BSolverResultElement* newElement 110 = new(std::nothrow) BSolverResultElement(element); 111 if (newElement == NULL || !fElements.AddItem(newElement)) { 112 delete newElement; 113 return false; 114 } 115 116 return true; 117} 118 119 120} // namespace BPackageKit 121