Files
2026-08-07 17:50:04 +08:00

28 lines
1001 B
C++

#include <structive/property/property.hpp>
#include <iostream>
using namespace structive;
struct Device : Property_Object<Device> {
double temperature{25.0};
double pressure{101.3};
int serial_number{1001};
};
template <>
struct structive::Type_Descriptor<Device> {
static auto get() {
return object<Device>(
synchronization(sync_all_independent),
field<&Device::temperature>(key<"temperature">, unit<"C">, min_value<-50.0>, max_value<200.0>),
field<&Device::pressure>(key<"pressure">, unit<"kPa">),
field<&Device::serial_number>(key<"serial_number">, read_only)
);
}
};
int main() {
Device device;
device.write<&Device::temperature>(30.0);
std::cout << "temperature=" << device.read<&Device::temperature>() << '\n';
std::cout << "serial_number=" << device.read<&Device::serial_number>() << '\n';
std::cout << "lock_count=" << device.resolved_synchronization().lock_count << '\n';
return 0;
}