[ndnSIM] Setting a custom policy for Content Store

John Baugh jpbaugh at umich.edu
Tue Nov 15 22:10:40 PST 2016


Actually, as soon as I sent the last e-mail, I noticed that Policy didn't
have a default/no-arg ctor defined, so I went in and modified it to use
one.  I gave JPBPolicy a no-arg constructor, but used a passthrough to the
base class (Policy) constructor with the constant string.  I *think* I have
that part correct.

However, I still am getting the "use of deleted function" error related to

*Updated Errors:*

*Updated jpb-policy-test.cpp:*

*Updated JPBPolicy.hpp:*

I neglected to include my Policy class last time.  And yes, I suppose using
separate compilation (.hpp and .cpp file for the JPBPolicy class) would be
better, but I'm trying to take it one step at a time! :)

I think some of this might be some misunderstandings with some of the new
C++ 11 and 14 features / smart pointer stuff.

Also, *do I need the *= delete for the copy constructor and = operator?  I
was reading in a few areas where that helped with the error I'm receiving,
but I don't know if those are necessary.

Thank you all so much,


On Wed, Nov 16, 2016 at 12:38 AM, Alex Afanasyev <aa at cs.ucla.edu> wrote:

> Hi John,
> You have a small issue in your implementation of JPBPolicy.  If you
> haven't, you need to define the default constructor and in the default
> constructor use ``Policy::Policy(const std::string&)`` to initialize the
> base class.  You can see the example in other policies:
>     LruPolicy::LruPolicy()
>        : Policy(POLICY_NAME)
>      {
>      }
> The reason is that each policy has to have a name, which is enforced by
> the deleted default constructor of the base class.
> --
> Alex
> On Nov 16, 2016, at 1:44 PM, John Baugh <jpbaugh at umich.edu> wrote:
> Greetings all,
> *See the error(s) I'm getting below from my Google Drive:*
> https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_
> 1k4oDKoXuJJrGNtwXl6sHnrA
> *Here's the code:*
> https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA
> Thanks,
> John
> On Mon, Nov 14, 2016 at 3:02 AM, Alex Afanasyev <aa at cs.ucla.edu> wrote:
>> Hi John,
>> Can you post the exact error you're getting (if it is too long, you can
>> use pastebin.com).  If you also can share the snippet that reproduces
>> the problem, it would be much faster to debug the issue and suggest the
>> solution.
>> --
>> Alex
>> On Nov 14, 2016, at 3:53 PM, John Baugh <jpbaugh at umich.edu> wrote:
>> I am trying code like so:
>> unique_ptr<nfd::cs::Policy> policy(new JPBPolicy());
>> myContentStore.setPolicy(policy);
>> I'm getting tons of errors.  It doesn't like any of the conversions I'm
>> trying to perform...  It may be a misunderstanding of some of the
>> techniques used with managed/smart pointers in terms of polymorphic
>> references, but something's not working.
>> I want to create a subclass of Policy in order to override functions such
>> as doAfterInsert(iterator i);
>> In my derived class (subclass), I did provide a body for all the pure
>> virtual methods from the documentation of Policy.
>> But I think the problem is the conversion.  Is there some way to do this
>> with say, static_cast ?
>> Thanks,
>> John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20161116/7f06a580/attachment-0001.html>

More information about the ndnSIM mailing list