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