commit | 443398d27b81caf3e5d5ffea1e3c02596bea518c | [log] [tgz] |
---|---|---|
author | Jeff Thompson <jefft0@gmail.com> | Tue Jul 02 19:45:46 2013 -0700 |
committer | Jeff Thompson <jefft0@gmail.com> | Tue Jul 02 19:45:46 2013 -0700 |
tree | 3b207d23537ce35ad5cd829997487e28cfc77a83 | |
parent | 26c63d626490d173f0553d8d700fd4c9a5fb0a34 [diff] |
Implement Name(const char *uri)
People often feel confusing and tedious when using CCNx C library, and this is an attempt to make it easier to program NDN applications using C++.
This API remotely resembles PyCCN API if you by any chance have already got yourself familiar with that.
The functions included are be roughly devided into two categories: NDN operations and async operations.
This is a set of functions that provide relative easier ways to perform NDN operations, including manipulating NDN names, content objects, interests, sending interests, callbacks (closure) for content objects, name prefix discovery, signature verifications, etc.. There is also a blocking API to fetch content object.
Communications in NDN is mostly async. There is an event thread running NDN and processing the NDN events (e.g. interests received, expired, content received, etc..). As such, you don't really want to do a lot of processing in the NDN event thread (which blocks processing of that events). Hence we provide a simple executor API, which allows you to process the events in separate threads. We also provide a scheduler which allows you to scheduler various events as you wish. The scheduler is based on libevent C API.
To see more options, use ./waf configure --help
. For default install, use
./waf configure ./waf sudo ./waf install
Normally, default install goes to /usr/local. If you have added /usr/local/lib/pkgconfig to your PKG_CONFIG_PATH
, then you can compile your code like this:
g++ code.cpp `pkg-config --cflags --libs libndn.cxx`
example/ directory contains a fully working example of simple client and server applications written using NDN.cxx API.
There is also an extensive usage of this library in ChronoShare.