mirror of https://github.com/stella-emu/stella.git
Removed Deserializer class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1848 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
d5bf1494da
commit
85dcb63483
|
@ -1,109 +0,0 @@
|
|||
//============================================================================
|
||||
//
|
||||
// SSSS tt lll lll
|
||||
// SS SS tt ll ll
|
||||
// SS tttttt eeee ll ll aaaa
|
||||
// SSSS tt ee ee ll ll aa
|
||||
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||
// SS SS tt ee ll ll aa aa
|
||||
// SSSS ttt eeeee llll llll aaaaa
|
||||
//
|
||||
// Copyright (c) 1995-2009 by Bradford W. Mott and the Stella team
|
||||
//
|
||||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id$
|
||||
//============================================================================
|
||||
|
||||
#include "Deserializer.hxx"
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Deserializer::Deserializer(void)
|
||||
{
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Deserializer::~Deserializer(void)
|
||||
{
|
||||
close();
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool Deserializer::open(const string& fileName)
|
||||
{
|
||||
close();
|
||||
myStream.open(fileName.c_str(), ios::in | ios::binary);
|
||||
|
||||
return isOpen();
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void Deserializer::close(void)
|
||||
{
|
||||
myStream.close();
|
||||
myStream.clear();
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool Deserializer::isOpen(void)
|
||||
{
|
||||
return myStream.is_open();
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
char Deserializer::getByte(void)
|
||||
{
|
||||
if(myStream.eof())
|
||||
throw "Deserializer: end of file";
|
||||
|
||||
char buf[1];
|
||||
myStream.read(buf, 1);
|
||||
|
||||
return buf[0];
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
int Deserializer::getInt(void)
|
||||
{
|
||||
if(myStream.eof())
|
||||
throw "Deserializer: end of file";
|
||||
|
||||
int val = 0;
|
||||
unsigned char buf[4];
|
||||
myStream.read((char*)buf, 4);
|
||||
for(int i = 0; i < 4; ++i)
|
||||
val += (int)(buf[i]) << (i<<3);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
string Deserializer::getString(void)
|
||||
{
|
||||
int len = getInt();
|
||||
string str;
|
||||
str.resize((string::size_type)len);
|
||||
myStream.read(&str[0], (streamsize)len);
|
||||
|
||||
if(myStream.bad())
|
||||
throw "Deserializer: file read failed";
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
bool Deserializer::getBool(void)
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
char b = getByte();
|
||||
if(b == (char)TruePattern)
|
||||
result = true;
|
||||
else if(b == (char)FalsePattern)
|
||||
result = false;
|
||||
else
|
||||
throw "Deserializer: data corruption";
|
||||
|
||||
return result;
|
||||
}
|
|
@ -1,110 +0,0 @@
|
|||
//============================================================================
|
||||
//
|
||||
// SSSS tt lll lll
|
||||
// SS SS tt ll ll
|
||||
// SS tttttt eeee ll ll aaaa
|
||||
// SSSS tt ee ee ll ll aa
|
||||
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||
// SS SS tt ee ll ll aa aa
|
||||
// SSSS ttt eeeee llll llll aaaaa
|
||||
//
|
||||
// Copyright (c) 1995-2009 by Bradford W. Mott and the Stella team
|
||||
//
|
||||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id$
|
||||
//============================================================================
|
||||
|
||||
#ifndef DESERIALIZER_HXX
|
||||
#define DESERIALIZER_HXX
|
||||
|
||||
#include <fstream>
|
||||
#include "bspf.hxx"
|
||||
|
||||
/**
|
||||
This class implements a Deserializer device, whereby data is
|
||||
deserialized from an input binary file in a system-independent
|
||||
way.
|
||||
|
||||
All bytes and ints should be cast to their appropriate data type upon
|
||||
method return.
|
||||
|
||||
@author Stephen Anthony
|
||||
@version $Id$
|
||||
*/
|
||||
class Deserializer
|
||||
{
|
||||
public:
|
||||
/**
|
||||
Creates a new Deserializer device.
|
||||
|
||||
Open must be called with a valid file before this Deserializer can
|
||||
be used.
|
||||
*/
|
||||
Deserializer(void);
|
||||
|
||||
/**
|
||||
Destructor
|
||||
*/
|
||||
virtual ~Deserializer(void);
|
||||
|
||||
public:
|
||||
/**
|
||||
Opens the given file for input. Multiple calls to this method
|
||||
will close previously opened files.
|
||||
|
||||
@param fileName The filename to get the deserialized data from.
|
||||
@return Result of opening the file. True on success, false on failure
|
||||
*/
|
||||
bool open(const string& fileName);
|
||||
|
||||
/**
|
||||
Closes the current input stream.
|
||||
*/
|
||||
void close(void);
|
||||
|
||||
/**
|
||||
Answers whether the deserializer is currently opened
|
||||
*/
|
||||
bool isOpen(void);
|
||||
|
||||
/**
|
||||
Reads a byte value (8-bit) from the current input stream.
|
||||
|
||||
@result The char value which has been read from the stream.
|
||||
*/
|
||||
char getByte(void);
|
||||
|
||||
/**
|
||||
Reads an int value (32-bit) from the current input stream.
|
||||
|
||||
@result The int value which has been read from the stream.
|
||||
*/
|
||||
int getInt(void);
|
||||
|
||||
/**
|
||||
Reads a string from the current input stream.
|
||||
|
||||
@result The string which has been read from the stream.
|
||||
*/
|
||||
string getString(void);
|
||||
|
||||
/**
|
||||
Reads a boolean value from the current input stream.
|
||||
|
||||
@result The boolean value which has been read from the stream.
|
||||
*/
|
||||
bool getBool(void);
|
||||
|
||||
private:
|
||||
// The stream to get the deserialized data from.
|
||||
fstream myStream;
|
||||
|
||||
enum {
|
||||
TruePattern = 0xfe,
|
||||
FalsePattern = 0x01
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue