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_ENTRY_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_LOG_NET_LOG_ENTRY_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h" 9*6777b538SAndroid Build Coastguard Worker #include "base/values.h" 10*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 11*6777b538SAndroid Build Coastguard Worker #include "net/log/net_log_event_type.h" 12*6777b538SAndroid Build Coastguard Worker #include "net/log/net_log_source.h" 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker namespace net { 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker // Represents an event that was sent to a NetLog observer, including the 17*6777b538SAndroid Build Coastguard Worker // materialized parameters. 18*6777b538SAndroid Build Coastguard Worker struct NET_EXPORT NetLogEntry { 19*6777b538SAndroid Build Coastguard Worker public: 20*6777b538SAndroid Build Coastguard Worker NetLogEntry(NetLogEventType type, 21*6777b538SAndroid Build Coastguard Worker NetLogSource source, 22*6777b538SAndroid Build Coastguard Worker NetLogEventPhase phase, 23*6777b538SAndroid Build Coastguard Worker base::TimeTicks time, 24*6777b538SAndroid Build Coastguard Worker base::Value::Dict params); 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker ~NetLogEntry(); 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker // Moveable. 29*6777b538SAndroid Build Coastguard Worker NetLogEntry(NetLogEntry&& entry); 30*6777b538SAndroid Build Coastguard Worker NetLogEntry& operator=(NetLogEntry&& entry); 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker // Serializes the specified event to a Dict. 33*6777b538SAndroid Build Coastguard Worker base::Value::Dict ToDict() const; 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker // NetLogEntry is not copy constructible, however copying is useful for 36*6777b538SAndroid Build Coastguard Worker // unittests. 37*6777b538SAndroid Build Coastguard Worker NetLogEntry Clone() const; 38*6777b538SAndroid Build Coastguard Worker 39*6777b538SAndroid Build Coastguard Worker // Returns true if the entry has value for |params|. 40*6777b538SAndroid Build Coastguard Worker bool HasParams() const; 41*6777b538SAndroid Build Coastguard Worker 42*6777b538SAndroid Build Coastguard Worker NetLogEventType type; 43*6777b538SAndroid Build Coastguard Worker NetLogSource source; 44*6777b538SAndroid Build Coastguard Worker NetLogEventPhase phase; 45*6777b538SAndroid Build Coastguard Worker base::TimeTicks time; 46*6777b538SAndroid Build Coastguard Worker base::Value::Dict params; 47*6777b538SAndroid Build Coastguard Worker }; 48*6777b538SAndroid Build Coastguard Worker 49*6777b538SAndroid Build Coastguard Worker } // namespace net 50*6777b538SAndroid Build Coastguard Worker 51*6777b538SAndroid Build Coastguard Worker #endif // NET_LOG_NET_LOG_ENTRY_H_ 52