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/scoped_native_library.h" 6 7 namespace base { 8 9 ScopedNativeLibrary::ScopedNativeLibrary() : library_(NULL) { 10 } 11 12 ScopedNativeLibrary::ScopedNativeLibrary(NativeLibrary library) 13 : library_(library) { 14 } 15 16 ScopedNativeLibrary::ScopedNativeLibrary(const FilePath& library_path) { 17 library_ = base::LoadNativeLibrary(library_path, NULL); 18 } 19 20 ScopedNativeLibrary::~ScopedNativeLibrary() { 21 if (library_) 22 base::UnloadNativeLibrary(library_); 23 } 24 25 void* ScopedNativeLibrary::GetFunctionPointer( 26 const char* function_name) const { 27 if (!library_) 28 return NULL; 29 return base::GetFunctionPointerFromNativeLibrary(library_, function_name); 30 } 31 32 void ScopedNativeLibrary::Reset(NativeLibrary library) { 33 if (library_) 34 base::UnloadNativeLibrary(library_); 35 library_ = library; 36 } 37 38 NativeLibrary ScopedNativeLibrary::Release() { 39 NativeLibrary result = library_; 40 library_ = NULL; 41 return result; 42 } 43 44 } // namespace base 45