casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends
casa::List< t > Class Template Reference

Doubly linked list. More...

#include <List.h>

Inheritance diagram for casa::List< t >:
casa::NoticeSource

List of all members.

Public Types

enum  { ListVersion }
 List version. More...

Public Member Functions

 List ()
 Creates an empty list.
 List (const List< t > &other)
 Copy Semantics.
 List (const List< t > *other)
List< t > & operator= (const List< t > &other)
List< t > & operator= (const List< t > *other)
 ~List ()
 *display 4
uInt len () const
 Returns the length of the list.

Protected Member Functions

virtual void added (Link< t > *, Link< t > *)
 Updates the extreme pointers, head or tail under the appropriate conditions.
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 casa::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 <casa/Containers/List.h>
    #include <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 182 of file List.h.


Member Enumeration Documentation

template<class t>
anonymous enum

List version.

Enumerator:
ListVersion 

Definition at line 214 of file List.h.


Constructor & Destructor Documentation

template<class t>
casa::List< t >::List ( ) [inline]

Creates an empty list.

Definition at line 190 of file List.h.

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

Copy Semantics.

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

*display 4

Destructs the list.


Member Function Documentation

template<class t>
virtual void casa::List< t >::added ( Link< t > *  ,
Link< t > *   
) [protected, virtual]

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

      
template<class t>
uInt casa::List< t >::len ( ) const [inline]

Returns the length of the list.

Definition at line 209 of file List.h.

Referenced by casa::MultiWCHolder::nWCHs().

template<class t>
List<t>& casa::List< t >::operator= ( const List< t > &  other)
template<class t>
List<t>& casa::List< t >::operator= ( const List< t > *  other)
template<class t>
virtual void casa::List< t >::removed ( Link< t > *  ,
Link< t > *  ,
Link< t > *   
) [protected, virtual]

Friends And Related Function Documentation

template<class t>
friend class ConstListIter< t > [friend]

Definition at line 184 of file List.h.

template<class t>
friend class ListIter< t > [friend]

Definition at line 185 of file List.h.


Member Data Documentation

template<class t>
Link<t>* casa::List< t >::head [protected]

Definition at line 217 of file List.h.

template<class t>
uInt casa::List< t >::length [protected]

Definition at line 219 of file List.h.

Referenced by casa::List< WorldCanvasHolder * >::len().

template<class t>
Link<t>* casa::List< t >::tail [protected]

Definition at line 218 of file List.h.


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