#ifndef __OTX_DOWNLOAD_PARAMETER_HPP__
#define __OTX_DOWNLOAD_PARAMETER_HPP__

#include "File.hpp"
#include "ECUFlasher.hpp"

namespace otx{
namespace flash{

class DownloadArgs {
public:
  DownloadArgs();
  DownloadArgs(const DownloadArgs &right) = default;
  DownloadArgs &operator=(const DownloadArgs &right) = default;
  virtual ~DownloadArgs() = default;
private:
  File *mFile;
  ECUFlasher *mFlasher;
  size_t mDownloadSize;

public:
  virtual File *getFile();
  virtual void setFile(File *file);

  virtual ECUFlasher *getFlasher();
  virtual void setFlasher(ECUFlasher *flasher);

  virtual size_t getDownloadSize();
  virtual void setDownloadSize(size_t size);
};
} // namespace flash
} // namespace otx

#endif // __OTX_DOWNLOAD_PARAMETER_HPP__