diff options
Diffstat (limited to 'emulator/opengl/shared/emugl/common/shared_library.h')
-rw-r--r-- | emulator/opengl/shared/emugl/common/shared_library.h | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/emulator/opengl/shared/emugl/common/shared_library.h b/emulator/opengl/shared/emugl/common/shared_library.h deleted file mode 100644 index f1d82fc..0000000 --- a/emulator/opengl/shared/emugl/common/shared_library.h +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (C) 2014 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef EMUGL_COMMON_SHARED_LIBRARY_H -#define EMUGL_COMMON_SHARED_LIBRARY_H - -#ifdef _WIN32 -#include <windows.h> -#endif - -namespace emugl { - -// A class used to open a platform-specific shared library, and probe -// it for symbols. Usage is the following: -// -// // Open the library. -// SharedLibrary* library = SharedLibrary::open("libFoo"); -// if (!library) { -// ... could not find / open library! -// } -// -// //Probe for function symbol. -// FunctionPtr my_func = library->findSymbol("my_func"); -// -// // Closes library/ -// delete library; -// -class SharedLibrary { -public: - // Open a given library. If |libraryName| has no extension, a - // platform-appropriate extension is added and that path is opened. - // If the |libraryName| has an extension, that form is opened. - // - // On OSX, some libraries don't include an extension (notably OpenGL) - // On OSX we try to open |libraryName| first. If that doesn't exist, - // we try |libraryName|.dylib - // - // On success, returns a new SharedLibrary instance that must be - // deleted by the caller. - static SharedLibrary* open(const char* libraryName); - - // Closes an existing SharedLibrary instance. - ~SharedLibrary(); - - // Generic function pointer type, for values returned by the - // findSymbol() method. - typedef void (*FunctionPtr)(void); - - // Probe a given SharedLibrary instance to find a symbol named - // |symbolName| in it. Return its address as a FunctionPtr, or - // NULL if the symbol is not found. - FunctionPtr findSymbol(const char* symbolName); - -private: -#ifdef _WIN32 - typedef HMODULE HandleType; -#else - typedef void* HandleType; -#endif - - // Constructor intentionally hidden. - SharedLibrary(HandleType); - - HandleType mLib; -}; - -// Macro to compose emugl shared library name under various OS and bitness -// eg. -// on x86_64, EMUGL_LIBNAME("foo") --> "lib64foo" - -#if defined(__x86_64__) -# define EMUGL_LIBNAME(name) "lib64" name -#elif defined(__i386__) -# define EMUGL_LIBNAME(name) "lib" name -#else -/* This header is included by target w/o using EMUGL_LIBNAME(). Don't #error, leave it undefined */ -#endif - -} // namespace emugl - -#endif // EMUGL_COMMON_SHARED_LIBRARY_H |