1/* 2 * Copyright 2011, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _PACKAGE__CONTEXT_H_ 6#define _PACKAGE__CONTEXT_H_ 7 8 9#include <Entry.h> 10#include <String.h> 11 12 13namespace BPackageKit { 14 15 16class BJobStateListener; 17namespace BPrivate { 18 class TempfileManager; 19} 20 21 22struct BDecisionProvider { 23 virtual ~BDecisionProvider(); 24 25 virtual bool YesNoDecisionNeeded(const BString& description, 26 const BString& question, 27 const BString& yes, const BString& no, 28 const BString& defaultChoice) = 0; 29// virtual bool ActionsAcceptanceDecisionNeeded( 30// const BString& description, 31// const BString& question) = 0; 32// virtual int32 ChoiceDecisionNeeded( 33// const BString& question) = 0; 34}; 35 36 37class BContext { 38public: 39 BContext(BDecisionProvider& decisionProvider, 40 BJobStateListener& jobStateListener); 41 ~BContext(); 42 43 status_t InitCheck() const; 44 45 status_t GetNewTempfile(const BString& baseName, 46 BEntry* entry) const; 47 48 BDecisionProvider& DecisionProvider() const; 49 BJobStateListener& JobStateListener() const; 50 51private: 52 status_t _Initialize(); 53 54 BDecisionProvider& fDecisionProvider; 55 BJobStateListener& fJobStateListener; 56 status_t fInitStatus; 57 58 mutable BPrivate::TempfileManager* fTempfileManager; 59}; 60 61 62} // namespace BPackageKit 63 64 65#endif // _PACKAGE__CONTEXT_H_ 66