<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Fabrizio,<div><br></div><div>The problem is that you're not comparing the comparable things.  The first thing, pitEntry->GetIncoming() returns you a container (set of incoming faces), while ndn->GetFace(...) returns you just one face.</div><div><br></div><div>The solution depends on what you're trying to achieve.  One crazy thing is to compare all incoming faces from PIT entry with the target one:</div><div><br></div><div>for (pit::Entry::in_container::iterator face = pitEntry->GetIncoming().begin();</div><div>     face != pitEntry->GetIncoming().end();</div><div>     ++face)</div><div>{</div><div>   if (*face == ndn->GetFace(0))</div><div>   {</div><div>      ...</div><div>   }</div><div>}</div><div><br></div><div>"Incoming face" is another data structure actually, but it can be directly compared to the face.</div><div><br></div><div>---</div><div>Alex</div><div><br><div><div>On Jan 5, 2014, at 7:26 PM, fabrizio saponaro <<a href="mailto:fab.batta@gmail.com">fab.batta@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi Alex,<div>I want to compare an object of PitEntryIncomingFace with an object of Face.</div><div><br></div><div>To get the incoming face of a entry pit I use</div><div><i>const pit::Entry::in_container inFace = pitEntry->GetIncoming ();<br>
</i></div><div><br></div><div>and to get a Face of my element of forwarding strategy I use:</div><div><div><i>Ptr<L3Protocol> ndn = this->GetObject<L3Protocol> ();</i></div><div><i>Ptr<Face> outFace = ndn->GetFace (0); // 0 for example</i></div>
</div><div><br></div><div>I wanted to compare its. In the PitEntryIncomingFace's code exists this operator:<br></div><div><i>  bool operator== (Ptr<Face> face) { return *m_face==*face; }</i></div><div><i><br></i></div>
<div>so <span style="background-color: rgb(250, 250, 250); font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">I've thought use it in this way:</span></div><div><font face="Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif"><span style="line-height:15px">if (inFace == outFace) {...}<span class="" style="white-space:pre">       </span></span></font><span style="background-color: rgb(250, 250, 250); font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">, but I got some errors like:</span></div>
<div><span style="background-color:rgb(250,250,250)"><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;"><i>‘const in_container {aka const std::set<ns3::ndn::pit::IncomingFace>}’ is not derived from ‘const ns3::Ptr<T>’</i></div>
<div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;"><i><br></i></div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">
I know that these errors are due to the use of const by the GetIncoming method in the EntryPit class, so I created this method:</div><div><div><font face="Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif"><span style="line-height:15px"><i>Entry::in_container &</i></span></font></div>
<div><font face="Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif"><span style="line-height:15px"><i>Entry::GetIncoming2 () </i></span></font></div><div><font face="Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif"><span style="line-height:15px"><i>{</i></span></font></div>
<div><font face="Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif"><span style="line-height:15px"><i>  return m_incoming;</i></span></font></div><div><font face="Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif"><span style="line-height:15px"><i>}</i></span></font></div>
</div><div><font face="Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif"><span style="line-height:15px"><i><br></i></span></font></div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">
but I got other similar errors like:</div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;"><div><i> ‘ns3::ndn::pit::Entry::in_container {aka std::set<ns3::ndn::pit::IncomingFace>}’ is not derived from ‘const ns3::Ptr<T>’</i></div>
</div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;"><br></div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">
How could I solve it?</div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">Many thanks and best regards,</div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">
Fabrizio</div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;"><i><br></i></div><div style="font-family: Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif; font-size: 13px; line-height: 15px;">
<br></div></span></div></div>
_______________________________________________<br>ndnSIM mailing list<br><a href="mailto:ndnSIM@lists.cs.ucla.edu">ndnSIM@lists.cs.ucla.edu</a><br>http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim<br></blockquote></div><br></div></body></html>