xref: /haiku/headers/os/package/Context.h (revision 11a4ecfd82c31ded8ba33ad2ac5f5a6538b7fa40)
1 /*
2  * Copyright 2011, Haiku, Inc.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _HAIKU__PACKAGE__CONTEXT_H_
6 #define _HAIKU__PACKAGE__CONTEXT_H_
7 
8 
9 #include <package/TempEntryManager.h>
10 
11 
12 namespace Haiku {
13 
14 namespace Package {
15 
16 
17 class JobStateListener;
18 
19 
20 struct DecisionProvider {
21 	virtual						~DecisionProvider();
22 
23 	virtual	bool				YesNoDecisionNeeded(const BString& description,
24 									const BString& question,
25 									const BString& yes, const BString& no,
26 									const BString& defaultChoice) = 0;
27 //	virtual	bool				ActionsAcceptanceDecisionNeeded(
28 //									const BString& description,
29 //									const BString& question) = 0;
30 //	virtual	int32				ChoiceDecisionNeeded(
31 //									const BString& question) = 0;
32 };
33 
34 
35 class Context {
36 public:
37 								Context(DecisionProvider& decisionProvider);
38 								~Context();
39 
40 			TempEntryManager&	GetTempEntryManager() const;
41 
42 			JobStateListener*	GetJobStateListener() const;
43 			void				SetJobStateListener(JobStateListener* listener);
44 
45 			DecisionProvider&	GetDecisionProvider() const;
46 
47 private:
48 	mutable	TempEntryManager	fTempEntryManager;
49 			DecisionProvider&	fDecisionProvider;
50 			JobStateListener*	fJobStateListener;
51 };
52 
53 
54 }	// namespace Package
55 
56 }	// namespace Haiku
57 
58 
59 #endif // _HAIKU__PACKAGE__CONTEXT_H_
60