This is Unofficial EPICS BASE Doxygen Site
pvIntrospect.h File Reference
#include <string>
#include <stdexcept>
#include <iostream>
#include <map>
#include <epicsAssert.h>
#include <pv/lock.h>
#include <pv/noDefaultMethods.h>
#include <pv/pvType.h>
#include <pv/byteBuffer.h>
#include <pv/serialize.h>
#include <pv/pvdVersion.h>
#include <shareLib.h>
+ Include dependency graph for pvIntrospect.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  epics::pvData::format::indent_level
 
struct  epics::pvData::format::indent_scope
 
struct  epics::pvData::format::indent
 
struct  epics::pvData::format::array_at
 
struct  epics::pvData::format::array_at_internal
 
class  epics::pvData::PVValueArray< T >
 template class for all extensions of PVArray. More...
 
class  epics::pvData::Field
 This class implements introspection object for field. More...
 
class  epics::pvData::Scalar
 This class implements introspection object for Scalar. More...
 
class  epics::pvData::BoundedString
 This class implements introspection object for BoundedString. More...
 
class  epics::pvData::Array
 This class implements introspection object for Array. More...
 
class  epics::pvData::ScalarArray
 This class implements introspection object for scalar array. More...
 
class  epics::pvData::BoundedScalarArray
 This class implements introspection object for bounded scalar array. More...
 
class  epics::pvData::FixedScalarArray
 This class implements introspection object for bounded scalar array. More...
 
class  epics::pvData::StructureArray
 This class implements introspection object for a structureArray. More...
 
class  epics::pvData::UnionArray
 This class implements introspection object for a unionArray. More...
 
class  epics::pvData::Structure
 This class implements introspection object for a structure. More...
 
class  epics::pvData::Union
 This class implements introspection object for a union. More...
 
class  epics::pvData::FieldBuilder
 Interface for in-line creating of introspection interfaces. More...
 
class  epics::pvData::FieldCreate
 This is a singleton class for creating introspection interfaces. More...
 
struct  epics::pvData::ScalarTypeID< T >
 
struct  epics::pvData::ScalarTypeTraits< ID >
 

Namespaces

 epics
 TODO only here because of the Lockable.
 
 epics::pvData
 pvData
 
 epics::pvData::format
 
 epics::pvData::TypeFunc
 Convenience functions for Type.
 
 epics::pvData::ScalarTypeFunc
 Convenience functions for ScalarType.
 
 epics::pvData::detail
 
 std
 

Macros

#define PVD_DEPRECATED(msg)   EPICS_DEPRECATED
 
#define PVD_DEPRECATED_52   PVD_DEPRECATED("See https://github.com/epics-base/pvDataCPP/issues/52")
 
#define FINAL
 
#define OVERRIDE
 
#define MAX_SCALAR_TYPE   pvString
 
#define OP(ENUM, TYPE)
 
#define MAKE_COMPARE(CLASS)
 

Typedefs

typedef std::tr1::shared_ptr< const Field > epics::pvData::FieldConstPtr
 
typedef std::vector< FieldConstPtr > epics::pvData::FieldConstPtrArray
 
typedef std::tr1::shared_ptr< const Scalar > epics::pvData::ScalarConstPtr
 
typedef std::tr1::shared_ptr< const Array > epics::pvData::ArrayConstPtr
 
typedef std::tr1::shared_ptr< const ScalarArray > epics::pvData::ScalarArrayConstPtr
 
typedef std::tr1::shared_ptr< const Structure > epics::pvData::StructureConstPtr
 
typedef std::tr1::shared_ptr< const StructureArray > epics::pvData::StructureArrayConstPtr
 
typedef std::tr1::shared_ptr< const Union > epics::pvData::UnionConstPtr
 
typedef std::tr1::shared_ptr< const UnionArray > epics::pvData::UnionArrayConstPtr
 
typedef std::tr1::shared_ptr< const BoundedString > epics::pvData::BoundedStringConstPtr
 
typedef std::tr1::shared_ptr< FieldCreate > epics::pvData::FieldCreatePtr
 
typedef std::tr1::shared_ptr< FieldBuilder > epics::pvData::FieldBuilderPtr
 

Enumerations

enum  epics::pvData::Type {
  epics::pvData::scalar, epics::pvData::scalarArray, epics::pvData::structure, epics::pvData::structureArray,
  epics::pvData::union_, epics::pvData::unionArray
}
 
enum  epics::pvData::ScalarType {
  epics::pvData::pvBoolean, epics::pvData::pvByte, epics::pvData::pvShort, epics::pvData::pvInt,
  epics::pvData::pvLong, epics::pvData::pvUByte, epics::pvData::pvUShort, epics::pvData::pvUInt,
  epics::pvData::pvULong, epics::pvData::pvFloat, epics::pvData::pvDouble, epics::pvData::pvString
}
 

Functions

long & epics::pvData::format::indent_value (std::ios_base &ios)
 
std::ostream & epics::pvData::format::operator<< (std::ostream &os, indent_level const &indent)
 
std::ostream & epics::pvData::format::operator<< (std::ostream &os, indent const &)
 
array_at_internal epics::pvData::format::operator<< (std::ostream &str, array_at const &manip)
 
const char * epics::pvData::TypeFunc::name (Type t)
 
std::ostream & epics::pvData::operator<< (std::ostream &o, const Type &type)
 
bool epics::pvData::ScalarTypeFunc::isInteger (ScalarType type)
 
bool epics::pvData::ScalarTypeFunc::isUInteger (ScalarType type)
 
bool epics::pvData::ScalarTypeFunc::isNumeric (ScalarType type)
 
bool epics::pvData::ScalarTypeFunc::isPrimitive (ScalarType type)
 
epicsShareExtern ScalarType epics::pvData::ScalarTypeFunc::getScalarType (std::string const &value)
 
const char * epics::pvData::ScalarTypeFunc::name (ScalarType t)
 
size_t epics::pvData::ScalarTypeFunc::elementSize (ScalarType id)
 gives sizeof(T) where T depends on the scalar type id. More...
 
std::ostream & epics::pvData::operator<< (std::ostream &o, const ScalarType &scalarType)
 
std::ostream & epics::pvData::operator<< (std::ostream &o, const Field &f)
 
FORCE_INLINE const FieldCreatePtr & epics::pvData::getFieldCreate ()
 
bool epics::pvData::compare (const Field &a, const Field &b)
 
bool epics::pvData::compare (const Scalar &a, const Scalar &b)
 
bool epics::pvData::compare (const ScalarArray &a, const ScalarArray &b)
 
bool epics::pvData::compare (const Structure &a, const Structure &b)
 
bool epics::pvData::compare (const StructureArray &a, const StructureArray &b)
 
bool epics::pvData::compare (const Union &a, const Union &b)
 
bool epics::pvData::compare (const UnionArray &a, const UnionArray &b)
 
bool epics::pvData::compare (const BoundedString &a, const BoundedString &b)
 
std::ostream & std::operator<< (std::ostream &o, const epics::pvData::Field *ptr)
 

Macro Definition Documentation

#define FINAL

Definition at line 51 of file pvIntrospect.h.

#define MAKE_COMPARE (   CLASS)
Value:
static FORCE_INLINE bool operator==(const CLASS& a, const CLASS& b) {return (void*)&a==(void*)&b;} \
static FORCE_INLINE bool operator!=(const CLASS& a, const CLASS& b) {return !(a==b);}
#define static
Definition: reader.c:44
#define FORCE_INLINE
Definition: templateMeta.h:20
bool operator!=(const epics::pvData::shared_vector< A > &a, const epics::pvData::shared_vector< B > &b)
Definition: sharedVector.h:978
bool operator==(const epics::pvData::shared_vector< A > &a, const epics::pvData::shared_vector< B > &b)
Definition: sharedVector.h:967

Equality with other Field

The creation process of class FieldCreate ensures that identical field definitions will share the same instance. So pointer equality is sufficient to show defintion equality. If in doubt, compare() will do an full test.

Definition at line 1476 of file pvIntrospect.h.

#define MAX_SCALAR_TYPE   pvString

Definition at line 280 of file pvIntrospect.h.

#define OP (   ENUM,
  TYPE 
)
Value:
template<> struct ScalarTypeTraits<ENUM> {typedef TYPE type;}; \
template<> struct ScalarTypeID<TYPE> { enum {value=ENUM}; }; \
template<> struct ScalarTypeID<const TYPE> { enum {value=ENUM}; };
Definition: link.h:174
#define TYPE
Definition: defs.h:70
pvd::StructureConstPtr type

Definition at line 1442 of file pvIntrospect.h.

#define OVERRIDE

Definition at line 58 of file pvIntrospect.h.

#define PVD_DEPRECATED (   msg)    EPICS_DEPRECATED
Author
mrk and Michael Davidsaver

Definition at line 33 of file pvIntrospect.h.

#define PVD_DEPRECATED_52   PVD_DEPRECATED("See https://github.com/epics-base/pvDataCPP/issues/52")

Definition at line 35 of file pvIntrospect.h.