This commit is contained in:
Michael Davidsaver
2020-05-21 17:46:10 -07:00
parent 94d1eedc75
commit 11eeed9d0c

View File

@ -378,6 +378,18 @@ private:
PVIF& operator=(const PVIF&);
};
/** Factory for PVIF instances.
*
* Caller first passes a mapping type (eg. "scalar") to PVIFBuilder::create()
* to obtain a PVIFBuilder which may then by used to create PVIF instances
* for specific dbChannel.
*
* Caller than uses PVIFBuilder::dtype() to obtain (sub)Field descriptions.
* eg. more than one of these may be composed into an overall Structure description.
*
* Caller than creates a PVStructure and uses PVIFBuilder::attach() to
* build mappings for each dbChannel in the composed locations.
*/
struct QSRV_API PVIFBuilder {
virtual ~PVIFBuilder() {}
@ -394,6 +406,7 @@ struct QSRV_API PVIFBuilder {
// must be the root structure
virtual PVIF* attach(dbChannel *channel, const epics::pvData::PVStructurePtr& root, const FieldName& fld) =0;
// entry point for Builder
static PVIFBuilder* create(const std::string& name);
protected:
PVIFBuilder() {}