139 lines
4.2 KiB
C++
139 lines
4.2 KiB
C++
// File name: $Workfile: rec_general.h $
|
|
// Last modified: $Modtime: 11/13/00 3:54p $
|
|
// Last modified by: $Author: Bill $
|
|
//
|
|
// VCS archive path: $Archive: /Hank/DMM/FirmWare/Level3/ObDatMgr/rec_general.h $
|
|
// VCS revision: $Revision: 7 $
|
|
|
|
// Forward-declare these classes
|
|
class CPQDIF_StreamIO;
|
|
|
|
class CPQDIF_E_Collection;
|
|
class CPQDIF_E_Scalar;
|
|
class CPQDIF_E_Vector;
|
|
|
|
class PQAlloc;
|
|
|
|
union PQDIFValue;
|
|
|
|
|
|
class CPQDIF_R_General : public CPQDIFRecord
|
|
{
|
|
// Subclasses are friends - need to fix?
|
|
friend class CPQDIF_R_Observation;
|
|
friend class CPQDIF_R_DataSource;
|
|
|
|
public:
|
|
CPQDIF_R_General();
|
|
virtual ~CPQDIF_R_General();
|
|
|
|
// Operations
|
|
public:
|
|
virtual bool ReadHeader( CPQDIF_StreamIO * pstream );
|
|
virtual bool ReadBody( CPQDIF_StreamIO * pstream );
|
|
|
|
virtual bool WriteHeader( CPQDIF_StreamIO * pstream );
|
|
virtual bool WriteBody( CPQDIF_StreamIO * pstream );
|
|
|
|
// Attributes
|
|
public:
|
|
virtual bool HeaderGetPos( LINKABS4& pos ) const
|
|
{
|
|
pos = m_posThisRecord;
|
|
return true;
|
|
}
|
|
virtual bool HeaderSetPos( LINKABS4 pos )
|
|
{
|
|
m_posThisRecord = pos;
|
|
return true;
|
|
}
|
|
virtual bool HeaderGetTag( GUID& tagRecord ) const
|
|
{
|
|
tagRecord = m_headerRecord.tagRecordType;
|
|
return true;
|
|
}
|
|
virtual bool HeaderSetTag( GUID tagRecord )
|
|
{
|
|
m_headerRecord.tagRecordType = tagRecord;
|
|
return true;
|
|
}
|
|
virtual bool HeaderGetSize( SIZE4& sizeHeader, SIZE4& sizeBody ) const
|
|
{
|
|
sizeHeader = m_headerRecord.sizeHeader;
|
|
sizeBody = m_headerRecord.sizeData ;
|
|
return true;
|
|
}
|
|
virtual bool HeaderSetSize( SIZE4 sizeHeader, SIZE4 sizeBody )
|
|
{
|
|
m_headerRecord.sizeHeader = sizeHeader;
|
|
m_headerRecord.sizeData = sizeBody ;
|
|
return true;
|
|
}
|
|
virtual bool HeaderGetChecksum( UINT& checksum ) const
|
|
{
|
|
checksum = m_headerRecord.checksum;
|
|
return true;
|
|
}
|
|
virtual bool HeaderSetChecksum( UINT checksum )
|
|
{
|
|
m_headerRecord.checksum = checksum;
|
|
return true;
|
|
}
|
|
virtual bool HeaderGetPosNextRecord( LINKABS4& pos ) const
|
|
{
|
|
pos = m_headerRecord.linkNextRecord;
|
|
return true;
|
|
}
|
|
virtual bool HeaderSetPosNextRecord( LINKABS4 pos )
|
|
{
|
|
m_headerRecord.linkNextRecord = pos;
|
|
return true;
|
|
}
|
|
virtual CPQDIF_E_Collection * GetMainCollection( void ) const
|
|
{
|
|
return m_pcollMain;
|
|
}
|
|
virtual bool SetMainCollection( CPQDIF_E_Collection * collMain );
|
|
virtual bool GetChanged( void )
|
|
{
|
|
return m_changed;
|
|
}
|
|
virtual void SetChanged( bool changed )
|
|
{
|
|
m_changed = changed;
|
|
}
|
|
|
|
bool SetTimeInMainCollection (const GUID &tag, const TIMESTAMPPQDIF & timeTime);
|
|
bool SetREAL8InMainCollection (const GUID &tag, const REAL8 dVal);
|
|
bool SetBOOL4InMainCollection (const GUID &tag, const BOOL4 bVal);
|
|
|
|
bool GetTimeInMainCollection (const GUID &tag, TIMESTAMPPQDIF & timeTime);
|
|
bool GetREAL8InMainCollection (const GUID &tag, REAL8 & dVal);
|
|
bool GetBOOL4InMainCollection (const GUID &tag, BOOL4 & bVal);
|
|
|
|
// Overrides
|
|
public:
|
|
|
|
// Implementation
|
|
protected:
|
|
bool BufferUpCollection
|
|
(
|
|
CPQDIF_StreamIO * pstream,
|
|
PQAlloc& allocator,
|
|
CPQDIF_E_Collection * pcoll,
|
|
c_collection_element * aem
|
|
);
|
|
|
|
// Member data
|
|
protected:
|
|
c_record_mainheader m_headerRecord;
|
|
LINKABS4 m_posThisRecord;
|
|
|
|
CPQDIF_E_Collection * m_pcollMain; // Main collection element
|
|
// (if NULL, record has not been read yet)
|
|
|
|
bool m_changed; // Record changed flag.
|
|
|
|
};
|
|
|