Class PVDataCreate

Class Documentation

class PVDataCreate

This is a singleton class for creating data instances.

Public Functions

PVFieldPtr createPVField(FieldConstPtr const &field)

Create a PVField using given Field introspection data.

Parameters

field – The introspection data to be used to create PVField.

Returns

The PVField implementation.

PVFieldPtr createPVField(PVFieldPtr const &fieldToClone)

Create a PVField using given a PVField to clone. This method calls the appropriate createPVScalar, createPVArray, or createPVStructure.

Parameters

fieldToClone – The field to clone.

Returns

The PVField implementation

PVScalarPtr createPVScalar(ScalarConstPtr const &scalar)

Create an implementation of a scalar field reusing the Scalar introspection interface.

Parameters

scalar – The introspection interface.

Returns

The PVScalar implementation.

PVScalarPtr createPVScalar(ScalarType scalarType)

Create an implementation of a scalar field. A Scalar introspection interface is created.

Parameters

scalarType – The scalar type.

Returns

The PVScalar implementation.

PVScalarPtr createPVScalar(PVScalarPtr const &scalarToClone)

Create an implementation of a scalar field by cloning an existing PVScalar. The new PVScalar will have the same value and auxInfo as the original.

Parameters

scalarToClone – The PVScalar to clone.

Returns

The PVScalar implementation.

template<typename PVT>
inline std::tr1::shared_ptr<PVT> createPVScalar()

template version

Template Parameters

PVT – must be a valid PVType

Returns

The PVScalar implementation.

PVStructurePtr createPVStructure(StructureConstPtr const &structure)

Create implementation for PVStructure.

Parameters

structure – The introspection interface.

Returns

The PVStructure implementation

PVStructurePtr createPVStructure(StringArray const &fieldNames, PVFieldPtrArray const &pvFields)

Create implementation for PVStructure.

Parameters
  • fieldNames – The field names.

  • pvFieldsArray of PVFields

Returns

The PVStructure implementation

PVStructurePtr createPVStructure(PVStructurePtr const &structToClone)

Create implementation for PVStructure.

Parameters

structToClone – A structure. Each subfield and any auxInfo is cloned and added to the newly created structure.

Returns

The PVStructure implementation.

PVUnionPtr createPVUnion(UnionConstPtr const &punion)

Create implementation for PVUnion.

Parameters

punion – The introspection interface.

Returns

The PVUnion implementation

PVUnionPtr createPVUnion(PVUnionPtr const &unionToClone)

Create implementation for PVUnion.

Parameters

unionToClone – A union. Each subfield is cloned and added to the newly created union.

Returns

The PVUnion implementation.

PVUnionPtr createPVVariantUnion()

Create variant union implementation.

Returns

The variant PVUnion implementation.

PVScalarArrayPtr createPVScalarArray(ScalarArrayConstPtr const &scalarArray)

Create an implementation of an array field reusing the Array introspection interface.

Parameters

scalarArray – The introspection interface.

Returns

The PVScalarArray implementation.

PVScalarArrayPtr createPVScalarArray(ScalarType elementType)

Create an implementation for an array field. An Array introspection interface is created.

Parameters

elementType – The element type.

Returns

The PVScalarArray implementation.

PVScalarArrayPtr createPVScalarArray(PVScalarArrayPtr const &scalarArrayToClone)

Create an implementation of an array field by cloning an existing PVArray. The new PVArray will have the same value and auxInfo as the original.

Parameters

scalarArrayToClone – The PVScalarArray to clone.

Returns

The PVScalarArray implementation.

template<typename PVAT>
inline std::tr1::shared_ptr<PVAT> createPVScalarArray()

template version

Template Parameters

PVT – must be a valid pvType

Returns

The PVScalarArray implementation.

PVStructureArrayPtr createPVStructureArray(StructureArrayConstPtr const &structureArray)

Create an implementation of an array with structure elements.

Parameters

structureArray – The introspection interface. All elements share the same introspection interface.

Returns

The PVStructureArray implementation.

inline PVStructureArrayPtr createPVStructureArray(StructureConstPtr const &structure)

Create an implementation of an array with structure elements.

Parameters

structure – The introspection interface that is used to create StructureArrayConstPtr. All elements share the same introspection interface.

Returns

The PVStructureArray implementation.

PVUnionArrayPtr createPVUnionArray(UnionArrayConstPtr const &unionArray)

Create an implementation of an array with union elements.

Parameters

unionArray – The introspection interface. All elements share the same introspection interface.

Returns

The PVUnionArray implementation.

inline PVUnionArrayPtr createPVUnionArray(UnionConstPtr const &punion)

Create an implementation of an array with union elements.

Parameters

punion – The introspection interface that is used to create UnionArrayConstPtr. All elements share the same introspection interface.

Returns

The PVUnionArray implementation.

PVUnionArrayPtr createPVVariantUnionArray()

Create variant union array implementation.

Returns

The variant PVUnionArray implementation.

Public Static Functions

static const PVDataCreatePtr &getPVDataCreate()

get the singleton

Returns

The PVDataCreate implementation

Friends

friend struct detail::pvfield_factory