class CPQDIFRecord; typedef enum { pqpc_Empty, // Newly created pqpc_MatchesFile, // Contents of memory same as disk pqpc_Modified // Contents of memory have been modified } PQPC_Status; class CPQDIF_PersistController { public: CPQDIF_PersistController(); virtual ~CPQDIF_PersistController(); // Public member functions public: virtual long GetRecordCount( void ) const; virtual CPQDIFRecord * GetRecord( long index ); virtual CPQDIFRecord * GetRecordFull( long index ) = 0; virtual bool InsertRecord( CPQDIFRecord * prec, long indexToInsert ); virtual bool RemoveRecord( long index ); // Other public member functions public: virtual long CreateContainerRecord ( const char * language, const char * title, const char * subject, const char * author, const char * keywords, const char * comments, const char * lastSavedBy, const char * application, const char * security, const char * owner, const char * copyright, const char * trademarks, const char * notes ); virtual long CreateContainerRecord ( const char * szFileName, const TIMESTAMPPQDIF * timeCreate, const long lMajor, const long lMinor, const long lCompatMajor, const long lCompatMinor ); long CreateDataSourceRecord ( long indexInsert, const GUID& idDataSourceType, const GUID& idVendor, const GUID& idEquipment, const char * serialNumberDS, // Optional (can be NULL) const char * versionDS, // Optional const char * nameDS, const char * ownerDS, // Optional const char * locationDS, // Optional const char * timeZoneDS // Optional ); long CreateMonitorSettingsRecord ( long indexInsert ); long CreateMonitorSettingsRecord ( long indexInsert, const TIMESTAMPPQDIF * timeEffective, const TIMESTAMPPQDIF * timeInstalled, const TIMESTAMPPQDIF * timeRemoved, bool useCal, bool useTrans ); long CreateObservationRecord ( long indexInsert, const char * name, const TIMESTAMPPQDIF * timeCreate, const TIMESTAMPPQDIF * timeStart, UINT4 idTriggerMethod, const TIMESTAMPPQDIF * timeTriggered, // Optional (can be NULL) long countTriggers, UINT4 * aidxChannelTrigger // Array of channel indices[ countTriggers ] // Optional (can be NULL) ); // Member data protected: CPQPtrArray m_arrayRecords; PQPC_Status m_state; };