diff options
author | michele papalini <micpapal@cisco.com> | 2019-04-02 17:34:38 +0200 |
---|---|---|
committer | michele papalini <micpapal@cisco.com> | 2019-04-02 18:44:08 +0200 |
commit | c99eeb5ff63ba5081087272c9c3f77e887f920dd (patch) | |
tree | 8dc974fbe564655a8c62f761093c06e8f88f6517 /libtransport/src/hicn/transport/interfaces/rtc_socket_producer.h | |
parent | 3cc0a6bbae4fd3dadb65a0e9789b48e2cea9d303 (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.h | 10 |
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 |