#Topic Stream #Alias Stream_Reference ## #Class SkStream SkStream describes an abstract class that provides readable serial access to data. Subclass SkFILEStream stores readable data in a file. Subclass SkMemoryStream stores readable data in memory. SkStream data is immutable; data access is synchronous. Reading Stream data returns only as many bytes as were available when Stream was created. Unlike traditional streams, additional data will not become available at a later time or on a subsequent read request. #Subtopic Overview #Populate ## #Subtopic Constructor #Populate ## #Subtopic Member_Function #Populate ## # ------------------------------------------------------------------------------ #Method virtual ~SkStream() #In Constructor #Line # incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method SkStream() #In Constructor #Line # incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method static std::unique_ptr MakeFromFile(const char path[]) #In incomplete #Line # incomplete ## Attempts to open the specified file as a stream, returns nullptr on failure. #Param path incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual size_t read(void* buffer, size_t size) = 0 #In incomplete #Line # incomplete ## Reads or skips size number of bytes. If buffer is nullptr, skip size bytes, return how many were skipped. If buffer is not nullptr, copy size bytes into buffer, return how many were copied. #Param buffer when nullptr skip size bytes, otherwise copy size bytes into buffer ## #Param size the number of bytes to skip or copy ## #Return the number of bytes actually read. ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method size_t skip(size_t size) #In incomplete #Line # incomplete ## Skip size number of bytes. #Param size incomplete ## #Return the actual number bytes that could be skipped ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual size_t peek(void* buffer, size_t size) const #In incomplete #Line # incomplete ## Attempt to peek at size bytes. If this stream supports peeking, copy min(size, peekable bytes) into buffer, and return the number of bytes copied. If the stream does not support peeking, or cannot peek any bytes, return 0 and leave buffer unchanged. The stream is guaranteed to be in the same visible state after this call, regardless of success or failure. #Param buffer must not be nullptr, and must be at least size bytes. Destination to copy bytes ## #Param size number of bytes to copy ## #Return number of bytes peeked/copied. ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual bool isAtEnd() const = 0 #In incomplete #Line # incomplete ## Returns true when all the bytes in the stream have been read. This may return true early (when there are no more bytes to be read) or late (after the first unsuccessful read). #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readS8(int8_t* i) #In incomplete #Line # incomplete ## #Param i incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readS16(int16_t* i) #In incomplete #Line # incomplete ## #Param i incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readS32(int32_t* i) #In incomplete #Line # incomplete ## #Param i incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readU8(uint8_t* i) #In incomplete #Line # incomplete ## #Param i incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readU16(uint16_t* i) #In incomplete #Line # incomplete ## #Param i incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readU32(uint32_t* i) #In incomplete #Line # incomplete ## #Param i incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readBool(bool* b) #In incomplete #Line # incomplete ## #Param b incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readScalar(SkScalar* s) #In incomplete #Line # incomplete ## #Param s incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method bool SK_WARN_UNUSED_RESULT readPackedUInt(size_t* u) #In incomplete #Line # incomplete ## #Param u incomplete ## #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual bool rewind() #In incomplete #Line # incomplete ## Rewinds to the beginning of the stream. Returns true if the stream is known to be at the beginning after this call returns. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method std::unique_ptr duplicate() const #In incomplete #Line # incomplete ## Duplicates this stream. If this cannot be done, returns NULL. The returned stream will be positioned at the beginning of its data. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method std::unique_ptr fork() const #In incomplete #Line # incomplete ## Duplicates this stream. If this cannot be done, returns NULL. The returned stream will be positioned the same as this stream. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual bool hasPosition() const #In incomplete #Line # incomplete ## Returns true if this stream can report its current position. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual size_t getPosition() const #In incomplete #Line # incomplete ## Returns the current position in the stream. If this cannot be done, returns 0. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual bool seek(size_t position) #In incomplete #Line # incomplete ## #Param position incomplete ## Seeks to an absolute position in the stream. If this cannot be done, returns false. If an attempt is made to seek past the end of the stream, the position will be set to the end of the stream. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual bool move(long offset) #In incomplete #Line # incomplete ## #Param offset incomplete ## Seeks to an relative offset in the stream. If this cannot be done, returns false. If an attempt is made to move to a position outside the stream, the position will be set to the closest point within the stream (beginning or end). #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual bool hasLength() const #In incomplete #Line # incomplete ## Returns true if this stream can report its total length. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual size_t getLength() const #In incomplete #Line # incomplete ## Returns the total length of the stream. If this cannot be done, returns 0. #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## # ------------------------------------------------------------------------------ #Method virtual const void* getMemoryBase() #In incomplete #Line # incomplete ## Returns the starting address for the data. If this cannot be done, returns NULL. TODO: replace with virtual const SkData* getData() #Return incomplete ## #Example // incomplete ## #SeeAlso incomplete #Method ## #Class SkStream ## #Topic Stream ##