File: fgexc.h

package info (click to toggle)
ftpgrab 0.1.5-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 444 kB
  • sloc: cpp: 2,906; makefile: 103
file content (83 lines) | stat: -rw-r--r-- 2,009 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ifndef _FGEXC_H
#define _FGEXC_H

// fgexc.h
//
// Header file for exception class

#ifndef _FGSTRING_H
#include "fgstring.h"
#endif

class FGException {
public:
  // Enumerated exception types
  enum EFGExceptions {
    // Connection failures
    kHostResolveFail = 0,
    kHostResolveRetryableFail,
    kConnectResourceAllocFail,
    kConnectRefused,
    kConnectHostUncontactable,
    kConnectMiscFail,
    kConnectLost,
    // FTP protocol parse failures
    kResponseTooLong,
    kResponseMalformed,
    kResponseUnexpected,
    // FTP server doesn't like us failures
    kAccessDenied,
    kServerFull,
    // When we can't find stuff we expect
    kNoSuchDir,
    kNoSuchFile,
    // Local file handling issues
    kLocalNoSuchDir,
    kLocalNoSuchFile,
    kLocalPermissionDenied,
    // Timeout d/loading file
    kDownloadTimeout,
    // Config file parse failures
    kConfigFileNotFound,
    kConfigMissingColon,
    kDuplicateToken,
    kUnexpectedEndOfConfig,
    // Misc. filesystem stuff
    kFileCreateFailed,
    kConcurrentGrabs,
    kUnlinkFailed,
    kWriteFailed,
    // Log file failures
    kLogFileOpenFailed,
    // Failures parsing filenames/components
    kParseEndOfString,
    kParseUnexpectedChar,
    kUnrecognizedComponent,
    // Duff user supplied regular expression
    kInvalidRegexp,
    // Problems reading file from network
    kNetworkReadError,
    kFileTooShort,
  };

  // Constructor - pass in reason for throwing exception
  // plus additional details message
  FGException(EFGExceptions reason, const FGString& details);
  // Constructor where no additional details available
  FGException(EFGExceptions reason);

  EFGExceptions GetReason(void) const;

  // Methods to analyze severity of exception/what went wrong etc.
  bool IsConditionRetryable(void) const;
  // Severity is 0-10
  int GetSeverity(void) const;
  FGString GetFullDetails(void) const;

private:
  // Internal storage details
  EFGExceptions mWhat;
  FGString mDetails;
};

#endif // _FGEXC_H