#ifndef LOGSSORTERCONFIGDATA_H
#define LOGSSORTERCONFIGDATA_H

#include <QString>
#include <QList>

class CLogsFilterData;

class CLogsSorterConfigData
{
public:
    CLogsSorterConfigData();

    QString mLogsSourceDirectory;       //Le répertoire à surveiller
    QList<CLogsFilterData> mLogsFiltersList;


    CLogsSorterConfigData& operator=(const CLogsSorterConfigData *source);
};

QDataStream &operator<<(QDataStream &out, const CLogsSorterConfigData &source);
QDataStream &operator>>(QDataStream &in, CLogsSorterConfigData &dest);

class CLogsFilterData
{
public:
    enum eFilterOperationType
    {
        LOG_FILTER_MOVE_OPERATION_TYPE,
        LOG_FILTER_DELETE_OPERATION_TYPE,

        LOG_FILTER_MAX_OPERATION_TYPE
    };


    QString mFilterName;        //Une courte description du filtre (non utilisé dans le traîtement des noms de fichiers)
    QString mLogIdentificator;  //Correspond à la chaîne de caractère qui différencie type de log.  Par exemple: "ZT1" ou "ZT2" ou "BooleanData"
    QString mLogPrefix;         //Le préfixe qui identifie généralement la station
    QString mLogDestination;    //Le répertoire de destination
    eFilterOperationType mFilterOperation;  //Le type d'opération qu'on doit faire sur le fichier

    CLogsFilterData& operator=(const CLogsFilterData *source);

};

QDataStream &operator<<(QDataStream &out, const CLogsFilterData &source);
QDataStream &operator>>(QDataStream &in, CLogsFilterData &dest);

#endif // LOGSSORTERCONFIGDATA_H
