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