1 #include "SUIT_DataOwner.h"
5 #define _typeinfo std::type_info
8 #define _typeinfo type_info
11 //********************************************************************
12 // SUIT_DataOwner class
13 //********************************************************************
17 SUIT_DataOwner::SUIT_DataOwner()
22 SUIT_DataOwner::~SUIT_DataOwner()
26 /*! operator== : compares two owners*/
27 bool operator==( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
29 if ( !p1.isNull() && !p2.isNull() )
30 return p1->isEqual( *p2 );
31 return p1.isNull() && p2.isNull();
34 //********************************************************************
35 /*! \class SUIT_DataOwnerPtrList
36 * implements value list with unique items (uniqueness is
37 * provided by operator==())
39 //********************************************************************
41 //====================================================================
42 //! Constructor (default)
43 //====================================================================
44 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList()
45 : QValueList<SUIT_DataOwnerPtr>(),
50 //====================================================================
51 //! Constructor (default)
52 //====================================================================
53 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const bool skipAllEqual )
54 : QValueList<SUIT_DataOwnerPtr>(),
55 mySkipEqual( skipAllEqual )
59 //====================================================================
60 //! Constructor (copy)
61 //====================================================================
62 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l )
63 : QValueList<SUIT_DataOwnerPtr>( l ),
68 //====================================================================
69 //! Constructor (copy)
70 //====================================================================
71 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l, const bool skipAllEqual )
72 : QValueList<SUIT_DataOwnerPtr>(),
73 mySkipEqual( skipAllEqual )
75 if ( skipAllEqual == l.mySkipEqual )
79 SUIT_DataOwnerPtrList::const_iterator beginIt = l.begin();
80 SUIT_DataOwnerPtrList::const_iterator endIt = l.end();
81 for( ; beginIt != endIt; ++beginIt )
87 //====================================================================
88 //! Constructor (from stl)
89 //====================================================================
90 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l )
91 : QValueList<SUIT_DataOwnerPtr>( l ),
98 //====================================================================
99 //! Constructor (from stl)
100 //====================================================================
101 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l, const bool skipAllEqual )
102 : QValueList<SUIT_DataOwnerPtr>(),
103 mySkipEqual( skipAllEqual )
105 std::list<SUIT_DataOwnerPtr>::const_iterator beginIt = l.begin();
106 std::list<SUIT_DataOwnerPtr>::const_iterator endIt = l.begin();
107 for( ; beginIt != endIt; ++beginIt )
112 //====================================================================
113 //! Appends an item to the list
114 //====================================================================
115 SUIT_DataOwnerPtrList::iterator SUIT_DataOwnerPtrList::append( const SUIT_DataOwnerPtr& x )
117 SUIT_DataOwnerPtrList::iterator it = find( x );
123 const _typeinfo& ti1 = typeid( *((*it).operator->()) );
124 const _typeinfo& ti2 = typeid( *(x.operator->()) );
129 return QValueList<SUIT_DataOwnerPtr>::append( x );