2
2
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
* SPDX-License-Identifier: Apache-2.0.
4
4
*/
5
+ #include " aws/common/error.h"
5
6
#include " aws/crt/Types.h"
6
7
#include " aws/iotdevice/device_defender.h"
7
8
#include < aws/common/clock.h>
@@ -60,45 +61,6 @@ namespace Aws
60
61
}
61
62
}
62
63
63
- ReportTask::ReportTask (ReportTask &&toMove) noexcept
64
- : OnTaskCancelled(std::move(toMove.OnTaskCancelled)), cancellationUserdata(toMove.cancellationUserdata),
65
- m_allocator (toMove.m_allocator), m_status(toMove.m_status), m_taskConfig(std::move(toMove.m_taskConfig)),
66
- m_owningTask(toMove.m_owningTask), m_lastError(toMove.m_lastError),
67
- m_mqttConnection(toMove.m_mqttConnection), m_eventLoopGroup(toMove.m_eventLoopGroup)
68
- {
69
- toMove.m_taskConfig = m_taskConfig;
70
- toMove.m_owningTask = m_owningTask;
71
- m_owningTask = nullptr ;
72
- toMove.m_status = ReportTaskStatus::Stopped;
73
- toMove.m_owningTask = nullptr ;
74
- toMove.m_lastError = AWS_ERROR_UNKNOWN;
75
- }
76
-
77
- ReportTask &ReportTask::operator =(ReportTask &&toMove) noexcept
78
- {
79
- if (this != &toMove)
80
- {
81
- this ->~ReportTask ();
82
-
83
- OnTaskCancelled = std::move (toMove.OnTaskCancelled );
84
- cancellationUserdata = toMove.cancellationUserdata ;
85
- m_allocator = toMove.m_allocator ;
86
- m_status = toMove.m_status ;
87
- m_taskConfig = toMove.m_taskConfig ;
88
- m_owningTask = toMove.m_owningTask ;
89
- m_lastError = toMove.m_lastError ;
90
-
91
- toMove.OnTaskCancelled = nullptr ;
92
- toMove.cancellationUserdata = nullptr ;
93
- toMove.m_allocator = nullptr ;
94
- toMove.m_status = ReportTaskStatus::Stopped;
95
- toMove.m_owningTask = nullptr ;
96
- toMove.m_lastError = AWS_ERROR_UNKNOWN;
97
- }
98
-
99
- return *this ;
100
- }
101
-
102
64
ReportTaskStatus ReportTask::GetStatus () noexcept { return this ->m_status ; }
103
65
104
66
int ReportTask::StartTask () noexcept
@@ -114,14 +76,17 @@ namespace Aws
114
76
aws_event_loop_group_get_next_loop (m_eventLoopGroup.GetUnderlyingHandle ())))
115
77
{
116
78
this ->m_lastError = aws_last_error ();
117
- aws_raise_error (this ->m_lastError );
118
79
}
119
80
else
120
81
{
121
82
this ->m_status = ReportTaskStatus::Running;
122
83
return_code = AWS_OP_SUCCESS;
123
84
}
124
85
}
86
+ else
87
+ {
88
+ aws_raise_error (AWS_ERROR_INVALID_STATE);
89
+ }
125
90
return return_code;
126
91
}
127
92
@@ -195,10 +160,9 @@ namespace Aws
195
160
return *this ;
196
161
}
197
162
198
- ReportTask ReportTaskBuilder::Build () noexcept
163
+ std::shared_ptr< ReportTask> ReportTaskBuilder::Build () noexcept
199
164
{
200
-
201
- return ReportTask (
165
+ return std::shared_ptr<ReportTask>(new ReportTask (
202
166
m_allocator,
203
167
m_mqttConnection,
204
168
m_thingName,
@@ -207,7 +171,7 @@ namespace Aws
207
171
m_taskPeriodSeconds,
208
172
m_networkConnectionSamplePeriodSeconds,
209
173
static_cast <OnTaskCancelledHandler &&>(m_onCancelled),
210
- m_cancellationUserdata);
174
+ m_cancellationUserdata)) ;
211
175
}
212
176
213
177
} // namespace Iotdevicedefenderv1
0 commit comments