OverSim
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
RecursiveLookup.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2008 Institut fuer Telematik, Universitaet Karlsruhe (TH)
3
//
4
// This program is free software; you can redistribute it and/or
5
// modify it under the terms of the GNU General Public License
6
// as published by the Free Software Foundation; either version 2
7
// of the License, or (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program; if not, write to the Free Software
16
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
//
18
24
#ifndef __RECURSIVE_LOOKUP_H
25
#define __RECURSIVE_LOOKUP_H
26
27
#include <
NodeVector.h
>
28
#include <
AbstractLookup.h
>
29
#include <
RpcListener.h
>
30
#include <
CommonMessages_m.h
>
31
32
class
LookupListener
;
33
class
BaseOverlay
;
34
40
class
RecursiveLookupConfiguration
41
{
42
public
:
43
int
redundantNodes
;
44
int
numRetries
;
45
bool
failedNodeRpcs
;
46
};
47
48
class
RecursiveLookup
:
public
RpcListener
,
49
public
AbstractLookup
50
{
51
public
:
52
RecursiveLookup
(
BaseOverlay
*
overlay
,
RoutingType
routingType
,
53
const
RecursiveLookupConfiguration
& config,
54
bool
appLookup
);
58
virtual
~RecursiveLookup
();
59
60
// see IterativeLookup.h
61
virtual
void
lookup
(
const
OverlayKey
& key,
int
numSiblings = 1,
62
int
hopCountMax = 0,
int
retries = 0,
63
LookupListener
*
listener
= NULL);
64
70
virtual
const
NodeVector
&
getResult
()
const
;
71
77
virtual
bool
isValid
()
const
;
78
85
virtual
void
abortLookup
();
86
92
virtual
uint32_t
getAccumulatedHops
()
const
;
93
94
void
handleRpcTimeout
(
BaseCallMessage
* msg,
95
const
TransportAddress
& dest,
96
cPolymorphic* context,
int
rpcId,
97
const
OverlayKey
& destKey);
98
99
void
handleRpcResponse
(
BaseResponseMessage
* msg, cPolymorphic* context,
100
int
rpcId, simtime_t rtt);
101
private
:
102
BaseOverlay
*
overlay
;
103
LookupListener
*
listener
;
104
uint32_t
nonce
;
105
bool
valid
;
106
NodeVector
siblings
;
107
RoutingType
routingType
;
108
int
redundantNodes
;
109
int
numRetries
;
110
bool
appLookup
;
111
};
112
113
#endif //__RECURSIVE_LOOKUP_H
src
common
RecursiveLookup.h
Generated on Fri Dec 7 2012 13:37:53 for OverSim by
1.8.1.2