GCKNetworkAddress.h
1 // Copyright (c) 2018 Google Inc. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <GoogleCast/GCKDefines.h>
5 
13 typedef NS_ENUM(NSInteger, GCKNetworkAddressType) {
15  GCKNetworkAddressTypeUnknown = 0,
17  GCKNetworkAddressTypeIPv4 = 1,
19  GCKNetworkAddressTypeIPv6 = 2,
21  GCKNetworkAddressTypeIPC = 3,
22 };
23 
24 GCK_ASSUME_NONNULL_BEGIN
25 
33 GCK_EXPORT
34 @interface GCKNetworkAddress : NSObject <NSCopying, NSCoding>
35 
37 @property(nonatomic, assign, readonly) GCKNetworkAddressType type;
39 @property(nonatomic, copy, readonly, GCK_NULLABLE) NSString *ipAddress;
45 @property(nonatomic, copy, readonly, GCK_NULLABLE) NSData *addressData;
46 
48 - (instancetype)init NS_UNAVAILABLE;
49 
57 - (instancetype)initWithType:(GCKNetworkAddressType)type
58  ipAddress:(NSString *GCK_NULLABLE_TYPE)ipAddress;
59 
68 - (instancetype)initWithType:(GCKNetworkAddressType)type
69  addressData:(NSData *GCK_NULLABLE_TYPE)addressData;
70 
74 + (GCKNetworkAddress *)wildcardAddressOfType:(GCKNetworkAddressType)type;
75 
79 + (GCKNetworkAddress *)loopbackAddressOfType:(GCKNetworkAddressType)type;
80 
85 
89 + (GCKNetworkAddress *)addressWithIPv4Address:(NSString *)ipAddress;
90 
94 + (GCKNetworkAddress *)addressWithIPv6Address:(NSString *)ipAddress;
95 
99 + (GCKNetworkAddress *)addressWithIPCPath:(NSString *)path;
100 
101 @end
102 
103 GCK_ASSUME_NONNULL_END
NSData * addressData
The network address as an NSData containing the appropriate address structure (e.g., struct in_addr or struct in6_addr).
Definition: GCKNetworkAddress.h:45
NSString * ipAddress
The IP address.
Definition: GCKNetworkAddress.h:39
An object that represents a network IP address.
Definition: GCKNetworkAddress.h:34
instancetype NS_UNAVAILABLE()
Using the default initializer is not allowed.
GCKNetworkAddressType type
The address type.
Definition: GCKNetworkAddress.h:37
GCKNetworkAddress * IPv4BroadcastAddress()
Constructs an IPv4 broadcast address.