head 1.3; access; symbols; locks; strict; comment @# @; 1.3 date 2000.12.14.15.07.35; author simons; state dead; branches; next 1.2; 1.2 date 2000.12.13.17.37.56; author simons; state Exp; branches; next 1.1; 1.1 date 2000.12.13.15.46.39; author simons; state Exp; branches; next ; desc @@ 1.3 log @ - Removed smake build and autoconf from the libraries. - Removed unused files. @ text @/* $Source: /d1/e/petidomo/cvs/petidomo/source/liblists/lists.h.in,v $ $Revision: 1.2 $ Copyright (C) 2000 by CyberSolutions GmbH, Germany. This file is part of OpenPetidomo. OpenPetidomo is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. OpenPetidomo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenPetidomo; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __LIB_LISTS_H__ #define __LIB_LISTS_H__ 1 /* For autoconf... */ #undef HAVE_STRINGS_H #include #include #ifdef HAVE_STRINGS_H /* sunos 4 needs this */ # include #endif #include #ifdef DEBUG_DMALLOC # include #endif /********** Useful defines and declarations **********/ #ifndef __cplusplus #ifndef __HAVE_DEFINED_BOOL__ # define __HAVE_DEFINED_BOOL__ 1 typedef int bool; #endif #ifndef FALSE # define FALSE (0==1) #endif #ifndef TRUE # define TRUE (1==1) #endif #endif /********** Structures **********/ struct ListHead { struct ListNode * lh_FirstNode; int (*lh_Compare)(const void *, const void *); }; typedef struct ListHead * List; struct ListNode { struct ListNode * ln_Next; struct ListNode * ln_Prev; struct ListHead * ln_Head; const void * ln_Key; const void * ln_Data; }; typedef struct ListNode * Node; /********** Prototypes **********/ List getListHead(const Node node); const void * getNodeKey(const Node node); const void * getNodeData(const Node node); void setNodeData(const Node node, const void * data); Node getFirstNode(const List head); Node getNextNode(const Node node); Node getPrevNode(const Node node); bool isListEmpty(const List head); bool isEndOfList(const Node node); List InitList(int (*compare)(const void *, const void *)); void FreeList(List head); Node AppendNode(List head, const void * key, const void * data); Node InitNode(const List head, const void * key, const void * data); void FreeNode(Node node); void RemoveNode(const Node node); Node InsertNodeBeforeNode(Node node, const void *key, const void *data); Node InsertNodeAfterNode(Node node, const void *key, const void *data); Node InsertNodeByKey(List head, const void * key, const void * data); Node FindNodeByKey(List head, const void * key); unsigned int CountElements(List); #endif /* !__LIB_LISTS_H__ */ @ 1.2 log @Added correct GPL copyright headers. @ text @d2 2 a3 2 $Source$ $Revision$ @ 1.1 log @Imported latest version. @ text @d2 22 a23 36 * $Source: /home/cvs/lib/liblists/lists.h.in,v $ * $Revision: 1.1 $ * $Date: 1999/08/27 13:10:58 $ * * Copyright (c) 1996-99 by Peter Simons * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Peter Simons. * * 4. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @