Task #3088
Updated by Junxiao Shi over 9 years ago
Refactor `Face` to support [[NDNLPv2]] link service and permanent faces.
High-level design: <https://gist.github.com/yoursunny/22a7d53711b4e9bc198a>
This issue includes:
* Design initialization logic for every `Socket` type, including `UnixSocket UdpSocket TcpSocket EthernetSocket WebSocketSocket`.
* Implement `LinkService` and `Socket` base classes.
* Implement a non-inheritable `Face` class that connects a `LinkService` and `Socket`.
* Implement a `NullLinkService` that merely passes through packets between network layer and link layer.
If network layer attempts to send a NACK, write an ERROR log, and don't send anything.
* In all `Factory` and `Channel` subclasses, replace the initialization of `UnixStreamFace UdpFace TcpFace EthernetFace WebSocketFace` to the initialization of a `Face` with `NullLinkService` and the corresponding `Socket`.
* 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.