channelStateInformation.h 1.56 KB
Newer Older
1
2
3
#ifndef PRRT_CHANNELSTATEINFORMATION_H
#define PRRT_CHANNELSTATEINFORMATION_H

Andreas Schmidt's avatar
Andreas Schmidt committed
4
#include <stdbool.h>
5
#include "types/packet.h"
6
7

typedef struct prrtChannelStateInformation {
8
    pthread_mutex_t lock;
9
10
11
12
    prrtTimedelta_t rtprop;
    prrtTimestamp_t rtprop_stamp;
    prrtTimedelta_t rtprop_filter_length_us;
    bool rtprop_expired;
Andreas Schmidt's avatar
Andreas Schmidt committed
13
    prrtPacketLossRate_t plr;
14
    prrtDeliveryRate_t deliveryRate;
15
    bool appLimited;
16
17
} PrrtChannelStateInformation;

18
PrrtChannelStateInformation* PrrtChannelStateInformation_create(void);
19
20
void PrrtChannelStateInformation_update_rtprop(PrrtChannelStateInformation *csi, prrtTimedelta_t rtprop);
prrtTimedelta_t PrrtChannelStateInformation_get_rtprop(PrrtChannelStateInformation *csi);
21
prrtDeliveryRate_t PrrtChannelStateInformation_get_delivery_rate(PrrtChannelStateInformation *csi);
22
23
bool PrrtChannelStateInformation_get_app_limited(PrrtChannelStateInformation *csi);

Andreas Schmidt's avatar
Andreas Schmidt committed
24
25
26
prrtPacketLossRate_t PrrtChannelStateInformation_get_plr(PrrtChannelStateInformation* csi);
void PrrtChannelStateInformation_update_plr(PrrtChannelStateInformation *csi, prrtSequenceNumber_t erasures,
                                                   prrtSequenceNumber_t packets);
27
void PrrtChannelStateInformation_update_delivery_rate(PrrtChannelStateInformation *csi, prrtDeliveryRate_t rate);
28
void PrrtChannelStateInformation_update_app_limited(PrrtChannelStateInformation *csi, bool appLimited);
29
bool PrrtChannelStateInformation_destroy(PrrtChannelStateInformation* csi);
30
31
32
33

void PrrtChannelStateInformation_print(PrrtChannelStateInformation *csi);

#endif //PRRT_CHANNELSTATEINFORMATION_H