• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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