#ifndef __OTX_FLASH_SequenceECUFlasher_HPP__
#define __OTX_FLASH_SequenceECUFlasher_HPP__

#include "MultipleECUFlasher.hpp"
#include <mutex>

namespace otx {
namespace flash {
/**
 * @brief 单一ECU刷写器。
 *
 */
class SequenceECUFlasher : virtual public MultipleECUFlasher {
public:
  SequenceECUFlasher() = default;
  SequenceECUFlasher(const SequenceECUFlasher &right) = default;
  SequenceECUFlasher &operator=(const SequenceECUFlasher &right) = default;
  virtual ~SequenceECUFlasher() = default;

public:
  virtual bool download() override;

private:
  virtual bool downloadECU(ECU *ecu);
};
} // namespace flash
} // namespace otx

#endif // __OTX_FLASH_SequenceECUFlasher_HPP__