2001-01-11 00:32:10 +08:00
|
|
|
// 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
|
|
|
|
{
|
2001-09-20 05:08:56 +08:00
|
|
|
SRecHeader RecHeader;
|
2001-01-11 00:32:10 +08:00
|
|
|
|
|
|
|
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; }
|
2001-11-02 00:35:26 +08:00
|
|
|
virtual size_t sizeofData() const { return sizeof(SExtension); }
|
2001-01-11 00:32:10 +08:00
|
|
|
virtual void accept(RecordVisitor& rv) { rv.apply(*this); }
|
|
|
|
// virtual void traverse(RecordVisitor& rv);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual ~ExtensionRecord();
|
|
|
|
|
|
|
|
virtual void endian();
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}; // end namespace flt
|
|
|
|
|
|
|
|
#endif
|