// This may look like C code, but it is really -*- C++ -*-
// 
// <copyright> 
//  
//  Copyright (c) 1994
//  Institute for Information Processing and Computer Supported New Media (IICM), 
//  Graz University of Technology, Austria. 
//  
// </copyright> 
// 
// 
// <file> 
// 
// Name:        datalist.h
// 
// Purpose:     
// 
// Created:     5 Jul 95   Joerg Faschingbauer
// 
// Modified:    
// 
// Description: 
// 
// 
// </file> 
#ifndef hg_utils_datalist_h
#define hg_utils_datalist_h

#include "data.h"

#include "fields.h"



Fieldsdeclare (DataListBase, DataPtr) 

class DataList : public DataListBase {
public:
   void push (const DataPtr&) ;
   boolean shift (DataPtr&) ;
   DataPtr shift() ;
   void unshift (const DataPtr&) ;
} ;

inline void DataList :: push (const DataPtr& p) {
   DataListBase::append (p) ;
}
inline void DataList :: unshift (const DataPtr& p) {
   DataListBase::insert (0, p) ;
}
inline DataPtr DataList :: shift() {
   DataPtr dp ;
   shift (dp) ;
   return dp ;
}

#endif
