Skip to content

Commit f17e1d2

Browse files
committed
Refactor some asserts to conditional expressions
Signed-off-by: Raul Sanchez-Mateos <[email protected]>
1 parent 1bb4f0f commit f17e1d2

File tree

4 files changed

+53
-17
lines changed

4 files changed

+53
-17
lines changed

include/fastdds_statistics_backend/listener/DomainListener.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,11 @@ class FASTDDS_STATISTICS_BACKEND_DllAPI DomainListener
7575

7676
void on_instance_undiscovered()
7777
{
78-
assert (current_count > 0);
79-
--current_count;
80-
--current_count_change;
78+
if (current_count > 0)
79+
{
80+
--current_count;
81+
--current_count_change;
82+
}
8183
}
8284

8385
void on_status_read()

src/cpp/StatisticsBackendData.cpp

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <fastdds/dds/domain/DomainParticipantFactory.hpp>
2626
#include <fastdds/dds/domain/qos/DomainParticipantFactoryQos.hpp>
2727
#include <fastdds/dds/domain/DomainParticipantListener.hpp>
28+
#include <fastdds/dds/log/Log.hpp>
2829
#include <fastdds/dds/subscriber/DataReader.hpp>
2930
#include <fastdds/dds/subscriber/Subscriber.hpp>
3031
#include <fastdds/dds/topic/Topic.hpp>
@@ -122,7 +123,10 @@ void StatisticsBackendData::on_data_available(
122123
DataKind data_kind)
123124
{
124125
auto monitor = monitors_by_entity_.find(domain_id);
125-
assert(monitor != monitors_by_entity_.end());
126+
if (monitor == monitors_by_entity_.end())
127+
{
128+
return;
129+
}
126130

127131
if (should_call_domain_listener(*monitor->second, CallbackKind::ON_DATA_AVAILABLE, data_kind))
128132
{
@@ -140,7 +144,10 @@ void StatisticsBackendData::on_status_reported(
140144
StatusKind status_kind)
141145
{
142146
auto monitor = monitors_by_entity_.find(domain_id);
143-
assert(monitor != monitors_by_entity_.end());
147+
if (monitor == monitors_by_entity_.end())
148+
{
149+
return;
150+
}
144151

145152
if (should_call_domain_listener(*monitor->second, CallbackKind::ON_STATUS_REPORTED))
146153
{
@@ -228,7 +235,11 @@ void StatisticsBackendData::on_domain_entity_discovery(
228235
DiscoveryStatus discovery_status)
229236
{
230237
auto monitor = monitors_by_entity_.find(domain_id);
231-
assert(monitor != monitors_by_entity_.end());
238+
if (monitor == monitors_by_entity_.end())
239+
{
240+
return;
241+
}
242+
232243
switch (entity_kind)
233244
{
234245
case EntityKind::PARTICIPANT:
@@ -306,7 +317,7 @@ void StatisticsBackendData::on_domain_entity_discovery(
306317
}
307318
default:
308319
{
309-
assert(false && "Invalid domain entity kind");
320+
logWarning(STATISTICS_BACKEND, "Invalid domain entity kind");
310321
}
311322
}
312323
}
@@ -316,7 +327,10 @@ void StatisticsBackendData::on_physical_entity_discovery(
316327
EntityKind entity_kind,
317328
DiscoveryStatus discovery_status)
318329
{
319-
assert(discovery_status != DiscoveryStatus::UPDATE);
330+
if (discovery_status == DiscoveryStatus::UPDATE)
331+
{
332+
return;
333+
}
320334

321335
switch (entity_kind)
322336
{
@@ -370,7 +384,7 @@ void StatisticsBackendData::on_physical_entity_discovery(
370384
}
371385
default:
372386
{
373-
assert(false && "Invalid physical entity kind");
387+
logWarning(STATISTICS_BACKEND, "Invalid physical entity kind");
374388
}
375389
}
376390
}

src/cpp/database/database_queue.cpp

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,11 @@ EntityId DatabaseEntityQueue::process_datareader(
191191
try
192192
{
193193
participant_id = database_->get_entity_by_guid(EntityKind::PARTICIPANT, to_string(participant_guid));
194-
assert(participant_id.first == info.domain_id);
194+
if (participant_id.first != info.domain_id)
195+
{
196+
throw BadParameter("Participant " + to_string(participant_guid)
197+
+ " found in the database but it is not in the current domain");
198+
}
195199
}
196200
catch (const Exception&)
197201
{
@@ -264,7 +268,11 @@ EntityId DatabaseEntityQueue::process_datawriter(
264268
try
265269
{
266270
participant_id = database_->get_entity_by_guid(EntityKind::PARTICIPANT, to_string(participant_guid));
267-
assert(participant_id.first == info.domain_id);
271+
if (participant_id.first != info.domain_id)
272+
{
273+
throw BadParameter("Participant " + to_string(participant_guid)
274+
+ " found in the database but it is not in the current domain");
275+
}
268276
}
269277
catch (const Exception&)
270278
{
@@ -323,7 +331,11 @@ EntityId DatabaseEntityQueue::process_endpoint_discovery(
323331
try
324332
{
325333
participant_id = database_->get_entity_by_guid(EntityKind::PARTICIPANT, to_string(participant_guid));
326-
assert(participant_id.first == info.domain_id);
334+
if (participant_id.first != info.domain_id)
335+
{
336+
throw BadParameter("Participant " + to_string(participant_guid)
337+
+ " found in the database but it is not in the current domain");
338+
}
327339
}
328340
catch (const Exception&)
329341
{

src/cpp/database/samples.hpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,19 @@ struct EntityCountSample : StatisticsSample
122122
inline EntityCountSample operator -(
123123
const EntityCountSample& other) const noexcept
124124
{
125-
assert(count >= other.count);
126-
EntityCountSample ret(kind);
127-
ret.src_ts = src_ts;
128-
ret.count = count - other.count;
129-
return ret;
125+
if (count >= other.count)
126+
{
127+
EntityCountSample ret(kind);
128+
ret.src_ts = src_ts;
129+
ret.count = count - other.count;
130+
return ret;
131+
}
132+
else
133+
{
134+
// This should return an exception but keep this way for now until we verify that the exception is
135+
// properly handled by the monitor
136+
return EntityCountSample();
137+
}
130138
}
131139

132140
uint64_t count;

0 commit comments

Comments
 (0)