diff options
Diffstat (limited to 'media/webrtc/signaling/src/common/MediaEngineWrapper.h')
-rwxr-xr-x | media/webrtc/signaling/src/common/MediaEngineWrapper.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/media/webrtc/signaling/src/common/MediaEngineWrapper.h b/media/webrtc/signaling/src/common/MediaEngineWrapper.h new file mode 100755 index 000000000..f9b1a3415 --- /dev/null +++ b/media/webrtc/signaling/src/common/MediaEngineWrapper.h @@ -0,0 +1,39 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef MEDIA_ENGINE_WRAPPER_H_ +#define MEDIA_ENGINE_WRAPPER_H_ + +#include <mozilla/Scoped.h> + + + +namespace mozilla +{ +/** + * A Custom scoped template to release a resoure of Type T + * with a function of Type F + * ScopedCustomReleasePtr<webrtc::VoENetwork> ptr = + * webrtc::VoENetwork->GetInterface(voiceEngine); + * + */ +template<typename T> +struct ScopedCustomReleaseTraits0 +{ + typedef T* type; + static T* empty() { return nullptr; } + static void release(T* ptr) + { + if(ptr) + { + (ptr)->Release(); + } + } +}; + +SCOPED_TEMPLATE(ScopedCustomReleasePtr, ScopedCustomReleaseTraits0) +}//namespace + + +#endif |