SimulationCraft
SimulationCraft is a tool to explore combat mechanics in the popular MMO RPG World of Warcraft (tm).
MemoryStream Struct Reference

Represents an in-memory input byte stream. More...

#include <memorystream.h>

Public Types

typedef char Ch
 

Public Member Functions

 MemoryStream (const Ch *src, size_t size)
 
Ch Peek () const
 
Ch Take ()
 
size_t Tell () const
 
Ch * PutBegin ()
 
void Put (Ch)
 
void Flush ()
 
size_t PutEnd (Ch *)
 
const Ch * Peek4 () const
 

Public Attributes

const Ch * src_
 Current read position.
 
const Ch * begin_
 Original head of the string.
 
const Ch * end_
 End of stream.
 
size_t size_
 Size of the stream.
 

Detailed Description

Represents an in-memory input byte stream.

This class is mainly for being wrapped by EncodedInputStream or AutoUTFInputStream.

It is similar to FileReadBuffer but the source is an in-memory buffer instead of a file.

Differences between MemoryStream and StringStream:

  1. StringStream has encoding but MemoryStream is a byte stream.
  2. MemoryStream needs size of the source buffer and the buffer don't need to be null terminated. StringStream assume null-terminated string as source.
  3. MemoryStream supports Peek4() for encoding detection. StringStream is specified with an encoding so it should not have Peek4().
    Note
    implements Stream concept