Skip to content

Commit 90d8a65

Browse files
committed
Update aws-iot-device-sdk-cpp-v2 to v1.42.0
- Update GIT_TAG in CMakeLists.txt.awssdk from v1.30.3 commit to v1.42.0 - Fix aws_socket_connect API change: use aws_socket_connect_options struct - Fix event loop API changes in tests: use aws_event_loop_group_new() instead of removed aws_event_loop_new_default/run/stop functions
1 parent 361c61b commit 90d8a65

6 files changed

Lines changed: 40 additions & 22 deletions

File tree

CMakeLists.txt.awssdk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ project(aws-iot-device-sdk-cpp-v2-download NONE)
55
include(ExternalProject)
66
ExternalProject_Add(aws-iot-device-sdk-cpp-v2
77
GIT_REPOSITORY https://github.com/aws/aws-iot-device-sdk-cpp-v2.git
8-
GIT_TAG 74c8b683ebe5b1cbf484f6acaa281f56aaa63948
8+
GIT_TAG v1.42.0
99
SOURCE_DIR "${CMAKE_BINARY_DIR}/aws-iot-device-sdk-cpp-v2-src"
1010
BINARY_DIR "${CMAKE_BINARY_DIR}/aws-iot-device-sdk-cpp-v2-build"
1111
CONFIGURE_COMMAND ""

source/sensor-publish/Socket.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,12 @@ namespace Aws
7171
aws_socket_on_connection_result_fn *on_connection_result,
7272
void *user_data) override
7373
{
74-
return aws_socket_connect(
75-
&socket, remote_endpoint, event_loop, on_connection_result, user_data);
74+
aws_socket_connect_options connect_options{};
75+
connect_options.remote_endpoint = remote_endpoint;
76+
connect_options.event_loop = event_loop;
77+
connect_options.on_connection_result = on_connection_result;
78+
connect_options.user_data = user_data;
79+
return aws_socket_connect(&socket, &connect_options);
7680
}
7781

7882
/**

source/tunneling/TcpForward.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@ namespace Aws
5959
aws_event_loop *eventLoop = aws_event_loop_group_get_next_loop(
6060
mSharedCrtResourceManager->getEventLoopGroup()->GetUnderlyingHandle());
6161

62-
aws_socket_connect(&mSocket, &endpoint, eventLoop, sOnConnectionResult, this);
62+
aws_socket_connect_options connect_options{};
63+
connect_options.remote_endpoint = &endpoint;
64+
connect_options.event_loop = eventLoop;
65+
connect_options.on_connection_result = sOnConnectionResult;
66+
connect_options.user_data = this;
67+
68+
aws_socket_connect(&mSocket, &connect_options);
6369

6470
return 0;
6571
}

test/sensor-publish/TestHeartbeatTask.cpp

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,21 @@ class HeartbeatTaskTest : public ::testing::Test
4343
settings.mqttHeartbeatTopic = "my-sensor-heartbeat";
4444
settings.heartbeatTimeSec = 0; // Publish without delay.
4545

46-
// Initialize and start the event loop.
47-
eventLoop = aws_event_loop_new_default(aws_default_allocator(), aws_high_res_clock_get_ticks);
48-
aws_event_loop_run(eventLoop);
46+
// Initialize event loop group and get an event loop from it.
47+
aws_event_loop_group_options elg_options;
48+
AWS_ZERO_STRUCT(elg_options);
49+
elg_options.loop_count = 1;
50+
elg_options.shutdown_options = nullptr;
51+
eventLoopGroup = aws_event_loop_group_new(aws_default_allocator(), &elg_options);
52+
eventLoop = aws_event_loop_group_get_next_loop(eventLoopGroup);
4953
}
5054

51-
void TearDown() override { aws_event_loop_destroy(eventLoop); }
55+
void TearDown() override { aws_event_loop_group_release(eventLoopGroup); }
5256

5357
SensorState state;
5458
PlainConfig::SensorPublish::SensorSettings settings;
5559
std::shared_ptr<Aws::Crt::Mqtt::MqttConnection> connection;
60+
aws_event_loop_group *eventLoopGroup;
5661
aws_event_loop *eventLoop;
5762
};
5863

@@ -86,9 +91,6 @@ TEST_F(HeartbeatTaskTest, TopicNotSpecified)
8691

8792
task.stop();
8893
ASSERT_FALSE(task.started());
89-
90-
aws_event_loop_stop(eventLoop);
91-
aws_event_loop_wait_for_stop_completion(eventLoop);
9294
}
9395

9496
TEST_F(HeartbeatTaskTest, TaskStartedAndNoHeartbeat)
@@ -106,9 +108,6 @@ TEST_F(HeartbeatTaskTest, TaskStartedAndNoHeartbeat)
106108

107109
task.stop();
108110
ASSERT_FALSE(task.started());
109-
110-
aws_event_loop_stop(eventLoop);
111-
aws_event_loop_wait_for_stop_completion(eventLoop);
112111
}
113112

114113
TEST_F(HeartbeatTaskTest, TaskStartedAndHeartbeat)
@@ -126,7 +125,4 @@ TEST_F(HeartbeatTaskTest, TaskStartedAndHeartbeat)
126125

127126
task.stop();
128127
ASSERT_FALSE(task.started());
129-
130-
aws_event_loop_stop(eventLoop);
131-
aws_event_loop_wait_for_stop_completion(eventLoop);
132128
}

test/sensor-publish/TestSensor.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,21 @@ class SensorTest : public ::testing::Test
4141
// Initialize default allocator.
4242
allocator = aws_default_allocator();
4343

44-
// Initialize and start the event loop.
45-
eventLoop = aws_event_loop_new_default(allocator, aws_high_res_clock_get_ticks);
44+
// Initialize event loop group and get an event loop from it.
45+
aws_event_loop_group_options elg_options;
46+
AWS_ZERO_STRUCT(elg_options);
47+
elg_options.loop_count = 1;
48+
elg_options.shutdown_options = nullptr;
49+
eventLoopGroup = aws_event_loop_group_new(allocator, &elg_options);
50+
eventLoop = aws_event_loop_group_get_next_loop(eventLoopGroup);
4651
}
4752

48-
void TearDown() override { aws_event_loop_destroy(eventLoop); }
53+
void TearDown() override { aws_event_loop_group_release(eventLoopGroup); }
4954

5055
PlainConfig::SensorPublish::SensorSettings settings;
5156
aws_allocator *allocator;
5257
std::shared_ptr<Aws::Crt::Mqtt::MqttConnection> connection;
58+
aws_event_loop_group *eventLoopGroup;
5359
aws_event_loop *eventLoop;
5460
};
5561

test/sensor-publish/TestSensorPublishFeature.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ class FakeSharedCrtResourceManager : public SharedCrtResourceManager
2727
FakeSharedCrtResourceManager()
2828
{
2929
allocator = aws_default_allocator();
30-
eventLoop = aws_event_loop_new_default(allocator, aws_high_res_clock_get_ticks);
30+
aws_event_loop_group_options elg_options;
31+
AWS_ZERO_STRUCT(elg_options);
32+
elg_options.loop_count = 1;
33+
elg_options.shutdown_options = nullptr;
34+
eventLoopGroup = aws_event_loop_group_new(allocator, &elg_options);
35+
eventLoop = aws_event_loop_group_get_next_loop(eventLoopGroup);
3136
}
3237

33-
~FakeSharedCrtResourceManager() { aws_event_loop_destroy(eventLoop); }
38+
~FakeSharedCrtResourceManager() { aws_event_loop_group_release(eventLoopGroup); }
3439

3540
std::shared_ptr<Aws::Crt::Mqtt::MqttConnection> getConnection() override { return connection; }
3641

@@ -41,6 +46,7 @@ class FakeSharedCrtResourceManager : public SharedCrtResourceManager
4146
std::unique_ptr<Aws::Crt::ApiHandle> apiHandle;
4247
aws_allocator *allocator;
4348
std::shared_ptr<Aws::Crt::Mqtt::MqttConnection> connection; // No connection.
49+
aws_event_loop_group *eventLoopGroup;
4450
aws_event_loop *eventLoop;
4551
};
4652

0 commit comments

Comments
 (0)