OLD | NEW |
| (Empty) |
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 | |
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 | |
OLD | NEW |