File indexing completed on 2024-04-14 05:36:41

0001 //
0002 // C++ Implementation: flowconnectorlist
0003 //
0004 // Description:
0005 //
0006 //
0007 // Author: David Saxton, Alan Grimes, Zoltan Padrah <zoltan.padrah@gmail.com>, (C) 2009
0008 //
0009 // Copyright: See COPYING file that comes with this distribution
0010 //
0011 //
0012 
0013 #include "flowconnectorlist.h"
0014 
0015 #include "flowconnector.h"
0016 
0017 #include <QList>
0018 #include <QPointer>
0019 
0020 FlowConnectorList::FlowConnectorList(const QList<T> &l)
0021     : flowList(l)
0022 { // O(n)
0023     FlowConnectorList::iterator it, end = flowList.end();
0024     for (it = flowList.begin(); it != end; it++)
0025         list.append(CAST_POINTER_CONN(* it));
0026 }
0027 
0028 // FlowConnectorList::FlowConnectorList ( const std::list<FlowConnectorList::T> & l ) : flowList(l) {
0029 //     FlowConnectorList::iterator it, end = flowList.end();
0030 //     for( it = flowList.begin(); it != end; it++)
0031 //         list.append( CAST_POINTER *it);
0032 // }
0033 
0034 QList<FlowConnectorList::T> &FlowConnectorList::operator=(const QList<FlowConnectorList::T> &l)
0035 { // -> O(n)
0036     flowList = l;
0037     list.clear();
0038     FlowConnectorList::iterator it, end = flowList.end();
0039     for (it = flowList.begin(); it != end; it++)
0040         list.append(CAST_POINTER_CONN(* it));
0041     return flowList;
0042 }
0043 
0044 // QList<FlowConnectorList::T> & FlowConnectorList::operator= ( const std::list<FlowConnectorList::T> & l ) {   // O(n)
0045 //     flowList = l;
0046 //     list.clear();
0047 //     FlowConnectorList::iterator it, end = flowList.end();
0048 //     for( it = flowList.begin(); it != end; it++)
0049 //         list.append( CAST_POINTER *it);
0050 //
0051 //     return flowList;
0052 // }
0053 
0054 // bool FlowConnectorList::operator== ( const std::list<FlowConnectorList::T> & l ) const {
0055 //     return flowList == l;
0056 // }
0057 
0058 FlowConnectorList::iterator FlowConnectorList::insert(FlowConnectorList::iterator it, const FlowConnectorList::T &x)
0059 { // O(n)
0060     list.insert(convertIterator(it), CAST_POINTER_CONN(x));
0061     return flowList.insert(it, x);
0062 }
0063 
0064 uint FlowConnectorList::remove(const FlowConnectorList::T &x)
0065 {
0066     list.removeAll(CAST_POINTER_CONN(x));
0067     return flowList.removeAll(x);
0068 }
0069 
0070 QList<FlowConnectorList::T> &FlowConnectorList::operator<<(const FlowConnectorList::T &x)
0071 {
0072     list << CAST_POINTER_CONN(x);
0073     return flowList << x;
0074 }
0075 
0076 void FlowConnectorList::push_front(const FlowConnectorList::T &x)
0077 {
0078     list.push_front(CAST_POINTER_CONN(x));
0079     flowList.push_front(x);
0080 }
0081 
0082 void FlowConnectorList::push_back(const FlowConnectorList::T &x)
0083 {
0084     list.push_back(CAST_POINTER_CONN(x));
0085     flowList.push_back(x);
0086 }
0087 
0088 // void FlowConnectorList::insert ( FlowConnectorList::iterator pos, size_type n, const FlowConnectorList::T & x ) {    // O(n)
0089 //     list.insert( convertIterator(pos) ,n, CAST_POINTER x);
0090 //     flowList.insert(pos,n,x);
0091 // }
0092 
0093 QList<FlowConnectorList::T> &FlowConnectorList::operator+=(const QList<FlowConnectorList::T> &l)
0094 { // O(n)
0095     const_iterator end = l.end();
0096     for (const_iterator it = l.begin(); it != end; it++)
0097         list.append(CAST_POINTER_CONN(* it));
0098     return flowList += l;
0099 }
0100 
0101 // FlowConnectorList::iterator FlowConnectorList::fromLast () {
0102 //     return flowList.fromLast();
0103 // }
0104 
0105 FlowConnectorList::iterator FlowConnectorList::append(const FlowConnectorList::T &x)
0106 {
0107     list.append(CAST_POINTER_CONN(x));
0108     // return flowList.append(x);
0109     flowList.append(x);
0110     iterator ret = flowList.end();
0111     --ret;
0112     return ret;
0113 }
0114 
0115 FlowConnectorList::iterator FlowConnectorList::prepend(const FlowConnectorList::T &x)
0116 {
0117     list.prepend(CAST_POINTER_CONN(x));
0118     // return flowList.prepend(x);
0119     flowList.prepend(x);
0120     return flowList.begin();
0121 }
0122 
0123 QList<FlowConnectorList::T> &FlowConnectorList::operator+=(const FlowConnectorList::T &x)
0124 {
0125     list += CAST_POINTER_CONN(x);
0126     return flowList += x;
0127 }
0128 
0129 // FlowConnectorList::const_iterator FlowConnectorList::fromLast () const {
0130 //     return flowList.fromLast();
0131 // }