Task #1992
closedReplace FaceFlags with individual fields
100%
Description
Replace FaceFlags
field with individual fields: FaceScope, FacePersistency, LinkType.
Spec: FaceMgmt rev41.
This Task involves changes in the following places:
ndn::nfd::FaceStatus
typendn::nfd::FaceEventNotification
typeFace::getFaceStatus
and Face Dataset- Face Status Change Notification
Recommended:
- Declare a base class for common fields in
FaceStatus
andFaceEventNotification
types, or declare a concept for getters and setters of those common fields. - Modify
Face::getFaceStatus
to use this base class or concept. - Populate face status change notification with modified
Face::getFaceStatus
.
Updated by Junxiao Shi over 9 years ago
- Related to Task #1991: Display face attribute fields instead of FaceFlags added
Updated by Junxiao Shi over 9 years ago
Updated by Junxiao Shi over 9 years ago
- Blocks Task #1993: Face query operation added
Updated by Chengyu Fan over 9 years ago
Updated by Junxiao Shi over 9 years ago
After the Change for ndn::nfd::FaceStatus
type and ndn::nfd::FaceEventNotification
type is merged, you can make two separate Changes for #1991 and rest of #1992 (except deleting old API). Those can be worked on in parallel.
After both of those Changes are merged, make a fourth Change to delete old API.
Updated by Alex Afanasyev over 9 years ago
Changes have been merged into ndn-cxx and corresponding changes need to be made to NFD. Currently, the master branch of NFD doesn't compile with the master branch of ndn-cxx.
Updated by Junxiao Shi over 9 years ago
The recently merged ndn-cxx commit is designed to be backwards-compatible, but a file is renamed and we forget to set a alias at old file name.
We should make a urgent commit to ndn-cxx that makes a symbolic link from nfd-face-flags.hpp to nfd-face-traits.hpp.
Updated by Chengyu Fan over 9 years ago
Can I just quickly commit the one to fix this issue, and latter commit others?
Updated by Chengyu Fan over 9 years ago
The quick fix is let face/face.hpp include the header nfd-face-traits.hpp, instead of nfd-face-flags.hpp.
Updated by Junxiao Shi over 9 years ago
No, you should update ndn-cxx to make it backward-compatible, not update NFD.
To test for backwards-compatibility, compile unchanged NFD and NLSR, and they should succeed.
Updated by Chengyu Fan over 9 years ago
- Status changed from In Progress to Code review
- % Done changed from 70 to 100
Updated by Chengyu Fan over 9 years ago
- Status changed from Code review to Closed
Updated by Junxiao Shi over 9 years ago
- Status changed from Closed to Feedback
This Task also includes deleting deprecated APIs, after #1991 is closed.
Updated by Chengyu Fan over 9 years ago
For deleting deprecated APIs, do you mean delete the deprecated APIs in ndn-cxx?
Should it be done recently?
Updated by Junxiao Shi over 9 years ago
Yes, obsolete APIs can be deleted now.
The purpose of making the first commit backwards-compatible is to avoid breaking NFD outright.
After #1991 completion, NFD shouldn't have any code using obsolete APIs.
Updated by Chengyu Fan over 9 years ago
I think the obsolete APIs contain the face flag setter and getter, isLocal, isOnDemand, and FaceFlags enum.
But there are still some NFD codes use some of them:
- tests/daemon/mgmt/face-manager.cppm line 1602, 1664 use setFlags()
- tools/nfd-autoreg.cpp, line 162, 167, and 298 use isLocal or isOnDemand
I'll modify them first, and then move the obsolete APIs in ndn-cxx.
If I misunderstand anything, please let me know.
Updated by Junxiao Shi over 9 years ago
If there's any NFD code that uses obsolete APIs, they should be changed as part of this Task.