1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef WEBRTC_VOICE_ENGINE_STATISTICS_H 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define WEBRTC_VOICE_ENGINE_STATISTICS_H 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 14471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/common_types.h" 15471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/typedefs.h" 16471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_errors.h" 17471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/voice_engine_defines.h" 18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgnamespace webrtc { 20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass CriticalSectionWrapper; 21b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgnamespace voe { 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass Statistics 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org public: 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org enum {KTraceMaxMessageSize = 256}; 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org public: 29ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org Statistics(uint32_t instanceId); 30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ~Statistics(); 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 3254f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org int32_t SetInitialized(); 3354f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org int32_t SetUnInitialized(); 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool Initialized() const; 35ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org int32_t SetLastError(int32_t error) const; 36ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org int32_t SetLastError(int32_t error, TraceLevel level) const; 37ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org int32_t SetLastError(int32_t error, 38ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org TraceLevel level, 3954f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org const char* msg) const; 4054f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org int32_t LastError() const; 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org private: 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionWrapper* _critPtr; 4454f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org const uint32_t _instanceId; 4554f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org mutable int32_t _lastError; 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool _isInitialized; 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}; 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} // namespace voe 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 513b89e10f31160da35b408fd00cb8f89d2b08862dpbos@webrtc.org} // namespace webrtc 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif // WEBRTC_VOICE_ENGINE_STATISTICS_H 54