Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

TrapperVector< T > Class Template Reference

To store an array of values. It's a template class to be used in the serializing bytearray and import/export to dom tree. More...

#include <trappervector.h>

Inheritance diagram for TrapperVector< T >:

Inheritance graph
[legend]
List of all members.

Public Types

typedef QValueList< T > QualityList

Public Member Functions

 TrapperVector ()
 ~TrapperVector ()
vector< T > & stlVector ()
void readDom (QDomElement &elem)
void readAttributes (const QXmlAttributes &attr)
void readString (QString &str)
convertToTemplateType (QString valueStr)
QString convertToString (T value)
void writeDom (QDomElement &elem)
const char * data ()
const uint size ()
void resize (Q_UINT32 &len)

Protected Member Functions

QString name_of_type ()

Protected Attributes

vector< T > v

Detailed Description

template<class T>
class TrapperVector< T >

To store an array of values. It's a template class to be used in the serializing bytearray and import/export to dom tree.

Definition at line 40 of file trappervector.h.


Member Typedef Documentation

template<class T>
typedef QValueList< T > TrapperVector< T >::QualityList
 

Definition at line 48 of file trappervector.h.


Constructor & Destructor Documentation

template<class T>
TrapperVector< T >::TrapperVector  )  [inline]
 

Definition at line 43 of file trappervector.h.

00044   {
00045   }

template<class T>
TrapperVector< T >::~TrapperVector  )  [inline]
 

Definition at line 46 of file trappervector.h.

00047   { }


Member Function Documentation

template<class T>
QString TrapperVector< T >::convertToString value  )  [inline]
 

Definition at line 112 of file trappervector.h.

Referenced by TrapperVector< char >::writeDom().

00113   {
00114     QString s = value;
00115     return s;
00116   }

template<class T>
T TrapperVector< T >::convertToTemplateType QString  valueStr  )  [inline]
 

Definition at line 107 of file trappervector.h.

Referenced by TrapperVector< char >::readDom().

00108   {
00109     T t = valueStr;
00110     return t;
00111   }

template<class T>
const char* TrapperVector< T >::data  )  [inline]
 

Definition at line 134 of file trappervector.h.

Referenced by operator>>().

00135     {
00136         if (v.empty())
00137         {
00138             return NULL;
00139         }
00140         else
00141         {
00142             return ( char * ) &v[0];
00143         }
00144     }

template<class T>
QString TrapperVector< T >::name_of_type  )  [inline, protected]
 

Definition at line 155 of file trappervector.h.

Referenced by TrapperVector< char >::readDom(), and TrapperVector< char >::writeDom().

00156     {
00157         //  return standardMemberName;
00158         return QString("unknownType");
00159     }

template<class T>
void TrapperVector< T >::readAttributes const QXmlAttributes &  attr  )  [inline]
 

Definition at line 84 of file trappervector.h.

Referenced by QualityData::readAttributes(), and DnaStrData::readAttributes().

00085   {
00086     
00087     QString str = attr.value("trappervector");
00088     
00089     readString(str);
00090     
00091   }

template<class T>
void TrapperVector< T >::readDom QDomElement &  elem  )  [inline]
 

Definition at line 54 of file trappervector.h.

Referenced by QualityData::readDom(), and DnaStrData::readDom().

00055   {
00056     v.clear();
00057     
00058     QDomNode node = elem.firstChild();
00059     while ( !node.isNull() )
00060       {
00061         if ( node.isElement() && node.nodeName() == "trappervector" &&
00062              node.toElement().attribute("type") == name_of_type() )
00063           {
00064             QDomNode node2 = node.firstChild();
00065             while ( !node2.isNull() )
00066               {
00067                 if ( node2.isElement() && node2.nodeName() == "member" )
00068                   {
00069                     QDomElement elem2 = node2.toElement();
00070                     //                        QString name = name_of_type();
00071                     Q_ASSERT( elem2.hasAttribute( "value" ) );
00072                     QString valueStr = elem2.attribute( "value" );
00073                     T t = convertToTemplateType( valueStr );
00074                     v.push_back(t);
00075                   }
00076                 node2 = node2.nextSibling();
00077               }
00078             break;
00079           }
00080         node = node.nextSibling();
00081       }
00082   }

template<class T>
void TrapperVector< T >::readString QString &  str  )  [inline]
 

Definition at line 93 of file trappervector.h.

Referenced by TrapperVector< char >::readAttributes(), and ChromatData::readAttributes().

00094   {
00095     v.clear();
00096 
00097     QTextStream stream(&str, IO_ReadOnly);
00098     
00099     while ( !stream.atEnd() ) {
00100       T tmp;
00101       stream>>tmp;
00102       v.push_back(tmp);
00103     }
00104     
00105   }

template<class T>
void TrapperVector< T >::resize Q_UINT32 &  len  )  [inline]
 

Definition at line 149 of file trappervector.h.

Referenced by operator>>().

00150     {
00151         v.resize( (size_t) (len / sizeof( T ))) ;
00152     }

template<class T>
const uint TrapperVector< T >::size  )  [inline]
 

Definition at line 145 of file trappervector.h.

Referenced by TrapperDoc::importPhd(), and ChromatGui::paintMe().

00146     {
00147         return (uint) ( v.size() * sizeof( T ));
00148     }

template<class T>
vector<T>& TrapperVector< T >::stlVector  )  [inline]
 

Definition at line 49 of file trappervector.h.

Referenced by TrapperDoc::importPhd(), QualityInfo::myInfoPos(), DnaStrInfo::myInfoPos(), QualityGui::paintMe(), ChromatGui::paintMe(), DnaStrGui::paintMe(), PhdParser::parse(), QualityData::quality(), ChromatData::writeXml(), QualityData::writeXml(), and DnaStrData::writeXml().

00050   {
00051     return v;
00052   }

template<class T>
void TrapperVector< T >::writeDom QDomElement &  elem  )  [inline]
 

Definition at line 118 of file trappervector.h.

Referenced by QualityData::writeDom(), and DnaStrData::writeDom().

00119   {
00120     QDomDocument doc = elem.ownerDocument();
00121     QDomElement array = doc.createElement("trappervector");
00122     array.setAttribute("type",name_of_type());
00123     elem.appendChild( array );
00124     typename vector<T>::iterator it;
00125     
00126     for ( it = v.begin(); it != v.end(); ++it )
00127       {
00128         QDomElement member = doc.createElement("member");
00129         array.appendChild( member );
00130         QString str = convertToString( *it );
00131             member.setAttribute( "value" , str );
00132       }
00133   }


Member Data Documentation

template<class T>
vector<T> TrapperVector< T >::v [protected]
 

Definition at line 154 of file trappervector.h.

Referenced by TrapperVector< char >::data(), TrapperVector< char >::readDom(), TrapperVector< char >::readString(), TrapperVector< char >::resize(), TrapperVector< char >::size(), TrapperVector< char >::stlVector(), and TrapperVector< char >::writeDom().


The documentation for this class was generated from the following file:
Generated on Fri Mar 17 17:45:02 2006 for trapper by  doxygen 1.4.4