@@ -19,14 +19,20 @@ @class OFInflateStream; OF_ASSUME_NONNULL_BEGIN +/*! + * @class OFGZIPStream OFGZIPStream.h ObjFW/OFGZIPStream.h + * + * @brief A class that handles GZIP compression and decompression transparently + * for an underlying stream. + */ @interface OFGZIPStream: OFStream { OFStream *_stream; - OFInflateStream *_inflateStream; + OFInflateStream *_Nullable _inflateStream; enum of_gzip_stream_state { OF_GZIP_STREAM_ID1, OF_GZIP_STREAM_ID2, OF_GZIP_STREAM_COMPRESSION_METHOD, OF_GZIP_STREAM_FLAGS, @@ -67,16 +73,31 @@ OF_GZIP_STREAM_OS_ACORN_RISCOS = 13, OF_GZIP_STREAM_OS_UNKNOWN = 255 } _OS; size_t _bytesRead; uint8_t _buffer[4]; - OFDate *_modificationDate; + OFDate *_Nullable _modificationDate; uint16_t _extraLength; uint32_t _CRC32, _uncompressedSize; } +/*! + * @brief Creates a new OFGZIPStream with the specified underlying stream. + * + * @param stream The underlying stream for the OFGZIPStream + * @return A new, autoreleased OFGZIPStream + */ + (instancetype)streamWithStream: (OFStream *)stream; + - init OF_UNAVAILABLE; + +/*! + * @brief Initializes an already allocated OFGZIPStream with the specified + * underlying stream. + * + * @param stream The underlying stream for the OFGZIPStream + * @return An initialized OFGZIPStream + */ - initWithStream: (OFStream *)stream OF_DESIGNATED_INITIALIZER; @end OF_ASSUME_NONNULL_END