1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef TraceLocation_h 6 #define TraceLocation_h 7 8 // This is intentionally similar to base/location.h 9 // that we could easily replace usage of TraceLocation 10 // with base::Location after merging into Chromium. 11 12 namespace blink { 13 14 class TraceLocation { 15 public: 16 // Currenetly only store the bits used in Blink, base::Location stores more. 17 // These char*s are not copied and must live for the duration of the program. 18 TraceLocation(const char* functionName, const char* fileName) 19 : m_functionName(functionName) 20 , m_fileName(fileName) 21 { } 22 23 TraceLocation() 24 : m_functionName("unknown") 25 , m_fileName("unknown") 26 { } 27 28 const char* functionName() const { return m_functionName; } 29 const char* fileName() const { return m_fileName; } 30 31 private: 32 const char* m_functionName; 33 const char* m_fileName; 34 }; 35 36 #define FROM_HERE ::blink::TraceLocation(__FUNCTION__, __FILE__) 37 } // namespace blink 38 39 #endif // TraceLocation_h 40