-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSocketLibErrors.h
More file actions
77 lines (66 loc) · 1.69 KB
/
SocketLibErrors.h
File metadata and controls
77 lines (66 loc) · 1.69 KB
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
#ifndef SOCKETLIBERRORS_H
#define SOCKETLIBERRORS_H
#include "SocketLibTypes.h"
#include <exception>
#include <string>
namespace SocketLib
{
enum Error
{
// errors that shouldn't happen, so if they do, something is wrong:
ESeriousError,
// these errors are common
ENetworkDown,
ENoSocketsAvailable,
ENoMemory,
EAddressNotAvailable,
EAlreadyConnected,
ENotConnected,
EConnectionRefused,
ENetworkUnreachable,
ENetworkReset,
EHostUnreachable,
EHostDown,
EConnectionAborted,
EConnectionReset,
EOperationWouldBlock,
// DNS errors
EDNSNotFound,
EDNSError,
ENoDNSData,
// These errors are specific errors that should never or rarely occur.
EInProgress,
EInterrupted,
EAccessDenied,
EInvalidParameter,
EAddressFamilyNotSupported,
EProtocolFamilyNotSupported,
EProtocolNotSupported,
EProtocolNotSupportedBySocket,
EOperationNotSupported,
EInvalidSocketType,
EInvalidSocket,
EAddressRequired,
EMessageTooLong,
EBadProtocolOption,
EAddressInUse,
ETimedOut,
EShutDown,
// auxilliary socketlib errors
ESocketLimitReached,
ENotAvailable,
EConnectionClosed
};
Error TranslateError(int p_error, bool p_errno);
Error GetError(bool p_errno = true);
class Exception : public std::exception
{
public:
Exception(Error p_code);
Error ErrorCode();
std::string PrintError();
protected:
Error m_code;
};
}
#endif // !SOCKETLIBERRORS_H