OSCAR-code/SleepLib/machine_loader.h

71 lines
1.9 KiB
C++

/*
SleepLib MachineLoader Base Class Header
Author: Mark Watkins <jedimark64@users.sourceforge.net>
License: GPL
*/
#ifndef MACHINE_LOADER_H
#define MACHINE_LOADER_H
#include "profiles.h"
#include "machine.h"
/*! \class MachineLoader
\brief Base class to derive a new Machine importer from
*/
class MachineLoader
{
public:
MachineLoader();
virtual ~MachineLoader();
//virtual Machine * CreateMachine() {};
//! \brief Override this to scan path and detect new machine data
virtual int Open(QString & path,Profile *)=0; // Scans for new content
//! \brief Override to returns the Version number of this MachineLoader
virtual int Version()=0;
//! \brief Override to returns the class name of this MachineLoader
virtual const QString & ClassName()=0;
/*
MachineLoader(Profile *profile,QString & classname);
virtual void LoadMachineList();
virtual void SaveMachineList();
virtual bool LoadSummaries();
virtual bool LoadEvents();
virtual bool LoadWaveforms();
virtual bool Scan(QString &)=0; // Scans for new content
virtual bool LoadAll();
virtual bool SaveAll();
virtual bool LoadSummary(Machine * m, QString & filename);
virtual bool LoadEvent(Machine * m, QString & filename);
virtual bool LoadWaveform(Machine * m, QString & filename);
virtual bool SaveSummary(Machine * m, QString & filename);
virtual bool SaveEvent(Machine * m, QString & filename);
virtual bool SaveWaveform(Machine * m, QString & filename);*/
protected:
//! \brief Contains a list of Machine records known by this loader
QList<Machine *> m_machlist;
QString m_class;
MachineType m_type;
Profile * m_profile;
};
// Put in machine loader class as static??
void RegisterLoader(MachineLoader *loader);
void DestroyLoaders();
QList<MachineLoader *> GetLoaders();
#endif //MACHINE_LOADER_H