Skip to content

Instantly share code, notes, and snippets.

@ssube
Created August 20, 2011 23:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ssube/1159848 to your computer and use it in GitHub Desktop.
Save ssube/1159848 to your computer and use it in GitHub Desktop.
LibESD Record interface
/*************************************************************************************************\
*
* @file Record.hpp
* @brief Declares the libESD::Record class.
* @note libESD source code and software (c) Copyright 2011 by Sean Sube, All Rights Reserved.
* Neither the source nor binaries may be modified or distributed without permission.
*
\*************************************************************************************************/
#pragma once
#include "libESD.hpp"
#include "ISerializable.hpp"
#include "ITypedObject.hpp"
namespace libESD
{
class LIBESD_API Record
: public ISerializable, public ITypedObject
{
public:
Record();
virtual bool Deserialize(std::ifstream * pInFile);
virtual bool Serialize(std::ofstream * pOutFile);
virtual RecordType GetType();
virtual FlagsType GetFlags();
virtual void SetFlags(FlagsType Flags);
virtual SizeType GetCount();
virtual SubrecordRef GetSingle(RecordType Type, SizeType Offset = 0);
virtual SubrecordList GetList(RecordType Type);
private:
RecordType m_Type;
FlagsType m_Flags;
SubrecordList m_Subrecords;
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment