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_H_
6#define _PACKAGE__SOLVER_PACKAGE_SPECIFIER_H_
7
8
9#include <String.h>
10
11
12namespace BPackageKit {
13
14
15class BSolverPackage;
16
17
18class BSolverPackageSpecifier {
19public:
20			enum BType {
21				B_UNSPECIFIED,
22				B_PACKAGE,
23				B_SELECT_STRING
24			};
25
26public:
27								BSolverPackageSpecifier();
28	explicit					BSolverPackageSpecifier(
29									BSolverPackage* package);
30	explicit					BSolverPackageSpecifier(
31									const BString& selectString);
32								BSolverPackageSpecifier(
33									const BSolverPackageSpecifier& other);
34								~BSolverPackageSpecifier();
35
36			BType				Type() const;
37			BSolverPackage*		Package() const;
38			const BString&		SelectString() const;
39
40			BSolverPackageSpecifier& operator=(
41									const BSolverPackageSpecifier& other);
42
43private:
44			BType				fType;
45			BSolverPackage*		fPackage;
46			BString				fSelectString;
47};
48
49
50}	// namespace BPackageKit
51
52
53#endif // _PACKAGE__SOLVER_PACKAGE_SPECIFIER_H_
54