#ifndef MWRITEFILE_H
#define MWRITEFILE_H

#ifndef MTASK_H
#include "MTask.h"
#endif

class TFile;

class MWriteFile : public MTask
{
private:
    virtual Bool_t IsFileOpen() const = 0;
    virtual void CheckAndWrite() const = 0;
    virtual Bool_t GetContainer(MParList *pList) = 0;
    virtual const char *GetFileName() const = 0;

public:

    virtual Bool_t PreProcess(MParList *pList);
    virtual Bool_t Process();
    virtual Bool_t PostProcess();

    ClassDef(MWriteFile, 0)	// Base class for tasks to write single containers to several output formats
};

#endif
