This is Unofficial EPICS BASE Doxygen Site
epics::pvData::Field Class Referenceabstract

This class implements introspection object for field. More...

#include "pvIntrospect.h"

+ Inheritance diagram for epics::pvData::Field:
+ Collaboration diagram for epics::pvData::Field:

Classes

struct  Helper
 

Public Types

enum  { isField =1 }
 

Public Member Functions

 POINTER_DEFINITIONS (Field)
 
virtual ~Field ()
 
Type getType () const
 
virtual std::string getID () const =0
 
virtual std::ostream & dump (std::ostream &o) const =0
 
std::tr1::shared_ptr< PVFieldbuild () const
 
- Public Member Functions inherited from epics::pvData::Serializable
virtual ~Serializable ()
 
virtual void serialize (ByteBuffer *buffer, SerializableControl *flusher) const =0
 
virtual void deserialize (ByteBuffer *buffer, DeserializableControl *flusher)=0
 

Static Public Attributes

static size_t num_instances
 

Protected Member Functions

 Field (Type type)
 
void cacheCleanup ()
 

Friends

struct Helper
 
class StructureArray
 
class Structure
 
class PVFieldPvt
 
class StandardField
 
class BasePVStructureArray
 
class FieldCreate
 

Detailed Description

This class implements introspection object for field.

Definition at line 336 of file pvIntrospect.h.

Member Enumeration Documentation

anonymous enum
Enumerator
isField 

Definition at line 366 of file pvIntrospect.h.

Constructor & Destructor Documentation

epics::pvData::Field::~Field ( )
virtual

Definition at line 88 of file FieldCreateFactory.cpp.

88  {
89  REFTRACE_DECREMENT(num_instances);
90 }
static size_t num_instances
Definition: pvIntrospect.h:340
epics::pvData::Field::Field ( Type  type)
protected

Constructor

Parameters
typeThe field type.

Definition at line 81 of file FieldCreateFactory.cpp.

82  : m_fieldType(type)
83  , m_hash(0)
84 {
85  REFTRACE_INCREMENT(num_instances);
86 }
pvd::StructureConstPtr type
static size_t num_instances
Definition: pvIntrospect.h:340

Member Function Documentation

std::tr1::shared_ptr< PVField > epics::pvData::Field::build ( ) const

Allocate a new instance

Version
Added after 7.0.0

Definition at line 108 of file FieldCreateFactory.cpp.

109 {
110  FieldConstPtr self(shared_from_this());
111  return getPVDataCreate()->createPVField(self);
112 }
std::tr1::shared_ptr< const Field > FieldConstPtr
Definition: pvIntrospect.h:137
FORCE_INLINE const PVDataCreatePtr & getPVDataCreate()
Definition: pvData.h:1648
void epics::pvData::Field::cacheCleanup ( )
protected

Definition at line 92 of file FieldCreateFactory.cpp.

93 {
94  const FieldCreatePtr& create(getFieldCreate());
95 
96  Lock G(create->mutex);
97 
98  std::pair<FieldCreate::cache_t::iterator, FieldCreate::cache_t::iterator> itp(create->cache.equal_range(m_hash));
99  for(; itp.first!=itp.second; ++itp.first) {
100  Field* cent(itp.first->second);
101  if(cent==this) {
102  create->cache.erase(itp.first);
103  return;
104  }
105  }
106 }
FORCE_INLINE const FieldCreatePtr & getFieldCreate()
std::tr1::shared_ptr< FieldCreate > FieldCreatePtr
virtual std::ostream& epics::pvData::Field::dump ( std::ostream &  o) const
pure virtual

Puts the string representation to the stream.

Parameters
ooutput stream.
Returns
The output stream.

Implemented in epics::pvData::Union, epics::pvData::Structure, epics::pvData::UnionArray, epics::pvData::StructureArray, epics::pvData::ScalarArray, and epics::pvData::Scalar.

virtual std::string epics::pvData::Field::getID ( ) const
pure virtual
Type epics::pvData::Field::getType ( ) const
inline

Get the field type.

Returns
The type.

Definition at line 348 of file pvIntrospect.h.

348 {return m_fieldType;}
epics::pvData::Field::POINTER_DEFINITIONS ( Field  )

Friends And Related Function Documentation

friend class BasePVStructureArray
friend

Definition at line 385 of file pvIntrospect.h.

friend class FieldCreate
friend

Definition at line 386 of file pvIntrospect.h.

friend struct Helper
friend

Definition at line 378 of file pvIntrospect.h.

friend class PVFieldPvt
friend

Definition at line 383 of file pvIntrospect.h.

friend class StandardField
friend

Definition at line 384 of file pvIntrospect.h.

friend class Structure
friend

Definition at line 382 of file pvIntrospect.h.

friend class StructureArray
friend

Definition at line 381 of file pvIntrospect.h.

Member Data Documentation

size_t epics::pvData::Field::num_instances
static

Definition at line 340 of file pvIntrospect.h.


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