blob: 3dab91625d16920825822ae25c388d948e71e2fc [file] [log] [blame]
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +00001/*
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_VOICE_ENGINE_STATISTICS_H
12#define WEBRTC_VOICE_ENGINE_STATISTICS_H
13
pbos@webrtc.org471ae722013-05-21 13:52:32 +000014#include "webrtc/common_types.h"
15#include "webrtc/typedefs.h"
16#include "webrtc/voice_engine/include/voe_errors.h"
17#include "webrtc/voice_engine/voice_engine_defines.h"
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000018
19namespace webrtc {
20class CriticalSectionWrapper;
21
22namespace voe {
23
24class Statistics
25{
26 public:
27 enum {KTraceMaxMessageSize = 256};
28 public:
pbos@webrtc.orgca7a9a22013-05-14 08:31:39 +000029 Statistics(uint32_t instanceId);
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000030 ~Statistics();
31
pbos@webrtc.org54f03bc2013-04-09 10:09:10 +000032 int32_t SetInitialized();
33 int32_t SetUnInitialized();
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000034 bool Initialized() const;
pbos@webrtc.orgca7a9a22013-05-14 08:31:39 +000035 int32_t SetLastError(int32_t error) const;
36 int32_t SetLastError(int32_t error, TraceLevel level) const;
37 int32_t SetLastError(int32_t error,
38 TraceLevel level,
pbos@webrtc.org54f03bc2013-04-09 10:09:10 +000039 const char* msg) const;
40 int32_t LastError() const;
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000041
42 private:
43 CriticalSectionWrapper* _critPtr;
pbos@webrtc.org54f03bc2013-04-09 10:09:10 +000044 const uint32_t _instanceId;
45 mutable int32_t _lastError;
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000046 bool _isInitialized;
47};
48
49} // namespace voe
50
pbos@webrtc.org3b89e102013-07-03 15:12:26 +000051} // namespace webrtc
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000052
53#endif // WEBRTC_VOICE_ENGINE_STATISTICS_H