]>
Commit | Line | Data |
---|---|---|
fd1e1726 BK |
1 | /* \r |
2 | * @file sample_node_updator.hpp\r | |
3 | * Contains a samle node update functor.\r | |
4 | * \r | |
5 | * Copyright Ami Tavory, IBM-HRL, 2004.\r | |
6 | * \r | |
7 | * Permission to use, copy, modify, sell, and distribute this software\r | |
8 | * is hereby granted without fee, provided that the above copyright notice\r | |
9 | * appears in all copies, and that both that copyright notice and this\r | |
10 | * permission notice appear in supporting documentation.\r | |
11 | *\r | |
12 | * None of the above authors, nor IBM Haifa Research Laboratories, make any\r | |
13 | * representation about the suitability of this software for any\r | |
14 | * purpose. It is provided "as is" without express or implied warranty.\r | |
15 | **/\r | |
16 | \r | |
17 | \r | |
18 | #ifndef SAMPLE_NODE_UPDATOR_HPP\r | |
19 | #define SAMPLE_NODE_UPDATOR_HPP\r | |
20 | \r | |
21 | \r | |
22 | /**\r | |
23 | * <class \r | |
24 | * description = "A sample node updator."\r | |
25 | * comment = "This class serves to show the interface a node update functor\r | |
26 | * needs to support.">\r | |
27 | **/\r | |
28 | class sample_node_updator\r | |
29 | {\r | |
30 | /**\r | |
31 | *******************************************************************************\r | |
32 | *******************************************************************************\r | |
33 | * <public_methods_group>\r | |
34 | **/\r | |
35 | public:\r | |
36 | \r | |
37 | /**\r | |
38 | ***************************************************************************\r | |
39 | ***************************************************************************\r | |
40 | ** <group description = "Conclassors, declassor, and related.">\r | |
41 | **/\r | |
42 | \r | |
43 | /*\r | |
44 | * <fn description = "Default constructor."\r | |
45 | * comment = "Must be default constructible.">\r | |
46 | **/\r | |
47 | sample_node_updator\r | |
48 | ();\r | |
49 | /** </fn> **/\r | |
50 | \r | |
51 | /*\r | |
52 | * <fn description = "Copy constructor."\r | |
53 | * comment = "Must be copy constructible.">\r | |
54 | **/\r | |
55 | sample_node_updator\r | |
56 | (const sample_node_updator &r_other);\r | |
57 | /** </fn> **/\r | |
58 | \r | |
59 | /*\r | |
60 | * <fn description = "Swaps content."\r | |
61 | * comment = "Must be swappable (if there is such a word).">\r | |
62 | **/\r | |
63 | inline void\r | |
64 | swap\r | |
65 | (sample_node_updator &r_other);\r | |
66 | /** </fn> **/\r | |
67 | \r | |
68 | /*\r | |
69 | ***************************************************************************\r | |
70 | ***************************************************************************\r | |
71 | * </group>\r | |
72 | **/\r | |
73 | \r | |
74 | \r | |
75 | /**\r | |
76 | ***************************************************************************\r | |
77 | ***************************************************************************\r | |
78 | ** <group description = "Operators.">\r | |
79 | **/\r | |
80 | \r | |
81 | /**\r | |
82 | * <fn description = "This method is called by the superclass container \r | |
83 | * object to update the key of a node whose invariants have been\r | |
84 | * violated. p_key is a pointer to the key being updated;\r | |
85 | * p_l_child_key is a pointer to the key of the left-child node of\r | |
86 | * the node being updated (and is NULL if there is no such child node);\r | |
87 | * p_r_child_key is a pointer to the key of the right-child node of\r | |
88 | * the node being updated (and is NULL if there is no such child node)."\r | |
89 | * comment = "@@sample_node_updator_const_key_pointer_comment">\r | |
90 | **/\r | |
91 | void\r | |
92 | operator()\r | |
93 | (const_key_pointer p_key, \r | |
94 | const_key_pointer p_l_child_key, \r | |
95 | const_key_pointer p_r_child_key);\r | |
96 | /** </fn> **/ \r | |
97 | \r | |
98 | /*\r | |
99 | ***************************************************************************\r | |
100 | ***************************************************************************\r | |
101 | * </group>\r | |
102 | **/\r | |
103 | \r | |
104 | \r | |
105 | /**\r | |
106 | *******************************************************************************\r | |
107 | *******************************************************************************\r | |
108 | * </public_methods_group>\r | |
109 | **/\r | |
110 | };\r | |
111 | /**\r | |
112 | * </class>\r | |
113 | **/\r | |
114 | \r | |
115 | \r | |
116 | #endif // #ifndef SAMPLE_NODE_UPDATOR_HPP\r |