casacore
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
casacore::List< t > Class Template Reference

Doubly linked list. More...

#include <List.h>

Public Types

enum  { ListVersion }
 List version. More...
 

Public Member Functions

 List ()
 Creates an empty list. More...
 
 List (const List< t > &other)
 Copy Semantics. More...
 
 List (const List< t > *other)
 
List< t > & operator= (const List< t > &other)
 
List< t > & operator= (const List< t > *other)
 
 ~List ()
 display 4 More...
 
uInt len () const
 Returns the length of the list. More...
 
- Public Member Functions inherited from casacore::NoticeSource
 NoticeSource ()
 
virtual ~NoticeSource ()
 
void notify (const Notice &note)
 Sends the note to all NoticeTargets in the target list. More...
 

Protected Member Functions

virtual void added (Link< t > *, Link< t > *)
 Updates the extreme pointers, head or tail under the appropriate conditions. More...
 
virtual void removed (Link< t > *, Link< t > *, Link< t > *)
 

Protected Attributes

Link< t > * head
 
Link< t > * tail
 
uInt length
 

Friends

class ConstListIter< t >
 
class ListIter< t >
 

Detailed Description

template<class t>
class casacore::List< t >

Doubly linked list.

Intended use:

Public interface

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Synopsis

This class is a container which by itself has little functionality because the iteration functionality is contained in the iterator classes, ListIter and ConstListIterr . These iterator classes allow traversal, insertion into list, and removal from the list.

This group of classes, List and iterators, was designed to allow multiple iterators to manipulate a list at the same time. However, if only one iterator is required the simple example below shows how a simple list can be created and used without complication. The more complete example below demonstrates all of the functionality of the List classes.

Example

#include <casacore/casa/Containers/List.h>
#include <casacore/casa/Containers/ListIO.h>
main() {
// List, conceptual
// cursor = "|"
ListIter<int> list(new List<int>(),True); // |
list.addRight(12); // | 12
list.addRight(2); // | 2 12
list.addRight(89); // | 89 2 12
list++; // 89 | 2 12
list.addRight(10); // 89 | 10 2 12
list++; // 89 10 | 2 12
list.addRight(8); // 89 10 | 8 2 12
list--; // 89 | 10 8 2 12
list.pos(0); // | 89 10 8 2 12
list.pos(5); // 89 10 8 2 12 |
list.pos(4); // 89 10 8 2 | 12
list.step(3); // 89 | 10 8 2 12
list.step(); // 89 10 | 8 2 12
list.step(-4); // 89 10 8 2 | 12
list.removeRight(); // 89 10 8 2 |
cout << list << endl;
return 0;
}

The output from this example looks like:

 len=4 pos=4 89 10 8 2
 

Definition at line 52 of file List.h.

Member Enumeration Documentation

◆ anonymous enum

template<class t>
anonymous enum

List version.

Enumerator
ListVersion 

Definition at line 215 of file List.h.

Constructor & Destructor Documentation

◆ List() [1/3]

template<class t>
casacore::List< t >::List ( )
inline

Creates an empty list.

Definition at line 191 of file List.h.

◆ List() [2/3]

template<class t>
casacore::List< t >::List ( const List< t > &  other)

Copy Semantics.

◆ List() [3/3]

template<class t>
casacore::List< t >::List ( const List< t > *  other)

◆ ~List()

template<class t>
casacore::List< t >::~List ( )

display 4

Destructs the list.

Member Function Documentation

◆ added()

template<class t>
virtual void casacore::List< t >::added ( Link< t > *  ,
Link< t > *   
)
protectedvirtual

Updates the extreme pointers, head or tail under the appropriate conditions.

◆ len()

template<class t>
uInt casacore::List< t >::len ( ) const
inline

Returns the length of the list.

Definition at line 210 of file List.h.

◆ operator=() [1/2]

template<class t>
List<t>& casacore::List< t >::operator= ( const List< t > &  other)

◆ operator=() [2/2]

template<class t>
List<t>& casacore::List< t >::operator= ( const List< t > *  other)

◆ removed()

template<class t>
virtual void casacore::List< t >::removed ( Link< t > *  ,
Link< t > *  ,
Link< t > *   
)
protectedvirtual

Friends And Related Function Documentation

◆ ConstListIter< t >

template<class t>
friend class ConstListIter< t >
friend

Definition at line 185 of file List.h.

◆ ListIter< t >

template<class t>
friend class ListIter< t >
friend

Definition at line 186 of file List.h.

Member Data Documentation

◆ head

template<class t>
Link<t>* casacore::List< t >::head
protected

Definition at line 218 of file List.h.

◆ length

template<class t>
uInt casacore::List< t >::length
protected

Definition at line 220 of file List.h.

◆ tail

template<class t>
Link<t>* casacore::List< t >::tail
protected

Definition at line 219 of file List.h.


The documentation for this class was generated from the following file: