/******************************************************************************* * * * Société de Transports de Montréal. * * 2012 - 2013 * * * * Projet Zones Tests * * * * * * * *******************************************************************************/ /* Description: Description du fichier si nécessaire. */ /* ************************************************************************** */ /* Revision: ### YYYMMDD JFM Verision d'origine. ### YYYYMMDD Description du besoin ou du bug Description du changement. */ /* ************************************************************************** */ #ifndef LOGMGR_H #define LOGMGR_H #include "ZTData.h" #include "GlobalDefine.h" #include #include #include #include #include "DirParserThread.h" class CLogElement { public: unsigned int mZTLogType; virtual ~CLogElement(); }; //QDataStream &operator<<(QDataStream &out, const CLogElement &source); //QDataStream &operator>>(QDataStream &in, CLogElement &dest); class CZT1LogElement : public CLogElement { public: CZT1LogElement(){mZTLogType=ZT1_LOG_TYPE;} ~CZT1LogElement(); QDateTime mPassageDateTime; QVector mZTLogData; QVector mZTDetections; quint32 mTrainType; quint32 mNbElements; quint64 mThreadDataStartTime, mThreadDataEndTime; QString mLogFileName; qreal mMeanSpeed; CZT1FlagsData mFlags; QString mStationName; bool mFileProtected; }; //QDataStream &operator<<(QDataStream &out, const CZT1LogElement &source); //QDataStream &operator>>(QDataStream &in, CZT1LogElement &dest); class CZT2LogElement : public CLogElement { public: CZT2LogElement(){mZTLogType = ZT2_LOG_TYPE;} ~CZT2LogElement(); QDateTime mPassageDateTime; QVector mZTLogData; QVector mZTDetections; QString mLogFileName; quint32 mNbElements; QString mStationName; CZT2FlagsData mFlags; bool mFileProtected; }; class COutilZT; class CLogMgr : public QObject { Q_OBJECT public: CLogMgr(); ~CLogMgr(); COutilZT *mProgramHandle; unsigned int GetLogsCount(); QList *GetLogsList(); unsigned int ParseLogs(bool RebuildDatabase = false, bool KeepData = false); unsigned int ParseNewLog(QString FileName, bool KeepData = false); unsigned int ParseImportedLogs(QStringList *NewLogFiles); CLogElement* LoadLogData(CLogElement * Element); unsigned int FreeLogData(CLogElement * Element); unsigned int DeleteLog(int LogIndex); void SetLogDataDir(QString Dir){mLogDataDir = Dir;} bool ParseNextLog(); unsigned int SaveDatabaseFile(); unsigned int RebuildDatabaseFile(); unsigned int ProtectLogElementFile(bool IsProtected, CLogElement *Element); QTimer *mDatabaseParsingTimer; QDir GetBaseLogDataDir(){return QDir(mLogDataDir);} private: CDirParserThread *mDirParserWorkerThread; QThread *mDirParserThread; QList mPassagesList; unsigned int DestroyLogList(); int ParseDir(QDir dir, bool KeepData = false); QFileInfoList mLogsFilelist; unsigned int mLogsFileIndex; QString mLogDataDir; bool mParsingFinished; unsigned int mDatabaseFileCounter; bool mSaveDBFile; public slots: void NewLogParsed(QString,bool); void NewLogParsed(CLogElement*); void DirParsingFinished(int); void ParsingTimerExpired(); void EmptyDirParsed(); void ThreadQuit(); void ThreadTerminated(); }; #endif // LOGMGR_H