Changeset 11084


Ignore:
Timestamp:
06/20/11 21:37:19 (13 years ago)
Author:
tbretz
Message:
Unified size checking of DimService
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/gui/FactGui.h

    r11066 r11084  
    736736                const T &ref(uint32_t offset=0) const { return *reinterpret_cast<const T*>(data.data()+offset); }
    737737
    738             vector<char> vec(int b) const { return vector<char>(data.begin()+b, data.end()); }
    739             string str(unsigned int b) const { return b>=data.size()?string():string(data.data()+b, data.size()-b); }
    740             const char *c_str() const { return (char*)data.data(); }
    741 
    742             vector<boost::any> any() const
    743             {
    744                 const Converter conv(format);
    745                 conv.Print();
    746                 return conv.GetAny(data.data(), data.size());
    747             }
    748             int size() const { return data.size(); }
     738        vector<char> vec(int b) const { return vector<char>(data.begin()+b, data.end()); }
     739        string str(unsigned int b) const { return b>=data.size()?string():string(data.data()+b, data.size()-b); }
     740        const char *c_str() const { return (char*)data.data(); }
     741
     742        vector<boost::any> any() const
     743        {
     744            const Converter conv(format);
     745            conv.Print();
     746            return conv.GetAny(data.data(), data.size());
     747        }
     748        size_t size() const { return data.size(); }
    749749    };
    750750
     
    902902    }
    903903
     904
     905    // ===================== All ============================================
     906
     907    bool CheckSize(const DimData &d, size_t sz) const
     908    {
     909        if (d.size()==0)
     910            return false;
     911
     912        if (d.size()!=sz)
     913        {
     914            cout << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << sz << endl;
     915            return false;
     916        }
     917
     918        return true;
     919    }
     920
    904921    // ===================== FAD ============================================
    905922
    906923    void handleFadFiles(const DimData &d)
    907924    {
    908         if (d.size()==0)
    909             return;
    910 
    911         if (d.size()!=8)
    912         {
    913             cout << "Size mismatch: " << d.size() << " " << 8 << endl;
    914             return;
    915         }
     925        if (!CheckSize(d, 8))
     926            return;
    916927
    917928        fEvtBuilderOpenFiles->setValue(d.get<uint64_t>());
     
    920931    void handleFadRuns(const DimData &d)
    921932    {
    922         if (d.size()==0)
    923             return;
    924 
    925         if (d.size()!=4)
    926         {
    927             cout << "Size mismatch: " << d.size() << " " << 8 << endl;
    928             return;
    929         }
     933        if (!CheckSize(d, 4))
     934            return;
    930935
    931936        fEvtsRunMax->setValue(d.get<uint32_t>());
     
    934939    void handleFadEvents(const DimData &d)
    935940    {
    936         if (d.size()==0)
    937             return;
    938 
    939         if (d.size()!=8)
    940         {
    941             cout << "Size mismatch: " << d.size() << " " << 8 << endl;
    942             return;
    943         }
     941        if (!CheckSize(d, 8))
     942            return;
    944943
    945944        const uint32_t *ptr = d.ptr<uint32_t>();
     
    951950    void handleFadCurrentEvent(const DimData &d)
    952951    {
    953         if (d.size()==0)
    954             return;
    955 
    956         if (d.size()!=4)
    957         {
    958             cout << "Size mismatch: " << d.size() << " " << 4 << endl;
    959             return;
    960         }
     952        if (!CheckSize(d, 4))
     953            return;
    961954
    962955        fEvtsTriggerId->setValue(d.get<uint32_t>());
     
    965958    void handleFadConnections(const DimData &d)
    966959    {
    967         if (d.size()==0)
    968             return;
    969 
    970         if (d.size()!=40)
    971         {
    972             cout << "Size mismatch: " << d.size() << " " << 40 << endl;
    973             return;
    974         }
     960        if (!CheckSize(d, 40))
     961            return;
    975962
    976963        const uint8_t *ptr = d.ptr<uint8_t>();
     
    10341021    void handleFtmTriggerCounter(const DimData &d)
    10351022    {
    1036         if (d.size()==0)
    1037             return;
    1038 
    1039         if (d.size()!=sizeof(FTM::DimTriggerCounter))
    1040         {
    1041             cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimTriggerCounter) << endl;
    1042             return;
    1043         }
     1023        if (!CheckSize(d, sizeof(FTM::DimTriggerCounter)))
     1024            return;
    10441025
    10451026        const FTM::DimTriggerCounter &sdata = d.ref<FTM::DimTriggerCounter>();
     
    11181099    void handleFtmCounter(const DimData &d)
    11191100    {
    1120         if (d.size()==0)
    1121             return;
    1122 
    1123         if (d.size()!=sizeof(uint32_t)*6)
    1124         {
    1125             cout << "Size mismatch: " << d.size() << " " << sizeof(uint32_t)*6 << endl;
    1126             return;
    1127         }
     1101        if (!CheckSize(d, sizeof(uint32_t)*6))
     1102            return;
    11281103
    11291104        const uint32_t *sdata = d.ptr<uint32_t>();
     
    11421117    void handleFtmDynamicData(const DimData &d)
    11431118    {
    1144         if (d.size()==0)
    1145             return;
    1146 
    1147         if (d.size()!=sizeof(FTM::DimDynamicData))
    1148         {
    1149             cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimDynamicData) << endl;
    1150             return;
    1151         }
     1119        if (!CheckSize(d, sizeof(FTM::DimDynamicData)))
     1120            return;
    11521121
    11531122        const FTM::DimDynamicData &sdata = d.ref<FTM::DimDynamicData>();
     
    13351304    void handleFtmStaticData(const DimData &d)
    13361305    {
    1337         if (d.size()==0)
    1338             return;
    1339 
    1340         if (d.size()!=sizeof(FTM::DimStaticData))
    1341         {
    1342             cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimStaticData) << endl;
    1343             return;
    1344         }
     1306        if (!CheckSize(d, sizeof(FTM::DimStaticData)))
     1307            return;
    13451308
    13461309        const FTM::DimStaticData &sdata = d.ref<FTM::DimStaticData>();
     
    14211384    void handleFtmPassport(const DimData &d)
    14221385    {
    1423         if (d.size()==0)
    1424             return;
    1425 
    1426         if (d.size()!=sizeof(FTM::DimPassport))
    1427         {
    1428             cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimPassport) << endl;
    1429             return;
    1430         }
     1386        if (!CheckSize(d, sizeof(FTM::DimPassport)))
     1387            return;
    14311388
    14321389        const FTM::DimPassport &sdata = d.ref<FTM::DimPassport>();
     
    14421399    void handleFtmFtuList(const DimData &d)
    14431400    {
    1444         if (d.size()==0)
    1445             return;
    1446 
    1447         if (d.size()!=sizeof(FTM::DimFtuList))
    1448         {
    1449             cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimFtuList) << endl;
    1450             return;
    1451         }
     1401        if (!CheckSize(d, sizeof(FTM::DimFtuList)))
     1402            return;
    14521403
    14531404        fFtuPing->setChecked(false);
     
    14861437    void handleFtmError(const DimData &d)
    14871438    {
    1488         if (d.size()==0)
     1439        if (!CheckSize(d, sizeof(FTM::DimError)))
    14891440            return;
    14901441
Note: See TracChangeset for help on using the changeset viewer.