ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dict-list.h
Go to the documentation of this file.
00001 /*
00002 ** License Applicability. Except to the extent portions of this file are
00003 ** made subject to an alternative license as permitted in the SGI Free
00004 ** Software License B, Version 1.1 (the "License"), the contents of this
00005 ** file are subject only to the provisions of the License. You may not use
00006 ** this file except in compliance with the License. You may obtain a copy
00007 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
00008 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
00009 **
00010 ** http://oss.sgi.com/projects/FreeB
00011 **
00012 ** Note that, as provided in the License, the Software is distributed on an
00013 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
00014 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
00015 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
00016 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
00017 **
00018 ** Original Code. The Original Code is: OpenGL Sample Implementation,
00019 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
00020 ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
00021 ** Copyright in any portions created by third parties is as indicated
00022 ** elsewhere herein. All Rights Reserved.
00023 **
00024 ** Additional Notice Provisions: The application programming interfaces
00025 ** established by SGI in conjunction with the Original Code are The
00026 ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
00027 ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
00028 ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
00029 ** Window System(R) (Version 1.3), released October 19, 1998. This software
00030 ** was created using the OpenGL(R) version 1.2.1 Sample Implementation
00031 ** published by SGI, but has not been independently verified as being
00032 ** compliant with the OpenGL(R) version 1.2.1 Specification.
00033 **
00034 */
00035 /*
00036 ** Author: Eric Veach, July 1994.
00037 **
00038 ** $Date: 2007-10-19 23:21:45 +0000 (Fri, 19 Oct 2007) $ $Revision: 1.1 $
00039 ** $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/lib/glu32/libtess/dict-list.h,v 1.1 2004/02/02 16:39:15 navaraf Exp $
00040 */
00041 
00042 #ifndef __dict_list_h_
00043 #define __dict_list_h_
00044 
00045 /* Use #define's so that another heap implementation can use this one */
00046 
00047 #define DictKey     DictListKey
00048 #define Dict        DictList
00049 #define DictNode    DictListNode
00050 
00051 #define dictNewDict(frame,leq)      __gl_dictListNewDict(frame,leq)
00052 #define dictDeleteDict(dict)        __gl_dictListDeleteDict(dict)
00053 
00054 #define dictSearch(dict,key)        __gl_dictListSearch(dict,key)
00055 #define dictInsert(dict,key)        __gl_dictListInsert(dict,key)
00056 #define dictInsertBefore(dict,node,key) __gl_dictListInsertBefore(dict,node,key)
00057 #define dictDelete(dict,node)       __gl_dictListDelete(dict,node)
00058 
00059 #define dictKey(n)          __gl_dictListKey(n)
00060 #define dictSucc(n)         __gl_dictListSucc(n)
00061 #define dictPred(n)         __gl_dictListPred(n)
00062 #define dictMin(d)          __gl_dictListMin(d)
00063 #define dictMax(d)          __gl_dictListMax(d)
00064 
00065 
00066 
00067 typedef void *DictKey;
00068 typedef struct Dict Dict;
00069 typedef struct DictNode DictNode;
00070 
00071 Dict        *dictNewDict(
00072             void *frame,
00073             int (*leq)(void *frame, DictKey key1, DictKey key2) );
00074 
00075 void        dictDeleteDict( Dict *dict );
00076 
00077 /* Search returns the node with the smallest key greater than or equal
00078  * to the given key.  If there is no such key, returns a node whose
00079  * key is NULL.  Similarly, Succ(Max(d)) has a NULL key, etc.
00080  */
00081 DictNode    *dictSearch( Dict *dict, DictKey key );
00082 DictNode    *dictInsertBefore( Dict *dict, DictNode *node, DictKey key );
00083 void        dictDelete( Dict *dict, DictNode *node );
00084 
00085 #define     __gl_dictListKey(n) ((n)->key)
00086 #define     __gl_dictListSucc(n)    ((n)->next)
00087 #define     __gl_dictListPred(n)    ((n)->prev)
00088 #define     __gl_dictListMin(d) ((d)->head.next)
00089 #define     __gl_dictListMax(d) ((d)->head.prev)
00090 #define        __gl_dictListInsert(d,k) (dictInsertBefore((d),&(d)->head,(k)))
00091 
00092 
00093 /*** Private data structures ***/
00094 
00095 struct DictNode {
00096   DictKey   key;
00097   DictNode  *next;
00098   DictNode  *prev;
00099 };
00100 
00101 struct Dict {
00102   DictNode  head;
00103   void      *frame;
00104   int       (*leq)(void *frame, DictKey key1, DictKey key2);
00105 };
00106 
00107 #endif

Generated on Sat May 26 2012 04:22:20 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.