face: perform wire format encoding in frontend class

Face::put encodes Data and Nack into wire format before passing to Impl class,
so that Face::put(const Data&) doesn't require the Data to be managed by a
shared_ptr.
For the common case of sending Data without other NDNLPv2 headers, this commit
adds an optimization that the Data is not copied into an LpPacket, but directly
encodes into wire format.

refs #3678

Change-Id: I7ac7bb574a5cb3b07f6c62060809c94ff1cf3dee
3 files changed
tree: c25c6d30fc2fdb7957e1956085f0670f28d582a6
  1. .jenkins.d/
  2. .waf-tools/
  3. docs/
  4. examples/
  5. src/
  6. tests/
  7. tools/
  8. .gitignore
  9. .jenkins
  10. .travis.yml
  11. AUTHORS.md
  12. client.conf.sample
  13. COPYING.md
  14. libndn-cxx.pc.in
  15. README-dev.md
  16. README.md
  17. waf
  18. wscript
README.md

ndn-cxx: NDN C++ library with eXperimental eXtensions

ndn-cxx is a C++ library, implementing Named Data Networking (NDN) primitives that can be used to implement various NDN applications. The library is currently being used as part of the following projects:

See the file docs/INSTALL.rst for build and install instructions.

Please submit any bugs or issues to the ndn-cxx issue tracker: http://redmine.named-data.net/projects/ndn-cxx/issues

More documentation

Extensive documentation of the library is available on the library's homepage: http://www.named-data.net/doc/ndn-cxx/

License

ndn-cxx is an open source project licensed under LGPL 3.0 license. For more information about the license, refer to COPYING.md.