Samond Classes Library 1.1.6-RELEASE build 132

SCConfigFile.h

Go to the documentation of this file.
00001 //
00002 //  SCConfigFile.h
00003 //  sclmac
00004 //
00005 //  Created by Viacheslav Smolensky on 05.06.14.
00006 //  Copyright (c) 2007 - 2014 by Samond Development Corporation. All rights reserved.
00007 //
00008 
00016 #import <scl/SCConfig.h>
00017 
00018 #define SCConfigFileClass       @"SCConfigFile"         ///< SCConfigFile class name
00019 
00020 #pragma mark -
00021 #pragma mark Configuration file supporing types
00022 
00028 enum _SCConfigFileStatus {
00029         SCConfigFileOK                          = 0,    
00030         SCConfigFileReadError       = 11,       
00031         SCConfigFileWriteError          = 12,   
00032 };
00033 
00039 typedef SCUInteger SCConfigFileStatus;
00040 
00053 @interface SCConfigFile : SCConfig {
00054         BOOL             fLoaded;                       // Determines whether a configuration file is loaded
00055         SCArray         *fAllowedComments;      // Supported comments list
00056         NSString        *fCommentPrefix;        // Record comments prefix
00057         SCStrings       *fComments;                     // Configuration file comments
00058 }
00059 #pragma mark -
00060 #pragma mark Class properties
00061 #if (__MAC_OS_X_VERSION_MIN_REQUIRED > 1040) || IOS_TARGET
00062 // Configuration loaded flag property
00063 @property (assign, readonly, getter=isLoaded) BOOL isLoaded;
00064 // Configuration file path property
00065 @property (retain, getter=path, setter=setPath:) NSString *path;
00066 // Record comments prefix
00067 @property (retain, getter=commentPrefix, setter=setCommentPrefix:) NSString *commentPrefix;
00068 // Configuration file comments
00069 @property (retain, getter=comments, setter=setComments:) SCStrings *comments;
00070 #endif
00071 
00072 #pragma mark -
00073 #pragma mark Creating and Initializing Configurations
00074 
00075 + (SCConfigFile *)configFileWithCoder:(NSCoder *)coder;
00076 + (SCConfigFile *)configFileWithContentsOfSerializedFile:(NSString *)path;
00077 + (SCConfigFile *)configFileWithDataDictionary:(NSDictionary *)dictionary;
00078 + (SCConfigFile *)configFileWithDataDictionaryFromFile:(NSString *)path;
00079 + (SCConfigFile *)configFileWithStream:(SCStream *)stream;
00080 + (SCConfigFile *)configFileWithFileStream:(NSString *)path;
00081 
00082 //+ (SCConfigFile *)configFileWithPath:(NSString *)path
00083 //                                                      delegate:(id<SCConfigDelegate>)delegate
00084 //                                                        unique:(BOOL)unique
00085 //                                       caseInsensitive:(BOOL)caseInsensitive
00086 //                                              ignoreErrors:(BOOL)ignoreErrors;
00087 //+ (SCConfigFile *)configFileWithPath:(NSString *)path delegate:(id<SCConfigDelegate)delegate;
00088 //+ (SCConfigFile *)configFileWithPath:(NSString *)path;
00089 //+ (SCConfigFile *)configFileWithTextStream:(SCStream *)stream
00090 //                                                                delegate:(id<SCConfigDelegate)delegate
00091 //                                                                      unique:(BOOL)unique
00092 //                                                 caseInsensitive:(BOOL)caseInsensitive
00093 //                                                        ignoreErrors:(BOOL)ignoreErrors;
00094 //+ (SCConfigFile *)configFileWithTextStream:(SCStream *)stream
00095 //                                                                delegate:(id<SCConfigDelegate)delegate;
00096 //+ (SCConfigFile *)configFileWithTextStream:(SCStream *)stream;
00097 //+ (SCConfigFile *)configFileWithText:(SCStrings *)text
00098 //                                                      delegate:(id<SCConfigDelegate)delegate
00099 //                                                        unique:(BOOL)unique
00100 //                                       caseInsensitive:(BOOL)caseInsensitive
00101 //                                              ignoreErrors:(BOOL)ignoreErrors;
00102 //+ (SCConfigFile *)configFileWithText:(SCStrings *)text delegate:(id<SCConfigDelegate)delegate;
00103 //+ (SCConfigFile *)configFileWithText:(SCStrings *)text;
00104 + (SCConfigFile *)configFileWithConfig:(SCConfig *)config;
00105 //+ (SCConfigFile *)configFileWithCollection:(id)collection;
00106 + (SCConfigFile *)configFileWithConfigFile:(SCConfigFile *)configFile;
00107 + (SCConfigFile *)configFile;
00108 
00109 //- (id)initWithPath:(NSString *)path
00110 //                delegate:(id<SCConfigDelegate>)delegate
00111 //                      unique:(BOOL)unique
00112 //   caseInsensitive:(BOOL)caseInsensitive
00113 //        ignoreErrors:(BOOL)ignoreErrors;
00114 //- (id)initWithPath:(NSString *)path delegate:(id<SCConfigDelegate)delegate;
00115 //- (id)initWithPath:(NSString *)path;
00116 //- (id)initWithTextStream:(SCStream *)stream
00117 //                              delegate:(id<SCConfigDelegate)delegate
00118 //                                unique:(BOOL)unique
00119 //               caseInsensitive:(BOOL)caseInsensitive
00120 //                      ignoreErrors:(BOOL)ignoreErrors;
00121 //- (id)initWithTextStream:(SCStream *)stream delegate:(id<SCConfigDelegate)delegate;
00122 //- (id)initWithTextStream:(SCStream *)stream;
00123 //- (id)initWithText:(SCStrings *)text
00124 //                delegate:(id<SCConfigDelegate)delegate
00125 //                      unique:(BOOL)unique
00126 //   caseInsensitive:(BOOL)caseInsensitive
00127 //        ignoreErrors:(BOOL)ignoreErrors;
00128 //- (id)initWithText:(SCStrings *)text delegate:(id<SCConfigDelegate)delegate;
00129 //- (id)initWithText:(SCStrings *)text;
00130 - (id)initWithConfigFile:(SCConfigFile *)configFile;
00131 //- (id)init;
00132 
00133 #pragma mark -
00134 #pragma mark Getting and Setting Configuration Properties
00135 
00136 - (BOOL)isLoaded;
00137 - (NSString *)description;
00138 - (NSString *)path;
00139 - (NSString *)commentPrefix;
00140 - (SCStrings *)comments;
00141 
00142 - (void)setPath:(NSString *)path;
00143 - (void)setCommentPrefix:(NSString *)commentPrefix;
00144 - (void)setComments:(SCStrings *)comments;
00145 
00146 #pragma mark -
00147 #pragma mark Setting and Copying Configurations
00148 
00149 - (void)setConfigFile:(SCConfigFile *)configFile;
00150 - (void)setConfigFileWithText:(SCStrings *)text;
00151 - (void)setConfigFileWithPath:(NSString *)path;
00152 - (void)setConfigFileWithStream:(SCStream *)stream;
00153 
00154 #pragma mark -
00155 #pragma mark Comparing Configurations
00156 
00157 //- (BOOL)isEqualToConfigFile:(SCConfigFile *)configFile;
00158 //- (BOOL)isEqualToContentOfConfigFile:(SCConfigFile *)configFile;
00159 //- (BOOL)isEqualTo:(id)object;
00160 //- (BOOL)isEqual:(id)object;
00161 
00162 #pragma mark -
00163 #pragma mark Converting Configurations
00164 
00165 - (SCConfig *)config;
00166 
00167 #pragma mark -
00168 #pragma mark Add Values from Existing Configurations
00169 
00170 - (void)addValuesFromConfigFile:(SCConfigFile *)configFile;
00171 - (void)addValuesFromConfigFileWithPath:(NSString *)path;
00172 - (void)addValuesFromStream:(SCStream *)stream;
00173 
00174 #pragma mark -
00175 #pragma mark Subconfiguration Access Methods
00176 
00177 //- (void)addConfigFile:(SCConfigFile *)configFile forKey:(NSString *)key;
00178 //- (void)addConfigFileWithPath:(NSString *)path forKey:(NSString *)key;
00179 //- (void)addConfigFileWithStream:(SCStream *) forKey:(NSString *)key;
00180 
00181 //- (void)setConfigFile:(SCConfigFile *)configFile forKey:(NSString *)key;
00182 //- (void)setConfigFileWithPath:(NSString *)path forKey:(NSString *)key;
00183 //- (void)setConfigFileWithStream:(SCStream *) forKey:(NSString *)key;
00184 
00185 //- (SCConfigFile *)configFileForKey:(NSString *)key;
00186 //- (BOOL)writeConfigForKey:(NSString *)key toPath:(NSString *)path;
00187 //- (BOOL)writeConfigForKey:(NSString *)key toStream:(SCStream *)stream;
00188 //- (BOOL)appendConfigForKey:(NSString *)key toPath:(NSString *)path;
00189 //- (BOOL)appendConfigForKey:(NSString *)key toStream:(SCStream *)stream;
00190 
00191 #pragma mark -
00192 #pragma mark Configuration File Reading and Writing
00193 
00194 - (void)read;
00195 - (void)readConfigFileWithPath:(NSString *)path;
00196 - (void)readConfigFileFromText:(SCStrings *)text;
00197 - (void)readConfigFileFromStream:(SCStream *)stream;
00198 - (void)reload;
00199 //- (void)write;
00200 - (void)writeConfigFileWithPath:(NSString *)path;
00201 - (void)writeConfigFileToText:(SCStrings *)text;
00202 - (void)writeConfigFileToStream:(SCStream *)stream;
00203 - (void)appendConfigFileToPath:(NSString *)path;
00204 - (void)appendConfigFileToText:(SCStrings *)text;
00205 - (void)appendConfigFileToStream:(SCStream *)stream;
00206 
00207 #pragma mark -
00208 #pragma mark Configuration File Comments Control
00209 
00210 - (BOOL)isComment:(NSString *)string;
00211 - (void)addAllowedComment:(NSString *)comment;
00212 - (void)removeAllowedComment:(NSString *)comment;
00213 - (SCArray *)allowedComments;
00214 - (void)removeAllowedComments;
00215 
00216 - (BOOL)haveComments;
00217 - (void)addComment:(NSString *)comment;
00218 - (void)addComments:(SCStrings *)comments;
00219 - (void)setComment:(NSString *)comment;
00220 - (void)removeComment:(NSString *)comment;
00221 - (void)removeComments;
00222 - (void)replaceComment:(NSString *)comment withComment:(NSString *)newComment;
00223 
00224 - (SCStrings *)commentsForKey:(NSString *)key;
00225 - (BOOL)haveCommentsForKey:(NSString *)key;
00226 - (void)addComment:(NSString *)comment forKey:(NSString *)key;
00227 - (void)addComments:(SCStrings *)comments forKey:(NSString *)key;
00228 - (void)setComment:(NSString *)comment forKey:(NSString *)key;
00229 - (void)setComments:(SCStrings *)comments forKey:(NSString *)key;
00230 - (void)removeComment:(NSString *)comment forKey:(NSString *)key;
00231 - (void)removeCommentsForKey:(NSString *)key;
00232 - (void)replaceComment:(NSString *)comment
00233                    withComment:(NSString *)newComment
00234                                 forKey:(NSString *)key;
00235 
00236 #pragma mark -
00237 #pragma mark Additional methods
00238 
00239 - (void)resetConfigurationFile;
00240 
00241 @end
 All Classes Files Functions Typedefs Enumerations Enumerator Defines