Files
hardwaremoniter/hardware_monitor_wrapper/native/include/Hardware.h
2025-06-08 17:40:21 +08:00

34 lines
863 B
C++

#pragma once
#include "dll_macro.h"
#include "HardwareType.h"
#include "Identifier.h"
#include <string>
#include <memory>
#include <vector>
class Sensor;
class Visitor;
struct innerHardware;
class DLL_API Hardware {
public:
Hardware(std::shared_ptr<innerHardware> inner);
Hardware(const Hardware& src);
bool isNull() const;
Hardware operator=(const Hardware& src) const{
return Hardware(src);
}
bool operator==(const Hardware& other) const;
HardwareType getHardwareType();
std::vector<Sensor> getSensors();
Hardware getParent();
std::vector<Hardware> getSubHardware();
void Update();
std::string Name();
std::string GetReport();
void Accept(Visitor* visitor);
void Traverse(Visitor* visitor);
Identifier getIdenifier();
~Hardware();
private:
std::shared_ptr<innerHardware> inner;
};