5#ifndef ASTARTE_DEVICE_SDK_DEVICE_H
6#define ASTARTE_DEVICE_SDK_DEVICE_H
80 [[nodiscard]]
virtual auto is_connected(
const std::chrono::milliseconds& timeout)
const
93 virtual void send_individual(
const std::string& interface_name,
const std::string& path,
95 const std::chrono::system_clock::time_point* timestamp) = 0;
103 virtual void send_object(
const std::string& interface_name,
const std::string& path,
105 const std::chrono::system_clock::time_point* timestamp) = 0;
112 virtual void set_property(
const std::string& interface_name,
const std::string& path,
119 virtual void unset_property(
const std::string& interface_name,
const std::string& path) = 0;
127 -> std::optional<AstarteMessage> = 0;
Astarte data class, representing the basic Astarte types.
Definition data.hpp:76
Astarte object class, representing the Astarte object datastream data.
Definition object.hpp:22
auto operator=(AstarteDevice &&other) -> AstarteDevice &=default
Move assignment operator for the Astarte device class.
AstarteDevice(AstarteDevice &&other)=default
Move constructor for the Astarte device class.
virtual void send_object(const std::string &interface_name, const std::string &path, const AstarteDatastreamObject &object, const std::chrono::system_clock::time_point *timestamp)=0
Send an aggregate object data payload to Astarte.
virtual void send_individual(const std::string &interface_name, const std::string &path, const AstarteData &data, const std::chrono::system_clock::time_point *timestamp)=0
Send an individual data payload to Astarte.
virtual void connect()=0
Connect the device to Astarte.
virtual void add_interface_from_str(std::string_view json)=0
Add an interface for the device from a JSON string view.
AstarteDevice()=default
Protected default constructor.
virtual void add_interface_from_str(std::string json)=0
Add an interface for the device from a JSON string.
AstarteDevice(const AstarteDevice &other)=delete
Copy constructor for the Astarte device class.
virtual auto poll_incoming(const std::chrono::milliseconds &timeout) -> std::optional< AstarteMessage >=0
Poll for incoming messages from Astarte.
virtual void disconnect()=0
Disconnect the device from Astarte.
virtual auto is_connected(const std::chrono::milliseconds &timeout) const -> bool=0
Check if the device is connected to the Astarte message hub.
virtual void add_interface_from_json(const std::filesystem::path &json_file)=0
Add an interface for the device from a JSON file.
virtual void unset_property(const std::string &interface_name, const std::string &path)=0
Unset a device property on Astarte.
virtual void set_property(const std::string &interface_name, const std::string &path, const AstarteData &data)=0
Set a device property on Astarte.
virtual ~AstarteDevice()=default
Virtual destructor.
auto operator=(const AstarteDevice &other) -> AstarteDevice &=delete
Copy assignment operator for the Astarte device class.
Astarte data class and its related methods.
Astarte message class and its related methods.
Umbrella namespace for the Astarte device SDK.
Definition data.hpp:25
Astarte object class and its related methods.