Advanced Strategic Command
Public Member Functions | List of all members
MemoryStreamCopy Class Reference

Buffers the complete contents of a stream in memory. More...

#include <basestrm.h>

Inheritance diagram for MemoryStreamCopy:
Inheritance graph
[legend]

Public Member Functions

 MemoryStreamCopy (tnstream *stream)
 
 ~MemoryStreamCopy ()
 
void writedata (const void *buf, int size)
 writes data to the stream More...
 
int readdata (void *buf, int size, bool excpt=true)
 Reads data from the stream. More...
 
void seek (int newpos)
 Sets the stream pointer to a new location. An exception is thrown if the stream does not support seeking. More...
 
int getPosition (void)
 
int getSize (void)
 returns the size of the stream or -1 if the stream does not have a size More...
 
ASCString getLocation ()
 returns the location of the stream. More...
 
- Public Member Functions inherited from tnstream
 tnstream ()
 
virtual void readpchar (char **pc, int maxlength=0)
 Reads a string. More...
 
virtual void readpnchar (char **pc, int maxlength=0)
 Reads a string. More...
 
virtual bool readTextString (ASCString &s, bool includeCR=false)
 Reads a string. More...
 
virtual ASCString readString (bool includeCR=false)
 Reads and returns a string. More...
 
virtual void writepchar (const char *pc)
 write the C-String pc to the stream More...
 
virtual void writeString (const string &pc, bool binary=true)
 writes the C++ String pc to the stream. More...
 
virtual int readInt (void)
 Reads a 32 bit signed Integer. In the stream little-endian byte order is used and a translation is performed, if necessary. More...
 
virtual int readWord (void)
 Reads a 16 bit unsigned Integer. In the stream little-endian byte order is used and a translation is performed, if necessary. More...
 
virtual Uint8 readUint8 (void)
 Reads a 8 bit unsigned Integer. More...
 
virtual char readCharacter (void)
 Read a 8 bit character. More...
 
template<size_t N>
void writeBitset (const std::bitset< N > &bs)
 
template<size_t N>
void readBitset (std::bitset< N > &bs)
 
virtual float readFloat (void)
 Reads a flaot variable. More...
 
virtual void writeInt (int i)
 Writes a 32 bit signed Integer. In the stream little-endian byte order is used and a translation is performed, if necessary. More...
 
virtual void writeInt (unsigned int i)
 
void writeInt (bool b)
 
virtual void writeWord (int w)
 Writes a 16 bit unsigned Integer. In the stream little-endian byte order is used and a translation is performed, if necessary. More...
 
virtual void writeUint8 (Uint8 c)
 Writes a 8 bit unsigned Integer. More...
 
virtual void writeCharacter (char c)
 Writes a 8 bit character. More...
 
virtual void writeFloat (float f)
 Write a floating point variable. More...
 
virtual void writerlepict (const void *buf)
 Writes an image to the stream and compresses it using RLE. More...
 
virtual void writeImage (const void *buf, bool compress=true)
 Writes an image to the stream. More...
 
virtual void readrlepict (void **pnter, bool allocated, int *size)
 Writes an RLE compressed or uncompressed image from the stream. More...
 
virtual ASCString getDeviceName ()
 returns the name of the stream. More...
 
virtual ASCString getArchive ()
 returns the archive name if the stream is located inside an archive; or "" if not. More...
 
virtual ~tnstream ()
 

Additional Inherited Members

- Public Types inherited from tnstream
enum  IOMode { uninitialized, reading, writing, appending }
 the modes in which a stream can operate More...
 
- Protected Attributes inherited from tnstream
ASCString devicename
 

Detailed Description

Buffers the complete contents of a stream in memory.

May be useful when the original stream doesn't support seeking, but the consumer needs it.

Definition at line 148 of file basestrm.h.

Constructor & Destructor Documentation

MemoryStreamCopy::MemoryStreamCopy ( tnstream stream)
MemoryStreamCopy::~MemoryStreamCopy ( )

Definition at line 612 of file basestrm.cpp.

Member Function Documentation

ASCString MemoryStreamCopy::getLocation ( )
virtual

returns the location of the stream.

This may be a complete english sentence describing how the stream (usually a file) can be found. Should only be used for informing the user.

Reimplemented from tnstream.

Definition at line 607 of file basestrm.cpp.

References tnstream::devicename.

int MemoryStreamCopy::getPosition ( void  )
inline

Definition at line 160 of file basestrm.h.

Referenced by stream_seek().

int MemoryStreamCopy::getSize ( void  )
inlinevirtual

returns the size of the stream or -1 if the stream does not have a size

Reimplemented from tnstream.

Definition at line 161 of file basestrm.h.

Referenced by stream_seek().

int MemoryStreamCopy::readdata ( void *  buf,
int  size,
bool  excpt = true 
)
virtual

Reads data from the stream.

Parameters
bufthe buffer which the data is written to
sizethe number of bytes which should be read
excptIf true the operation will throw an exception if the desired number of bytes cannot be read.
Returns
the number of bytes which were read.

Implements tnstream.

Definition at line 624 of file basestrm.cpp.

References tnstream::getDeviceName(), and PolygonTriangulationLibrary::tr.

Referenced by stream_read().

void MemoryStreamCopy::seek ( int  newpos)
virtual

Sets the stream pointer to a new location. An exception is thrown if the stream does not support seeking.

Reimplemented from tnstream.

Definition at line 644 of file basestrm.cpp.

References tnstream::getDeviceName().

Referenced by stream_seek().

void MemoryStreamCopy::writedata ( const void *  buf,
int  size 
)
virtual

writes data to the stream

Parameters
bufpointer to the buffer
sizethe number of bytes which are going to be written

Implements tnstream.

Definition at line 619 of file basestrm.cpp.

References tnstream::getDeviceName(), tnstream::reading, and tnstream::writing.


The documentation for this class was generated from the following files: