This is Unofficial EPICS BASE Doxygen Site
epics::nt::detail::NTContinuumBuilder Class Reference

Interface for in-line creating of NTContinuum. More...

#include "ntcontinuum.h"

+ Inheritance diagram for epics::nt::detail::NTContinuumBuilder:
+ Collaboration diagram for epics::nt::detail::NTContinuumBuilder:

Public Member Functions

 POINTER_DEFINITIONS (NTContinuumBuilder)
 
shared_pointer addDescriptor ()
 
shared_pointer addAlarm ()
 
shared_pointer addTimeStamp ()
 
epics::pvData::StructureConstPtr createStructure ()
 
epics::pvData::PVStructurePtr createPVStructure ()
 
NTContinuumPtr create ()
 
shared_pointer add (std::string const &name, epics::pvData::FieldConstPtr const &field)
 

Friends

class ::epics::nt::NTContinuum
 

Detailed Description

Interface for in-line creating of NTContinuum.

One instance can be used to create multiple instances. An instance of this object must not be used concurrently (an object has a state).

Author
dgh

Definition at line 38 of file ntcontinuum.h.

Member Function Documentation

NTContinuumBuilder::shared_pointer epics::nt::detail::NTContinuumBuilder::add ( std::string const &  name,
epics::pvData::FieldConstPtr const &  field 
)

Adds extra Field to the type.

Parameters
namethe name of the field.
fieldthe field to be added.
Returns
this instance of NTContinuumBuilder.

Definition at line 94 of file ntcontinuum.cpp.

95 {
96  extraFields.push_back(field); extraFieldNames.push_back(name);
97  return shared_from_this();
98 }
NTContinuumBuilder::shared_pointer epics::nt::detail::NTContinuumBuilder::addAlarm ( )

Adds alarm field to the NTContinuum.

Returns
this instance of NTContinuumBuilder.

Definition at line 57 of file ntcontinuum.cpp.

58 {
59  alarm = true;
60  return shared_from_this();
61 }
NTContinuumBuilder::shared_pointer epics::nt::detail::NTContinuumBuilder::addDescriptor ( )

Adds descriptor field to the NTContinuum.

Returns
this instance of NTContinuumBuilder.

Definition at line 51 of file ntcontinuum.cpp.

52 {
53  descriptor = true;
54  return shared_from_this();
55 }
NTContinuumBuilder::shared_pointer epics::nt::detail::NTContinuumBuilder::addTimeStamp ( )

Adds timeStamp field to the NTContinuum.

Returns
this instance of NTContinuumBuilder.

Definition at line 63 of file ntcontinuum.cpp.

64 {
65  timeStamp = true;
66  return shared_from_this();
67 }
NTContinuumPtr epics::nt::detail::NTContinuumBuilder::create ( )

Creates a NTContinuum instance. This resets this instance state and allows new instance to be created.

Returns
a new instance of NTContinuum.

Definition at line 75 of file ntcontinuum.cpp.

76 {
77  return NTContinuumPtr(new NTContinuum(createPVStructure()));
78 }
std::tr1::shared_ptr< NTContinuum > NTContinuumPtr
Definition: ntcontinuum.h:26
epics::pvData::PVStructurePtr createPVStructure()
Definition: ntcontinuum.cpp:70
PVStructurePtr epics::nt::detail::NTContinuumBuilder::createPVStructure ( )

Creates a PVStructure that represents NTContinuum. This resets this instance state and allows new instance to be created.

Returns
a new instance of PVStructure.

Definition at line 70 of file ntcontinuum.cpp.

71 {
72  return getPVDataCreate()->createPVStructure(createStructure());
73 }
epics::pvData::StructureConstPtr createStructure()
Definition: ntcontinuum.cpp:22
FORCE_INLINE const PVDataCreatePtr & getPVDataCreate()
Definition: pvData.h:1648
StructureConstPtr epics::nt::detail::NTContinuumBuilder::createStructure ( )

Creates a Structure that represents NTContinuum. This resets this instance state and allows new instance to be created.

Returns
a new instance of Structure.

Definition at line 22 of file ntcontinuum.cpp.

23 {
24  FieldBuilderPtr builder =
25  getFieldCreate()->createFieldBuilder()->
26  setId(NTContinuum::URI)->
27  addArray("base", pvDouble)->
28  addArray("value", pvDouble)->
29  addArray("units", pvString);
30 
31  if (descriptor)
32  builder->add("descriptor", pvString);
33 
34  if (alarm)
35  builder->add("alarm", ntField->createAlarm());
36 
37  if (timeStamp)
38  builder->add("timeStamp", ntField->createTimeStamp());
39 
40  size_t extraCount = extraFieldNames.size();
41  for (size_t i = 0; i< extraCount; i++)
42  builder->add(extraFieldNames[i], extraFields[i]);
43 
44 
45  StructureConstPtr s = builder->createStructure();
46 
47  reset();
48  return s;
49 }
static const std::string URI
Definition: ntcontinuum.h:123
int i
Definition: scan.c:967
std::tr1::shared_ptr< const Structure > StructureConstPtr
Definition: pvIntrospect.h:162
std::tr1::shared_ptr< FieldBuilder > FieldBuilderPtr
FORCE_INLINE const FieldCreatePtr & getFieldCreate()
epics::nt::detail::NTContinuumBuilder::POINTER_DEFINITIONS ( NTContinuumBuilder  )

Friends And Related Function Documentation

friend class ::epics::nt::NTContinuum
friend

Definition at line 104 of file ntcontinuum.h.


The documentation for this class was generated from the following files: