/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
/**
 * Copyright (c) 2013-2014,  Regents of the University of California.
 * 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.
 */

#ifndef NDN_UTIL_RANDOM_HPP
#define NDN_UTIL_RANDOM_HPP

#include "../common.hpp"

namespace ndn {
namespace random {

uint32_t
generateWord32();

uint64_t
generateWord64();

} // namespace random
} // namespace ndn

#endif // NDN_UTIL_RANDOM_HPP
