Source: sysadm/OrderedCollectionOfI.h


Annotated List
Files
Globals
Hierarchy
Index
//
//  Copyright (c) 1995, 2000 Silicon Graphics, Inc.  All Rights Reserved.
//  
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of version 2.1 of the GNU Lesser General Public
//  License as published by the Free Software Foundation.
//  
//  This program is distributed in the hope that it would be useful, but
//  WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//  
//  Further, this software is distributed without any warranty that it is
//  free of the rightful claim of any third person regarding infringement
//  or the like.  Any license provided herein, whether implied or
//  otherwise, applies only to this software file.  Patent licenses, if
//  any, provided herein do not apply to combinations of this program
//  with other software, or any other product whatsoever.
//  
//  You should have received a copy of the GNU Lesser General Public
//  License along with this program; if not, write the Free Software
//  Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
//  USA.
//  
//  Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
//  Mountain View, CA 94043, or http://www.sgi.com/
//  
//  For further information regarding this notice, see:
//  http://oss.sgi.com/projects/GenInfo/NoticeExplan/
//

#ifndef _SYSADM_ORDERED_COLLECTION_OF_I_H
#define _SYSADM_ORDERED_COLLECTION_OF_I_H

BEGIN_NAMESPACE(sysadm);

template <class Type> inline
OrderedCollectionOf<Type>::OrderedCollectionOf()
: CollectionOf<Type>( new OrderedCollectionOfImpl() )
{
}

template <class Type> inline
OrderedCollectionOf<Type>::OrderedCollectionOf( const OrderedCollectionOf& copy )
: CollectionOf<Type>( copy )
{
}

template <class Type> inline
OrderedCollectionOf<Type>::OrderedCollectionOf( CollectionOfImpl* adoptedImpl )
: CollectionOf<Type>( adoptedImpl )
{
}

template <class Type> inline
OrderedCollectionOf<Type>::~OrderedCollectionOf()
{
}

template <class Type> inline
OrderedCollectionOf<Type>& 
OrderedCollectionOf<Type>::operator=( const OrderedCollectionOf& copy )
{
    return (OrderedCollectionOf<Type>&)
	CollectionOf<Type>::operator=(copy);
}

template <class Type> inline
void  OrderedCollectionOf<Type>::append( Type* element )
{
    ((OrderedCollectionOfImpl*)getImpl())->append( (void *)element );
}

template <class Type>
void  OrderedCollectionOf<Type>::prepend( Type* element )
{
    ((OrderedCollectionOfImpl*)getImpl())->prepend( (void *)element );
}

template <class Type> inline
void  OrderedCollectionOf<Type>::insertBefore( Type* element, 
						  const Type& before )
{
    IteratorOver<Type> iter(this);

    Type* item = NULL;
    while( (item = iter()) != NULL ) {
	if( *item == before ) {
	    iter.insertBefore( element );
	    break;
	}
    }
}

template <class Type> inline
void  OrderedCollectionOf<Type>::insertAfter( Type* element, 
						 const Type& after )
{
    IteratorOver<Type> iter(this);

    Type* item = NULL;
    while( (item = iter()) != NULL ) {
	if( *item == after ) {
	    iter.insertAfter( element );
	    break;
	}
    }
}


template <class Type> inline
void RemoveAndDestroyContentsOf( OrderedCollectionOf<Type> *collectionAlias )
{
    IteratorOver<Type> iter(collectionAlias);
    while (iter() != NULL) {
	delete iter.remove();
    }
}

END_NAMESPACE(sysadm);
#endif  //  _SYSADM_ORDERED_COLLECTION_OF_I_H

Generated by: rusty@irem on Mon Sep 18 18:07:52 2000, using kdoc 2.0a36.