This is Unofficial EPICS BASE Doxygen Site
PVIFBuilder Struct Referenceabstract

#include "pvif.h"

+ Inheritance diagram for PVIFBuilder:

Public Member Functions

virtual ~PVIFBuilder ()
 
virtual epics::pvData::FieldConstPtr dtype (dbChannel *channel)=0
 
virtual epics::pvData::FieldBuilderPtr dtype (epics::pvData::FieldBuilderPtr &builder, const std::string &fld, dbChannel *channel)
 
virtual PVIFattach (dbChannel *channel, const epics::pvData::PVStructurePtr &root, const FieldName &fld)=0
 

Static Public Member Functions

static PVIFBuildercreate (const std::string &name)
 

Protected Member Functions

 PVIFBuilder ()
 

Detailed Description

Definition at line 381 of file pvif.h.

Constructor & Destructor Documentation

virtual PVIFBuilder::~PVIFBuilder ( )
inlinevirtual

Definition at line 383 of file pvif.h.

383 {}
PVIFBuilder::PVIFBuilder ( )
inlineprotected

Definition at line 399 of file pvif.h.

399 {}

Member Function Documentation

virtual PVIF* PVIFBuilder::attach ( dbChannel *  channel,
const epics::pvData::PVStructurePtr root,
const FieldName fld 
)
pure virtual

Implemented in ScalarBuilder.

PVIFBuilder * PVIFBuilder::create ( const std::string &  name)
static

Definition at line 1218 of file pvif.cpp.

1219 {
1220  if(type.empty() || type=="scalar")
1221  return new ScalarBuilder;
1222  else if(type=="plain")
1223  return new PlainBuilder;
1224  else if(type=="any")
1225  return new AnyScalarBuilder;
1226  else if(type=="meta")
1227  return new MetaBuilder;
1228  else if(type=="proc")
1229  return new ProcBuilder;
1230  else
1231  throw std::runtime_error(std::string("Unknown +type=")+type);
1232 }
pvd::StructureConstPtr type
virtual epics::pvData::FieldConstPtr PVIFBuilder::dtype ( dbChannel *  channel)
pure virtual

Implemented in ScalarBuilder.

epics::pvData::FieldBuilderPtr PVIFBuilder::dtype ( epics::pvData::FieldBuilderPtr builder,
const std::string &  fld,
dbChannel *  channel 
)
virtual

Definition at line 1204 of file pvif.cpp.

1207 {
1208  if(fld.empty())
1209  throw std::runtime_error("Can't attach this +type to root");
1210 
1211  epics::pvData::FieldConstPtr ftype(this->dtype(channel));
1212  if(ftype)
1213  builder = builder->add(fld, ftype);
1214 
1215  return builder;
1216 }
virtual epics::pvData::FieldConstPtr dtype(dbChannel *channel)=0
std::tr1::shared_ptr< const Field > FieldConstPtr
Definition: pvIntrospect.h:137

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