NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ndnSIM
ndnSIM documentation
All Attributes
All GlobalValues
All LogComponents
All TraceSources
Todo List
Deprecated List
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
random.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2014, Peter Thorson. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
6
* * Redistributions of source code must retain the above copyright
7
* notice, this list of conditions and the following disclaimer.
8
* * Redistributions in binary form must reproduce the above copyright
9
* notice, this list of conditions and the following disclaimer in the
10
* documentation and/or other materials provided with the distribution.
11
* * Neither the name of the WebSocket++ Project nor the
12
* names of its contributors may be used to endorse or promote products
13
* derived from this software without specific prior written permission.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
19
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
*
26
*/
27
28
#ifndef WEBSOCKETPP_COMMON_RANDOM_DEVICE_HPP
29
#define WEBSOCKETPP_COMMON_RANDOM_DEVICE_HPP
30
31
#include <
websocketpp/common/cpp11.hpp
>
32
33
// If we've determined that we're in full C++11 mode and the user hasn't
34
// explicitly disabled the use of C++11 random header, then prefer it to
35
// boost.
36
#if defined _WEBSOCKETPP_CPP11_INTERNAL_ && !defined _WEBSOCKETPP_NO_CPP11_RANDOM_DEVICE_
37
#ifndef _WEBSOCKETPP_CPP11_RANDOM_DEVICE_
38
#define _WEBSOCKETPP_CPP11_RANDOM_DEVICE_
39
#endif
40
#endif
41
42
43
// If we're on Visual Studio 2010 or higher and haven't explicitly disabled
44
// the use of C++11 random header then prefer it to boost.
45
#if defined(_MSC_VER) && _MSC_VER >= 1600 && !defined _WEBSOCKETPP_NO_CPP11_MEMORY_
46
#ifndef _WEBSOCKETPP_CPP11_MEMORY_
47
#define _WEBSOCKETPP_CPP11_MEMORY_
48
#endif
49
#endif
50
51
52
53
#ifdef _WEBSOCKETPP_CPP11_RANDOM_DEVICE_
54
#include <random>
55
#else
56
#include <boost/version.hpp>
57
58
#if (BOOST_VERSION/100000) == 1 && ((BOOST_VERSION/100)%1000) > 46
59
#include <boost/random/uniform_int_distribution.hpp>
60
#include <boost/random/random_device.hpp>
61
#elif (BOOST_VERSION/100000) == 1 && ((BOOST_VERSION/100)%1000) >= 43
62
#include <boost/nondet_random.hpp>
63
#else
64
// TODO: static_assert(false, "Could not find a suitable random_device")
65
#endif
66
#endif
67
68
namespace
websocketpp
{
69
namespace
lib {
70
71
#ifdef _WEBSOCKETPP_CPP11_RANDOM_DEVICE_
72
using
std::random_device;
73
using
std::uniform_int_distribution;
74
#else
75
using
boost::random::random_device;
76
using
boost::random::uniform_int_distribution;
77
#endif
78
79
}
// namespace lib
80
}
// namespace websocketpp
81
82
#endif // WEBSOCKETPP_COMMON_RANDOM_DEVICE_HPP
websocketpp
Namespace for the WebSocket++ project.
Definition:
base64.hpp:41
cpp11.hpp
ndnSIM
NFD
websocketpp
websocketpp
common
random.hpp
Generated on Thu Nov 2 2017 03:30:29 for ndnSIM by
1.8.11