summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/orecordlist.h
authorzecke <zecke>2002-09-22 16:40:04 (UTC)
committer zecke <zecke>2002-09-22 16:40:04 (UTC)
commit2c398e382bf015eb4cf7302e5d79ed63f476be3a (patch) (side-by-side diff)
treeeb446c641471a39d08159e058038cc1eb0d9d5b3 /libopie2/opiepim/orecordlist.h
parentc15b90cb32a27ece63620be60f96959f2ee6f492 (diff)
downloadopie-2c398e382bf015eb4cf7302e5d79ed63f476be3a.zip
opie-2c398e382bf015eb4cf7302e5d79ed63f476be3a.tar.gz
opie-2c398e382bf015eb4cf7302e5d79ed63f476be3a.tar.bz2
Ok now it compiles again... heureka
I had to create templatebase so orecordlist and opimaccesstemplate do not have circular dependency otherwise just compile fixes to my templaes and i did not make them inline
Diffstat (limited to 'libopie2/opiepim/orecordlist.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/orecordlist.h124
1 files changed, 65 insertions, 59 deletions
diff --git a/libopie2/opiepim/orecordlist.h b/libopie2/opiepim/orecordlist.h
index 65c2169..a3955b0 100644
--- a/libopie2/opiepim/orecordlist.h
+++ b/libopie2/opiepim/orecordlist.h
@@ -2,42 +2,47 @@
#ifndef OPIE_RECORD_LIST_H
#define OPIE_RECORD_LIST_H
-#include <opie/opimaccesstemplate.h>
-#include <opie/opimrecord.h>
+#include <qarray.h>
+
+#include "otemplatebase.h"
+#include "opimrecord.h"
+
+
+template <class T = OPimRecord>
+class ORecordListIterator {
+public:
+ typedef OTemplateBase<T> Base;
+ ORecordListIterator( const QArray<int>, const Base* );
+ ORecordListIterator();
+ ~ORecordListIterator();
+ ORecordListIterator( const ORecordListIterator& );
+ ORecordListIterator &operator=(const ORecordListIterator& );
+ T &operator*();
+ ORecordListIterator &operator++();
+ ORecordListIterator &operator--();
+
+ bool operator==( const ORecordListIterator& it );
+ bool operator!=( const ORecordListIterator& it );
+
+private:
+ QArray<int> m_uids;
+ int m_current;
+ const Base* m_temp;
+ bool m_end : 1;
+ T m_record;
+
+ /* d pointer for future versions */
+ class IteratorPrivate;
+ IteratorPrivate *d;
+};
template <class T = OPimRecord >
class ORecordList {
public:
- class Iterator {
- friend class ORecordList;
- public:
- Iterator();
- ~Iterator();
- Iterator(const Iterator& );
- Iterator &operator=(const Iterator& );
- T &operator*();
- Iterator &operator++();
- Iterator &operator--();
-
- bool operator==( const Iterator& it );
- bool operator!=( const Iterator& it );
-
- private:
- Iterator( const QArray<int>,
- OPimAccessTemplate<T>* );
-
- QArray<int> m_uids;
- int m_current;
- OPimAccessTemplate* m_temp;
- bool m_end : 1;
- T m_record;
-
- /* d pointer for future versions */
- class IteratorPrivate;
- IteratorPrivate *d;
- };
+ typedef OTemplateBase<T> Base;
+ typedef ORecordListIterator<T> Iterator;
ORecordList( const QArray<int>& ids,
- OPimAccessTemplate<T>* acc );
+ const Base* );
~ORecordList();
Iterator begin();
Iterator end();
@@ -47,23 +52,23 @@ public:
*/
private:
QArray<int> m_ids;
- OPimAccessTemplate<T>* m_acc;
+ const Base* m_acc;
};
/* ok now implement it */
-template <class T= OPimRecord>
-ORecordList<T>::Iterator::Iterator() {
+template <class T>
+ORecordListIterator<T>::ORecordListIterator() {
m_current = 0;
m_temp = 0l;
m_end = true;
}
-template <class T= OPimRecord>
-ORecordList<T>::Iterator::~Iterator() {
+template <class T>
+ORecordListIterator<T>::~ORecordListIterator() {
/* nothing to delete */
}
-template <class T = OPimRecord>
-ORecordList<T>::Iterator::Iterator( const ORecordList<T>::Iterator& it) {
+template <class T>
+ORecordListIterator<T>::ORecordListIterator( const ORecordListIterator<T>& it) {
m_uids = it.m_uids;
m_current = it.m_current;
m_temp = it.m_temp;
@@ -71,8 +76,8 @@ ORecordList<T>::Iterator::Iterator( const ORecordList<T>::Iterator& it) {
m_record = it.m_record;
}
-template <class T = OPimRecord>
-ORecordList<T>::Iterator &ORecordList::Iterator::operator=( const ORecordList<T>::Iterator& it) {
+template <class T>
+ORecordListIterator<T> &ORecordListIterator<T>::operator=( const ORecordListIterator<T>& it) {
m_uids = it.m_uids;
m_current = it.m_current;
m_temp = it.m_temp;
@@ -82,18 +87,18 @@ ORecordList<T>::Iterator &ORecordList::Iterator::operator=( const ORecordList<T>
return *this;
}
-template <class T = OPimRecord>
-T &ORecordList<T>::Iterator::operator*() {
+template <class T>
+T &ORecordListIterator<T>::operator*() {
if (!m_end )
m_record = m_temp->find( m_uids[m_current] );
else
- m_record = T;
+ m_record = T();
return m_record;
}
-template <class T = OPimRecord>
-ORecordList<T>::Iterator &ORecordList<T>::Iterator::operator++() {
+template <class T>
+ORecordListIterator<T> &ORecordListIterator<T>::operator++() {
if (m_current < m_uids.count() ) {
m_end = false;
++m_current;
@@ -102,8 +107,8 @@ ORecordList<T>::Iterator &ORecordList<T>::Iterator::operator++() {
return *this;
}
-template <class T = OPimRecord>
-ORecordList<T>::Iterator &ORecordList<T>::Iterator::operator--() {
+template <class T>
+ORecordListIterator<T> &ORecordListIterator<T>::operator--() {
if ( m_current > 0 ) {
--m_current;
m_end = false;
@@ -113,8 +118,8 @@ ORecordList<T>::Iterator &ORecordList<T>::Iterator::operator--() {
return *this;
}
-template <class T = OPimRecord>
-bool ORecordList<T>::Iterator::operator==( const ORecordList<T>::Iterator& it ) {
+template <class T>
+bool ORecordListIterator<T>::operator==( const ORecordListIterator<T>& it ) {
/* if both are at we're the same.... */
if ( m_end == it.m_end ) return true;
@@ -125,32 +130,33 @@ bool ORecordList<T>::Iterator::operator==( const ORecordList<T>::Iterator& it )
return true;
}
-template <class T = ORecordList>
-bool ORecordList<T>::Iterator::operator!=( const ORecordList<T>::Iterator it ) {
+template <class T>
+bool ORecordListIterator<T>::operator!=( const ORecordListIterator<T>& it ) {
return !(*this == it );
}
-template <class T = ORecordList>
-ORecordList<T>::Iterator::Iterator( const QArray<int> uids,
- OPimAccessTemplate<T>* t )
+template <class T>
+ORecordListIterator<T>::ORecordListIterator( const QArray<int> uids,
+ const Base* t )
: m_uids( uids ), m_current( 0 ), m_temp( t ), m_end( false )
{
}
-template <class T = ORecordList>
+
+template <class T>
ORecordList<T>::ORecordList( const QArray<int>& ids,
- OPimAccessTemplate<T>* acc )
+ const Base* acc )
: m_ids( ids ), m_acc( acc )
{
}
-template <class T = ORecordList>
+template <class T>
ORecordList<T>::~ORecordList() {
/* nothing to do here */
}
-template <class T = ORecordList>
+template <class T>
ORecordList<T>::Iterator ORecordList<T>::begin() {
Iterator it( m_ids, m_acc );
return it;
}
-template <class T = ORecordList>
+template <class T>
ORecordList<T>::Iterator ORecordList<T>::end() {
Iterator it( m_ids, m_acc );
it.m_end = true;