Skip to content

Commit 3b8049a

Browse files
committed
impl clearing of queue
1 parent 914b8e1 commit 3b8049a

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/dds.net-connector-cpp.lib/connector/src/internal/inc/sync_queue.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ namespace dds {
2323
bool canEnqueue() override;
2424
void enqueue(T data) override;
2525

26+
void clear();
27+
2628

2729
private:
2830
std::mutex lock;

src/dds.net-connector-cpp.lib/connector/src/internal/src/sync_queue.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,19 @@ void dds::net::connector::_internal::SyncQueue<T>::enqueue(T data)
117117
sleep(SLEEP_TIME_MS_WHEN_DATA_CANNOT_BE_ENQUEUED);
118118
}
119119
}
120+
121+
template<typename T>
122+
void dds::net::connector::_internal::SyncQueue<T>::clear()
123+
{
124+
lock.lock();
125+
126+
for (int i = 0; i < queueSize; i++)
127+
{
128+
queueValidity[i] = false;
129+
}
130+
131+
nextWriteIndex = 0;
132+
nextReadIndex = 0;
133+
134+
lock.unlock();
135+
}

0 commit comments

Comments
 (0)