1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/memory/scoped_native_library.h" 6 7 namespace base { 8 ScopedNativeLibrary()9ScopedNativeLibrary::ScopedNativeLibrary() : library_(NULL) { 10 } 11 ScopedNativeLibrary(NativeLibrary library)12ScopedNativeLibrary::ScopedNativeLibrary(NativeLibrary library) 13 : library_(library) { 14 } 15 ScopedNativeLibrary(const FilePath & library_path)16ScopedNativeLibrary::ScopedNativeLibrary(const FilePath& library_path) { 17 library_ = base::LoadNativeLibrary(library_path, NULL); 18 } 19 ~ScopedNativeLibrary()20ScopedNativeLibrary::~ScopedNativeLibrary() { 21 if (library_) 22 base::UnloadNativeLibrary(library_); 23 } 24 GetFunctionPointer(const char * function_name) const25void* ScopedNativeLibrary::GetFunctionPointer( 26 const char* function_name) const { 27 if (!library_) 28 return NULL; 29 return base::GetFunctionPointerFromNativeLibrary(library_, function_name); 30 } 31 Reset(NativeLibrary library)32void ScopedNativeLibrary::Reset(NativeLibrary library) { 33 if (library_) 34 base::UnloadNativeLibrary(library_); 35 library_ = library; 36 } 37 Release()38NativeLibrary ScopedNativeLibrary::Release() { 39 NativeLibrary result = library_; 40 library_ = NULL; 41 return result; 42 } 43 44 } // namespace base 45