[ndnSIM] Setting a custom policy for Content Store
John Baugh
jpbaugh at umich.edu
Tue Nov 15 22:10:40 PST 2016
Alex,
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
unique_ptr.
*Updated Errors:*
https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_1k4oDKoXuJJrGNtwXl6sHnrA
*Updated jpb-policy-test.cpp:*
https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA
*Updated JPBPolicy.hpp:*
https://drive.google.com/open?id=0By9ufeKqmJYYV183emczZ01kM28
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,
John
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