60 lines
1.4 KiB
C
60 lines
1.4 KiB
C
|
// ExtensionRecord.h
|
||
|
|
||
|
#ifndef __FLT_EXTENSION_RECORD_H
|
||
|
#define __FLT_EXTENSION_RECORD_H
|
||
|
|
||
|
|
||
|
#include "opcodes.h"
|
||
|
#include "Record.h"
|
||
|
#include "RecordVisitor.h"
|
||
|
|
||
|
namespace flt {
|
||
|
class Input;
|
||
|
};
|
||
|
|
||
|
|
||
|
namespace flt {
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// ExtensionRecord
|
||
|
//
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
typedef struct ExtensionTag
|
||
|
{
|
||
|
SRecHeader RecHeader;
|
||
|
|
||
|
char szIdent[8]; // 7 char ASCII ID; 0 terminates
|
||
|
char site[8]; // Site ID - Unique site name
|
||
|
char reserved; // Reserved
|
||
|
char revision; // Revision - site specific
|
||
|
uint16 code; // Record code - site specific
|
||
|
// char n/a; // Extended data - site specific
|
||
|
}SExtension;
|
||
|
|
||
|
|
||
|
class ExtensionRecord : public PrimNodeRecord
|
||
|
{
|
||
|
public:
|
||
|
ExtensionRecord();
|
||
|
|
||
|
virtual Record* clone() const { return new ExtensionRecord(); }
|
||
|
virtual const char* className() const { return "ExtensionRecord"; }
|
||
|
virtual int classOpcode() const { return EXTENSION_OP; }
|
||
|
virtual int sizeofData() const { return sizeof(SExtension); }
|
||
|
virtual void accept(RecordVisitor& rv) { rv.apply(*this); }
|
||
|
// virtual void traverse(RecordVisitor& rv);
|
||
|
|
||
|
protected:
|
||
|
virtual ~ExtensionRecord();
|
||
|
|
||
|
virtual void endian();
|
||
|
};
|
||
|
|
||
|
|
||
|
}; // end namespace flt
|
||
|
|
||
|
#endif
|