Comment: | Add class properties where appropriate
This improves Swift compatibility. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
a2e849c68158b277b6a3aec80d6b93da |
User & Date: | js on 2017-10-30 00:23:35 |
Other Links: | manifest | tags |
2017-10-30
| ||
00:29 | Fix nullable properties in Doxygen check-in: 06a922c912 user: js tags: trunk | |
00:23 | Add class properties where appropriate check-in: a2e849c681 user: js tags: trunk | |
2017-10-29
| ||
22:37 | Make GCC happy again check-in: 9fa618244f user: js tags: trunk | |
Modified src/OFApplication.h from [5c5c92ace5] to [8d82cea2e5].
︙ | ︙ | |||
132 133 134 135 136 137 138 139 140 141 142 143 144 145 | void (*_Nullable _SIGINTHandler)(id, SEL); #ifndef OF_WINDOWS void (*_Nullable _SIGHUPHandler)(id, SEL); void (*_Nullable _SIGUSR1Handler)(id, SEL); void (*_Nullable _SIGUSR2Handler)(id, SEL); #endif } /*! * The name of the program (argv[0]). */ @property (readonly, nonatomic) OFString *programName; /*! | > > > > > > > > > > | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | void (*_Nullable _SIGINTHandler)(id, SEL); #ifndef OF_WINDOWS void (*_Nullable _SIGHUPHandler)(id, SEL); void (*_Nullable _SIGUSR1Handler)(id, SEL); void (*_Nullable _SIGUSR2Handler)(id, SEL); #endif } #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nullable, nonatomic) OFApplication *sharedApplication; @property (class, readonly, nullable, nonatomic) OFString *programName; @property (class, readonly, nullable, nonatomic) OFArray OF_GENERIC(OFString *) *arguments; @property (class, readonly, nullable, nonatomic) OFDictionary OF_GENERIC(OFString *, OFString *) *environment; #endif /*! * The name of the program (argv[0]). */ @property (readonly, nonatomic) OFString *programName; /*! |
︙ | ︙ |
Modified src/OFCryptoHash.h from [ab2417692f] to [2634ee9f93].
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | * @brief A protocol for classes providing cryptographic hash functions. * * A cryptographic hash implementing this protocol can be copied. The entire * state is copied, allowing to calculate a new hash from there. This is * especially useful for generating many hashes with a common prefix. */ @protocol OFCryptoHash <OFObject, OFCopying> /*! * A boolean whether the hash has already been calculated. */ @property (readonly, nonatomic, getter=isCalculated) bool calculated; /*! * A buffer containing the cryptographic hash. | > > > > > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | * @brief A protocol for classes providing cryptographic hash functions. * * A cryptographic hash implementing this protocol can be copied. The entire * state is copied, allowing to calculate a new hash from there. This is * especially useful for generating many hashes with a common prefix. */ @protocol OFCryptoHash <OFObject, OFCopying> #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nonatomic) size_t digestSize; @property (class, readonly, nonatomic) size_t blockSize; #endif /*! * A boolean whether the hash has already been calculated. */ @property (readonly, nonatomic, getter=isCalculated) bool calculated; /*! * A buffer containing the cryptographic hash. |
︙ | ︙ |
Modified src/OFFileManager.h from [b207ab823b] to [2cebe69c86].
︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 | /*! * @class OFFileManager OFFileManager.h ObjFW/OFFileManager.h * * @brief A class which provides management for files, e.g. reading contents of * directories, deleting files, renaming files, etc. */ @interface OFFileManager: OFObject /*! * The path of the current working directory. */ @property (readonly, nonatomic) OFString *currentDirectoryPath; /*! * The URL of the current working directory. | > > > > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | /*! * @class OFFileManager OFFileManager.h ObjFW/OFFileManager.h * * @brief A class which provides management for files, e.g. reading contents of * directories, deleting files, renaming files, etc. */ @interface OFFileManager: OFObject #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nonatomic) OFFileManager *defaultManager; #endif /*! * The path of the current working directory. */ @property (readonly, nonatomic) OFString *currentDirectoryPath; /*! * The URL of the current working directory. |
︙ | ︙ |
Modified src/OFLocalization.h from [d21618db7e] to [049d31c9e7].
︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 | OFString *_Nullable _language, *_Nullable _territory; of_string_encoding_t _encoding; OFString *_decimalPoint; OFMutableArray OF_GENERIC(OFDictionary OF_GENERIC(OFString *, id) *) *_localizedStrings; } /*! * The language of the locale for messages. * * If the language is unknown, it is `nil`. */ @property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *language; | > > > > > > > > > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | OFString *_Nullable _language, *_Nullable _territory; of_string_encoding_t _encoding; OFString *_decimalPoint; OFMutableArray OF_GENERIC(OFDictionary OF_GENERIC(OFString *, id) *) *_localizedStrings; } #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nullable, nonatomic) OFLocalization *sharedLocalization; @property (class, readonly, nullable, nonatomic) OFString *language; @property (class, readonly, nullable, nonatomic) OFString *territory; @property (class, readonly, nonatomic) of_string_encoding_t encoding; @property (class, readonly, nullable, nonatomic) OFString *decimalPoint; #endif /*! * The language of the locale for messages. * * If the language is unknown, it is `nil`. */ @property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *language; |
︙ | ︙ | |||
77 78 79 80 81 82 83 | * * @warning If you don't use @ref OFApplication, this might be `nil`! In this * case, you need to manually allocate an instance and call * @ref init once. * * @return The shared OFLocalization instance */ | | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | * * @warning If you don't use @ref OFApplication, this might be `nil`! In this * case, you need to manually allocate an instance and call * @ref init once. * * @return The shared OFLocalization instance */ + (nullable OFLocalization *)sharedLocalization; /*! * @brief Returns the language of the locale. * * If the language is unknown, `nil` is returned. * * @return The language of the locale. |
︙ | ︙ | |||
114 115 116 117 118 119 120 | + (of_string_encoding_t)encoding; /*! * @brief Returns the decimal point of the system's locale. * * @return The decimal point of the system's locale */ | | | 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | + (of_string_encoding_t)encoding; /*! * @brief Returns the decimal point of the system's locale. * * @return The decimal point of the system's locale */ + (nullable OFString *)decimalPoint; #ifdef OF_HAVE_FILES /*! * @brief Adds a directory to scan for language files. * * @param path The path to the directory to scan for language files */ |
︙ | ︙ |
Modified src/OFMutableString.m from [9c395a3fd8] to [1a24b0bb52].
︙ | ︙ | |||
277 278 279 280 281 282 283 | void *pool = objc_autoreleasePoolPush(); const of_unichar_t *characters = [self characters]; size_t length = [self length]; bool isStart = true; for (size_t i = 0; i < length; i++) { char (*function)(char) = | | | 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 | void *pool = objc_autoreleasePoolPush(); const of_unichar_t *characters = [self characters]; size_t length = [self length]; bool isStart = true; for (size_t i = 0; i < length; i++) { char (*function)(char) = (isStart ? startFunction : middleFunction); of_unichar_t c = characters[i]; if (c <= 0x7F) [self setCharacter: (int)function(c) atIndex: i]; isStart = of_ascii_isspace(c); |
︙ | ︙ |
Modified src/OFObject.h from [1f2c48e5a0] to [fa7289510f].
︙ | ︙ | |||
411 412 413 414 415 416 417 418 419 420 421 422 423 424 | @private #ifndef __clang_analyzer__ Class _isa; #else Class _isa __attribute__((__unused__)); #endif } /*! * The name of the object's class. */ @property (readonly, nonatomic) OFString *className; /*! | > > > > > > > | 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 | @private #ifndef __clang_analyzer__ Class _isa; #else Class _isa __attribute__((__unused__)); #endif } #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nonatomic) Class class; @property (class, readonly, nonatomic) OFString *className; @property (class, readonly, nullable, nonatomic) Class superclass; @property (class, readonly, nonatomic) OFString *description; #endif /*! * The name of the object's class. */ @property (readonly, nonatomic) OFString *className; /*! |
︙ | ︙ |
Modified src/OFRunLoop.h from [fdef3caeb2] to [740edb7b33].
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 | OFMutableDictionary *_readQueues, *_writeQueues; #elif defined(OF_HAVE_THREADS) OFCondition *_condition; #endif volatile bool _stop; } /*! * @brief Returns the run loop for the main thread. * * @return The run loop for the main thread */ | > > > > > | | | 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 | OFMutableDictionary *_readQueues, *_writeQueues; #elif defined(OF_HAVE_THREADS) OFCondition *_condition; #endif volatile bool _stop; } #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nullable, nonatomic) OFRunLoop *mainRunLoop; @property (class, readonly, nullable, nonatomic) OFRunLoop *currentRunLoop; #endif /*! * @brief Returns the run loop for the main thread. * * @return The run loop for the main thread */ + (nullable OFRunLoop *)mainRunLoop; /*! * @brief Returns the run loop for the current thread. * * @return The run loop for the current thread */ + (nullable OFRunLoop *)currentRunLoop; /*! * @brief Adds an OFTimer to the run loop. * * @param timer The timer to add */ - (void)addTimer: (OFTimer *)timer; |
︙ | ︙ |
Modified src/OFSystemInfo.h from [ead9e7cf66] to [72e74f04c4].
︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 | /*! * @class OFSystemInfo OFSystemInfo.h ObjFW/OFSystemInfo.h * * @brief A class for querying information about the system. */ @interface OFSystemInfo: OFObject /*! * @brief Returns the size of a page. * * @return The size of a page */ + (size_t)pageSize; | > > > > > > > > > > > > > > > > > > > > > > | 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 | /*! * @class OFSystemInfo OFSystemInfo.h ObjFW/OFSystemInfo.h * * @brief A class for querying information about the system. */ @interface OFSystemInfo: OFObject #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nonatomic) size_t pageSize; @property (class, readonly, nonatomic) size_t numberOfCPUs; @property (class, readonly, nullable, nonatomic) OFString *userDataPath; @property (class, readonly, nullable, nonatomic) OFString *userConfigPath; @property (class, readonly, nullable, nonatomic) OFString *CPUVendor; # if defined(OF_X86_64) || defined(OF_X86) || defined(DOXYGEN) @property (class, readonly, nonatomic) bool supportsMMX; @property (class, readonly, nonatomic) bool supportsSSE; @property (class, readonly, nonatomic) bool supportsSSE2; @property (class, readonly, nonatomic) bool supportsSSE3; @property (class, readonly, nonatomic) bool supportsSSSE3; @property (class, readonly, nonatomic) bool supportsSSE41; @property (class, readonly, nonatomic) bool supportsSSE42; @property (class, readonly, nonatomic) bool supportsAVX; @property (class, readonly, nonatomic) bool supportsAVX2; # endif # if defined(OF_POWERPC) || defined(OF_POWERPC64) || defined(DOXYGEN) @property (class, readonly, nonatomic) bool supportsAltiVec; # endif #endif /*! * @brief Returns the size of a page. * * @return The size of a page */ + (size_t)pageSize; |
︙ | ︙ | |||
47 48 49 50 51 52 53 | * On Unix systems, this adheres to the XDG Base Directory specification.@n * On Mac OS X and iOS, it uses the `NSApplicationSupportDirectory` directory.@n * On Windows, it uses the `APPDATA` environment variable.@n * On Haiku, it uses the `B_USER_SETTINGS_DIRECTORY` directory. * * @return The path where user data for the application can be stored */ | | | | 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 97 | * On Unix systems, this adheres to the XDG Base Directory specification.@n * On Mac OS X and iOS, it uses the `NSApplicationSupportDirectory` directory.@n * On Windows, it uses the `APPDATA` environment variable.@n * On Haiku, it uses the `B_USER_SETTINGS_DIRECTORY` directory. * * @return The path where user data for the application can be stored */ + (nullable OFString *)userDataPath; /*! * @brief Returns the path where user configuration for the application can be * stored. * * On Unix systems, this adheres to the XDG Base Directory specification.@n * On Mac OS X and iOS, it uses the `Preferences` directory inside of * `NSLibraryDirectory` directory.@n * On Windows, it uses the `APPDATA` environment variable.@n * On Haiku, it uses the `B_USER_SETTINGS_DIRECTORY` directory. * * @return The path where user configuration for the application can be stored */ + (nullable OFString *)userConfigPath; /*! * @brief Returns the vendor of the CPU. * * If the vendor could not be determined, `nil` is returned instead. * * @return The vendor of the CPU |
︙ | ︙ |
Modified src/OFTCPSocket.h from [710f0fdfb9] to [4bf4a25fa2].
︙ | ︙ | |||
65 66 67 68 69 70 71 72 73 74 75 76 77 78 | socklen_t _addressLength; OFString *_Nullable _SOCKS5Host; uint16_t _SOCKS5Port; #ifdef OF_WII uint16_t _port; #endif } /*! * Whether the socket is a listening socket. */ @property (readonly, nonatomic, getter=isListening) bool listening; /*! | > > > > > | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | socklen_t _addressLength; OFString *_Nullable _SOCKS5Host; uint16_t _SOCKS5Port; #ifdef OF_WII uint16_t _port; #endif } #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, nullable, copy, nonatomic) OFString *SOCKS5Host; @property (class, nonatomic) uint16_t SOCKS5Port; #endif /*! * Whether the socket is a listening socket. */ @property (readonly, nonatomic, getter=isListening) bool listening; /*! |
︙ | ︙ |
Modified src/OFThread.h from [a03e0a91d4] to [8db864191c].
︙ | ︙ | |||
73 74 75 76 77 78 79 80 81 82 83 84 85 86 | id _returnValue; OFRunLoop *_Nullable _runLoop; OFMutableDictionary *_threadDictionary; @private OFString *_Nullable _name; } /*! * The name for the thread to use when starting it. * * @note While this can be changed after the thread has been started, it will * have no effect once the thread started. If you want to change the name * of the current thread after it has been started, look at the class * method @ref setName:. | > > > > > > > > | 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | id _returnValue; OFRunLoop *_Nullable _runLoop; OFMutableDictionary *_threadDictionary; @private OFString *_Nullable _name; } # ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nullable, nonatomic) OFThread *currentThread; @property (class, readonly, nullable, nonatomic) OFThread *mainThread; @property (class, readonly, nullable, nonatomic) OFMutableDictionary *threadDictionary; @property (class, nullable, copy, nonatomic) OFString *name; # endif /*! * The name for the thread to use when starting it. * * @note While this can be changed after the thread has been started, it will * have no effect once the thread started. If you want to change the name * of the current thread after it has been started, look at the class * method @ref setName:. |
︙ | ︙ | |||
136 137 138 139 140 141 142 | # endif /*! * @brief Returns the current thread. * * @return The current thread */ | | | | | 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | # endif /*! * @brief Returns the current thread. * * @return The current thread */ + (nullable OFThread *)currentThread; /*! * @brief Returns the main thread. * * @return The main thread */ + (nullable OFThread *)mainThread; /*! * @brief Returns a dictionary to store thread-specific data, meaning it * returns a different dictionary for every thread. * * @return A dictionary to store thread-specific data. */ + (nullable OFMutableDictionary *)threadDictionary; #endif /*! * @brief Suspends execution of the current thread for the specified time * interval. * * @param timeInterval The number of seconds to sleep |
︙ | ︙ |
Modified src/OFThread.m from [2b6b7f737c] to [5ec927c6f3].
︙ | ︙ | |||
173 174 175 176 177 178 179 180 181 182 183 184 185 186 | { return mainThread; } + (OFMutableDictionary *)threadDictionary { OFThread *thread = of_tlskey_get(threadSelfKey); if (thread->_threadDictionary == nil) thread->_threadDictionary = [[OFMutableDictionary alloc] init]; return thread->_threadDictionary; } #endif | > > > | 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | { return mainThread; } + (OFMutableDictionary *)threadDictionary { OFThread *thread = of_tlskey_get(threadSelfKey); if (thread == nil) return nil; if (thread->_threadDictionary == nil) thread->_threadDictionary = [[OFMutableDictionary alloc] init]; return thread->_threadDictionary; } #endif |
︙ | ︙ |
Modified src/macros.h from [4bf3aa81bc] to [059976bd73].
︙ | ︙ | |||
195 196 197 198 199 200 201 202 203 204 205 206 207 208 | #endif #if __has_feature(objc_kindof) # define OF_KINDOF(cls) __kindof cls #else # define OF_KINDOF(cls) id #endif #if defined(__clang__) || OF_GCC_VERSION >= 405 # define OF_UNREACHABLE __builtin_unreachable(); #else # define OF_UNREACHABLE abort(); #endif | > > > > | 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | #endif #if __has_feature(objc_kindof) # define OF_KINDOF(cls) __kindof cls #else # define OF_KINDOF(cls) id #endif #if __has_feature(objc_class_property) # define OF_HAVE_CLASS_PROPERTIES #endif #if defined(__clang__) || OF_GCC_VERSION >= 405 # define OF_UNREACHABLE __builtin_unreachable(); #else # define OF_UNREACHABLE abort(); #endif |
︙ | ︙ |