openMSX
IDEHD.hh
Go to the documentation of this file.
1#ifndef IDEHD_HH
2#define IDEHD_HH
3
4#include "HD.hh"
6
7namespace openmsx {
8
9class DeviceConfig;
10class DiskManipulator;
11
12class IDEHD final : public HD, public AbstractIDEDevice
13{
14public:
15 explicit IDEHD(const DeviceConfig& config);
16 IDEHD(const IDEHD&) = delete;
17 IDEHD(IDEHD&&) = delete;
18 IDEHD& operator=(const IDEHD&) = delete;
19 IDEHD& operator=(IDEHD&&) = delete;
20 ~IDEHD() override;
21
22 template<typename Archive>
23 void serialize(Archive& ar, unsigned version);
24
25private:
26 // AbstractIDEDevice:
27 [[nodiscard]] bool isPacketDevice() override;
28 [[nodiscard]] std::string_view getDeviceName() override;
29 void fillIdentifyBlock (AlignedBuffer& buffer) override;
30 [[nodiscard]] unsigned readBlockStart(AlignedBuffer& buffer, unsigned count) override;
31 void writeBlockComplete(AlignedBuffer& buffer, unsigned count) override;
32 void executeCommand(byte cmd) override;
33
34private:
35 DiskManipulator& diskManipulator;
36 unsigned transferSectorNumber = 0; // avoid UMR in serialize()
37 const std::string devName;
38};
39
40} // namespace openmsx
41
42#endif
IDEHD & operator=(const IDEHD &)=delete
~IDEHD() override
Definition IDEHD.cc:26
void serialize(Archive &ar, unsigned version)
Definition IDEHD.cc:135
IDEHD & operator=(IDEHD &&)=delete
IDEHD(const IDEHD &)=delete
IDEHD(IDEHD &&)=delete
This file implemented 3 utility functions:
Definition Autofire.cc:11