BDynamicLibCore Class Reference

#include <BDynamicLibCore.h>

List of all members.


Detailed Description

An interface for platform-specific logic needed to manage a dynamic library.

This is the abstract class defining the interface used to manage a dynamic library, such as a Windows DLL, a Linux SO, etc. It includes methods to load and unload the library, and also to retrieve proxy objects from the library. A derived class must be implemented for each supported operating system.

Public Member Functions

 BDynamicLibCore (const BString &path, EDynamicLibType type)
 Constructor.
virtual
BDataManagerProxy
GetDataManagerProxy (void) const =0
 Gets the BDataManagerProxy object for this dynamic library.
virtual
BDirectTransformerProxy
GetDirectTransformerProxy (void) const =0
 Get the BDirectTransformerProxy object for this dynamic library.
const BStringGetPath (void) const
 Gets the path to the dynamic library.
EDynamicLibType GetType (void) const
 Gets the dynamic library type.
virtual bool IsLoaded (void) const =0
 Indicates whether or not this dynamic library is currently loaded into memory.
virtual bool Load (void)=0
 Loads the current dynamic library into memory.
virtual void Unload (void)=0
 Removes the current dynamic libarary from memory.
virtual ~BDynamicLibCore ()
 Destructor.

Static Public Member Functions

static BDynamicLibCoreCreateCore (const BString &path, EDynamicLibType type)
 Factory constructor for BDynamicLibCore.
static void DeleteCore (BDynamicLibCore *pCore)
 Deletes a BDynamicLibCore object.

Protected Member Functions

 BDynamicLibCore ()
 Default constructor.

Protected Attributes

BString m_path
 The path to the dynamic library.
EDynamicLibType m_type
 The type of dynamic library contained herein.


Constructor & Destructor Documentation

BDynamicLibCore ( const BString path,
EDynamicLibType  type 
) [inline]

Constructor.

Parameters:
path The full path to the dynamic library.
type The type of dynamic library (reader, writer, etc).

virtual ~BDynamicLibCore (  )  [inline, virtual]

Destructor.

BDynamicLibCore (  )  [inline, protected]

Default constructor.

This constructor is hidden to prevent its use.


Member Function Documentation

static BDynamicLibCore* CreateCore ( const BString path,
EDynamicLibType  type 
) [static]

Factory constructor for BDynamicLibCore.

This will automatically create the appropriate derrived class for the current operating system.

Parameters:
path Full path to the dynamic library.
type The type of dynamic library (reader, writer, etc).

static void DeleteCore ( BDynamicLibCore pCore  )  [inline, static]

Deletes a BDynamicLibCore object.

Parameters:
pCore The BDynamicLibCore to delete.

virtual BDataManagerProxy* GetDataManagerProxy ( void   )  const [pure virtual]

Gets the BDataManagerProxy object for this dynamic library.

Returns:
The BDataManagerProxy object for this dynamic library.

virtual BDirectTransformerProxy* GetDirectTransformerProxy ( void   )  const [pure virtual]

Get the BDirectTransformerProxy object for this dynamic library.

Returns:
The BDirectTransformerProxy object for this dynamic library.

const BString& GetPath ( void   )  const [inline]

Gets the path to the dynamic library.

Returns:
The full path to the dynamic library.

EDynamicLibType GetType ( void   )  const [inline]

Gets the dynamic library type.

Returns:
The dynamic library type.

virtual bool IsLoaded ( void   )  const [pure virtual]

Indicates whether or not this dynamic library is currently loaded into memory.

Returns:
True if the library is currently loaded and false otherwise

virtual bool Load ( void   )  [pure virtual]

Loads the current dynamic library into memory.

Returns:
True if the load is successful and false otherwise.

virtual void Unload ( void   )  [pure virtual]

Removes the current dynamic libarary from memory.

Returns:
True if the unload is successful and false otherwise.


Member Data Documentation

BString m_path [protected]

The path to the dynamic library.

EDynamicLibType m_type [protected]

The type of dynamic library contained herein.


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

GeoTranslate 5.0 From Blue Marble Geographics