Lazy routing algorithm.
More...
#include <lazy.h>
Inherits wiselib::RoutingBase< Os_P, Radio_P >.
List of all members.
Public Types |
enum | ErrorCodes { SUCCESS = Os::SUCCESS,
ERR_UNSPEC = Os::ERR_UNSPEC,
ERR_NETDOWN = Os::ERR_NETDOWN
} |
enum | SpecialNodeIds { BROADCAST_ADDRESS = Radio_P::BROADCAST_ADDRESS,
NULL_NODE_ID = Radio_P::NULL_NODE_ID
} |
enum | Restrictions { MAX_MESSAGE_LENGTH = Radio_P::MAX_MESSAGE_LENGTH - Message::PAYLOAD_POS
} |
typedef Os_P | Os |
typedef Radio_P | Radio |
typedef Timer_P | Timer |
typedef Rand_P | Rand |
typedef Debug_P | Debug |
typedef Node_P | Node |
typedef NodeList_P | NodeList |
typedef Connectivity_P | Connectivity |
typedef ConnectivityList_P | ConnectivityList |
typedef LazyType< Os, Radio,
Timer, Rand, Node, NodeList,
Connectivity, ConnectivityList,
Debug > | self_type |
typedef NodeList::iterator | NodeListIterator |
typedef ConnectivityList::iterator | ConnectivityListIterator |
typedef Node::Position | Position |
typedef
Node::Position::CoordinatesNumber | CoordinatesNumber |
typedef Radio::node_id_t | node_id_t |
typedef Radio::size_t | size_t |
typedef Radio::block_data_t | block_data_t |
typedef Radio::message_id_t | message_id_t |
typedef Timer::millis_t | millis_t |
typedef LazyMessageType< Os,
Radio > | Message |
enum | ReturnValues |
typedef Os_P | OsModel |
typedef delegate3< void,
node_id_t, size_t,
block_data_t * > | radio_delegate_t |
typedef vector_static< OsModel,
radio_delegate_t,
MAX_RECEIVERS > | CallbackVector |
typedef CallbackVector::iterator | CallbackVectorIterator |
Public Member Functions |
| LazyType () |
| ~LazyType () |
void | enable (void) |
void | disable (void) |
uint8_t | decision_lazy (Node, node_id_t) |
void | send_neighbor_discovery (void *) |
void | send_vicinity_discovery (void *) |
void | send_greedy (void *) |
void | send (node_id_t, size_t, block_data_t *, message_id_t) |
void | receive (node_id_t, size_t, block_data_t *) |
void | store_neighbor (Node) |
void | store_vicinity (Connectivity) |
void | print_neighbors (void *) |
void | print_vicinity (void *) |
void | filter_vicinity (void *) |
void | init (Radio &radio, Timer &timer, Debug &debug, Rand &rand) |
void | set_self (Node _n, NodeList _nl) |
void | set_self (Node _n) |
void | set_neighbor_discovery_timer (millis_t _t) |
void | set_vicinity_discovery_timer (millis_t _t) |
Connectivity * | get_self (void) |
millis_t | get_neighbor_discovery_timer (void) |
millis_t | get_vicinity_discovery_timer (void) |
millis_t | get_ready_time (void) |
void | set_destination (const Position &_p) |
void | destruct () |
Radio & | radio () |
Debug & | debug () |
Timer & | timer () |
Rand & | rand () |
int | reg_recv_callback (T *obj_pnt) |
int | unreg_recv_callback (int idx) |
void | notify_receivers (node_id_t from, size_t len, block_data_t *data) |
Detailed Description
template<typename Os_P, typename Radio_P, typename Timer_P, typename Rand_P, typename Node_P, typename NodeList_P, typename Connectivity_P, typename ConnectivityList_P, typename Debug_P>
class wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >
Lazy routing algorithm.
Member Typedef Documentation
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Connectivity_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Connectivity |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Node::Position::CoordinatesNumber wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::CoordinatesNumber |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Debug_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Debug |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Timer::millis_t wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::millis_t |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Node_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Node |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef NodeList_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::NodeList |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Os_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Os |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Node::Position wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Position |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Radio_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Radio |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Rand_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Rand |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef LazyType<Os, Radio, Timer, Rand, Node, NodeList, Connectivity, ConnectivityList, Debug> wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::self_type |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
typedef Timer_P wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::Timer |
Member Enumeration Documentation
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
- Enumerator:
SUCCESS |
|
ERR_UNSPEC |
|
ERR_NETDOWN |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
- Enumerator:
MAX_MESSAGE_LENGTH |
Maximal number of bytes in payload.
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
- Enumerator:
BROADCAST_ADDRESS |
All nodes in communication range.
|
NULL_NODE_ID |
Unknown/No node id.
|
Constructor & Destructor Documentation
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::LazyType |
( |
| ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::~LazyType |
( |
| ) |
|
Member Function Documentation
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
Debug& wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::debug |
( |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::destruct |
( |
void |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::disable |
( |
void |
| ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::enable |
( |
void |
| ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::filter_vicinity |
( |
void * |
userdata | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
millis_t wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::get_neighbor_discovery_timer |
( |
void |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
millis_t wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::get_ready_time |
( |
void |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
Connectivity* wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::get_self |
( |
void |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
millis_t wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::get_vicinity_discovery_timer |
( |
void |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::init |
( |
Radio & |
radio, |
|
|
Timer & |
timer, |
|
|
Debug & |
debug, |
|
|
Rand & |
rand |
|
) |
| [inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::print_neighbors |
( |
void * |
userdata | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::print_vicinity |
( |
void * |
userdata | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
Radio& wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::radio |
( |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
Rand& wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::rand |
( |
| ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::receive |
( |
node_id_t |
from, |
|
|
size_t |
len, |
|
|
block_data_t * |
data |
|
) |
| |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::send |
( |
node_id_t |
destination, |
|
|
size_t |
len, |
|
|
block_data_t * |
data, |
|
|
message_id_t |
msg_id |
|
) |
| |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::send_greedy |
( |
void * |
userdata | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::send_neighbor_discovery |
( |
void * |
userdata | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::send_vicinity_discovery |
( |
void * |
userdata | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::set_destination |
( |
const Position & |
_p | ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::set_neighbor_discovery_timer |
( |
millis_t |
_t | ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::set_self |
( |
Node |
_n | ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::set_self |
( |
Node |
_n, |
|
|
NodeList |
_nl |
|
) |
| [inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::set_vicinity_discovery_timer |
( |
millis_t |
_t | ) |
[inline] |
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::store_neighbor |
( |
Node |
_n | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
void wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::store_vicinity |
( |
Connectivity |
_c | ) |
|
template<typename Os_P , typename Radio_P , typename Timer_P , typename Rand_P , typename Node_P , typename NodeList_P , typename Connectivity_P , typename ConnectivityList_P , typename Debug_P >
Timer& wiselib::LazyType< Os_P, Radio_P, Timer_P, Rand_P, Node_P, NodeList_P, Connectivity_P, ConnectivityList_P, Debug_P >::timer |
( |
| ) |
[inline] |
The documentation for this class was generated from the following file:
- wiselib.testing/algorithms/routing/lazy/lazy.h