@@ -96,6 +96,10 @@ int main(int argc, char *argv[])
96
96
*/
97
97
class SubscribeStreamHandler : public SubscribeToIoTCoreStreamHandler
98
98
{
99
+ public:
100
+ virtual ~SubscribeStreamHandler () {}
101
+
102
+ private:
99
103
void OnStreamEvent (IoTCoreMessage *response) override
100
104
{
101
105
auto message = response->GetMessage ();
@@ -111,21 +115,21 @@ int main(int argc, char *argv[])
111
115
};
112
116
};
113
117
114
- SubscribeStreamHandler streamHandler;
118
+ auto streamHandler = MakeShared<SubscribeStreamHandler>( DefaultAllocator ()) ;
115
119
auto subscribeOperation = client.NewSubscribeToIoTCore (streamHandler);
116
120
SubscribeToIoTCoreRequest subscribeRequest;
117
121
subscribeRequest.SetQos (QOS_AT_LEAST_ONCE);
118
122
subscribeRequest.SetTopicName (topic);
119
123
120
124
fprintf (stdout, " Attempting to subscribe to %s topic\n " , topic.c_str ());
121
- auto requestStatus = subscribeOperation. Activate (subscribeRequest).get ();
125
+ auto requestStatus = subscribeOperation-> Activate (subscribeRequest).get ();
122
126
if (!requestStatus)
123
127
{
124
128
fprintf (stderr, " Failed to send subscription request to %s topic\n " , topic.c_str ());
125
129
exit (-1 );
126
130
}
127
131
128
- auto subscribeResultFuture = subscribeOperation. GetResult ();
132
+ auto subscribeResultFuture = subscribeOperation-> GetResult ();
129
133
/*
130
134
// To avoid throwing exceptions, wait on the result for a specified timeout:
131
135
if (subscribeResultFuture.wait_for(std::chrono::seconds(10)) == std::future_status::timeout)
@@ -172,7 +176,7 @@ int main(int argc, char *argv[])
172
176
publishRequest.SetQos (QOS_AT_LEAST_ONCE);
173
177
174
178
fprintf (stdout, " Attempting to publish to %s topic\n " , topic.c_str ());
175
- requestStatus = publishOperation. Activate (publishRequest).get ();
179
+ requestStatus = publishOperation-> Activate (publishRequest).get ();
176
180
if (!requestStatus)
177
181
{
178
182
fprintf (
@@ -183,7 +187,7 @@ int main(int argc, char *argv[])
183
187
exit (-1 );
184
188
}
185
189
186
- auto publishResultFuture = publishOperation. GetResult ();
190
+ auto publishResultFuture = publishOperation-> GetResult ();
187
191
/*
188
192
// To avoid throwing exceptions, wait on the result for a specified timeout:
189
193
if (publishResultFuture.wait_for(std::chrono::seconds(10)) == std::future_status::timeout)
0 commit comments