Class ValueBuilder

Nested Relationships

Nested Types

Class Documentation

class ValueBuilder

Incrementally define and initialize a PVStructure

Equivalent to FieldBuilder with the added ability to assign initial values.

epics::pvData::PVStructurePtr val(epics::pvData::ValueBuilder()
                                  .add<pvInt>("intfld", 42)
                                  .addNested("sub")
                                   .add<pvString>("strfld", "testing")
                                  .endNested()
                                  .buildPVStructure());

Public Functions

explicit ValueBuilder(const std::string &id = std::string())

empty structure

explicit ValueBuilder(const PVStructure&)

Clone existing definition and value.

~ValueBuilder()
template<ScalarType ENUM> inline FORCE_INLINE ValueBuilder & add (const std::string &name, typename meta::arg_type< typename ScalarTypeTraits< ENUM >::type >::type V)

Add a scalar field with a given name and initial value.

template<class T> inline FORCE_INLINE ValueBuilder & add (const std::string &name, const shared_vector< const T > &V)

Add a scalar array field.

inline FORCE_INLINE ValueBuilder & add (const std::string &name, const PVStructure &V)
ValueBuilder &addNested(const std::string &name, Type type = structure, const std::string &id = std::string())

Start a sub-structure.

ValueBuilder &endNested()

End a sub-structure.

std::tr1::shared_ptr<PVStructure> buildPVStructure() const

Complete building structure

Note

ValueBuilder may be re-used after calling buildPVStructure()

struct child

Subclassed by epics::pvData::ValueBuilder::child_scalar_array, epics::pvData::ValueBuilder::child_scalar_base, epics::pvData::ValueBuilder::child_struct

Public Functions

inline virtual ~child()
inline child(Type t)
virtual void build(const std::string &name, FieldBuilderPtr &builder) = 0
virtual void store(const PVFieldPtr &val) = 0

Public Members

Type type
template<typename T>
struct child_scalar : public epics::pvData::ValueBuilder::child_scalar_base

Public Functions

inline virtual ~child_scalar()
inline child_scalar(const void *v)
inline virtual void store (const PVFieldPtr &val) OVERRIDE FINAL

Public Members

T value
struct child_scalar_array : public epics::pvData::ValueBuilder::child

Public Functions

inline virtual ~child_scalar_array()
inline child_scalar_array(const shared_vector<const void> &v)
inline virtual void build (const std::string &name, FieldBuilderPtr &builder) OVERRIDE FINAL
inline virtual void store (const PVFieldPtr &val) OVERRIDE FINAL

Public Members

shared_vector<const void> array
struct child_scalar_base : public epics::pvData::ValueBuilder::child

Subclassed by epics::pvData::ValueBuilder::child_scalar< T >

Public Functions

inline virtual ~child_scalar_base()
inline child_scalar_base(ScalarType s)
inline virtual void build (const std::string &name, FieldBuilderPtr &builder) OVERRIDE FINAL

Public Members

ScalarType stype
struct child_struct : public epics::pvData::ValueBuilder::child

Public Functions

inline virtual ~child_struct()
inline child_struct(ValueBuilder *par, const std::string &id)
inline virtual void build (const std::string &name, FieldBuilderPtr &builder) OVERRIDE FINAL
inline virtual void store (const PVFieldPtr &val) OVERRIDE FINAL

Public Members

ValueBuilder builder

Public Static Functions

static void buildStruct(const ValueBuilder &self, FieldBuilderPtr &builder)
static void storeStruct(const ValueBuilder &self, const PVStructurePtr &val)
static void fillStruct(ValueBuilder &self, const PVStructure &val)