100 lines
3.4 KiB
C++
100 lines
3.4 KiB
C++
/*
|
|
** Base class for PQDIF records; pure virtual.
|
|
** --------------------------------------------------------------------------
|
|
**
|
|
** File name: $Workfile: rec_base.h $
|
|
** Last modified: $Modtime: 2/05/98 1:53p $
|
|
** Last modified by: $Author: Rob $
|
|
**
|
|
** VCS archive path: $Archive: /Hank/DMM/FirmWare/Level3/ObDatMgr/rec_base.h $
|
|
** VCS revision: $Revision: 4 $
|
|
*/
|
|
|
|
// Forward-declare these items
|
|
class CPQDIF_StreamIO;
|
|
|
|
class CPQDIF_E_Collection;
|
|
class CPQDIF_E_Scalar;
|
|
class CPQDIF_E_Vector;
|
|
|
|
union PQDIFValue;
|
|
|
|
class CPQDIFRecord
|
|
{
|
|
public:
|
|
CPQDIFRecord() {}
|
|
virtual ~CPQDIFRecord() {}
|
|
|
|
// Operations
|
|
public:
|
|
virtual bool ReadHeader( CPQDIF_StreamIO * pstream ) = 0;
|
|
virtual bool ReadBody( CPQDIF_StreamIO * pstream ) = 0;
|
|
|
|
virtual bool WriteHeader( CPQDIF_StreamIO * pstream ) = 0;
|
|
virtual bool WriteBody( CPQDIF_StreamIO * pstream ) = 0;
|
|
|
|
// Attributes
|
|
public:
|
|
virtual bool HeaderGetPos( LINKABS4& pos ) const = 0;
|
|
virtual bool HeaderSetPos( LINKABS4 pos ) = 0;
|
|
virtual bool HeaderGetTag( GUID& tagRecord ) const = 0;
|
|
virtual bool HeaderSetTag( GUID tagRecord ) = 0;
|
|
virtual bool HeaderGetSize( SIZE4& sizeHeader, SIZE4& sizeBody ) const = 0;
|
|
virtual bool HeaderSetSize( SIZE4 sizeHeader, SIZE4 sizeBody ) = 0;
|
|
virtual bool HeaderGetChecksum( UINT& checksum ) const = 0;
|
|
virtual bool HeaderSetChecksum( UINT checksum ) = 0;
|
|
virtual bool HeaderGetPosNextRecord( LINKABS4& pos ) const = 0;
|
|
virtual bool HeaderSetPosNextRecord( LINKABS4 pos ) = 0;
|
|
virtual CPQDIF_E_Collection * GetMainCollection( void ) const = 0;
|
|
virtual bool SetMainCollection( CPQDIF_E_Collection * collMain ) = 0;
|
|
virtual bool GetChanged( void ) = 0;
|
|
virtual void SetChanged( bool changed ) = 0;
|
|
|
|
// Static functions (do not affect--or even require--an object)
|
|
public:
|
|
static CPQDIF_E_Collection * FindCollectionInCollection
|
|
(
|
|
CPQDIF_E_Collection * pcoll,
|
|
const GUID& tag
|
|
);
|
|
static CPQDIF_E_Scalar * FindScalarInCollection
|
|
(
|
|
CPQDIF_E_Collection * pcoll,
|
|
const GUID& tag
|
|
);
|
|
static bool GetScalarValueInCollection
|
|
(
|
|
CPQDIF_E_Collection * pcoll,
|
|
const GUID& tag,
|
|
UINT4 typePhysical,
|
|
PQDIFValue& value
|
|
);
|
|
static CPQDIF_E_Vector * FindVectorInCollection
|
|
(
|
|
CPQDIF_E_Collection * pcoll,
|
|
const GUID& tag
|
|
);
|
|
|
|
static CPQDIF_E_Scalar * FindOrCreateScalarInCollection
|
|
(
|
|
CPQDIF_E_Collection * pcoll,
|
|
const GUID& tag,
|
|
UINT4 typePhysical
|
|
);
|
|
static CPQDIF_E_Vector * FindOrCreateVectorInCollection
|
|
(
|
|
CPQDIF_E_Collection * pcoll,
|
|
const GUID& tag,
|
|
UINT4 typePhysical
|
|
);
|
|
|
|
// Implementation
|
|
protected:
|
|
// None; pure virtual base class.
|
|
|
|
// Member data
|
|
protected:
|
|
// None; pure virtual base class.
|
|
};
|
|
|