VirtualBox

source: vbox/trunk/src/VBox/Runtime/table/avl_Enum.cpp.h@ 977

Last change on this file since 977 was 402, checked in by vboxsync, 18 years ago

Added missing RTDECL so it'll compile cleanly in Ring-0 on NT where default calling convention is stdcall and not cdecl like RTCALL.

  • Property svn:keywords set to Id
File size: 2.2 KB
Line 
1/* $Id: avl_Enum.cpp.h 402 2007-01-28 08:44:20Z vboxsync $ */
2/** @file
3 * Enumeration routines for AVL trees.
4 */
5
6/*
7 * Copyright (C) 2006 InnoTek Systemberatung GmbH
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License as published by the Free Software Foundation,
13 * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
14 * distribution. VirtualBox OSE is distributed in the hope that it will
15 * be useful, but WITHOUT ANY WARRANTY of any kind.
16 *
17 * If you received this file as part of a commercial VirtualBox
18 * distribution, then only the terms of your commercial VirtualBox
19 * license agreement apply instead of the previous paragraph.
20 */
21
22#ifndef _kAVLEnum_h_
23#define _kAVLEnum_h_
24
25
26/**
27 * Gets the root node.
28 *
29 * @returns Pointer to the root node.
30 * @returns NULL if the tree is empty.
31 *
32 * @param ppTree Pointer to pointer to the tree root node.
33 */
34RTDECL(PKAVLNODECORE) KAVL_FN(GetRoot)(PPKAVLNODECORE ppTree)
35{
36 return KAVL_GET_POINTER_NULL(ppTree);
37}
38
39
40/**
41 * Gets the right node.
42 *
43 * @returns Pointer to the right node.
44 * @returns NULL if no right node.
45 *
46 * @param pNode The current node.
47 */
48RTDECL(PKAVLNODECORE) KAVL_FN(GetRight)(PKAVLNODECORE pNode)
49{
50 if (pNode)
51 return KAVL_GET_POINTER_NULL(&pNode->pRight);
52 return NULL;
53}
54
55
56/**
57 * Gets the left node.
58 *
59 * @returns Pointer to the left node.
60 * @returns NULL if no left node.
61 *
62 * @param pNode The current node.
63 */
64RTDECL(PKAVLNODECORE) KAVL_FN(GetLeft)(PKAVLNODECORE pNode)
65{
66 if (pNode)
67 return KAVL_GET_POINTER_NULL(&pNode->pLeft);
68 return NULL;
69}
70
71
72# ifdef KAVL_EQUAL_ALLOWED
73/**
74 * Gets the next node with an equal (start) key.
75 *
76 * @returns Pointer to the next equal node.
77 * @returns NULL if the current node was the last one with this key.
78 *
79 * @param pNode The current node.
80 */
81RTDECL(PKAVLNODECORE) KAVL_FN(GetNextEqual)(PKAVLNODECORE pNode)
82{
83 if (pNode)
84 return KAVL_GET_POINTER_NULL(&pNode->pList);
85 return NULL;
86}
87# endif /* KAVL_EQUAL_ALLOWED */
88
89#endif
90
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette