allow initializing a RageFileSource with a RageFileBasic*

This commit is contained in:
Glenn Maynard
2005-05-19 23:39:41 +00:00
parent 31a5d1e0ed
commit e64e00d6c6
2 changed files with 14 additions and 3 deletions
+11 -1
View File
@@ -1,6 +1,7 @@
#include "global.h"
#include "CryptHelpers.h"
#include "RageFile.h"
#include "RageLog.h"
// crypt headers
#include "crypto51/files.h"
@@ -13,6 +14,13 @@ RageFileStore::ReadErr::ReadErr( const RageFileBasic &f ):
RageFileStore::RageFileStore()
{
m_pFile = NULL;
m_waiting = false;
}
RageFileStore::RageFileStore( RageFileBasic *pFile )
{
m_pFile = pFile;
m_waiting = false;
}
RageFileStore::~RageFileStore()
@@ -41,12 +49,14 @@ void RageFileStore::StoreInitialize(const NameValuePairs &parameters)
{
RageFile *pFile = new RageFile;
m_pFile = pFile;
LOG->Trace( "XXX: not using pFile" );
if( !pFile->Open(fileName, RageFile::READ) )
throw OpenErr( fileName );
}
else
{
ASSERT(0);
ASSERT( m_pFile != NULL );
LOG->Trace( "XXX: using pFile" );
}
m_waiting = false;
}
+3 -2
View File
@@ -9,7 +9,6 @@
using namespace CryptoPP;
class RageFileBasic;
//! .
class RageFileStore : public Store, private FilterPutSpaceHelper
{
public:
@@ -22,6 +21,7 @@ public:
struct ReadErr : public Err { ReadErr( const RageFileBasic &f ); };
RageFileStore();
RageFileStore( RageFileBasic *pFile ); /* pFile will be deleted */
~RageFileStore();
RageFileStore( const RageFileStore &cpy );
RageFileStore(const char *filename)
@@ -40,7 +40,6 @@ private:
bool m_waiting;
};
//! .
class RageFileSource : public SourceTemplate<RageFileStore>
{
public:
@@ -48,6 +47,8 @@ public:
typedef FileStore::OpenErr OpenErr;
typedef FileStore::ReadErr ReadErr;
RageFileSource( RageFileBasic *pFile, bool pumpAll, BufferedTransformation *attachment = NULL, bool binary=true )
: SourceTemplate<RageFileStore>(attachment,RageFileStore(pFile)) {SourceInitialize(pumpAll, MakeParameters("InputBinaryMode", binary));}
RageFileSource(const char *filename, bool pumpAll, BufferedTransformation *attachment = NULL, bool binary=true)
: SourceTemplate<RageFileStore>(attachment) {SourceInitialize(pumpAll, MakeParameters("InputFileName", filename)("InputBinaryMode", binary));}
};