[ndnSIM] Question about extending forwarding strategy in ndnSIM

Alex Afanasyev alexander.afanasyev at ucla.edu
Wed Feb 20 09:40:02 PST 2013

Hi Yifeng,

PerOutFaceLimits is a templated class and you can define (almost) any Parent class that PerOutFaceLimits is extending.  Examples of these are in model/fw/per-out-face-limits.cc file: 

template class PerOutFaceLimits<BestRoute>;
typedef PerOutFaceLimits<BestRoute> PerOutFaceLimitsBestRoute;

If you want to extend the limits class, you have several options.  You can do it in a templated way:

template<class Parent>
class Extension : public PerOutFaceLimits<Parent>

or you if you know what is the base strategy you want to use with limiting, you can just specialize your extension:

class Extension : public PerOutFaceLimits<BestRoute>

If the parent class that you're using is inherited from Nacks class (most of the strategies do: http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_forwarding_strategy.html), then you can directly override any method defined in Nacks class in your extension.   That is, in one extension class you can combine modifications for limits and nacks.


On Feb 20, 2013, at 6:19 AM, Yifeng Li <yifengl at email.arizona.edu> wrote:

> Hello Alex,
> I noticed per-out-face-limits extend Parent, where is Parent defined? I also, if I extend per out face limits, do I also have to extend Nacks as well? There seems to be inheritance conflicts if I extend both.
> Thanks for your help,
> Yifeng

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130220/57db3292/attachment.html>

More information about the ndnSIM mailing list