ObjFW  Diff

Differences From Artifact [62a8b467ea]:

To Artifact [f2698eb6b8]:


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
84


85
86
87
88
89
90



91
92
93
94
95
96
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







+
+







-
-
+
+





-
+

-
+


-
+

-
+






-
-
-
-
-
-
-
-



-
-
+
+



-
-
-
+
+
+
-
-
-
-
-
-
-
-
-




-
-
+
+



-
-
-
+
+
+






 */

#import "OFObject.h"
#import "OFDNSResourceRecord.h"

OF_ASSUME_NONNULL_BEGIN

@class OFString;

/*!
 * @class OFDNSQuery OFDNSQuery.h ObjFW/OFDNSQuery.h
 *
 * @brief A class representing a DNS query.
 */
@interface OFDNSQuery: OFObject <OFCopying>
{
	OFString *_host;
	of_dns_resource_record_class_t _recordClass;
	OFString *_domainName;
	of_dns_class_t _DNSClass;
	of_dns_resource_record_type_t _recordType;
	OF_RESERVE_IVARS(4)
}

/*!
 * @brief The host to resolve.
 * @brief The domain name of the query.
 */
@property (readonly, nonatomic) OFString *host;
@property (readonly, nonatomic) OFString *domainName;

/*!
 * @brief The record class of the query.
 * @brief The DNS class of the query.
 */
@property (readonly, nonatomic) of_dns_resource_record_class_t recordClass;
@property (readonly, nonatomic) of_dns_class_t DNSClass;

/*!
 * @brief The record type of the query.
 */
@property (readonly, nonatomic) of_dns_resource_record_type_t recordType;

/*!
 * @brief Creates a new, autoreleased OFDNSQuery with IN class and type ALL.
 *
 * @param host The host to resolve
 * @return A new, autoreleased OFDNSQuery
 */
+ (instancetype)queryWithHost: (OFString *)host;

/*!
 * @brief Creates a new, autoreleased OFDNSQuery.
 *
 * @param host The host to resolve
 * @param recordClass The record class of the query
 * @param domainName The domain name to query
 * @param DNSClass The DNS class of the query
 * @param recordType The record type of the query
 * @return A new, autoreleased OFDNSQuery
 */
+ (instancetype)queryWithHost: (OFString *)host
		  recordClass: (of_dns_resource_record_class_t)recordClass
		   recordType: (of_dns_resource_record_type_t)recordType;
+ (instancetype)queryWithDomainName: (OFString *)domainName
			   DNSClass: (of_dns_class_t)DNSClass
			 recordType: (of_dns_resource_record_type_t)recordType;

/*!
 * @brief Initializes an already allocated OFDNSQuery with IN class and type
 *	  ALL.
 *
 * @param host The host to resolve
 * @return An initialized OFDNSQuery
 */
- (instancetype)initWithHost: (OFString *)host;

/*!
 * @brief Initializes an already allocated OFDNSQuery.
 *
 * @param host The host to resolve
 * @param recordClass The record class of the query
 * @param domainName The domain name to query
 * @param DNSClass The DNS class of the query
 * @param recordType The record type of the query
 * @return An initialized OFDNSQuery
 */
- (instancetype)initWithHost: (OFString *)host
		 recordClass: (of_dns_resource_record_class_t)recordClass
		  recordType: (of_dns_resource_record_type_t)recordType
- (instancetype)initWithDomainName: (OFString *)domainName
			  DNSClass: (of_dns_class_t)DNSClass
			recordType: (of_dns_resource_record_type_t)recordType
    OF_DESIGNATED_INITIALIZER;

- (instancetype)init OF_UNAVAILABLE;
@end

OF_ASSUME_NONNULL_END