blob: 470d8b1360b43b9cc62b921ae37d738c5ee597c3 [file] [log] [blame]
Vince Lehman0a7da612014-10-29 14:39:29 -05001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
Nick Gordonc6a85222017-01-03 16:54:34 -06003 * Copyright (c) 2014-2017, The University of Memphis,
Nick Gordonf8b5bcd2016-08-11 15:06:50 -05004 * Regents of the University of California
Vince Lehman0a7da612014-10-29 14:39:29 -05005 *
6 * This file is part of NLSR (Named-data Link State Routing).
7 * See AUTHORS.md for complete list of NLSR authors and contributors.
8 *
9 * NLSR is free software: you can redistribute it and/or modify it under the terms
10 * of the GNU General Public License as published by the Free Software Foundation,
11 * either version 3 of the License, or (at your option) any later version.
12 *
13 * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
14 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * NLSR, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
19 *
20 **/
21
22#ifndef NLSR_COMMON_HPP
23#define NLSR_COMMON_HPP
24
25#include <ndn-cxx/common.hpp>
Nick Gordon9461afb2017-04-25 15:54:50 -050026#include <ndn-cxx/util/time.hpp>
Vince Lehman0a7da612014-10-29 14:39:29 -050027
28namespace nlsr {
29
Alexander Afanasyevb669f9c2014-11-14 12:41:54 -080030using std::bind;
31using std::make_shared;
32using std::shared_ptr;
33using std::function;
Vince Lehman0a7da612014-10-29 14:39:29 -050034
Nick Gordon9461afb2017-04-25 15:54:50 -050035const ndn::time::seconds TIME_ALLOWED_FOR_CANONIZATION = ndn::time::seconds(4);
36
Nick Gordon22b5c952017-08-10 17:48:15 -050037template<typename T, typename = void>
38struct is_iterator
39{
40 static constexpr bool value = false;
41};
42
43/*! Use C++11 iterator_traits to check if some type is an iterator
44 */
45template<typename T>
46struct is_iterator<T, typename std::enable_if<!std::is_same<
47 typename std::iterator_traits<T>::value_type,
48 void>::value>::type>
49{
50 static constexpr bool value = true;
51};
52
Nick Gordon9461afb2017-04-25 15:54:50 -050053} // namespace nlsr
Vince Lehman0a7da612014-10-29 14:39:29 -050054
55#endif // NLSR_COMMON_HPP