Samond Classes Library 1.1.6-RELEASE build 132

SCSubnetMask.h

Go to the documentation of this file.
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
 All Classes Files Functions Typedefs Enumerations Enumerator Defines