From 57c218dd6e0e035d5bc11146613caf0f59ad444e Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 10 Dec 2004 09:27:11 +0000 Subject: [PATCH] add copy ctor, GetString --- stepmania/src/RageFileDriverMemory.cpp | 15 ++++++++++++--- stepmania/src/RageFileDriverMemory.h | 4 ++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/stepmania/src/RageFileDriverMemory.cpp b/stepmania/src/RageFileDriverMemory.cpp index a33dc10d0d..6785bc2002 100644 --- a/stepmania/src/RageFileDriverMemory.cpp +++ b/stepmania/src/RageFileDriverMemory.cpp @@ -83,14 +83,23 @@ int RageFileObjMem::GetFileSize() const return m_pFile->m_sBuf.size(); } +RageFileObjMem::RageFileObjMem( const RageFileObjMem &cpy ) +{ + m_pFile = cpy.m_pFile; + m_iFilePos = cpy.m_iFilePos; + RageFileObjMemFile::AddReference( m_pFile ); +} + RageFileObj *RageFileObjMem::Copy() const { - RageFileObjMem *pRet = new RageFileObjMem( m_pFile ); - pRet->m_iFilePos = m_iFilePos; - + RageFileObjMem *pRet = new RageFileObjMem( *this ); return pRet; } +const CString &RageFileObjMem::GetString() const +{ + return m_pFile->m_sBuf; +} RageFileDriverMem::RageFileDriverMem(): RageFileDriver( new NullFilenameDB ), diff --git a/stepmania/src/RageFileDriverMemory.h b/stepmania/src/RageFileDriverMemory.h index 59e5c482f0..59c3bae3b4 100644 --- a/stepmania/src/RageFileDriverMemory.h +++ b/stepmania/src/RageFileDriverMemory.h @@ -11,6 +11,7 @@ class RageFileObjMem: public RageFileObj { public: RageFileObjMem( RageFileObjMemFile *pFile = NULL ); + RageFileObjMem( const RageFileObjMem &cpy ); ~RageFileObjMem(); int ReadInternal( void *buffer, size_t bytes ); @@ -19,6 +20,9 @@ public: int GetFileSize() const; RageFileObj *Copy() const; + /* Retrieve the contents of this file. */ + const CString &GetString() const; + private: RageFileObjMemFile *m_pFile; int m_iFilePos;