@Vince says he cannot start working on this Task anytime soon.
I'll start implementation after #1918 is closed AND the design below is reviewed.
My plan is to pull NFD FaceUri
type into ndn-cxx, and extend it with the following:
partial class FaceUri
{
/** \return true if FaceUri is in canonical form, false otherwise
* \note Only the following scheme names are supported: udp, udp4, udp6, tcp, tcp4, tcp6, fd, unix, ether, dev. false will be returned for all other scheme names.
*/
bool
isCanonical() const;
/** \brief asynchronously convert this FaceUri to the canonical form
* \note See isCanonical for supported scheme names. onFailure will be invoked for unsupported scheme names.
*/
void
startCanonize(function<FaceUri> onSuccess, function<std::string> onFailure, boost::asio::io_service& io, time::nanoseconds timeout);
};