|  | /* | 
|  | *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
|  | * | 
|  | *  Use of this source code is governed by a BSD-style license | 
|  | *  that can be found in the LICENSE file in the root of the source | 
|  | *  tree. An additional intellectual property rights grant can be found | 
|  | *  in the file PATENTS.  All contributing project authors may | 
|  | *  be found in the AUTHORS file in the root of the source tree. | 
|  | */ | 
|  |  | 
|  | // ViESharedData contains data and instances common to all interface | 
|  | // implementations. | 
|  |  | 
|  | #ifndef WEBRTC_VIDEO_ENGINE_VIE_SHARED_DATA_H_ | 
|  | #define WEBRTC_VIDEO_ENGINE_VIE_SHARED_DATA_H_ | 
|  |  | 
|  | #include <map> | 
|  |  | 
|  | #include "webrtc/system_wrappers/interface/scoped_ptr.h" | 
|  |  | 
|  | namespace webrtc { | 
|  |  | 
|  | class Config; | 
|  | class CpuOveruseObserver; | 
|  | class ProcessThread; | 
|  | class ViEChannelManager; | 
|  | class ViEInputManager; | 
|  | class ViERenderManager; | 
|  |  | 
|  | class ViESharedData { | 
|  | public: | 
|  | explicit ViESharedData(const Config& config); | 
|  | ~ViESharedData(); | 
|  |  | 
|  | void SetLastError(const int error) const; | 
|  | int LastErrorInternal() const; | 
|  | int NumberOfCores() const; | 
|  |  | 
|  | // TODO(mflodman) Remove all calls to 'instance_id()'. | 
|  | int instance_id() { return 0;} | 
|  | ViEChannelManager* channel_manager() { return channel_manager_.get(); } | 
|  | ViEInputManager* input_manager() { return input_manager_.get(); } | 
|  | ViERenderManager* render_manager() { return render_manager_.get(); } | 
|  |  | 
|  | std::map<int, CpuOveruseObserver*>* overuse_observers() { | 
|  | return &overuse_observers_; } | 
|  |  | 
|  | private: | 
|  | const int number_cores_; | 
|  |  | 
|  | scoped_ptr<ViEChannelManager> channel_manager_; | 
|  | scoped_ptr<ViEInputManager> input_manager_; | 
|  | scoped_ptr<ViERenderManager> render_manager_; | 
|  | ProcessThread* module_process_thread_; | 
|  | mutable int last_error_; | 
|  |  | 
|  | std::map<int, CpuOveruseObserver*> overuse_observers_; | 
|  | }; | 
|  |  | 
|  | }  // namespace webrtc | 
|  |  | 
|  | #endif  // WEBRTC_VIDEO_ENGINE_VIE_SHARED_DATA_H_ |