tree 80f90db28347e77b797c392d5ecc0036ee147c07
parent f74ab1995febd2b6cf186e2b275ca2f43d07df18
author bnc <bnc@google.com> 1674080336 -0800
committer Copybara-Service <copybara-worker@google.com> 1674080388 -0800

Change PriorityWriteScheduler to use SpdyPriority.

PriorityWriteScheduler only uses the priority value of spdy::StreamPrecedence,
it ignores the parent stream and weight (if any).  For simplicity, this CL
changes RegisterStream() and UpdateStreamPriority() to take SpdyPriority
instead, and GetStreamPriority() to return one.

Also introduce PriorityWriteScheduler::PriorityType.  This is an alias for
spdy::SpdyPriority for now, and will become a template parameter in the next CL.

Also rename UpdateStreamPrecedence() to UpdateStreamPriority() and
GetStreamPrecedence() to GetStreamPriority() to reflect the argument type
change.  Also renames GetLatestEventWithPrecedence() to
GetLatestEventWithPriority(), both on PriorityWriteScheduler and
Http2Dispatcher, to reflect that it is only the priority (integer value) of the
stream that is considered in that method.

Also remove unused GetStreamChildren() method.

PiperOrigin-RevId: 502977611
