]> git.mxchange.org Git - simgear.git/blob - simgear/package/Delegate.hxx
Initial work on package management.
[simgear.git] / simgear / package / Delegate.hxx
1
2
3 #ifndef SG_PACKAGE_DELEGATE_HXX
4 #define SG_PACKAGE_DELEGATE_HXX
5
6 namespace simgear
7 {
8         
9 namespace pkg
10 {
11     
12 class Install;
13
14 class Delegate
15 {
16 public:
17     virtual ~Delegate() { }
18     
19     virtual void refreshComplete() = 0;
20     
21     virtual void startInstall(Install* aInstall) = 0;
22     virtual void installProgress(Install* aInstall, unsigned int aBytes, unsigned int aTotal) = 0;
23     virtual void finishInstall(Install* aInstall) = 0;
24     
25     typedef enum {
26         FAIL_UNKNOWN = 0,
27         FAIL_CHECKSUM,
28         FAIL_DOWNLOAD,
29         FAIL_EXTRACT,
30         FAIL_FILESYSTEM
31     } FailureCode;
32     
33     virtual void failedInstall(Install* aInstall, FailureCode aReason) = 0;
34     
35 };  
36     
37 } // of namespace pkg
38
39 } // of namespace simgear
40
41 #endif // of SG_PACKAGE_DELEGATE_HXX