NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
payload-with-policy.hpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
20
#ifndef PAYLOAD_WITH_INDEX_H_
21
#define PAYLOAD_WITH_INDEX_H_
22
24
25
namespace
ns3 {
26
namespace
ndn {
27
namespace
ndnSIM {
28
29
template
<
typename
PayloadTraits,
typename
IndexTraits>
30
class
payload_with_index {
31
public
:
32
typedef
PayloadTraits::pointer_type iterator;
33
34
typedef
typename
IndexTraits::
35
template index<PayloadTraits,
36
typename
IndexTraits::template container_hook<parent_trie>::type>::type
37
index_container;
38
39
inline
payload_with_index()
40
: index_(*this)
41
{
42
}
43
44
inline
std::pair<iterator, bool>
45
insert(
typename
iterator payload)
46
{
47
bool
ok = policy_.insert(s_iterator_to(item.first));
48
if
(!ok) {
49
item.first->erase();
// cannot insert
50
return
std::make_pair(end(),
false
);
51
}
52
53
return
item;
54
}
55
56
// inline void
57
// erase (const FullKey &key)
58
// {
59
// iterator foundItem, lastItem;
60
// bool reachLast;
61
// std::tie (foundItem, reachLast, lastItem) = trie_.find (key);
62
63
// if (!reachLast || lastItem->payload () == PayloadTraits::empty_payload)
64
// return; // nothing to invalidate
65
66
// erase (lastItem);
67
// }
68
69
// inline void
70
// erase (iterator node)
71
// {
72
// if (node == end ()) return;
73
74
// policy_.erase (s_iterator_to (node));
75
// node->erase (); // will do cleanup here
76
// }
77
78
// inline void
79
// clear ()
80
// {
81
// policy_.clear ();
82
// trie_.clear ();
83
// }
84
85
// template<typename Modifier>
86
// bool
87
// modify (iterator position, Modifier mod)
88
// {
89
// if (position == end ()) return false;
90
// if (position->payload () == PayloadTraits::empty_payload) return false;
91
92
// mod (*position->payload ());
93
// policy_.update (position);
94
// return true;
95
// }
96
97
private
:
98
mutable
index_container policy_;
99
};
100
101
}
// ndnSIM
102
}
// ndn
103
}
// ns3
104
106
107
#endif // PAYLOAD_WITH_POLICY_H_
ndnSIM
utils
trie
payload-with-policy.hpp
Generated on Wed Feb 18 2015 16:31:16 for ndnSIM by
1.8.7