Factory.hh File Reference
#include <chrono>
#include <functional>
#include <memory>
#include <tuple>
#include <gz/plugin/EnablePluginFromThis.hh>
#include <gz/plugin/detail/Factory.hh>
Go to the source code of this file.
Classes | |
class | Factory< Interface, Args > |
The Factory class defines a plugin factory that can be used by the Loader class to produce products that implement an interface. More... | |
Namespaces | |
namespace | gz |
namespace | gz::plugin |
Typedefs | |
template<typename Interface > | |
using | ProductPtr = std::unique_ptr< Interface, ProductDeleter< Interface > > |
ProductPtr is a derivative of std::unique_ptr that can safely manage the products that come out of a plugin factory. It is strongly recommended that factory products use a ProductPtr to manage the lifecycle of a factory product. | |
Functions | |
void | CleanupLostProducts (const std::chrono::nanoseconds &_safetyWait=std::chrono::nanoseconds(5)) |
Call this function to cleanup the Factories of any Products which were not managed by a ProductPtr or deleted by a ProductDeleter (in other words, the Product was released from its ProductPtr and then its lifecycle was managed by a framework that does not know it has special deletion requirements). | |
std::size_t | LostProductCount () |
Get the number of lost products that have currently accumulated since the last time CleanupLostProducts() was called (or since the program began, if CleanupLostProducts() has not been called yet). | |