void ValueBuilder::_add(const std::string& name, const PVStructure& V) { StructureConstPtr T(V.getStructure()); ValueBuilder& self = addNested(name, structure, T->getID()); child_struct::fillStruct(self, V); self.endNested(); }
void PrinterPlain::beginStructure(const PVStructure& pv) { indentN(S(), ilvl); S() << pv.getStructure()->getID() << " " << pv.getFieldName(); S() << std::endl; ilvl++; }
std::tr1::shared_ptr<PVCopy> PVCopy::create( PVRecord &pvRecord, PVStructure &request, String structureName) { PVStructure *pvRequest = &request; if(structureName.length()>0) { if(pvRequest->getStructure()->getNumberFields()>0) { PVStructure *pvStructure = pvRequest->getStructureField(structureName); if(pvStructure==0) return std::tr1::shared_ptr<PVCopy>(); pvRequest = pvStructure; } } std::tr1::shared_ptr<PVCopy> pvCopy = std::tr1::shared_ptr<PVCopy>(new PVCopy(pvRecord)); PVStructure *pvStruct = pvRequest; if(pvRequest->getSubField("field")!=0) { pvStruct = pvRequest->getStructureField("field"); } pvCopy->init(*pvStruct); return pvCopy; }
ValueBuilder::ValueBuilder(const PVStructure& clone) :parent(0) { StructureConstPtr ctype(clone.getStructure()); id = ctype->getID(); child_struct::fillStruct(*this, clone); }