1 /*
2 * Copyright (c) 2012 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 #include <assert.h>
12 #include <stdio.h>
13
14 #include "webrtc/voice_engine/statistics.h"
15
16 #include "webrtc/system_wrappers/include/critical_section_wrapper.h"
17 #include "webrtc/system_wrappers/include/trace.h"
18
19 namespace webrtc {
20
21 namespace voe {
22
Statistics(uint32_t instanceId)23 Statistics::Statistics(uint32_t instanceId) :
24 _critPtr(CriticalSectionWrapper::CreateCriticalSection()),
25 _instanceId(instanceId),
26 _lastError(0),
27 _isInitialized(false)
28 {
29 }
30
~Statistics()31 Statistics::~Statistics()
32 {
33 if (_critPtr)
34 {
35 delete _critPtr;
36 _critPtr = NULL;
37 }
38 }
39
SetInitialized()40 int32_t Statistics::SetInitialized()
41 {
42 _isInitialized = true;
43 return 0;
44 }
45
SetUnInitialized()46 int32_t Statistics::SetUnInitialized()
47 {
48 _isInitialized = false;
49 return 0;
50 }
51
Initialized() const52 bool Statistics::Initialized() const
53 {
54 return _isInitialized;
55 }
56
SetLastError(int32_t error) const57 int32_t Statistics::SetLastError(int32_t error) const
58 {
59 CriticalSectionScoped cs(_critPtr);
60 _lastError = error;
61 return 0;
62 }
63
SetLastError(int32_t error,TraceLevel level) const64 int32_t Statistics::SetLastError(int32_t error,
65 TraceLevel level) const
66 {
67 CriticalSectionScoped cs(_critPtr);
68 _lastError = error;
69 WEBRTC_TRACE(level, kTraceVoice, VoEId(_instanceId,-1),
70 "error code is set to %d",
71 _lastError);
72 return 0;
73 }
74
SetLastError(int32_t error,TraceLevel level,const char * msg) const75 int32_t Statistics::SetLastError(
76 int32_t error,
77 TraceLevel level, const char* msg) const
78 {
79 CriticalSectionScoped cs(_critPtr);
80 char traceMessage[KTraceMaxMessageSize];
81 assert(strlen(msg) < KTraceMaxMessageSize);
82 _lastError = error;
83 sprintf(traceMessage, "%s (error=%d)", msg, error);
84 WEBRTC_TRACE(level, kTraceVoice, VoEId(_instanceId,-1), "%s",
85 traceMessage);
86 return 0;
87 }
88
LastError() const89 int32_t Statistics::LastError() const
90 {
91 CriticalSectionScoped cs(_critPtr);
92 WEBRTC_TRACE(kTraceStateInfo, kTraceVoice, VoEId(_instanceId,-1),
93 "LastError() => %d", _lastError);
94 return _lastError;
95 }
96
97 } // namespace voe
98
99 } // namespace webrtc
100