コード例 #1
0
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();
}
コード例 #2
0
void PrinterPlain::beginStructure(const PVStructure& pv)
{
    indentN(S(), ilvl);
    S() << pv.getStructure()->getID() << " " << pv.getFieldName();
    S() << std::endl;
    ilvl++;
}
コード例 #3
0
ファイル: pvCopy.cpp プロジェクト: epics-base/pvIOCCPP
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;
}
コード例 #4
0
ValueBuilder::ValueBuilder(const PVStructure& clone) :parent(0)
{
    StructureConstPtr ctype(clone.getStructure());
    id = ctype->getID();
    child_struct::fillStruct(*this, clone);
}