• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
TraceLocation(const char * functionName,const char * fileName)18     TraceLocation(const char* functionName, const char* fileName)
19         : m_functionName(functionName)
20         , m_fileName(fileName)
21     { }
22 
TraceLocation()23     TraceLocation()
24         : m_functionName("unknown")
25         , m_fileName("unknown")
26     { }
27 
functionName()28     const char* functionName() const { return m_functionName; }
fileName()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