9 #define epicsExportSharedSymbols 26 args(std::ostream& strm,
37 while(i--) strm.put(
' ');
54 for(
size_t i=0, N=names.size();
i<N;
i++)
56 if(mask && !mask->
get(children[
i]->getFieldOffset()))
continue;
63 A.strm<<
'\"'<<names[
i]<<
"\": ";
64 show_field(A, children[
i].
get(), mask);
80 A.strm<<
'\"'<<scalar->
getAs<std::string>()<<
'\"';
82 A.strm<<scalar->
getAs<std::string>();
92 scalar->
getAs<
void>(arr);
97 for(
size_t i=0, N=sarr.size();
i<N;
i++) {
110 show_struct(A, static_cast<const pvd::PVStructure*>(fld), mask);
118 for(
size_t i=0, N=arr.size();
i<N;
i++) {
123 show_struct(A, arr[i].
get(), 0);
136 const pvd::PVField::const_shared_pointer& C(U->
get());
141 show_field(A, C.get(), 0);
151 for(
size_t i=0, N=arr.size();
i<N;
i++) {
156 show_field(A, arr[i].
get(), 0);
169 if(A.opts.ignoreUnprintable)
170 A.strm<<
"// unprintable field type";
172 throw std::runtime_error(
"Encountered unprintable field type");
184 pvd::PVField::const_shared_pointer fld = top.
getSubFieldT(idx);
187 for(
size_t i=idx+1, N=fld->getNextFieldOffset();
i<N;
i++)
194 mask.
set(parent->getFieldOffset());
203 namespace epics{
namespace pvData{
207 ,ignoreUnprintable(
true)
218 expandBS(val, emask,
true);
219 if(!emask.
get(0))
return;
220 show_struct(A, &val, &emask);
228 show_field(A, &val, 0);
const PVFieldPtrArray & getPVFields() const
PVScalar is the base class for each scalar field.
Data class for a unionArray.
bool get(uint32 bitIndex) const
const FieldConstPtr & getField() const
pvd::StructureConstPtr type
TODO only here because of the Lockable.
std::tr1::shared_ptr< const Structure > StructureConstPtr
::epics::pvData::shared_vector< const PVStructurePtr > const_svector
Options used during printing.
PVField is the base class for each PVData field.
unsigned indent
Initial indentation (# of spaces)
const ScalarConstPtr getScalar() const
void getAs(shared_vector< const T > &out) const
Base class for a scalarArray.
int32 nextSetBit(uint32 fromIndex) const
PVUnion has a single subfield.
void printJSON(std::ostream &strm, const PVStructure &val, const BitSet &mask, const JSONPrintOptions &opts)
const ScalarArrayConstPtr getScalarArray() const
std::vector< PVFieldPtr > PVFieldPtrArray
Data interface for a structure,.
FORCE_INLINE std::tr1::shared_ptr< PVField > getSubFieldT(A a)
std::vector< std::string > StringArray
const StructureConstPtr & getStructure() const
virtual const_svector view() const OVERRIDE
Fetch a read-only view of the current array data.
BitSet & set(uint32 bitIndex)
PVStructure * getParent()
bool multiLine
include new lines
::epics::pvData::shared_vector< const PVUnionPtr > const_svector
std::size_t getNumberFields() const