qt.h

00001 #ifndef VVELIB_STORAGE_QT_H
00002 #define VVELIB_STORAGE_QT_H
00003 
00004 #include <config.h>
00005 #include <QtCore/QList>
00006 #include <QtCore/QVector>
00007 
00008 template <typename T>
00009 bool serialization(storage::VVEStorage& store, QVector<T>& vec)
00010 {
00011   size_t size = vec.size();
00012   if(!store.field("Size", size))
00013     return false;
00014   if(store.reader())
00015     vec.resize(size);
00016   for(size_t i = 0 ; i < size ; ++i)
00017   {
00018     if(!store.field("V", vec[i]))
00019       return false;
00020   }
00021   return true;
00022 }
00023 
00024 template <typename T>
00025 bool serialization(storage::VVEStorage& store, QList<T>& vec)
00026 {
00027   size_t size = vec.size();
00028   if(!store.field("Size", size))
00029     return false;
00030   if(store.reader())
00031   {
00032     for(size_t i = 0 ; i < size ; ++i)
00033     {
00034       T value;
00035       store.field("V", value);
00036       vec.push_back(value);
00037     }
00038   }
00039   else
00040   {
00041     for(typename QList<T>::iterator it = vec.begin() ; it != vec.end() ; ++it)
00042     {
00043       if(!store.field("V", *it))
00044         return false;
00045     }
00046   }
00047   return true;
00048 }
00049 
00050 inline bool serialization(storage::VVEStorage& store, QStringList& sl)
00051 {
00052   return serialization(store, (QList<QString>&)sl);
00053 }
00054 
00055 template <typename T>
00056 bool serialization(storage::VVEStorage& store, QSet<T>& vec)
00057 {
00058   size_t size = vec.size();
00059   if(!store.field("Size", size))
00060     return false;
00061   if(store.reader())
00062   {
00063     vec.clear();
00064     for(size_t i = 0 ; i < size ; ++i)
00065     {
00066       T value;
00067       if(!store.field("V", value))
00068         return false;
00069       vec.insert(value);
00070     }
00071   }
00072   else
00073   {
00074     for(typename QSet<T>::iterator it = vec.begin() ; it != vec.end() ; ++it)
00075     {
00076       if(!store.field("V", *it))
00077         return false;
00078     }
00079   }
00080   return true;
00081 }
00082 
00083 #endif // VVELIB_STORAGE_QT_H
00084 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Fri May 31 15:37:52 2013 for VVE by  doxygen 1.6.3