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 about 10 years ago
- Related to Task #1991: Display face attribute fields instead of FaceFlags added
Updated by Junxiao Shi about 10 years ago
Updated by Junxiao Shi about 10 years ago
- Blocks Task #1993: Face query operation added
Updated by Chengyu Fan about 10 years ago
- Status changed from New to In Progress
Updated by Chengyu Fan about 10 years ago
Updated by Junxiao Shi about 10 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 about 10 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 about 10 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 about 10 years ago
Can I just quickly commit the one to fix this issue, and latter commit others?
Updated by Chengyu Fan about 10 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 about 10 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 about 10 years ago
- Status changed from In Progress to Code review
- % Done changed from 70 to 100
Updated by Chengyu Fan about 10 years ago
- Status changed from Code review to Closed
Updated by Junxiao Shi about 10 years ago
- Status changed from Closed to Feedback
This Task also includes deleting deprecated APIs, after #1991 is closed.
Updated by Chengyu Fan about 10 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 about 10 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 about 10 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 about 10 years ago
If there's any NFD code that uses obsolete APIs, they should be changed as part of this Task.
Updated by Chengyu Fan about 10 years ago
- Status changed from Feedback to Closed