13#include <aws/iotdevice/device_defender.h>
60 friend ReportTaskBuilder;
89 int LastError() const noexcept {
return m_lastError; }
98 void RegisterCustomMetricNumber(
110 void RegisterCustomMetricNumberList(
123 void RegisterCustomMetricStringList(
135 void RegisterCustomMetricIpAddressList(
142 aws_iotdevice_defender_task_config *m_taskConfig;
143 aws_iotdevice_defender_task *m_owningTask;
145 std::shared_ptr<Crt::Mqtt::MqttConnection> m_mqttConnection;
150 std::shared_ptr<Crt::Mqtt::MqttConnection> mqttConnection,
154 uint32_t taskPeriodSeconds,
155 uint32_t networkConnectionSamplePeriodSeconds,
157 void *cancellationUserdata =
nullptr) noexcept;
159 static
void s_onDefenderV1TaskCancelled(
void *userData);
174 std::shared_ptr<Crt::Mqtt::MqttConnection> mqttConnection,
180 std::shared_ptr<Crt::Mqtt5::Mqtt5Client> mqtt5Client,
198 uint32_t networkConnectionSamplePeriodSeconds)
noexcept;
213 std::shared_ptr<ReportTask>
Build()
noexcept;
217 std::shared_ptr<Crt::Mqtt::MqttConnection> m_mqttConnection;
221 uint32_t m_taskPeriodSeconds;
222 uint32_t m_networkConnectionSamplePeriodSeconds;
224 void *m_cancellationUserdata;
Definition EventLoopGroup.h:33
Definition DeviceDefender.cpp:24
Definition DeviceDefender.h:170
ReportTaskBuilder & WithReportFormat(ReportFormat reportFormat) noexcept
Definition DeviceDefender.cpp:328
ReportTaskBuilder & WithTaskCancellationUserData(void *cancellationUserdata) noexcept
Definition DeviceDefender.cpp:353
ReportTaskBuilder & WithTaskPeriodSeconds(uint32_t taskPeriodSeconds) noexcept
Definition DeviceDefender.cpp:334
ReportTaskBuilder & WithTaskCancelledHandler(OnTaskCancelledHandler &&onCancelled) noexcept
Definition DeviceDefender.cpp:347
ReportTaskBuilder & WithNetworkConnectionSamplePeriodSeconds(uint32_t networkConnectionSamplePeriodSeconds) noexcept
Definition DeviceDefender.cpp:340
std::shared_ptr< ReportTask > Build() noexcept
Definition DeviceDefender.cpp:359
ReportTaskBuilder(Crt::Allocator *allocator, std::shared_ptr< Crt::Mqtt::MqttConnection > mqttConnection, Crt::Io::EventLoopGroup &eventLoopGroup, const Crt::String &thingName)
Definition DeviceDefender.cpp:300
Definition DeviceDefender.h:59
void * cancellationUserdata
Definition DeviceDefender.h:84
ReportTask(const ReportTask &)=delete
ReportTask & operator=(const ReportTask &)=delete
int StartTask() noexcept
Definition DeviceDefender.cpp:201
ReportTaskStatus GetStatus() noexcept
Definition DeviceDefender.cpp:196
OnTaskCancelledHandler OnTaskCancelled
Definition DeviceDefender.h:82
int LastError() const noexcept
Definition DeviceDefender.h:89
void StopTask() noexcept
Definition DeviceDefender.cpp:228
#define AWS_IOTDEVICEDEFENDER_API
Definition Exports.h:19
Definition Allocator.h:13
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition Types.h:45
std::vector< T, StlAllocator< T > > Vector
Definition Types.h:53
aws_allocator Allocator
Definition Allocator.h:14
Definition DeviceDefender.h:23
std::function< int(Crt::Vector< Crt::String > *)> CustomMetricStringListFunction
Definition DeviceDefender.h:37
ReportTaskStatus
Definition DeviceDefender.h:49
@ Running
Definition DeviceDefender.h:51
@ Stopped
Definition DeviceDefender.h:52
@ Ready
Definition DeviceDefender.h:50
std::function< void(void *)> OnTaskCancelledHandler
Definition DeviceDefender.h:31
std::function< int(Crt::Vector< double > *)> CustomMetricNumberListFunction
Definition DeviceDefender.h:36
std::function< int(Crt::Vector< Crt::String > *)> CustomMetricIpListFunction
Definition DeviceDefender.h:38
std::function< int(double *)> CustomMetricNumberFunction
Definition DeviceDefender.h:35
aws_iotdevice_defender_report_format ReportFormat
Definition DeviceDefender.h:33
Definition Allocator.h:11
Definition StringView.h:862