Class Fox::FXStream
In: rdoc-sources/FXStream.rb
lib/fox12/iterators.rb
Parent: Object

Persistent store definition

Stream status codes

FXStreamOK:OK
FXStreamEnd:Try read past end of stream
FXStreamFull:Filled up stream buffer or disk full
FXStreamNoWrite:Unable to open for write
FXStreamNoRead:Unable to open for read
FXStreamFormat:Stream format error
FXStreamUnknown:Trying to read unknown class
FXStreamAlloc:Alloc failed
FXStreamFailure:General failure

Stream data flow direction

FXStreamDead:Unopened stream
FXStreamSave:Saving stuff to stream
FXStreamLoad:Loading stuff from stream

Stream seeking

FXFromStart:Seek from start position
FXFromCurrent:Seek from current position
FXFromEnd:Seek from end position

Methods

bytesSwapped=   bytesSwapped?   close   eof?   error=   flush   getSpace   littleEndian?   new   open   setSpace  

Attributes

container  [R]  Parent object [FXObject]
direction  [R]  Stream direction, one of FXStreamSave, FXStreamLoad or FXStreamDead.
position  [RW]  Stream position (an offset from the beginning of the stream) [Integer]
space  [RW]  Available buffer space
status  [R]  Stream status [Integer]

Public Class methods

Returns true if little-endian architecture

Construct stream with given container object. The container object is an object that will itself not be saved to or loaded from the stream, but which may be referenced by other objects. These references will be properly saved and restored.

Parameters:

cont:the container object, or nil if there is none [FXObject].

Public Instance methods

Set the byte-swapped flag to true or false.

Returns true if bytes are swapped for this stream

Close stream; returns true if OK.

Return true if at end of file or error.

Set status code, where err is one of the stream status codes listed above.

Flush buffer

Get available buffer space

Open stream for reading or for writing. An initial buffer size may be given, which must be at least 16 bytes. If data is not nil, it is expected to point to an external data buffer of length size; otherwise the stream will use an internally managed buffer. Returns true on success, false otherwise.

Parameters:

save_or_load:access mode, either FXStreamSave or FXStreamLoad [Integer]
size:initial buffer size [Integer]
data:external data buffer (if any) [String]

Set available buffer space

[Validate]