2011-01-21 22:18:58 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2011, Haiku, Inc.
|
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*/
|
|
|
|
#ifndef _HAIKU__PACKAGE__CONTEXT_H_
|
|
|
|
#define _HAIKU__PACKAGE__CONTEXT_H_
|
|
|
|
|
|
|
|
|
2011-01-24 20:48:03 +00:00
|
|
|
#include <package/TempfileManager.h>
|
2011-01-21 22:18:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
namespace Haiku {
|
|
|
|
|
|
|
|
namespace Package {
|
|
|
|
|
|
|
|
|
|
|
|
class JobStateListener;
|
2011-01-24 20:48:03 +00:00
|
|
|
using Private::TempfileManager;
|
2011-01-21 22:18:58 +00:00
|
|
|
|
|
|
|
|
2011-01-22 19:30:21 +00:00
|
|
|
struct DecisionProvider {
|
|
|
|
virtual ~DecisionProvider();
|
|
|
|
|
|
|
|
virtual bool YesNoDecisionNeeded(const BString& description,
|
|
|
|
const BString& question,
|
|
|
|
const BString& yes, const BString& no,
|
|
|
|
const BString& defaultChoice) = 0;
|
|
|
|
// virtual bool ActionsAcceptanceDecisionNeeded(
|
|
|
|
// const BString& description,
|
|
|
|
// const BString& question) = 0;
|
|
|
|
// virtual int32 ChoiceDecisionNeeded(
|
|
|
|
// const BString& question) = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2011-01-21 22:18:58 +00:00
|
|
|
class Context {
|
|
|
|
public:
|
2011-01-22 19:30:21 +00:00
|
|
|
Context(DecisionProvider& decisionProvider);
|
2011-01-21 22:18:58 +00:00
|
|
|
~Context();
|
|
|
|
|
2011-01-24 20:48:03 +00:00
|
|
|
TempfileManager& GetTempfileManager() const;
|
2011-01-21 22:18:58 +00:00
|
|
|
|
2011-01-22 19:30:21 +00:00
|
|
|
JobStateListener* GetJobStateListener() const;
|
|
|
|
void SetJobStateListener(JobStateListener* listener);
|
|
|
|
|
|
|
|
DecisionProvider& GetDecisionProvider() const;
|
2011-01-21 22:18:58 +00:00
|
|
|
|
|
|
|
private:
|
2011-01-24 20:48:03 +00:00
|
|
|
mutable TempfileManager fTempfileManager;
|
2011-01-22 19:30:21 +00:00
|
|
|
DecisionProvider& fDecisionProvider;
|
|
|
|
JobStateListener* fJobStateListener;
|
2011-01-21 22:18:58 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace Package
|
|
|
|
|
|
|
|
} // namespace Haiku
|
|
|
|
|
|
|
|
|
|
|
|
#endif // _HAIKU__PACKAGE__CONTEXT_H_
|