Index: trunk/FACT++/gui/FactGui.h
===================================================================
--- trunk/FACT++/gui/FactGui.h	(revision 11083)
+++ trunk/FACT++/gui/FactGui.h	(revision 11084)
@@ -736,15 +736,15 @@
                 const T &ref(uint32_t offset=0) const { return *reinterpret_cast<const T*>(data.data()+offset); }
 
-            vector<char> vec(int b) const { return vector<char>(data.begin()+b, data.end()); }
-            string str(unsigned int b) const { return b>=data.size()?string():string(data.data()+b, data.size()-b); }
-            const char *c_str() const { return (char*)data.data(); }
-
-            vector<boost::any> any() const
-            {
-                const Converter conv(format);
-                conv.Print();
-                return conv.GetAny(data.data(), data.size());
-            }
-            int size() const { return data.size(); }
+        vector<char> vec(int b) const { return vector<char>(data.begin()+b, data.end()); }
+        string str(unsigned int b) const { return b>=data.size()?string():string(data.data()+b, data.size()-b); }
+        const char *c_str() const { return (char*)data.data(); }
+
+        vector<boost::any> any() const
+        {
+            const Converter conv(format);
+            conv.Print();
+            return conv.GetAny(data.data(), data.size());
+        }
+        size_t size() const { return data.size(); }
     };
 
@@ -902,16 +902,27 @@
     }
 
+
+    // ===================== All ============================================
+
+    bool CheckSize(const DimData &d, size_t sz) const
+    {
+        if (d.size()==0)
+            return false;
+
+        if (d.size()!=sz)
+        {
+            cout << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << sz << endl;
+            return false;
+        }
+
+        return true;
+    }
+
     // ===================== FAD ============================================
 
     void handleFadFiles(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=8)
-        {
-            cout << "Size mismatch: " << d.size() << " " << 8 << endl;
-            return;
-        }
+        if (!CheckSize(d, 8))
+            return;
 
         fEvtBuilderOpenFiles->setValue(d.get<uint64_t>());
@@ -920,12 +931,6 @@
     void handleFadRuns(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=4)
-        {
-            cout << "Size mismatch: " << d.size() << " " << 8 << endl;
-            return;
-        }
+        if (!CheckSize(d, 4))
+            return;
 
         fEvtsRunMax->setValue(d.get<uint32_t>());
@@ -934,12 +939,6 @@
     void handleFadEvents(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=8)
-        {
-            cout << "Size mismatch: " << d.size() << " " << 8 << endl;
-            return;
-        }
+        if (!CheckSize(d, 8))
+            return;
 
         const uint32_t *ptr = d.ptr<uint32_t>();
@@ -951,12 +950,6 @@
     void handleFadCurrentEvent(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=4)
-        {
-            cout << "Size mismatch: " << d.size() << " " << 4 << endl;
-            return;
-        }
+        if (!CheckSize(d, 4))
+            return;
 
         fEvtsTriggerId->setValue(d.get<uint32_t>());
@@ -965,12 +958,6 @@
     void handleFadConnections(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=40)
-        {
-            cout << "Size mismatch: " << d.size() << " " << 40 << endl;
-            return;
-        }
+        if (!CheckSize(d, 40))
+            return;
 
         const uint8_t *ptr = d.ptr<uint8_t>();
@@ -1034,12 +1021,6 @@
     void handleFtmTriggerCounter(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=sizeof(FTM::DimTriggerCounter))
-        {
-            cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimTriggerCounter) << endl;
-            return;
-        }
+        if (!CheckSize(d, sizeof(FTM::DimTriggerCounter)))
+            return;
 
         const FTM::DimTriggerCounter &sdata = d.ref<FTM::DimTriggerCounter>();
@@ -1118,12 +1099,6 @@
     void handleFtmCounter(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=sizeof(uint32_t)*6)
-        {
-            cout << "Size mismatch: " << d.size() << " " << sizeof(uint32_t)*6 << endl;
-            return;
-        }
+        if (!CheckSize(d, sizeof(uint32_t)*6))
+            return;
 
         const uint32_t *sdata = d.ptr<uint32_t>();
@@ -1142,12 +1117,6 @@
     void handleFtmDynamicData(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=sizeof(FTM::DimDynamicData))
-        {
-            cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimDynamicData) << endl;
-            return;
-        }
+        if (!CheckSize(d, sizeof(FTM::DimDynamicData)))
+            return;
 
         const FTM::DimDynamicData &sdata = d.ref<FTM::DimDynamicData>();
@@ -1335,12 +1304,6 @@
     void handleFtmStaticData(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=sizeof(FTM::DimStaticData))
-        {
-            cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimStaticData) << endl;
-            return;
-        }
+        if (!CheckSize(d, sizeof(FTM::DimStaticData)))
+            return;
 
         const FTM::DimStaticData &sdata = d.ref<FTM::DimStaticData>();
@@ -1421,12 +1384,6 @@
     void handleFtmPassport(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=sizeof(FTM::DimPassport))
-        {
-            cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimPassport) << endl;
-            return;
-        }
+        if (!CheckSize(d, sizeof(FTM::DimPassport)))
+            return;
 
         const FTM::DimPassport &sdata = d.ref<FTM::DimPassport>();
@@ -1442,12 +1399,6 @@
     void handleFtmFtuList(const DimData &d)
     {
-        if (d.size()==0)
-            return;
-
-        if (d.size()!=sizeof(FTM::DimFtuList))
-        {
-            cout << "Size mismatch: " << d.size() << " " << sizeof(FTM::DimFtuList) << endl;
-            return;
-        }
+        if (!CheckSize(d, sizeof(FTM::DimFtuList)))
+            return;
 
         fFtuPing->setChecked(false);
@@ -1486,5 +1437,5 @@
     void handleFtmError(const DimData &d)
     {
-        if (d.size()==0)
+        if (!CheckSize(d, sizeof(FTM::DimError)))
             return;
 
