90 lines
2.1 KiB
C++
90 lines
2.1 KiB
C++
// InstanceRecords.h
|
|
|
|
|
|
#ifndef __FLT_INSTANCE_RECORDS_H
|
|
#define __FLT_INSTANCE_RECORDS_H
|
|
|
|
|
|
#include "opcodes.h"
|
|
#include "Record.h"
|
|
#include "RecordVisitor.h"
|
|
|
|
|
|
namespace flt {
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// InstanceDefinitionRecord
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
typedef struct InstanceDefinitionTag
|
|
{
|
|
SRecHeader RecHeader;
|
|
int16 iSpare;
|
|
int16 iInstDefNumber;
|
|
}SInstanceDefinition;
|
|
|
|
|
|
class InstanceDefinitionRecord : public PrimNodeRecord
|
|
{
|
|
public:
|
|
InstanceDefinitionRecord();
|
|
|
|
virtual Record* clone() const { return new InstanceDefinitionRecord(); }
|
|
virtual const char* className() const { return "InstanceDefinitionRecord"; }
|
|
virtual int classOpcode() const { return INSTANCE_DEFINITION_OP; }
|
|
virtual void accept(RecordVisitor& rv) { rv.apply(*this); }
|
|
// virtual void traverse(RecordVisitor& rv);
|
|
|
|
SInstanceDefinition* getData() const { return (SInstanceDefinition*)_pData; }
|
|
|
|
protected:
|
|
virtual ~InstanceDefinitionRecord();
|
|
|
|
virtual void endian();
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// InstanceReferenceRecord
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
typedef struct InstanceReferenceTag
|
|
{
|
|
SRecHeader RecHeader;
|
|
int16 iSpare;
|
|
int16 iInstDefNumber;
|
|
}SInstanceReference;
|
|
|
|
|
|
|
|
class InstanceReferenceRecord : public PrimNodeRecord
|
|
{
|
|
public:
|
|
InstanceReferenceRecord();
|
|
|
|
virtual Record* clone() const { return new InstanceReferenceRecord(); }
|
|
virtual const char* className() const { return "InstanceReferenceRecord"; }
|
|
virtual int classOpcode() const { return INSTANCE_REFERENCE_OP; }
|
|
virtual void accept(RecordVisitor& rv) { rv.apply(*this); }
|
|
// virtual void traverse(RecordVisitor& rv);
|
|
|
|
SInstanceReference* getData() const { return (SInstanceReference*)_pData; }
|
|
|
|
protected:
|
|
virtual ~InstanceReferenceRecord();
|
|
|
|
virtual void endian();
|
|
};
|
|
|
|
|
|
}; // end namespace flt
|
|
|
|
#endif
|
|
|