GL Studio API
Public Types | Public Member Functions | Static Public Member Functions | List of all members
DynamicLibrary Class Reference

#include <dynamic_library.h>

Public Types

enum  ErrorEnum { , ERROR_VERSION_MISMATCH, ERROR_UNKNOWN }
 

Public Member Functions

 DynamicLibrary (const char *lib_name_arg, bool quiet=false, bool searchLibPath=false, bool tryStandardExtensions=false, bool matchVersion=false)
 
virtual ~DynamicLibrary ()
 
virtual FunctionPointer DynamicFunction (const char *function_name)
 
virtual bool Loaded (void) const
 
ErrorEnum LastError () const
 
const char * ErrorString () const
 

Static Public Member Functions

static bool Exists (const char *libName, bool tryStandardExtensions=true)
 
static std::string Find (const std::string &name)
 
static void RemoveExtension (std::string &libpath)
 

Detailed Description

The DynamicLibrary class. A cross-platform class for loading dynamic link libraries and shared objects

Member Enumeration Documentation

enum ErrorEnum

Error Enum

Enumerator
ERROR_VERSION_MISMATCH 

Load failed due to incompatible GL Studio or compiler versions.

ERROR_UNKNOWN 

Load failed for unknown reason (see DynamicLibrary::ErrorString())

Constructor & Destructor Documentation

DynamicLibrary ( const char *  lib_name_arg,
bool  quiet = false,
bool  searchLibPath = false,
bool  tryStandardExtensions = false,
bool  matchVersion = false 
)

UNIX uses a pointer to the Open Dynamic Library Constructor for dynamic library object. Causes the dynamic library which is passed in by filename to be opened.

Parameters
lib_name_argA pointer to a string which is a library name to be opened, may include the path, can not be NULL
quietWhether this class emits error messages or fails silently.
searchLibPathwhether or not the library path is searched to find the library if it cannot be found first in its specified directory.
tryStandardExtensionsIf this is true, the file extension, if any, will be stripped off and the appropriate standard extension for the current OS will be appended. If the changed filename cannot be found, then the original filename will be used as a last resort.
matchVersion
virtual ~DynamicLibrary ( )
virtual

Destructor for dynamic library object. Closes the library so the OS can cleanup.

Member Function Documentation

virtual FunctionPointer DynamicFunction ( const char *  function_name)
virtual

Dynamically resolves a function from the library. The name of the function is passed in.

Parameters
function_nameA pointer to a string, which represents the Name of a Function to find.
Returns
Returns a pointer to the function if it is found or NULL otherwise
const char* ErrorString ( ) const

Returns the last error string or NULL if no error has occured. When tryStandardExtensions == true, this may be a very long string since it contains the error information for each attempted filename.

static bool Exists ( const char *  libName,
bool  tryStandardExtensions = true 
)
static
Returns
True if the library can be found somewhere on the system, false otherwise
static std::string Find ( const std::string &  name)
static
Returns
The path to the given file name
ErrorEnum LastError ( ) const

Call LastError() when Loaded() is false to determine to determine if load failure occured due to a version mismatch.

virtual bool Loaded ( void  ) const
virtual
Returns
True if the library successfully loaded, false otherwise
static void RemoveExtension ( std::string &  libpath)
static

Removes the extension, if any, from the specified path


The documentation for this class was generated from the following file: