1/*
2 * Copyright 2013, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _PACKAGE__SOLVER_PACKAGE_SPECIFIER_LIST_H_
6#define _PACKAGE__SOLVER_PACKAGE_SPECIFIER_LIST_H_
7
8
9#include <String.h>
10
11
12namespace BPackageKit {
13
14
15class BSolverPackage;
16class BSolverPackageSpecifier;
17
18
19class BSolverPackageSpecifierList {
20public:
21								BSolverPackageSpecifierList();
22								BSolverPackageSpecifierList(
23									const BSolverPackageSpecifierList& other);
24								~BSolverPackageSpecifierList();
25
26			bool				IsEmpty() const;
27			int32				CountSpecifiers() const;
28			const BSolverPackageSpecifier* SpecifierAt(int32 index) const;
29
30			bool				AppendSpecifier(
31									const BSolverPackageSpecifier& specifier);
32			bool				AppendSpecifier(BSolverPackage* package);
33			bool				AppendSpecifier(const BString& selectString);
34			bool				AppendSpecifiers(
35									const char* const* selectStrings,
36									int32 count);
37			void				MakeEmpty();
38
39			BSolverPackageSpecifierList& operator=(
40									const BSolverPackageSpecifierList& other);
41
42private:
43			class Vector;
44
45private:
46			Vector*				fSpecifiers;
47};
48
49
50}	// namespace BPackageKit
51
52
53#endif // _PACKAGE__SOLVER_PACKAGE_SPECIFIER_LIST_H_
54