| Index: base/scoped_native_library.h
|
| ===================================================================
|
| --- base/scoped_native_library.h (revision 65099)
|
| +++ base/scoped_native_library.h (working copy)
|
| @@ -17,23 +17,33 @@
|
| // This class automatically unloads the loaded library in its destructor.
|
| class ScopedNativeLibrary {
|
| public:
|
| - explicit ScopedNativeLibrary(const FilePath& library_path) {
|
| - library_ = base::LoadNativeLibrary(library_path);
|
| - }
|
| + // Initializes with a NULL library.
|
| + ScopedNativeLibrary();
|
|
|
| - ~ScopedNativeLibrary() {
|
| - if (library_)
|
| - base::UnloadNativeLibrary(library_);
|
| - }
|
| + // Takes ownership of the given library handle.
|
| + explicit ScopedNativeLibrary(NativeLibrary library);
|
|
|
| - void* GetFunctionPointer(const char* function_name) {
|
| - if (!library_)
|
| - return NULL;
|
| - return base::GetFunctionPointerFromNativeLibrary(library_, function_name);
|
| - }
|
| + // Opens the given library and manages its lifetime.
|
| + explicit ScopedNativeLibrary(const FilePath& library_path);
|
|
|
| + ~ScopedNativeLibrary();
|
| +
|
| + // Returns true if there's a valid library loaded.
|
| + bool is_valid() const { return !!library_; }
|
| +
|
| + void* GetFunctionPointer(const char* function_name) const;
|
| +
|
| + // Takes ownership of the given library handle. Any existing handle will
|
| + // be freed.
|
| + void Reset(NativeLibrary library);
|
| +
|
| + // Returns the native library handle and removes it from this object. The
|
| + // caller must manage the lifetime of the handle.
|
| + NativeLibrary Release();
|
| +
|
| private:
|
| - base::NativeLibrary library_;
|
| + NativeLibrary library_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ScopedNativeLibrary);
|
| };
|
|
|
|
|