...
This commit is contained in:
@@ -411,12 +411,37 @@ template <mcc_error_c RetT>
|
||||
struct mcc_telemetry_interface_t {
|
||||
virtual ~mcc_telemetry_interface_t() = default;
|
||||
|
||||
// update telemetry data right now
|
||||
// an implementation is expected to update the data within the given 'timeout' time interval
|
||||
// if not the method must return an appropriate timeout-error
|
||||
template <std::derived_from<mcc_telemetry_interface_t> SelfT>
|
||||
RetT updateTelemetryData(this SelfT&& self, traits::mcc_time_duration_c auto const& timeout)
|
||||
{
|
||||
return std::forward<SelfT>(self).updateTelemetryData(timeout);
|
||||
}
|
||||
|
||||
// get current data
|
||||
// an implementation is expected to return current, possibly already expired, telemetry data
|
||||
// one should call consistently both 'updateTelemetryData' + 'telemetryData' methods
|
||||
// to ensure that the data is up-to-date
|
||||
template <std::derived_from<mcc_telemetry_interface_t> SelfT>
|
||||
RetT telemetryData(this SelfT&& self, mcc_telemetry_data_c auto* data)
|
||||
{
|
||||
return std::forward<SelfT>(self).telemetryData(data);
|
||||
}
|
||||
|
||||
// waiting for updated data
|
||||
// an implementation is expected to block the current thread waiting for
|
||||
// telemetry data to be updated (internal synchronization)
|
||||
// if a timeout occured the method must return an appropriate timeout-error
|
||||
template <std::derived_from<mcc_telemetry_interface_t> SelfT>
|
||||
RetT waitForTelemetryData(this SelfT&& self,
|
||||
mcc_telemetry_data_c auto* data,
|
||||
traits::mcc_time_duration_c auto const& timeout)
|
||||
{
|
||||
return std::forward<SelfT>(self).waitForTelemetryData(data, timeout);
|
||||
}
|
||||
|
||||
template <std::derived_from<mcc_telemetry_interface_t> SelfT>
|
||||
RetT setPointingTarget(this SelfT&& self, mcc_celestial_point_c auto pt)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user