1/*
2 *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef WEBRTC_SYSTEM_WRAPPERS_SOURCE_TRACE_POSIX_H_
12#define WEBRTC_SYSTEM_WRAPPERS_SOURCE_TRACE_POSIX_H_
13
14#include "webrtc/system_wrappers/include/critical_section_wrapper.h"
15#include "webrtc/system_wrappers/source/trace_impl.h"
16
17namespace webrtc {
18
19class TracePosix : public TraceImpl {
20 public:
21  TracePosix();
22  ~TracePosix() override;
23
24  // This method can be called on several different threads different from
25  // the creating thread.
26  int32_t AddTime(char* trace_message, const TraceLevel level) const override;
27
28  int32_t AddDateTimeInfo(char* trace_message) const override;
29
30 private:
31  volatile mutable uint32_t  prev_api_tick_count_;
32  volatile mutable uint32_t  prev_tick_count_;
33
34  CriticalSectionWrapper& crit_sect_;
35};
36
37}  // namespace webrtc
38
39#endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_TRACE_POSIX_H_
40