aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h
diff options
context:
space:
mode:
authormichele papalini <micpapal@cisco.com>2019-04-02 17:34:38 +0200
committermichele papalini <micpapal@cisco.com>2019-04-02 18:44:08 +0200
commitc99eeb5ff63ba5081087272c9c3f77e887f920dd (patch)
tree8dc974fbe564655a8c62f761093c06e8f88f6517 /libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h
parent3cc0a6bbae4fd3dadb65a0e9789b48e2cea9d303 (diff)
[HICN-94] Handle nacks when the producer socket is not active
Change-Id: Ibc8b9ef65feaf6fbe12dbaa285ddcd738e1cd197 Signed-off-by: michele papalini <micpapal@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h')
-rw-r--r--libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h b/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h
index bc54be4bb..cb09ef991 100644
--- a/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h
+++ b/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h
@@ -18,6 +18,7 @@
#include <hicn/transport/interfaces/socket_producer.h>
#include <hicn/transport/utils/content_store.h>
+#include <atomic>
#include <map>
#include <mutex>
@@ -41,7 +42,7 @@ class RTCProducerSocket : public ProducerSocket {
private:
void sendNack(const Interest &interest);
- void updateStats(uint32_t packet_size);
+ void updateStats(uint32_t packet_size, uint64_t now);
// std::map<uint32_t, uint64_t> pendingInterests_;
uint32_t currentSeg_;
@@ -53,9 +54,12 @@ class RTCProducerSocket : public ProducerSocket {
uint32_t producedBytes_;
uint32_t producedPackets_;
uint32_t bytesProductionRate_;
- uint32_t packetsProductionRate_;
+ std::atomic<uint32_t> packetsProductionRate_;
uint32_t perSecondFactor_;
- std::chrono::steady_clock::time_point lastStats_;
+ uint64_t lastStats_;
+ // std::chrono::steady_clock::time_point lastProduced_;
+ std::atomic<uint64_t> lastProduced_;
+ std::atomic<bool> active_;
};
} // namespace interface