xref: /haiku/headers/os/package/solver/SolverPackageSpecifierList.h (revision 1e60bdeab63fa7a57bc9a55b032052e95a18bd2c)
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 
12 namespace BPackageKit {
13 
14 
15 class BSolverPackage;
16 class BSolverPackageSpecifier;
17 
18 
19 class BSolverPackageSpecifierList {
20 public:
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 
42 private:
43 			class Vector;
44 
45 private:
46 			Vector*				fSpecifiers;
47 };
48 
49 
50 }	// namespace BPackageKit
51 
52 
53 #endif // _PACKAGE__SOLVER_PACKAGE_SPECIFIER_LIST_H_
54