PVData C++ 8.0.7
Loading...
Searching...
No Matches
epics::pvData::PVStructure Class Reference

Data interface for a structure,. More...

#include <pv/pvData.h>

Inheritance diagram for epics::pvData::PVStructure:
Collaboration diagram for epics::pvData::PVStructure:

Classes

struct  Formatter
 

Public Types

typedef std::tr1::shared_ptr< PVStructureshared_pointer
 
typedef std::tr1::shared_ptr< const PVStructureconst_shared_pointer
 
typedef std::tr1::weak_ptr< PVStructureweak_pointer
 
typedef std::tr1::weak_ptr< const PVStructureconst_weak_pointer
 
typedef PVStructurereference
 
typedef const PVStructureconst_reference
 
- Public Types inherited from epics::pvData::PVField
enum  { isPVField =1 }
 
typedef std::tr1::shared_ptr< PVFieldshared_pointer
 
typedef std::tr1::shared_ptr< const PVFieldconst_shared_pointer
 
typedef std::tr1::weak_ptr< PVFieldweak_pointer
 
typedef std::tr1::weak_ptr< const PVFieldconst_weak_pointer
 

Public Member Functions

virtual ~PVStructure ()
 
virtual void setImmutable ()
 
const StructureConstPtrgetStructure () const
 
const PVFieldPtrArraygetPVFields () const
 
template<typename A >
std::tr1::shared_ptr< PVFieldgetSubField (A a)
 
template<typename A >
std::tr1::shared_ptr< const PVFieldgetSubField (A a) const
 
template<typename PVD , typename A >
std::tr1::shared_ptr< PVD > getSubField (A a)
 
template<typename PVD , typename A >
std::tr1::shared_ptr< const PVD > getSubField (A a) const
 
template<typename A >
std::tr1::shared_ptr< PVFieldgetSubFieldT (A a)
 
template<typename A >
std::tr1::shared_ptr< const PVFieldgetSubFieldT (A a) const
 
template<typename PVD , typename A >
std::tr1::shared_ptr< PVD > getSubFieldT (A a)
 
template<typename PVD , typename A >
std::tr1::shared_ptr< const PVD > getSubFieldT (A a) const
 
virtual void serialize (ByteBuffer *pbuffer, SerializableControl *pflusher) const
 
virtual void deserialize (ByteBuffer *pbuffer, DeserializableControl *pflusher)
 
virtual void serialize (ByteBuffer *pbuffer, SerializableControl *pflusher, BitSet *pbitSet) const
 
virtual void deserialize (ByteBuffer *pbuffer, DeserializableControl *pflusher, BitSet *pbitSet)
 
 PVStructure (StructureConstPtr const &structure)
 
 PVStructure (StructureConstPtr const &structure, PVFieldPtrArray const &pvFields)
 
virtual std::ostream & dumpValue (std::ostream &o) const
 
void copy (const PVStructure &from)
 
void copyUnchecked (const PVStructure &from)
 
void copyUnchecked (const PVStructure &from, const BitSet &maskBitSet, bool inverse=false)
 
Formatter stream () const
 
- Public Member Functions inherited from epics::pvData::PVField
virtual ~PVField ()
 
const std::string & getFieldName () const
 
std::string getFullName () const
 
std::size_t getFieldOffset () const
 
std::size_t getNextFieldOffset () const
 
std::size_t getNumberFields () const
 
bool isImmutable () const
 
const FieldConstPtrgetField () const
 
PVStructuregetParent ()
 
const PVStructuregetParent () const
 
void postPut ()
 
void setPostHandler (PostHandlerPtr const &postHandler)
 
virtual bool equals (PVField &pv)
 
void copy (const PVField &from)
 
void copyUnchecked (const PVField &from)
 
- Public Member Functions inherited from epics::pvData::Serializable
virtual ~Serializable ()
 
- Public Member Functions inherited from epics::pvData::BitSetSerializable
virtual ~BitSetSerializable ()
 

Friends

class PVDataCreate
 

Additional Inherited Members

- Static Public Attributes inherited from epics::pvData::PVField
static size_t num_instances
 
- Protected Member Functions inherited from epics::pvData::PVField
PVField::shared_pointer getPtrSelf ()
 
 PVField (FieldConstPtr field)
 
void setParentAndName (PVStructure *parent, std::string const &fieldName)
 

Detailed Description

Data interface for a structure,.

Definition at line 712 of file pvData.h.

Member Typedef Documentation

◆ const_reference

◆ const_shared_pointer

std::tr1::shared_ptr<const PVStructure> epics::pvData::PVStructure::const_shared_pointer

Definition at line 715 of file pvData.h.

◆ const_weak_pointer

std::tr1::weak_ptr<const PVStructure> epics::pvData::PVStructure::const_weak_pointer

Definition at line 715 of file pvData.h.

◆ reference

◆ shared_pointer

std::tr1::shared_ptr<PVStructure> epics::pvData::PVStructure::shared_pointer

Definition at line 715 of file pvData.h.

◆ weak_pointer

std::tr1::weak_ptr<PVStructure> epics::pvData::PVStructure::weak_pointer

Definition at line 715 of file pvData.h.

Constructor & Destructor Documentation

◆ ~PVStructure()

virtual epics::pvData::PVStructure::~PVStructure ( )
virtual

Destructor

◆ PVStructure() [1/2]

epics::pvData::PVStructure::PVStructure ( StructureConstPtr const & structure)
explicit

Constructor

Parameters
structureThe introspection interface.

◆ PVStructure() [2/2]

epics::pvData::PVStructure::PVStructure ( StructureConstPtr const & structure,
PVFieldPtrArray const & pvFields )

Constructor

Parameters
structureThe introspection interface.
pvFieldsThe array of fields for the structure.

Member Function Documentation

◆ deserialize() [1/2]

virtual void epics::pvData::PVStructure::deserialize ( ByteBuffer * pbuffer,
DeserializableControl * pflusher )
virtual

Deserialize

Parameters
pbufferThe byte buffer.
pflusherInterface to call when buffer is empty.

Implements epics::pvData::Serializable.

◆ deserialize() [2/2]

virtual void epics::pvData::PVStructure::deserialize ( ByteBuffer * pbuffer,
DeserializableControl * pflusher,
BitSet * pbitSet )
virtual

Deserialize

Parameters
pbufferThe byte buffer.
pflusherInterface to call when buffer is empty.
pbitSetA bitset the specifies which fields to deserialize.

Implements epics::pvData::BitSetSerializable.

◆ dumpValue()

virtual std::ostream & epics::pvData::PVStructure::dumpValue ( std::ostream & o) const
virtual

Puts the PVField raw value to the stream.

Parameters
ooutput stream.
Returns
The output stream.

Implements epics::pvData::PVField.

◆ getPVFields()

const PVFieldPtrArray & epics::pvData::PVStructure::getPVFields ( ) const
inline

Get the array of pointers to the subfields in the structure.

Returns
The array.

Definition at line 736 of file pvData.h.

◆ getStructure()

const StructureConstPtr & epics::pvData::PVStructure::getStructure ( ) const
inline

Get the introspection interface

Returns
The interface.

Definition at line 731 of file pvData.h.

◆ getSubField() [1/4]

template<typename A >
std::tr1::shared_ptr< PVField > epics::pvData::PVStructure::getSubField ( A a)
inline

Get the subfield with the specified offset.

Parameters
aA sub-field name or index
Returns
Pointer to the field or NULL if field does not exist.

Definition at line 744 of file pvData.h.

◆ getSubField() [2/4]

template<typename PVD , typename A >
std::tr1::shared_ptr< PVD > epics::pvData::PVStructure::getSubField ( A a)
inline

Get a subfield with the specified name.

Parameters
aA sub-field name or index
Returns
A pointer to the sub-field or null if field does not exist or has a different type
PVIntPtr ptr = pvStruct->getSubField<PVInt>("substruct.leaffield");
Class that holds the data for each possible scalar type.
Definition pvData.h:378

A field name is a '.' delimited list of child field names (no whitespace allowed)

Definition at line 766 of file pvData.h.

◆ getSubField() [3/4]

template<typename A >
std::tr1::shared_ptr< const PVField > epics::pvData::PVStructure::getSubField ( A a) const
inline

Definition at line 750 of file pvData.h.

◆ getSubField() [4/4]

template<typename PVD , typename A >
std::tr1::shared_ptr< const PVD > epics::pvData::PVStructure::getSubField ( A a) const
inline

Definition at line 773 of file pvData.h.

◆ getSubFieldT() [1/4]

template<typename A >
std::tr1::shared_ptr< PVField > epics::pvData::PVStructure::getSubFieldT ( A a)
inline

Get the subfield with the specified offset.

Parameters
aA sub-field name or index
Exceptions
std::runtime_errorif the requested sub-field doesn't exist, or has a different type
Returns
Pointer to the field

Definition at line 786 of file pvData.h.

◆ getSubFieldT() [2/4]

template<typename PVD , typename A >
std::tr1::shared_ptr< PVD > epics::pvData::PVStructure::getSubFieldT ( A a)
inline

Definition at line 806 of file pvData.h.

◆ getSubFieldT() [3/4]

template<typename A >
std::tr1::shared_ptr< const PVField > epics::pvData::PVStructure::getSubFieldT ( A a) const
inline

Definition at line 792 of file pvData.h.

◆ getSubFieldT() [4/4]

template<typename PVD , typename A >
std::tr1::shared_ptr< const PVD > epics::pvData::PVStructure::getSubFieldT ( A a) const
inline

Definition at line 816 of file pvData.h.

◆ serialize() [1/2]

virtual void epics::pvData::PVStructure::serialize ( ByteBuffer * pbuffer,
SerializableControl * pflusher ) const
virtual

Serialize.

Parameters
pbufferThe byte buffer.
pflusherInterface to call when buffer is full.

Implements epics::pvData::Serializable.

◆ serialize() [2/2]

virtual void epics::pvData::PVStructure::serialize ( ByteBuffer * pbuffer,
SerializableControl * pflusher,
BitSet * pbitSet ) const
virtual

Serialize.

Parameters
pbufferThe byte buffer.
pflusherInterface to call when buffer is full.
pbitSetA bitset the specifies which fields to serialize.

Implements epics::pvData::BitSetSerializable.

◆ setImmutable()

virtual void epics::pvData::PVStructure::setImmutable ( )
virtual

Set the field to be immutable, i.e. it can no longer be modified. This is permanent, i.e. once done the field cannot be made mutable.

Reimplemented from epics::pvData::PVField.

◆ stream()

Formatter epics::pvData::PVStructure::stream ( ) const
inline

Definition at line 913 of file pvData.h.

Friends And Related Symbol Documentation

◆ PVDataCreate

friend class PVDataCreate
friend

Definition at line 926 of file pvData.h.


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