1/*
2 * Copyright 2011-2018, Haiku, Inc.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _PACKAGE__REPOSITORY_CONFIG_H_
6#define _PACKAGE__REPOSITORY_CONFIG_H_
7
8
9#include <Entry.h>
10#include <String.h>
11
12
13namespace BPackageKit {
14
15
16class BRepositoryConfig {
17public:
18								BRepositoryConfig();
19								BRepositoryConfig(const BString& name,
20									const BString& url, uint8 priority);
21								BRepositoryConfig(const BEntry& entry);
22	virtual						~BRepositoryConfig();
23
24			status_t			Store(const BEntry& entry) const;
25
26			status_t			SetTo(const BEntry& entry);
27			status_t			InitCheck() const;
28
29			const BString&		Name() const;
30			const BString&		BaseURL() const;
31			const BString&		URL() const;
32			uint8				Priority() const;
33			bool				IsUserSpecific() const;
34
35			const BEntry&		Entry() const;
36
37			BString				PackagesURL() const;
38
39			void				SetName(const BString& name);
40			void				SetBaseURL(const BString& url);
41			void				SetURL(const BString& url);
42			void				SetPriority(uint8 priority);
43			void				SetIsUserSpecific(bool isUserSpecific);
44
45public:
46	static	const uint8			kUnsetPriority = 0;
47
48private:
49			status_t			fInitStatus;
50
51			BString				fName;
52			BString				fBaseURL;
53				// this URL is the URL that can be used to access the data of
54				// the repository - it points to a single mirror.
55			BString				fURL;
56				// this URL is actually an identifier for the repository
57				// that is consistent across mirrors.
58			uint8				fPriority;
59			bool				fIsUserSpecific;
60
61			BEntry				fEntry;
62};
63
64
65}	// namespace BPackageKit
66
67
68#endif // _PACKAGE__REPOSITORY_CONFIG_H_
69