herald  2.0.0
device.h
1 // Copyright 2020-2021 Herald Project Contributors
2 // SPDX-License-Identifier: Apache-2.0
3 //
4 
5 #ifndef HERALD_DEVICE_H
6 #define HERALD_DEVICE_H
7 
8 #include "datatype/target_identifier.h"
9 #include "datatype/time_interval.h"
10 
11 #include <optional>
12 
13 namespace herald {
14 
15 using namespace herald::datatype;
16 
27 class Device {
28 public:
29  Device() = default;
30  virtual ~Device() = default;
31 
32  // virtual Date created() const = 0;
33  virtual TimeInterval timeIntervalSinceLastUpdate() const = 0;
34  virtual const TargetIdentifier& identifier() const = 0;
35  virtual void identifier(const TargetIdentifier& toCopyFrom) = 0;
36 };
37 
38 }
39 
40 #endif
Generic abstraction of a particular local proximate device type.
Definition: device.h:27
Definition: target_identifier.h:17
Definition: time_interval.h:19
Contains all low-level Herald datatype implementations.
Definition: base64_string.h:14
Acts as a non-global memory arena for arbitrary classes.
Definition: aggregates.h:15