[#BloombergLP-bdlma-Factory] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlma.adoc[bdlma]::Factory :relfileprefix: ../../ :mrdocs: Provide a protocol for a thread‐safe object creator and deleter. == Synopsis Declared in `<bdlma_factory.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class TYPE> class Factory : public xref:BloombergLP/bdlma/Deleter.adoc[Deleter<TYPE>] ---- == Description This `class` provides a protocol (or pure interface) for a thread‐safe object creator and deleter. It extends the `Deleter` protocol with the addition of a `createObject` method. == Base Classes [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bdlma/Deleter.adoc[Deleter<TYPE>]` | Provide a protocol (or pure interface) for a thread‐safe object deleter. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlma/Factory/2destructor.adoc[`~Factory`] [.small]#[destructor]# [.small]#[virtual]# | Destroy this object factory. | xref:BloombergLP/bdlma/Factory/createObject.adoc[`createObject`] [.small]#[virtual]# | Create a default‐constructed instance of `TYPE`. | xref:BloombergLP/bdlma/Factory/deleteObject.adoc[`deleteObject`] [.small]#[virtual]# | Destroy the specified `instance` and release its memory. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlcc/ObjectPool.adoc[`ObjectPool`] | Thread‐safe pool of reusable objects that implements `bdlma::Factory`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#