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> 27 #define PVD_DEPRECATED_52 PVD_DEPRECATED("See https://github.com/epics-base/pvDataCPP/issues/52") 40 # if __cplusplus
>=201103L
47 # if __cplusplus
>=201103L
48 # define OVERRIDE override 54 namespace epics {
namespace pvData {
62 indent_level(
long l) : level(l) {}
65 epicsShareExtern
long& indent_value(std::ios_base& ios);
67 epicsShareExtern std::ostream& operator<<(std::ostream& os, indent_level
const& indent);
72 std::ios_base& stream;
74 indent_scope(std::ios_base& ios) :
77 long& l = indent_value(ios);
84 indent_value(stream) = saved_level;
92 epicsShareExtern std::ostream& operator<<(std::ostream& os, indent
const&);
98 array_at(std::size_t ix) : index(ix) {}
104 std::ostream& stream;
106 array_at_internal(std::size_t ix, std::ostream& str) : index(ix), stream(str) {}
109 epicsShareExtern array_at_internal operator<<(std::ostream& str, array_at
const& manip);
118 class StructureArray;
129 template<
typename T>
class PVValueArray;
272 #define MAX_SCALAR_TYPE pvString 725 template<
typename FT>
745 template<
typename FT>
771 template<
typename FT>
791 template<
typename FT>
905 template<
typename FT>
925 template<
typename FT>
951 template<
typename FT>
971 template<
typename FT>
1052 typedef std::tr1::shared_ptr<FieldCreate> FieldCreatePtr;
1055 typedef std::tr1::shared_ptr<FieldBuilder> FieldBuilderPtr;
1235 struct field_factory;
1409 return FieldCreate::getFieldCreate();
1422 template<
typename T>
1434 #define OP(ENUM, TYPE) template 1435 <> struct ScalarTypeTraits<ENUM> {typedef TYPE type;}; template 1436 <> struct ScalarTypeID<TYPE> { enum {value=ENUM}; }; template 1437 <> struct ScalarTypeID<const TYPE> { enum {value=ENUM}; }; 1468 #define MAKE_COMPARE(CLASS) static 1469 FORCE_INLINE bool operator
==(const CLASS& a, const CLASS& b) {return (void*)&a==(void*)&b;} static 1470 FORCE_INLINE bool operator
!=(const CLASS& a, const CLASS& b) {return !(a==b);}
std::tr1::shared_ptr< const StructureArray > StructureArrayConstPtr
#define PVD_DEPRECATED(msg)
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