29#ifndef SELECTIVE_REPEAT_H
30#define SELECTIVE_REPEAT_H
34#if (defined(_MSC_VER) && defined(ITPP_SHARED_LIB) && !(defined(itpp_EXPORTS) || defined(itpp_debug_EXPORTS)))
36#ifndef ITPP_PROTOCOL_EXCLUDED
37#define ITPP_PROTOCOL_EXCLUDED
38#pragma message( "PROTOCOL definitions are not available for MSVC shared builds" )
101 void handle_packet_input(
Packet *
P);
102 void handle_packet_output_request(
int K);
103 void handle_query_nof_ready_packets(
void*);
107 int buffered_non_outstanding();
108 int free_sequence_numbers();
113 int feasable_blocks();
117 int input_buffer_size;
119 int input_free_space;
130 ivec retransmission_indexes;
134 int scheduled_retransmissions;
136 int link_packet_size;
166 bool greater_modulo_L(
const int a,
const int b);
Definition of Array class (container)
Selective_Repeat_ARQ_Receiver()
ADD DOCUMENTATION HERE.
Slot< Selective_Repeat_ARQ_Receiver, Array< Packet * > > packet_input
Receives incoming packets.
Signal< Array< Packet * > > ack_output
Delivers ack.
~Selective_Repeat_ARQ_Receiver()
ADD DOCUMENTATION HERE.
Selective_Repeat_ARQ_Receiver(const int Seq_no_size)
ADD DOCUMENTATION HERE.
void set_parameters(const int Seq_no_size)
ADD DOCUMENTATION HERE.
Signal< Packet * > packet_output
Delivers received packets.
Signal< int > nof_ready_packets
Delivers no ready packets.
Selective_Repeat_ARQ_Sender(const int Seq_no_size, const int Buffer_size_factor, const int Link_packet_size, const Ttype Time_out)
ADD DOCUMENTATION HERE.
int buffer_size()
ADD DOCUMENTATION HERE.
Slot< Selective_Repeat_ARQ_Sender, Array< Packet * > > ack_input
Receives incoming ack/nacks.
Signal< Array< Packet * > > packet_output
Delivers transmitted packets.
int link_packets_buffered()
ADD DOCUMENTATION HERE.
void get_link_packets(const int K, Array< Packet * > &pa)
ADD DOCUMENTATION HERE.
Slot< Selective_Repeat_ARQ_Sender, Packet * > packet_input
Receives incoming packets.
int nof_ready_link_packets()
ADD DOCUMENTATION HERE.
Selective_Repeat_ARQ_Sender()
ADD DOCUMENTATION HERE.
int link_packets_queued_waiting_for_transmission()
ADD DOCUMENTATION HERE.
Slot< Selective_Repeat_ARQ_Sender, int > packet_output_request
Receives incoming packet output requests.
Slot< Selective_Repeat_ARQ_Sender, void * > query_nof_ready_packets
Receives incoming query for number of packets ready to transmit.
~Selective_Repeat_ARQ_Sender()
ADD DOCUMENTATION HERE.
Signal< int > buffer_overflow
Signals buffer overflows.
void set_parameters(const int Seq_no_size, const int Buffer_size_factor, const int Link_packet_size, const Ttype Time_out)
ADD DOCUMENTATION HERE.
Ttype link_packets_max_queuing_time()
ADD DOCUMENTATION HERE.
Definitions of a Front Drop Queue class.
Definition of a Packet class.
Templated Vector Class Definitions.