1*6777b538SAndroid Build Coastguard Worker // Copyright 2017 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_NQE_EVENT_CREATOR_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_NQE_EVENT_CREATOR_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <stdint.h> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include "base/sequence_checker.h" 11*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 12*6777b538SAndroid Build Coastguard Worker #include "net/log/net_log_with_source.h" 13*6777b538SAndroid Build Coastguard Worker #include "net/nqe/effective_connection_type.h" 14*6777b538SAndroid Build Coastguard Worker #include "net/nqe/network_quality.h" 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker namespace net { 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker class NetLogWithSource; 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker namespace nqe::internal { 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker // Class that adds net log events for network quality estimator. 23*6777b538SAndroid Build Coastguard Worker class NET_EXPORT_PRIVATE EventCreator { 24*6777b538SAndroid Build Coastguard Worker public: 25*6777b538SAndroid Build Coastguard Worker explicit EventCreator(NetLogWithSource net_log); 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker EventCreator(const EventCreator&) = delete; 28*6777b538SAndroid Build Coastguard Worker EventCreator& operator=(const EventCreator&) = delete; 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker ~EventCreator(); 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker // May add network quality changed event to the net-internals log if there 33*6777b538SAndroid Build Coastguard Worker // is a change in the effective connection type, or if there is a meaningful 34*6777b538SAndroid Build Coastguard Worker // change in the values of HTTP RTT, transport RTT or bandwidth. 35*6777b538SAndroid Build Coastguard Worker // |effective_connection_type| is the current effective connection type. 36*6777b538SAndroid Build Coastguard Worker // |network_quality| is the current network quality. 37*6777b538SAndroid Build Coastguard Worker void MaybeAddNetworkQualityChangedEventToNetLog( 38*6777b538SAndroid Build Coastguard Worker EffectiveConnectionType effective_connection_type, 39*6777b538SAndroid Build Coastguard Worker const NetworkQuality& network_quality); 40*6777b538SAndroid Build Coastguard Worker 41*6777b538SAndroid Build Coastguard Worker private: 42*6777b538SAndroid Build Coastguard Worker NetLogWithSource net_log_; 43*6777b538SAndroid Build Coastguard Worker 44*6777b538SAndroid Build Coastguard Worker // The effective connection type when the net log event was last added. 45*6777b538SAndroid Build Coastguard Worker EffectiveConnectionType past_effective_connection_type_ = 46*6777b538SAndroid Build Coastguard Worker EFFECTIVE_CONNECTION_TYPE_UNKNOWN; 47*6777b538SAndroid Build Coastguard Worker 48*6777b538SAndroid Build Coastguard Worker // The network quality when the net log event was last added. 49*6777b538SAndroid Build Coastguard Worker NetworkQuality past_network_quality_; 50*6777b538SAndroid Build Coastguard Worker 51*6777b538SAndroid Build Coastguard Worker SEQUENCE_CHECKER(sequence_checker_); 52*6777b538SAndroid Build Coastguard Worker }; 53*6777b538SAndroid Build Coastguard Worker 54*6777b538SAndroid Build Coastguard Worker } // namespace nqe::internal 55*6777b538SAndroid Build Coastguard Worker 56*6777b538SAndroid Build Coastguard Worker } // namespace net 57*6777b538SAndroid Build Coastguard Worker 58*6777b538SAndroid Build Coastguard Worker #endif // NET_NQE_EVENT_CREATOR_H_ 59