Loading...
Searching...
No Matches
shlibpp::SharedLibraryClass< T > Class Template Reference

Container for an object created using a factory provided by a shared library. More...

`#include <robottestingframework/dll/SharedLibraryClass.h>`

## Public Member Functions

| SharedLibraryClass ()
| Constructor for empty instance.
| SharedLibraryClass (SharedLibraryClassFactory< T > &factory)
| Constructor for valid instance of a class from a shared library.
bool | open (SharedLibraryClassFactory< T > &factory)
| Construct an instance using the specified factory.
virtual bool | close ()
| Destroy an instance if one has been created.
virtual | ~SharedLibraryClass ()
| Destructor.
T & | getContent ()
| Gives access to the created instance.
bool | isValid () const
| Check whether a valid instance has been created.
T & | operator* ()
| Shorthand for SharedLibraryClass::getContent.
T * | operator-> ()
| A pointer version of SharedLibraryClass::getContent.

## Private Attributes

T * | content
SharedLibraryClassFactory< T > * | pfactory

## Detailed Description

template<class T>
class shlibpp::SharedLibraryClass< T >

Container for an object created using a factory provided by a shared library.

Used to ensure the object is destroyed by a method also provided by the shared library. Mixing creation and destruction methods could be very bad.

Definition at line 39 of file SharedLibraryClass.h.

## Constructor & Destructor Documentation

## SharedLibraryClass() [1/2]

template<class T >

shlibpp::SharedLibraryClass< T >::SharedLibraryClass | ( |  | ) |

inline

Constructor for empty instance.

Definition at line 49 of file SharedLibraryClass.h.

## SharedLibraryClass() [2/2]

template<class T >

shlibpp::SharedLibraryClass< T >::SharedLibraryClass | ( | SharedLibraryClassFactory< T > & | factory | ) |

inline

Constructor for valid instance of a class from a shared library.

Parameters

  factory | the factory to use to construct (and eventually destroy) the instance.

Definition at line 61 of file SharedLibraryClass.h.

## ~SharedLibraryClass()

template<class T >

virtual shlibpp::SharedLibraryClass< T >::~SharedLibraryClass | ( |  | ) |

inline virtual

Destructor.

Definition at line 111 of file SharedLibraryClass.h.

## Member Function Documentation

## close()

template<class T >

virtual bool shlibpp::SharedLibraryClass< T >::close | ( |  | ) |

inline virtual

Destroy an instance if one has been created.

Returns
  true on success

Definition at line 91 of file SharedLibraryClass.h.

## getContent()

template<class T >

T & shlibpp::SharedLibraryClass< T >::getContent | ( |  | ) |

inline

Gives access to the created instance.

No check made to ensure an instance is in fact present. Call SharedLibraryClass::isValid first if unsure.

Returns
  the created instance

Definition at line 123 of file SharedLibraryClass.h.

## isValid()

template<class T >

bool shlibpp::SharedLibraryClass< T >::isValid | ( |  | ) | const

inline

Check whether a valid instance has been created.

Returns
  true iff a valid instance has been created

Definition at line 133 of file SharedLibraryClass.h.

## open()

template<class T >

bool shlibpp::SharedLibraryClass< T >::open | ( | SharedLibraryClassFactory< T > & | factory | ) |

inline

Construct an instance using the specified factory.

If an instance has already been made, it is destroyed.

Parameters

  factory | the factory to use to construct (and eventually destroy) the instance.

Returns
  true on success

Definition at line 76 of file SharedLibraryClass.h.

## operator*()

template<class T >

T & shlibpp::SharedLibraryClass< T >::operator* | ( |  | ) |

inline

Shorthand for SharedLibraryClass::getContent.

Returns
  the created instance

Definition at line 143 of file SharedLibraryClass.h.

## operator->()

template<class T >

T * shlibpp::SharedLibraryClass< T >::operator-> | ( |  | ) |

inline

A pointer version of SharedLibraryClass::getContent.

Returns
  a pointer to the created instance, or nullptr if there is none

Definition at line 153 of file SharedLibraryClass.h.

## Member Data Documentation

## content

template<class T >

T* shlibpp::SharedLibraryClass< T >::content

private

Definition at line 42 of file SharedLibraryClass.h.

## pfactory

template<class T >

SharedLibraryClassFactory<T>* shlibpp::SharedLibraryClass< T >::pfactory

private

Definition at line 43 of file SharedLibraryClass.h.

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

- src/plugins/dll/include/robottestingframework/dll/SharedLibraryClass.h