Initial import
[olsrd.git] / gui / win32 / Main / NodeEntry.cpp
1 /*\r
2  * Windows GUI for olsr.org\r
3  * Copyright (C) 2004 Thomas Lopatic (thomas@lopatic.de)\r
4  *\r
5  * This file is part of olsr.org.\r
6  *\r
7  * olsr.org is free software; you can redistribute it and/or modify\r
8  * it under the terms of the GNU General Public License as published by\r
9  * the Free Software Foundation; either version 2 of the License, or\r
10  * (at your option) any later version.\r
11  *\r
12  * olsr.org is distributed in the hope that it will be useful,\r
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15  * GNU General Public License for more details.\r
16  *\r
17  * You should have received a copy of the GNU General Public License\r
18  * along with olsr.org; if not, write to the Free Software\r
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
20  *\r
21  */\r
22 \r
23 #include "stdafx.h"\r
24 #include "NodeEntry.h"\r
25 \r
26 class NodeEntry &NodeEntry::operator=(class NodeEntry &Src)\r
27 {\r
28         Addr = Src.Addr;\r
29         Timeout = Src.Timeout;\r
30 \r
31         MprList.RemoveAll();\r
32         MprList.AddHead(&Src.MprList);\r
33 \r
34         HnaList.RemoveAll();\r
35         HnaList.AddHead(&Src.HnaList);\r
36 \r
37         MidList.RemoveAll();\r
38         MidList.AddHead(&Src.MidList);\r
39 \r
40         return *this;\r
41 }\r
42 \r
43 BOOL NodeEntry::operator==(const class NodeEntry &Comp) const\r
44 {\r
45         return Addr == Comp.Addr;\r
46 }\r
47 \r
48 void NodeEntry::AddMpr(unsigned int MprAddr, unsigned __int64 Timeout)\r
49 {\r
50         class MprEntry NewEntry;\r
51         POSITION Pos;\r
52 \r
53         NewEntry.Addr = MprAddr;\r
54 \r
55         Pos = MprList.Find(NewEntry);\r
56 \r
57         if (Pos != NULL)\r
58         {\r
59                 class MprEntry &OldEntry = MprList.GetAt(Pos);\r
60                 OldEntry.Timeout = Timeout;\r
61         }\r
62 \r
63         else\r
64         {\r
65                 NewEntry.Timeout = Timeout;\r
66                 MprList.AddTail(NewEntry);\r
67         }\r
68 }\r
69 \r
70 void NodeEntry::AddMid(unsigned int IntAddr, unsigned __int64 Timeout)\r
71 {\r
72         class MidEntry NewEntry;\r
73         POSITION Pos;\r
74 \r
75         NewEntry.Addr = IntAddr;\r
76 \r
77         Pos = MidList.Find(NewEntry);\r
78 \r
79         if (Pos != NULL)\r
80         {\r
81                 class MidEntry &OldEntry = MidList.GetAt(Pos);\r
82                 OldEntry.Timeout = Timeout;\r
83         }\r
84 \r
85         else\r
86         {\r
87                 NewEntry.Timeout = Timeout;\r
88                 MidList.AddTail(NewEntry);\r
89         }\r
90 }\r
91 \r
92 void NodeEntry::AddHna(unsigned int NetAddr, unsigned int NetMask,\r
93                                            unsigned __int64 Timeout)\r
94 {\r
95         class HnaEntry NewEntry;\r
96         POSITION Pos;\r
97 \r
98         NewEntry.Addr = NetAddr;\r
99         NewEntry.Mask = NetMask;\r
100 \r
101         Pos = HnaList.Find(NewEntry);\r
102 \r
103         if (Pos != NULL)\r
104         {\r
105                 class HnaEntry &OldEntry = HnaList.GetAt(Pos);\r
106                 OldEntry.Timeout = Timeout;\r
107         }\r
108 \r
109         else\r
110         {\r
111                 NewEntry.Timeout = Timeout;\r
112                 HnaList.AddTail(NewEntry);\r
113         }\r
114 }\r