Notes for ndn-cxx developers
============================

Code style
----------

ndn-cxx code is subject to [ndn-cxx code style](http://named-data.net/doc/ndn-cxx/current/code-style.html).

Licensing
---------

If you agree with the terms of the New BSD License, please use the following license
boilerplate into all `.hpp` and `.cpp` files:


    /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
    /**
     * Copyright (c) Year(s),  Copyright Holder.
     * All rights reserved.
     *
     * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
     * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
     *
     * This file licensed under New BSD License.  See COPYING for detailed information about
     * ndn-cxx library copyright, permissions, and redistribution restrictions.
     ////// [optional part] //////
     *
     * @author Author's Name <email@domain-or-homepage://url>
     * @author Other Author's Name <another.email@domain-or-homepage://url>
     ////// [end of optional part] //////
     */
