xref: /aosp_15_r20/external/cronet/net/base/request_priority.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #ifndef NET_BASE_REQUEST_PRIORITY_H_
6*6777b538SAndroid Build Coastguard Worker #define NET_BASE_REQUEST_PRIORITY_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h"
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker namespace net {
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker // Prioritization used in various parts of the networking code such
13*6777b538SAndroid Build Coastguard Worker // as connection prioritization and resource loading prioritization.
14*6777b538SAndroid Build Coastguard Worker // A Java counterpart will be generated for this enum.
15*6777b538SAndroid Build Coastguard Worker // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net
16*6777b538SAndroid Build Coastguard Worker // GENERATED_JAVA_CLASS_NAME_OVERRIDE: RequestPriority
17*6777b538SAndroid Build Coastguard Worker //
18*6777b538SAndroid Build Coastguard Worker // This enum should be synchronized with the enum NetRequestPriority in
19*6777b538SAndroid Build Coastguard Worker // tools/metrics/histograms/enums.xml.
20*6777b538SAndroid Build Coastguard Worker enum RequestPriority {
21*6777b538SAndroid Build Coastguard Worker   THROTTLED = 0,  // Used to signal that resources
22*6777b538SAndroid Build Coastguard Worker                   // should be reserved for following
23*6777b538SAndroid Build Coastguard Worker                   // requests (i.e. that higher priority
24*6777b538SAndroid Build Coastguard Worker                   // following requests are expected).
25*6777b538SAndroid Build Coastguard Worker   MINIMUM_PRIORITY = THROTTLED,
26*6777b538SAndroid Build Coastguard Worker   IDLE = 1,  // Default "as resources available" level.
27*6777b538SAndroid Build Coastguard Worker   LOWEST = 2,
28*6777b538SAndroid Build Coastguard Worker   DEFAULT_PRIORITY = LOWEST,
29*6777b538SAndroid Build Coastguard Worker   LOW = 3,
30*6777b538SAndroid Build Coastguard Worker   MEDIUM = 4,
31*6777b538SAndroid Build Coastguard Worker   HIGHEST = 5,
32*6777b538SAndroid Build Coastguard Worker   MAXIMUM_PRIORITY = HIGHEST,
33*6777b538SAndroid Build Coastguard Worker };
34*6777b538SAndroid Build Coastguard Worker 
35*6777b538SAndroid Build Coastguard Worker // For simplicity, one can assume that one can index into array of
36*6777b538SAndroid Build Coastguard Worker // NUM_PRIORITIES elements with a RequestPriority (i.e.,
37*6777b538SAndroid Build Coastguard Worker // MINIMUM_PRIORITY == 0).
38*6777b538SAndroid Build Coastguard Worker enum RequestPrioritySize {
39*6777b538SAndroid Build Coastguard Worker   NUM_PRIORITIES = MAXIMUM_PRIORITY + 1,
40*6777b538SAndroid Build Coastguard Worker };
41*6777b538SAndroid Build Coastguard Worker 
42*6777b538SAndroid Build Coastguard Worker // Default value to use for the incremental loading flag as part of HTTP
43*6777b538SAndroid Build Coastguard Worker // extensible priorities (RFC 9218). Currently used for HTTP/3.
44*6777b538SAndroid Build Coastguard Worker //
45*6777b538SAndroid Build Coastguard Worker // This default is the value that works best in most cases that the networking
46*6777b538SAndroid Build Coastguard Worker // code supports (simultaneous requests are loaded concurrently and don't block
47*6777b538SAndroid Build Coastguard Worker // one another).
48*6777b538SAndroid Build Coastguard Worker //
49*6777b538SAndroid Build Coastguard Worker // This is independent from the spec default for the protocol, which is false.
50*6777b538SAndroid Build Coastguard Worker const bool kDefaultPriorityIncremental = true;
51*6777b538SAndroid Build Coastguard Worker 
52*6777b538SAndroid Build Coastguard Worker NET_EXPORT const char* RequestPriorityToString(RequestPriority priority);
53*6777b538SAndroid Build Coastguard Worker 
54*6777b538SAndroid Build Coastguard Worker }  // namespace net
55*6777b538SAndroid Build Coastguard Worker 
56*6777b538SAndroid Build Coastguard Worker #endif  // NET_BASE_REQUEST_PRIORITY_H_
57