1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 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_LOG_NET_LOG_SOURCE_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_LOG_NET_LOG_SOURCE_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/time/time.h" 11*6777b538SAndroid Build Coastguard Worker #include "base/values.h" 12*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 13*6777b538SAndroid Build Coastguard Worker #include "net/log/net_log_source_type.h" 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace net { 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker // Identifies the entity that generated this log. The |id| field should 18*6777b538SAndroid Build Coastguard Worker // uniquely identify the source, and is used by log observers to infer 19*6777b538SAndroid Build Coastguard Worker // message groupings. Can use NetLog::NextID() to create unique IDs. 20*6777b538SAndroid Build Coastguard Worker struct NET_EXPORT NetLogSource { 21*6777b538SAndroid Build Coastguard Worker static const uint32_t kInvalidId; 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker NetLogSource(); 24*6777b538SAndroid Build Coastguard Worker NetLogSource(NetLogSourceType type, uint32_t id); 25*6777b538SAndroid Build Coastguard Worker NetLogSource(NetLogSourceType type, uint32_t id, base::TimeTicks start_time); 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker bool operator==(const NetLogSource& rhs) const; 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker bool IsValid() const; 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker // Adds the source to a dictionary containing event parameters, 32*6777b538SAndroid Build Coastguard Worker // using the name "source_dependency". 33*6777b538SAndroid Build Coastguard Worker void AddToEventParameters(base::Value::Dict& event_params) const; 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker // Returns a dictionary with a single entry named "source_dependency" that 36*6777b538SAndroid Build Coastguard Worker // describes |this|. 37*6777b538SAndroid Build Coastguard Worker base::Value::Dict ToEventParameters() const; 38*6777b538SAndroid Build Coastguard Worker 39*6777b538SAndroid Build Coastguard Worker NetLogSourceType type; 40*6777b538SAndroid Build Coastguard Worker uint32_t id; 41*6777b538SAndroid Build Coastguard Worker base::TimeTicks start_time; 42*6777b538SAndroid Build Coastguard Worker }; 43*6777b538SAndroid Build Coastguard Worker 44*6777b538SAndroid Build Coastguard Worker } // namespace net 45*6777b538SAndroid Build Coastguard Worker 46*6777b538SAndroid Build Coastguard Worker #endif // NET_LOG_NET_LOG_SOURCE_H_ 47