00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
#ifndef DIME_RECORD_H
00031
#define DIME_RECORD_H
00032
00033
#include <dime/Basic.h>
00034
#include <dime/Base.h>
00035
#include <stdio.h>
00036
00037
class dimeInput;
00038
class dimeOutput;
00039
00040 class DIME_DLL_API dimeRecord :
public dimeBase
00041 {
00042
public:
00043 dimeRecord(
const int group_code);
00044
virtual ~dimeRecord();
00045
00046
virtual void setValue(
const dimeParam ¶m,
dimeMemHandler *
const memhandler = NULL) = 0;
00047
virtual void getValue(
dimeParam ¶m)
const = 0;
00048
virtual dimeRecord *copy(
dimeMemHandler *
const memhandler)
const = 0;
00049
00050
void setGroupCode(
const int group_code);
00051
int getGroupCode()
const;
00052
00053
00054
public:
00055
virtual bool isEndOfSectionRecord()
const;
00056
virtual bool isEndOfFileRecord()
const;
00057
virtual int typeId()
const = 0;
00058
virtual bool read(
dimeInput *
const in) = 0;
00059
virtual bool write(
dimeOutput *
const out);
00060 virtual void print()
const {fprintf(stderr,
"rec: %d\n", groupCode);}
00061
00062
public:
00063
static bool readRecordData(
dimeInput *
const in,
const int group_code,
00064
dimeParam ¶m);
00065
static dimeRecord *readRecord(
dimeInput *
const in);
00066
static dimeRecord *createRecord(
const int group_code,
00067
dimeMemHandler *
const memhandler);
00068
static dimeRecord *createRecord(
const int group_code,
00069
const dimeParam ¶m,
00070
dimeMemHandler *
const memhandler);
00071
static int getRecordType(
const int group_code);
00072
00073
protected:
00074
int groupCode;
00075
00076 };
00077
00078
#endif // ! DIME_RECORD_H
00079