Task #3088
Updated by Junxiao Shi about 9 years ago
Refactor `Face` to support [[NDNLPv2]] link service and permanent faces. High-level design: <https://gist.github.com/yoursunny/22a7d53711b4e9bc198a> This issue implements: includes: * Design initialization logic for every `Transport` type, including `UnixTransport UdpTransport TcpTransport EthernetTransport WebSocketTransport`. * Implement `LinkService` and `Transport` base classes classes. * `SimpleLinkService` that only does Interest/Data/Nack \<=\> LpPacket encoding and decoding * Implement a non-inheritable `Face` class that combines a `LinkService` and a `Transport`; `Transport`. * Implement a `NullLinkService` that merely passes through packets between network layer and link layer. * In all `Factory` and `Channel` subclasses, replace the initialization of `UnixStreamFace UdpFace TcpFace EthernetFace WebSocketFace` to avoid conflicts the initialization of a `Face` with old `nfd::Face`, this class is temporarily named `LpFace` `NullLinkService` and the corresponding `Transport`. * `LpFaceWrapper` class which is an adapter that inherits from old `nfd::Face` but wraps an `LpFace` Update **NFD Developer Guide** to reflect the new structure. This is an initial step toward a Face that supports [[NDNLPv2]] and full-featured permanent face.