46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
//-----------------------------------------------------------------------------
 | 
						|
// Torque Game Engine
 | 
						|
// Copyright (C) GarageGames.com, Inc.
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
 | 
						|
#ifndef _MEMSTREAM_H_
 | 
						|
#define _MEMSTREAM_H_
 | 
						|
 | 
						|
//Includes
 | 
						|
#ifndef _STREAM_H_
 | 
						|
#include "core/stream.h"
 | 
						|
#endif
 | 
						|
 | 
						|
class MemStream : public Stream {
 | 
						|
   typedef Stream Parent;
 | 
						|
 | 
						|
  protected:
 | 
						|
   U32 const cm_bufferSize;
 | 
						|
   void*  m_pBufferBase;
 | 
						|
 | 
						|
   U32 m_instCaps;
 | 
						|
   U32 m_currentPosition;
 | 
						|
 | 
						|
  public:
 | 
						|
   MemStream(const U32  in_bufferSize,
 | 
						|
             void*      io_pBuffer,
 | 
						|
             const bool in_allowRead  = true,
 | 
						|
             const bool in_allowWrite = true);
 | 
						|
   ~MemStream();
 | 
						|
 | 
						|
   // Mandatory overrides from Stream
 | 
						|
  protected:
 | 
						|
   bool _read(const U32 in_numBytes,  void* out_pBuffer);
 | 
						|
   bool _write(const U32 in_numBytes, const void* in_pBuffer);
 | 
						|
  public:
 | 
						|
   bool hasCapability(const Capability) const;
 | 
						|
   U32  getPosition() const;
 | 
						|
   bool setPosition(const U32 in_newPosition);
 | 
						|
 | 
						|
   // Mandatory overrides from Stream
 | 
						|
  public:
 | 
						|
   U32  getStreamSize();
 | 
						|
};
 | 
						|
 | 
						|
#endif //_MEMSTREAM_H_
 |