OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Attributes | List of all members
ossimPluginLibrary Class Reference

#include <ossimPluginLibrary.h>

Inheritance diagram for ossimPluginLibrary:
ossimDynamicLibrary ossimReferenced

Public Member Functions

 ossimPluginLibrary ()
 
 ossimPluginLibrary (const ossimString &name, const ossimString &options="")
 
virtual ~ossimPluginLibrary ()
 
void initialize ()
 
void finalize ()
 
ossimString getDescription () const
 
void getClassNames (std::vector< ossimString > &classNames) const
 
void setOptions (const ossimString &options)
 
- Public Member Functions inherited from ossimDynamicLibrary
 ossimDynamicLibrary ()
 
 ossimDynamicLibrary (const ossimString &name)
 
virtual ~ossimDynamicLibrary ()
 
bool isLoaded () const
 
bool load (const ossimString &name)
 
bool load ()
 
void unload ()
 
void * getSymbol (const ossimString &name) const
 
const ossimStringgetName () const
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Protected Attributes

ossimString m_options
 
ossimSharedObjectInfom_info
 
- Protected Attributes inherited from ossimDynamicLibrary
void * theLibrary
 
ossimString theLibraryName
 

Additional Inherited Members

- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Detailed Description

Definition at line 14 of file ossimPluginLibrary.h.

Constructor & Destructor Documentation

◆ ossimPluginLibrary() [1/2]

ossimPluginLibrary::ossimPluginLibrary ( )

Definition at line 14 of file ossimPluginLibrary.cpp.

16  m_info(0)
17 {
18 }
ossimSharedObjectInfo * m_info

◆ ossimPluginLibrary() [2/2]

ossimPluginLibrary::ossimPluginLibrary ( const ossimString name,
const ossimString options = "" 
)

Definition at line 20 of file ossimPluginLibrary.cpp.

References initialize().

21  :ossimDynamicLibrary(name),
22  m_options(options),
23  m_info(0)
24 {
25  initialize();
26 }
ossimSharedObjectInfo * m_info

◆ ~ossimPluginLibrary()

ossimPluginLibrary::~ossimPluginLibrary ( )
virtual

Definition at line 28 of file ossimPluginLibrary.cpp.

References finalize().

29 {
30  finalize();
31 }

Member Function Documentation

◆ finalize()

void ossimPluginLibrary::finalize ( )

Definition at line 47 of file ossimPluginLibrary.cpp.

References ossimDynamicLibrary::getSymbol(), and ossimDynamicLibrary::unload().

Referenced by ~ossimPluginLibrary().

48 {
49  ossimSharedLibraryFinalizePtr finalizeLib = (ossimSharedLibraryFinalizePtr)getSymbol("ossimSharedLibraryFinalize");
50  if(finalizeLib)
51  {
52  finalizeLib();
53  }
54 
55  unload();
56 }
void * getSymbol(const ossimString &name) const
void(* ossimSharedLibraryFinalizePtr)()

◆ getClassNames()

void ossimPluginLibrary::getClassNames ( std::vector< ossimString > &  classNames) const

Definition at line 70 of file ossimPluginLibrary.cpp.

References ossimSharedObjectInfo::getClassName, ossimSharedObjectInfo::getNumberOfClassNames, and m_info.

Referenced by ossimSharedPluginRegistry::printAllPluginInformation().

71 {
73  {
74  ossim_int32 idx = 0;
75  ossim_int32 numObjects = 0;
76 
77  numObjects = m_info->getNumberOfClassNames();
78  for(idx = 0; idx < numObjects; ++idx)
79  {
80  classNames.push_back(m_info->getClassName(idx));
81  }
82  }
83 }
ossimSharedLibraryGetNumberOfClassNamesPtr getNumberOfClassNames
ossimSharedObjectInfo * m_info
ossimSharedLibraryGetClassNamesPtr getClassName
int ossim_int32

◆ getDescription()

ossimString ossimPluginLibrary::getDescription ( ) const

Definition at line 58 of file ossimPluginLibrary.cpp.

References ossimSharedObjectInfo::getDescription, ossimDynamicLibrary::isLoaded(), and m_info.

Referenced by ossimSharedPluginRegistry::printAllPluginInformation().

59 {
60  ossimString result;
61 
63  {
64  result = m_info->getDescription();
65  }
66 
67  return result;
68 }
ossimSharedObjectInfo * m_info
ossimSharedLibraryGetDescriptionPtr getDescription

◆ initialize()

void ossimPluginLibrary::initialize ( )

Definition at line 33 of file ossimPluginLibrary.cpp.

References ossimString::c_str(), ossimDynamicLibrary::getSymbol(), ossimDynamicLibrary::isLoaded(), ossimDynamicLibrary::load(), m_info, and m_options.

Referenced by ossimPluginLibrary(), and ossimSharedPluginRegistry::registerPlugin().

34 {
35  if(!isLoaded())
36  {
37  load();
38  }
39 
40  ossimSharedLibraryInitializePtr init = (ossimSharedLibraryInitializePtr)getSymbol("ossimSharedLibraryInitialize");
41  if(init)
42  {
43  init(&m_info, m_options.c_str());
44  }
45 }
void * getSymbol(const ossimString &name) const
ossimSharedObjectInfo * m_info
void(* ossimSharedLibraryInitializePtr)(ossimSharedObjectInfo **info, const char *options)
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

◆ setOptions()

void ossimPluginLibrary::setOptions ( const ossimString options)

Definition at line 85 of file ossimPluginLibrary.cpp.

References m_options.

Referenced by ossimSharedPluginRegistry::registerPlugin().

86 {
87  m_options = options;
88 
89 }

Member Data Documentation

◆ m_info

ossimSharedObjectInfo* ossimPluginLibrary::m_info
protected

Definition at line 27 of file ossimPluginLibrary.h.

Referenced by getClassNames(), getDescription(), and initialize().

◆ m_options

ossimString ossimPluginLibrary::m_options
protected

Definition at line 26 of file ossimPluginLibrary.h.

Referenced by initialize(), and setOptions().


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