/// <summary> /// Allows the intervals between retransmission to be specified. /// </summary> /// <param name="com"> /// If not null, its method <code>retransmit()</code> will be called when a message /// needs to be retransmitted (called by the Retransmitter). /// </param> /// <param name="interval">Array of intervals between retransmissions</param> public AckSenderWindow(RetransmitCommand com, long[] interval) { retransmitter = new Retransmitter(null, this); retransmit_command = com; this.interval = interval; retransmitter.setRetransmitTimeouts(interval); }
/// <summary> /// Allows the intervals between retransmission to be specified. /// </summary> /// <param name="com"> /// If not null, its method <code>retransmit()</code> will be called when a message /// needs to be retransmitted (called by the Retransmitter). /// </param> /// <param name="interval">Array of intervals between retransmissions</param> public AckSenderWindow(RetransmitCommand com, long[] interval) { retransmitter=new Retransmitter(null, this); retransmit_command=com; this.interval=interval; retransmitter.setRetransmitTimeouts(interval); }
/// <summary> /// Constructor: Creates a new instance with the given retransmit command /// </summary> /// <param name="sender">The sender associated with this instance</param> /// <param name="cmd">The command used to retransmit a missing message</param> /// <param name="start_seqno">The first sequence number to be received</param> /// <param name="sched">The external scheduler to use for retransmission</param> public NakReceiverWindow(Address sender, Retransmitter.RetransmitCommand cmd, long start_seqno, TimeScheduler sched) { this.sender = sender; this.cmd = cmd; head = start_seqno; tail = head; if (cmd != null) retransmitter = sched==null ? new Retransmitter(sender, cmd): new Retransmitter(sender, cmd, sched); }
/// <summary> /// Constructor: Creates a new instance with the given retransmit command /// </summary> /// <param name="sender">The sender associated with this instance</param> /// <param name="cmd">The command used to retransmit a missing message</param> /// <param name="start_seqno">The first sequence number to be received</param> /// <param name="sched">The external scheduler to use for retransmission</param> public NakReceiverWindow(Address sender, Retransmitter.RetransmitCommand cmd, long start_seqno, TimeScheduler sched) { this.sender = sender; this.cmd = cmd; head = start_seqno; tail = head; if (cmd != null) { retransmitter = sched == null ? new Retransmitter(sender, cmd): new Retransmitter(sender, cmd, sched); } }
/// <summary> /// Constructor: Creates a new instance with the given retransmit command /// </summary> /// <param name="sender">The sender associated with this instance</param> /// <param name="cmd">The command used to retransmit a missing message</param> /// <param name="start_seqno">The first sequence number to be received</param> public NakReceiverWindow(Address sender, Retransmitter.RetransmitCommand cmd, long start_seqno) : this(sender, cmd, start_seqno, null) { }