1c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// found in the LICENSE file.
4c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
5c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#ifndef WebTraceLocation_h
6c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WebTraceLocation_h
7c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
9c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// This class is used to keep track of where posted tasks originate. See base/location.h in Chromium.
11c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class WebTraceLocation {
12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)public:
13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    // The strings passed in are not copied and must live for the duration of the program.
14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    WebTraceLocation(const char* functionName, const char* fileName)
15c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)        : m_functionName(functionName)
16c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)        , m_fileName(fileName)
17c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    { }
18c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
19c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    const char* functionName() const { return m_functionName; }
20c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    const char* fileName() const { return m_fileName; }
21c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
22c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)private:
23c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    const char* m_functionName;
24c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    const char* m_fileName;
25c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)};
26c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
27c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)}
28c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
29c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#endif // WebTraceLocation_h
30