//  ndnboost/filesystem.hpp  --------------------------------------------------------------//

//  Copyright Beman Dawes 2010

//  Distributed under the Boost Software License, Version 1.0.
//  See http://www.boost.org/LICENSE_1_0.txt

//  Library home page: http://www.boost.org/libs/filesystem

//--------------------------------------------------------------------------------------// 

#ifndef NDNBOOST_FILESYSTEM_FILESYSTEM_HPP
#define NDNBOOST_FILESYSTEM_FILESYSTEM_HPP

#  include <ndnboost/filesystem/config.hpp>
#  include <ndnboost/filesystem/path.hpp>
#  include <ndnboost/filesystem/operations.hpp>
#  include <ndnboost/filesystem/convenience.hpp>

#endif  // NDNBOOST_FILESYSTEM_FILESYSTEM_HPP 
