ObjFW  Diff

Differences From Artifact [7cb02c2c3b]:

  • File src/exceptions/OFAddressTranslationFailedException.h — part of check-in [8d2a5052fd] at 2014-01-25 17:39:13 on branch trunk — Generalize stream / socket related exceptions

    This is in preparation for adding UDP sockets, as UDP sockets and TCP
    sockets have no common superclass, as one is stream-oriented while the
    other is packet-oriented.

    Read and write exceptions are for any object now, as they are useful for
    a lot more than just for streams, while the others (bind, listen, etc.)
    are for any socket now (the type is id in this case, though, as there is
    no common superclass). (user: js, size: 3225) [annotate] [blame] [check-ins using]

To Artifact [d6b57c8d5d]:


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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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







-






-



-
-
-
-
-
-
-
-








-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-








-
-
-
-
-
-
-
-
-
-







-
-
-
-
-
-
-







#endif

/*!
 * @brief An exception indicating the translation of an address failed.
 */
@interface OFAddressTranslationFailedException: OFException
{
	id _socket;
	OFString *_host;
	int _errNo;
}

#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy) OFString *host;
@property (readonly, retain) id socket;
@property (readonly) int errNo;
#endif

/*!
 * @brief Creates a new, autoreleased address translation failed exception.
 *
 * @param socket The socket which could not translate the address
 * @return A new, autoreleased address translation failed exception
 */
+ (instancetype)exceptionWithSocket: (id)socket;

/*!
 * @brief Creates a new, autoreleased address translation failed exception.
 *
 * @param host The host for which translation was requested
 * @return A new, autoreleased address translation failed exception
 */
+ (instancetype)exceptionWithHost: (OFString*)host;

/*!
 * @brief Creates a new, autoreleased address translation failed exception.
 *
 * @param host The host for which translation was requested
 * @param socket The socket which could not translate the address
 * @return A new, autoreleased address translation failed exception
 */
+ (instancetype)exceptionWithHost: (OFString*)host
			   socket: (id)socket;

/*!
 * @brief Initializes an already allocated address translation failed exception.
 *
 * @param socket The socket which could not translate the address
 * @return An initialized address translation failed exception
 */
- initWithSocket: (id)socket;

/*!
 * @brief Initializes an already allocated address translation failed exception.
 *
 * @param host The host for which translation was requested
 * @return An initialized address translation failed exception
 */
- initWithHost: (OFString*)host;

/*!
 * @brief Initializes an already allocated address translation failed exception.
 *
 * @param host The host for which translation was requested
 * @param socket The socket which could not translate the address
 * @return An initialized address translation failed exception
 */
- initWithHost: (OFString*)host
	socket: (id)socket;

/*!
 * @brief Returns the host for which the address translation was requested.
 *
 * @return The host for which the address translation was requested
 */
- (OFString*)host;

/*!
 * @brief Returns the socket which could not translate the address.
 *
 * @return The socket which could not translate the address
 */
- (id)socket;

/*!
 * @brief Returns the errno from when the exception was created.
 *
 * @return The errno from when the exception was created
 */
- (int)errNo;
@end