/* 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 namespace mozilla { /** * A Custom scoped template to release a resoure of Type T * with a function of Type F * ScopedCustomReleasePtr ptr = * webrtc::VoENetwork->GetInterface(voiceEngine); * */ template struct ScopedCustomReleaseTraits0 { typedef T* type; static T* empty() { return nullptr; } static void release(T* ptr) { if (ptr) { (ptr)->Release(); } } }; SCOPED_TEMPLATE(ScopedCustomReleasePtr, ScopedCustomReleaseTraits0) } // namespace mozilla #endif