10 #define PVINTROSPECT_H 17 #include <epicsAssert.h> 20 #include <pv/noDefaultMethods.h> 21 #include <pv/pvType.h> 22 #include <pv/byteBuffer.h> 23 #include <pv/serialize.h> 24 #include <pv/pvdVersion.h> 28 #if defined(PVD_INTERNAL) 29 # define PVD_DEPRECATED(msg) 30 #elif __GNUC__
> 4
|| __GNUC__
== 4
&& __GNUC_MINOR__
>= 5
31 # define PVD_DEPRECATED(msg) __attribute__((deprecated(msg))) 33 # define PVD_DEPRECATED(msg) EPICS_DEPRECATED 35 #define PVD_DEPRECATED_52 PVD_DEPRECATED("See https://github.com/epics-base/pvDataCPP/issues/52") 48 # if __cplusplus
>=201103L
55 # if __cplusplus
>=201103L
56 # define OVERRIDE override 62 namespace epics {
namespace pvData {
70 indent_level(
long l) : level(l) {}
73 epicsShareExtern
long& indent_value(std::ios_base& ios);
75 epicsShareExtern std::ostream& operator<<(std::ostream& os, indent_level
const& indent);
80 std::ios_base& stream;
82 indent_scope(std::ios_base& ios) :
85 long& l = indent_value(ios);
92 indent_value(stream) = saved_level;
100 epicsShareExtern std::ostream& operator<<(std::ostream& os, indent
const&);
106 array_at(std::size_t ix) : index(ix) {}
112 std::ostream& stream;
114 array_at_internal(std::size_t ix, std::ostream& str) : index(ix), stream(str) {}
117 epicsShareExtern array_at_internal operator<<(std::ostream& str, array_at
const& manip);
126 class StructureArray;
137 template<
typename T>
class PVValueArray;
280 #define MAX_SCALAR_TYPE pvString 733 template<
typename FT>
753 template<
typename FT>
779 template<
typename FT>
799 template<
typename FT>
913 template<
typename FT>
933 template<
typename FT>
959 template<
typename FT>
979 template<
typename FT>
1060 typedef std::tr1::shared_ptr<FieldCreate> FieldCreatePtr;
1063 typedef std::tr1::shared_ptr<FieldBuilder> FieldBuilderPtr;
1243 struct field_factory;
1417 return FieldCreate::getFieldCreate();
1430 template<
typename T>
1442 #define OP(ENUM, TYPE) template 1443 <> struct ScalarTypeTraits<ENUM> {typedef TYPE type;}; template 1444 <> struct ScalarTypeID<TYPE> { enum {value=ENUM}; }; template 1445 <> struct ScalarTypeID<const TYPE> { enum {value=ENUM}; }; 1476 #define MAKE_COMPARE(CLASS) static 1477 FORCE_INLINE bool operator
==(const CLASS& a, const CLASS& b) {return (void*)&a==(void*)&b;} static 1478 FORCE_INLINE bool operator
!=(const CLASS& a, const CLASS& b) {return !(a==b);} 1496 epicsShareExtern std::ostream& operator<<(std::ostream& o,
const epics::pvData::Field *ptr);
#define PVD_DEPRECATED(msg)
std::tr1::shared_ptr< const StructureArray > StructureArrayConstPtr
std::tr1::shared_ptr< const Structure > StructureConstPtr
epicsShareExtern const char * name(Type type)
This class implements introspection object for Array.
This class implements introspection object for a structureArray.
This class implements introspection object for field.
std::tr1::shared_ptr< const UnionArray > UnionArrayConstPtr
This class implements introspection object for bounded scalar array.
#define POINTER_DEFINITIONS(clazz)
std::tr1::shared_ptr< const Field > FieldConstPtr
This class implements introspection object for a union.
This is a singleton class for creating introspection interfaces.
This class implements introspection object for Scalar.
std::tr1::shared_ptr< const Union > UnionConstPtr
This class implements introspection object for a unionArray.
epicsShareFunc shared_vector< void > allocArray(ScalarType id, size_t len)
Allocate an untyped array based on ScalarType.
This class implements introspection object for scalar array.
#define PVD_DEPRECATED_52
#define MAKE_COMPARE(CLASS)
This class implements introspection object for BoundedString.
#define EPICS_NOT_COPYABLE(CLASS)
Disable implicit copyable.
std::vector< FieldConstPtr > FieldConstPtrArray
epicsShareFunc bool yajl_parse_helper(std::istream &src, yajl_handle handle)
std::tr1::shared_ptr< const ScalarArray > ScalarArrayConstPtr
const FieldCreatePtr & getFieldCreate()
std::tr1::shared_ptr< const Scalar > ScalarConstPtr
Interface for in-line creating of introspection interfaces.
This class implements introspection object for bounded scalar array.
This class implements introspection object for a structure.
std::tr1::shared_ptr< const Array > ArrayConstPtr
std::tr1::shared_ptr< const BoundedString > BoundedStringConstPtr