State Maintainer: SoftSendCounter

stateblock SoftSendCounter augments RNetwork {
    requires TrackSendRate;
    addstate RNetwork.sendLimit: int; // make this a param

    // Returns the number of bytes that can be sent this quantum
    helper quantumSendAvailable () returns int {
        updateTimer ();
        if (bytesSent >= sendLimit) {
            // Wait for a new quantum before returning
            waitForQuantum ();
        }

        return (sendLimit - bytesSent);
    }

}

About this file

Naccio Home Page
David Evans
University of Virginia, Computer Science