You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
| 
											10 years ago
										 | /*
 | ||
|  |  *  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. | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef MODULES_INTERFACE_MODULE_H_
 | ||
|  | #define MODULES_INTERFACE_MODULE_H_
 | ||
|  | 
 | ||
|  | #include <assert.h>
 | ||
|  | 
 | ||
|  | #include "webrtc/typedefs.h"
 | ||
|  | 
 | ||
|  | namespace webrtc { | ||
|  | 
 | ||
|  | class Module { | ||
|  |  public: | ||
|  |   // TODO(henrika): Remove this when chrome is updated.
 | ||
|  |   // DEPRICATED Change the unique identifier of this object.
 | ||
|  |   virtual int32_t ChangeUniqueId(const int32_t id) { return 0; } | ||
|  | 
 | ||
|  |   // Returns the number of milliseconds until the module want a worker
 | ||
|  |   // thread to call Process.
 | ||
|  |   virtual int32_t TimeUntilNextProcess() = 0; | ||
|  | 
 | ||
|  |   // Process any pending tasks such as timeouts.
 | ||
|  |   virtual int32_t Process() = 0; | ||
|  | 
 | ||
|  |  protected: | ||
|  |   virtual ~Module() {} | ||
|  | }; | ||
|  | 
 | ||
|  | // Reference counted version of the module interface.
 | ||
|  | class RefCountedModule : public Module { | ||
|  |  public: | ||
|  |   // Increase the reference count by one.
 | ||
|  |   // Returns the incremented reference count.
 | ||
|  |   // TODO(perkj): Make this pure virtual when Chromium have implemented  
 | ||
|  |   // reference counting ADM and Video capture module.
 | ||
|  |   virtual int32_t AddRef() { | ||
|  |     assert(false && "Not implemented."); | ||
|  |     return 1; | ||
|  |   } | ||
|  | 
 | ||
|  |   // Decrease the reference count by one.
 | ||
|  |   // Returns the decreased reference count.
 | ||
|  |   // Returns 0 if the last reference was just released.
 | ||
|  |   // When the reference count reach 0 the object will self-destruct.
 | ||
|  |   // TODO(perkj): Make this pure virtual when Chromium have implemented  
 | ||
|  |   // reference counting ADM and Video capture module.
 | ||
|  |   virtual int32_t Release() { | ||
|  |     assert(false && "Not implemented."); | ||
|  |     return 1; | ||
|  |   } | ||
|  | 
 | ||
|  |  protected: | ||
|  |   virtual ~RefCountedModule() {} | ||
|  | }; | ||
|  | 
 | ||
|  | }  // namespace webrtc
 | ||
|  | 
 | ||
|  | #endif  // MODULES_INTERFACE_MODULE_H_
 |