|
Samond Classes Library 1.1.6-RELEASE build 132
|
00001 // 00002 // SCSubnetMask.h 00003 // scl 00004 // 00005 // Created by Viacheslav Smolensky on 12.08.09. 00006 // Copyright (c) 2007 - 2014 by Samond Development Corporation. All rights reserved. 00007 // 00008 00017 #import <Foundation/Foundation.h> 00018 #import <scl/SCTypes.h> 00019 #import <scl/SCNetObject.h> 00020 00021 #define SCSubnetMaskClass @"SCSubnetMask" ///< SCSubnetMask class name 00022 00023 #pragma mark - 00024 #pragma mark Predefined subnet mask strings 00025 00027 #define SC_SUBNET_MASK_CLASS_A @"255.0.0.0" ///< Class A default subnet mask 00028 #define SC_SUBNET_MASK_CLASS_B @"255.255.0.0" ///< Class B default subnet mask 00029 #define SC_SUBNET_MASK_CLASS_C @"255.255.255.0" ///< Class C default subnet mask 00030 #define SC_SUBNET_MASK_GLOBAL @"0.0.0.0" ///< All internet subnet mask 00031 #define SC_SUBNET_MASK_HOST @"255.255.255.255" ///< Host subnet mask 00032 #define SC_SUBNET_MASK_LINK @"255.255.255.252" ///< Serial link subnet mask 00033 00034 #pragma mark - 00035 00049 @interface SCSubnetMask : SCNetObject { 00050 SCUInteger fMask; // The internal representation of the subnet mask 00051 } 00052 00053 #pragma mark - 00054 #pragma mark Class properties 00055 #if (__MAC_OS_X_VERSION_MIN_REQUIRED > 1040) || IOS_TARGET 00056 // Subnet mask text representation property 00057 @property (nonatomic, retain, getter=mask, setter=setMask:) NSString *mask; 00058 // Subnet prefix length property 00059 @property (nonatomic, getter=length, setter=setLength:) SCUByte length; 00060 // Subnet prefix property 00061 @property (nonatomic, retain, getter=prefix, setter=setPrefix:) NSString *prefix; 00062 // Subnet wildcard mask property 00063 @property (nonatomic, retain, getter=wildcard, setter=setWildcard:) NSString *wildcard; 00064 // Subnet hosts count property 00065 @property (nonatomic, getter=hostsCount, setter=setCount:) SCUInteger count; 00066 // Subnet mask internal representation read only property 00067 @property (nonatomic, readonly, getter=raw) SCUInteger raw; 00068 #endif 00069 00070 #pragma mark - 00071 #pragma mark Creating Subnet Mask 00072 00077 + (SCSubnetMask *)emptyMask; 00078 00085 + (SCSubnetMask *)maskWithString:(NSString *)mask; 00086 00093 + (SCSubnetMask *)maskWithPrefixLength:(SCUByte)length; 00094 00101 + (SCSubnetMask *)maskWithPrefix:(NSString *)prefix; 00102 00109 + (SCSubnetMask *)maskWithWildcard:(NSString *)wildcard; 00110 00117 + (SCSubnetMask *)maskWithCount:(SCUInteger)count; 00118 00125 + (SCSubnetMask *)maskWithMask:(SCSubnetMask *)mask; 00126 00131 + (SCSubnetMask *)maskWithClassA; 00132 00137 + (SCSubnetMask *)maskWithClassB; 00138 00143 + (SCSubnetMask *)maskWithClassC; 00144 00149 + (SCSubnetMask *)maskWithGlobal; 00150 00155 + (SCSubnetMask *)maskWithHost; 00156 00161 + (SCSubnetMask *)maskWithSerialLink; 00162 00168 + (SCSubnetMask *)maskWithDataDictionary:(NSDictionary *)dictionary; 00169 00175 + (SCSubnetMask *)maskWithDataDictionaryFromFile:(NSString *)path; 00176 00182 + (SCSubnetMask *)maskWithCoder:(NSCoder *)coder; 00183 00189 + (SCSubnetMask *)maskWithContentsOfSerializedFile:(NSString *)path; 00190 00198 + (SCSubnetMask *)maskWithStream:(SCStream *)stream; 00199 00206 + (SCSubnetMask *)maskWithFileStream:(NSString *)path; 00207 00208 #pragma mark - 00209 #pragma mark Initializing Subnet mask 00210 00215 - (id)init; 00216 00223 - (id)initWithString:(NSString *)mask; 00224 00231 - (id)initWithPrefixLength:(SCUByte)length; 00232 00239 - (id)initWithPrefix:(NSString *)prefix; 00240 00247 - (id)initWithWildcard:(NSString *)wildcard; 00248 00255 - (id)initWithCount:(SCUInteger)count; 00256 00263 - (id)initWithMask:(SCSubnetMask *)mask; 00264 00269 - (id)initWithClassA; 00270 00275 - (id)initWithClassB; 00276 00281 - (id)initWithClassC; 00282 00287 - (id)initWithGlobal; 00288 00293 - (id)initWithHost; 00294 00299 - (id)initWithSerialLink; 00300 00301 #pragma mark - 00302 #pragma mark Changing Subnet Mask 00303 00309 - (void)setMask:(NSString *)mask; 00310 00316 - (void)setLength:(SCUByte)length; 00317 00323 - (void)setPrefix:(NSString *)prefix; 00324 00330 - (void)setWildcard:(NSString *)wildcard; 00331 00337 - (void)setCount:(SCUInteger)count; 00338 00344 - (void)copyMask:(SCSubnetMask *)mask; 00345 00346 #pragma mark - 00347 #pragma mark Querying Subnet Mask 00348 00353 - (SCUInteger)raw; 00354 00359 - (NSString *)mask; 00360 00365 - (NSString *)description; 00366 00371 - (SCUByte)length; 00372 00377 - (NSString *)prefix; 00378 00383 - (NSString *)wildcard; 00384 00389 - (SCUInteger)hostsCount; 00390 00391 #pragma mark - 00392 #pragma mark Checking Subnet Mask 00393 00398 - (BOOL)isHostMask; 00399 00404 - (BOOL)isGlobalMask; 00405 00410 - (BOOL)isRegularMask; 00411 00416 - (BOOL)isSerialLink; 00417 00422 - (BOOL)isClassA; 00423 00428 - (BOOL)isClassB; 00429 00434 - (BOOL)isClassC; 00435 00440 - (BOOL)isClassfull; 00441 00442 #pragma mark - 00443 #pragma mark Comparing Subnet Masks 00444 00450 - (BOOL)isEqual:(id)mask; 00451 00458 - (BOOL)isEqualToMask:(SCSubnetMask *)mask; 00459 00466 - (BOOL)isEqualToString:(NSString *)mask; 00467 00474 - (BOOL)isEqualToLength:(SCUByte)length; 00475 00482 - (BOOL)isEqualToPrefix:(NSString *)prefix; 00483 00490 - (BOOL)isEqualToWildcard:(NSString *)wildcard; 00491 00492 #pragma mark - 00493 #pragma mark Querying Hosts Count 00494 00499 + (SCUInteger)hostsClassA; 00500 00505 + (SCUInteger)hostsClassB; 00506 00511 + (SCUInteger)hostsClassC; 00512 00517 + (SCUInteger)hostsSerialLink; 00518 00519 @end
1.7.3