https://redmine.named-data.net/https://redmine.named-data.net/favicon.ico?14759811232017-03-28T15:59:35ZNDN project issue tracking systemndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=187132017-03-28T15:59:35ZJunxiao Shi
<ul><li><strong>Blocks</strong> <i><a class="issue tracker-2 status-5 priority-2 priority-default closed" href="/issues/4021">Feature #4021</a>: FaceSystem: use NetworkMonitor::listNetworkInterfaces()</i> added</li></ul> ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=187162017-03-28T15:59:53ZJunxiao Shi
<ul><li><strong>Blocked by</strong> <i><a class="issue tracker-2 status-5 priority-2 priority-default closed" href="/issues/3353">Feature #3353</a>: NetworkMonitor: emit fine-grained signals when the state of a network interface changes</i> added</li></ul> ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=187292017-03-29T07:48:51ZJunxiao Shi
<ul><li><strong>Related to</strong> <i><a class="issue tracker-2 status-5 priority-2 priority-default closed" href="/issues/4025">Feature #4025</a>: NetworkMonitor: empty impl on unsupported platform</i> added</li></ul> ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=187362017-03-29T09:37:25ZJunxiao Shi
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>In Progress</i></li><li><strong>Assignee</strong> set to <i>Junxiao Shi</i></li></ul><p>Design:</p>
<ul>
<li>Pure virtual base class <code>NetworkMonitor::ImplBase</code> is introduced. It is a friend of <code>NetworkMonitor</code>, and offers protected methods to modify <code>NetworkMonitor</code> data structures or emit signals on it. <code>ImplBase</code> type is public API.</li>
<li>Existing <code>Impl</code> class inherit from <code>ImplBase</code>. It is not a friend of <code>NetworkMonitor</code>, but accesses <code>NetworkMonitor</code> data structures and signals via <code>ImplBase</code> protected methods. <code>Impl</code> type is not public API.</li>
<li><code>NetworkMonitor</code> constructor takes <code>unique_ptr<NetworkMonitor::ImplBase></code>, which defaults to <code>nullptr</code>. Passing <code>nullptr</code> causes the constructor to internally make an <code>Impl</code> instance.</li>
<li><code>NetworkInterface</code> type setters are made public. <code>NetworkMonitor</code> APIs that return <code>NetworkInterface</code> are changed to return <code>const NetworkInterface</code> instead so that setters cannot be invoked by outsider.</li>
<li><code>MockImpl</code> class inherits from <code>ImplBase</code> and exposes its protected methods as public. To make a mock <code>NetworkMonitor</code>, pass a <code>MockImpl</code> instance to <code>NetworkMonitor</code> constructor.</li>
</ul>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=187472017-03-29T20:32:05ZDavide Pesavento
<ul></ul><p>Junxiao Shi wrote:</p>
<blockquote>
<ul>
<li><code>NetworkInterface</code> type setters are made public.</li>
</ul>
</blockquote>
<p>I'd rather keep them private.</p>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=187492017-03-29T21:30:24ZJunxiao Shi
<ul></ul><p>Reply to note-5:</p>
<p>How would you propose to let a test case create and update a <code>NetworkInterface</code>?<br>
What's the harm of making the setters public? If someone uses <code>const_cast</code>, it's their problem. Testability is more important than absolute protection.</p>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=194622017-06-08T15:23:12ZDavide Pesavento
<ul></ul><p>@Junxiao, are you still working on this?</p>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=194632017-06-08T19:12:26ZJunxiao Shi
<ul></ul><p>I'm waiting for the design discussion to be resolved.</p>
<p>For coding, I'm waiting for <a class="issue tracker-2 status-5 priority-2 priority-default closed" title="Feature: NetworkMonitor fine-grained signals for macOS (Closed)" href="https://redmine.named-data.net/issues/3817">#3817</a> to close in order to avoid conflicts.</p>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=194662017-06-08T21:18:53ZDavide Pesavento
<ul><li><strong>Blocked by</strong> <i><a class="issue tracker-2 status-5 priority-2 priority-default closed" href="/issues/3817">Feature #3817</a>: NetworkMonitor fine-grained signals for macOS</i> added</li></ul> ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=195462017-06-22T09:39:05ZDavide Pesavento
<ul><li><strong>Blocked by</strong> deleted (<i><a class="issue tracker-2 status-5 priority-2 priority-default closed" href="/issues/3817">Feature #3817</a>: NetworkMonitor fine-grained signals for macOS</i>)</li></ul> ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=195472017-06-22T09:41:18ZDavide Pesavento
<ul></ul><p>The main change of <a class="issue tracker-2 status-5 priority-2 priority-default closed" title="Feature: NetworkMonitor fine-grained signals for macOS (Closed)" href="https://redmine.named-data.net/issues/3817">#3817</a> has been merged. Remaining changes under that task will be minor and localized, thus this task is no longer blocked by <a class="issue tracker-2 status-5 priority-2 priority-default closed" title="Feature: NetworkMonitor fine-grained signals for macOS (Closed)" href="https://redmine.named-data.net/issues/3817">#3817</a>.</p>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=196022017-06-28T21:02:43ZJunxiao Shi
<ul><li><strong>% Done</strong> changed from <i>0</i> to <i>20</i></li><li><strong>Estimated time</strong> set to <i>5.00 h</i></li></ul><p><a href="https://gerrit.named-data.net/3978">https://gerrit.named-data.net/3978</a> patchset1 illustrates some of the API changes. I've skipped macOS variant for now. It also does not include <code>MockImpl</code> yet.</p>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=196282017-07-01T08:47:57ZJunxiao Shi
<ul><li><strong>% Done</strong> changed from <i>20</i> to <i>40</i></li></ul><p><a href="https://gerrit.named-data.net/3978">https://gerrit.named-data.net/3978</a> patchset2 brings the public API design of <code>MockNetworkMonitor</code>. It's structured as a subclass of <code>NetworkMonitor</code> rather than an Impl, because the Impl is passed by unique_ptr to <code>NetworkMonitor</code> and thus is solely owned by <code>NetworkMonitor</code>, so it's unsafe for the caller to keep a reference to an Impl. Instead, <code>MockNetworkMonitor</code> can internally manage an Impl and forward calls to it.</p>
ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=196382017-07-02T10:36:10ZJunxiao Shi
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Code review</i></li><li><strong>% Done</strong> changed from <i>40</i> to <i>100</i></li></ul> ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=196442017-07-03T10:24:54ZAlex Afanasyev
<ul><li><strong>Status</strong> changed from <i>Code review</i> to <i>Closed</i></li></ul> ndn-cxx - Feature #4024: NetworkMonitor: stub implementationhttps://redmine.named-data.net/issues/4024?journal_id=196552017-07-03T16:16:53ZDavide Pesavento
<ul><li><strong>Subject</strong> changed from <i>NetworkMonitor: mock impl</i> to <i>NetworkMonitor: stub implementation</i></li></ul>