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( const bool skipAllEqal )
45 : QValueList<SUIT_DataOwnerPtr>(),
46 mySkipEqual( skipAllEqal )
50 //====================================================================
51 //! Constructor (copy)
52 //====================================================================
53 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l )
54 : QValueList<SUIT_DataOwnerPtr>( l )
58 //====================================================================
59 //! Constructor (copy)
60 //====================================================================
61 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l, const bool skipAllEqal )
62 : QValueList<SUIT_DataOwnerPtr>(),
63 mySkipEqual( skipAllEqal )
65 if ( skipAllEqal == l.mySkipEqual )
69 SUIT_DataOwnerPtrList::const_iterator beginIt = l.begin();
70 SUIT_DataOwnerPtrList::const_iterator endIt = l.end();
71 for( ; beginIt != endIt; ++beginIt )
77 //====================================================================
78 //! Constructor (from stl)
79 //====================================================================
80 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l )
81 : QValueList<SUIT_DataOwnerPtr>( l )
87 //====================================================================
88 //! Constructor (from stl)
89 //====================================================================
90 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l, const bool skipAllEqal )
91 : QValueList<SUIT_DataOwnerPtr>(),
92 mySkipEqual( skipAllEqal )
94 std::list<SUIT_DataOwnerPtr>::const_iterator beginIt = l.begin();
95 std::list<SUIT_DataOwnerPtr>::const_iterator endIt = l.begin();
96 for( ; beginIt != endIt; ++beginIt )
101 //====================================================================
102 //! Appends an item to the list
103 //====================================================================
104 SUIT_DataOwnerPtrList::iterator SUIT_DataOwnerPtrList::append( const SUIT_DataOwnerPtr& x )
106 SUIT_DataOwnerPtrList::iterator it = find( x );
112 const _typeinfo& ti1 = typeid( *((*it).operator->()) );
113 const _typeinfo& ti2 = typeid( *(x.operator->()) );
118 return QValueList<SUIT_DataOwnerPtr>::append( x );