1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
$NetBSD: patch-an,v 1.2 2005/03/06 11:40:21 spz Exp $
--- src/normalform/RadixSet.hh.orig 2004-07-30 12:58:13.000000000 +0200
+++ src/normalform/RadixSet.hh
@@ -76,7 +76,12 @@ extern FixedSizeAllocator RadixTreeAlloc
class RadixTree {
public:
+#if (__GNUC__ > 2)
+ friend class Iterator;
+ class Iterator {
+#else
friend class Iterator {
+#endif
private:
const RadixTree* last;
const RadixTree* root;
@@ -155,7 +160,12 @@ class RadixSet {
public:
static bool compressedPrint;
+#if (__GNUC__ > 2)
+ friend class Iterator;
+ class Iterator {
+#else
friend class Iterator {
+#endif
private:
RadixTree::Iterator itr;
const RadixTree *now; // points to current node during iteration
@@ -166,7 +176,12 @@ public:
bool next(u_int &_addr, u_int &_leng, u_int64_t &rngs);
};
+#if (__GNUC__ > 2)
+ friend class SortedIterator;
+ class SortedIterator {
+#else
friend class SortedIterator {
+#endif
private:
class PrefixLNode : public ListNode {
public:
@@ -189,7 +204,12 @@ public:
bool next(u_int &_addr, u_int &_leng, u_int64_t &_rngs);
};
+#if (__GNUC__ > 2)
+ friend class PrefixIterator;
+ class PrefixIterator {
+#else
friend class PrefixIterator {
+#endif
private:
RadixTree::Iterator itr;
const RadixTree *current;
@@ -206,7 +226,12 @@ public:
bool next(u_int &_addr, u_int &_leng);
};
+#if (__GNUC__ > 2)
+ friend class SortedPrefixIterator;
+ class SortedPrefixIterator {
+#else
friend class SortedPrefixIterator {
+#endif
private:
class PrefixLNode : public ListNode {
public:
@@ -228,7 +253,12 @@ public:
bool next(u_int &_addr, u_int &_leng);
};
+#if (__GNUC__ > 2)
+ friend class PrefixRangeIterator;
+ class PrefixRangeIterator {
+#else
friend class PrefixRangeIterator {
+#endif
private:
RadixTree::Iterator itr;
const RadixTree *current;
@@ -259,7 +289,12 @@ public:
}
};
+#if (__GNUC__ > 2)
+ friend class SortedPrefixRangeIterator;
+ class SortedPrefixRangeIterator {
+#else
friend class SortedPrefixRangeIterator {
+#endif
private:
class PrefixLNode : public ListNode {
public:
|