Code archives/Miscellaneous/fmc.IOStream

The code archive is locked. These are the original blitzbasic.com code archives, kept so they can still be read. No new entries, edits or comments can be made here. To join in, head over to the Blitz3D+ code archives.

This code has been declared by its author to be Public Domain code.

Download source code

fmc.IOStream by Fabian.
Since 2006-11-06 my modules stored in the code archives are out of synchronization. To have the latest version you need to use the bmk/syncmods utility or the MaxIDE.

You need to add "webspace100.we.funpic.de/root/mod" as a new line to "cfg/modservers.cfg" in your BlitzMax installation directory.

You can't synchronize with the default BlitzMax 1.22 IDE. If you don't have another IDE, you need to download a tweaked MaxIDE. You need to specify "fmc" as additional module scope.

Alternative you can synchronize with the bmk tool: bmk syncmods fmc

For a better description see my thread in the programming forum introducing these modules.
Strict
Module fmc.IOStream

ModuleInfo "Version: 0.04"
ModuleInfo "Modserver: Fabian"

Import brl.stream
Import brl.event

Const EVENT_READAVAIL = $80001
Const STREAMTYPE_FILE = 1
Const STREAMTYPE_COMM = 2
Const STREAMTYPE_AVAIL = 3
Const STREAMTYPE_EVENT = 4

Function StreamType ( stream:TStream )
  Select stream.Seek ( -1 )
    Case 0
      Return STREAMTYPE_FILE
    Case -1
      Return STREAMTYPE_COMM
    Case -2
      Return STREAMTYPE_AVAIL
    Case -3
      Return STREAMTYPE_EVENT
  EndSelect
EndFunction

Function IOStreamPos:Long ( stream:TStream )
  Local IO:TIOStream = TIOStream ( stream )
  If IO
    Return IO.IOPos ( )
  Else
    Return stream.Pos ( )
  EndIf
EndFunction

Function IOStreamSize:Long ( stream:TStream )
  Local IO:TIOStream = TIOStream ( stream )
  If IO
    Return IO.IOSize ( )
  Else
    Return stream.Size ( )
  EndIf
EndFunction

Function IOSeekStream:Long ( stream:TStream , pos:Long )
  Local IO:TIOStream = TIOStream ( stream )
  If IO
    Return IO.IOSeek ( pos )
  Else
    Return stream.Seek ( pos )
  EndIf
EndFunction

Type TIOStream Extends TStream
  Method Pos ( )
    Return IOPos ( )
  EndMethod

  Method Size ( )
    Return IOSize ( )
  EndMethod

  Method Seek ( pos )
    Return IOSeek ( pos )
  EndMethod

  Method IOPos:Long ( )
    Return -1
  EndMethod

  Method IOSize:Long ( )
  EndMethod

  Method IOSeek:Long ( pos:Long )
    Return -1
  EndMethod
EndType

Comments

None.

Code Archives Forum