uves_deque.h

00001 /*===========================================================================
00002   Copyright (C) 2001 European Southern Observatory (ESO)
00003  
00004   This program is free software; you can redistribute it and/or 
00005   modify it under the terms of the GNU General Public License as 
00006   published by the Free Software Foundation; either version 2 of 
00007   the License, or (at your option) any later version.
00008  
00009   This program is distributed in the hope that it will be useful,
00010   but WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012   GNU General Public License for more details.
00013  
00014   You should have received a copy of the GNU General Public 
00015   License along with this program; if not, write to the Free 
00016   Software Foundation, Inc., 675 Massachusetss Ave, Cambridge, 
00017   MA 02139, USA.
00018  
00019   Corresponding concerning ESO-MIDAS should be addressed as follows:
00020     Internet e-mail: midas@eso.org
00021     Postal address: European Southern Observatory
00022             Data Management Division 
00023             Karl-Schwarzschild-Strasse 2
00024             D 85748 Garching bei Muenchen 
00025             GERMANY
00026 ===========================================================================*/
00027 #ifndef UVES_DEQUE_H
00028 #define UVES_DEQUE_H
00029 
00030 #include <cxtypes.h>
00031 #include <assert.h>
00032 #include <stdlib.h>
00033 
00034 typedef struct _uves_deque_ uves_deque;
00035 
00036 typedef unsigned long uves_deque_const_iterator;
00037 typedef unsigned long uves_deque_iterator;
00038 
00039 uves_deque *
00040 uves_deque_new(void);
00041 void
00042 uves_deque_push_back(uves_deque *d, cxptr what);
00043 void uves_deque_push_front(uves_deque *d, cxptr what);
00044 cxptr uves_deque_get(const uves_deque *d, uves_deque_const_iterator indx);
00045 uves_deque_iterator uves_deque_erase(uves_deque *d, uves_deque_iterator indx, cx_free_func deallocate);
00046 void uves_deque_insert(uves_deque *d, uves_deque_iterator indx, cxptr what);
00047 cxsize
00048 uves_deque_size(const uves_deque *d);
00049 void uves_deque_destroy(uves_deque *d, cx_free_func deallocate);
00050 cxbool uves_deque_empty(const uves_deque *d);
00051 uves_deque_iterator uves_deque_begin(const uves_deque *d);
00052 uves_deque_iterator uves_deque_end(const uves_deque *d);
00053 uves_deque_iterator uves_deque_next(const uves_deque *d, uves_deque_const_iterator i);
00054 #endif

Generated on 9 Mar 2012 for UVES Pipeline Reference Manual by  doxygen 1.6.1