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
base.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_TRANSPORT_IOSTREAM_BASE_HPP
29
#define WEBSOCKETPP_TRANSPORT_IOSTREAM_BASE_HPP
30
31
#include <
websocketpp/common/system_error.hpp
>
32
#include <
websocketpp/common/cpp11.hpp
>
33
#include <
websocketpp/common/functional.hpp
>
34
#include <
websocketpp/common/connection_hdl.hpp
>
35
36
#include <
websocketpp/transport/base/connection.hpp
>
37
38
#include <string>
39
#include <vector>
40
41
namespace
websocketpp
{
42
namespace
transport {
44
namespace
iostream {
45
47
typedef
lib::function<lib::error_code(connection_hdl, char const *, size_t)>
48
write_handler
;
49
52
56
typedef
lib::function<lib::error_code(connection_hdl, std::vector<transport::buffer>
const
57
& bufs)>
vector_write_handler
;
58
61
typedef
lib::function<lib::error_code(connection_hdl)>
shutdown_handler
;
62
64
namespace
error {
65
enum
value
{
68
general
= 1,
69
71
invalid_num_bytes
,
72
74
double_read
,
75
78
output_stream_required
,
79
81
bad_stream
82
};
83
85
class
category
:
public
lib::error_category {
86
public
:
87
category
() {}
88
89
char
const
*
name
() const
_WEBSOCKETPP_NOEXCEPT_TOKEN_
{
90
return
"websocketpp.transport.iostream"
;
91
}
92
93
std::string
message
(
int
value
)
const
{
94
switch
(value) {
95
case
general
:
96
return
"Generic iostream transport policy error"
;
97
case
invalid_num_bytes
:
98
return
"async_read_at_least call requested more bytes than buffer can store"
;
99
case
double_read
:
100
return
"Async read already in progress"
;
101
case
output_stream_required
:
102
return
"An output stream to be set before async_write can be used"
;
103
case
bad_stream
:
104
return
"A stream operation returned ios::bad"
;
105
default
:
106
return
"Unknown"
;
107
}
108
}
109
};
110
112
inline
lib::error_category
const
&
get_category
() {
113
static
category
instance;
114
return
instance;
115
}
116
118
inline
lib::error_code
make_error_code
(
error::value
e) {
119
return
lib::error_code(static_cast<int>(e),
get_category
());
120
}
121
122
}
// namespace error
123
}
// namespace iostream
124
}
// namespace transport
125
}
// namespace websocketpp
126
_WEBSOCKETPP_ERROR_CODE_ENUM_NS_START_
127
template
<>
struct
is_error_code_enum<
websocketpp
::
transport::iostream::error::value
>
128
{
129
static
bool
const
value
=
true
;
130
};
131
_WEBSOCKETPP_ERROR_CODE_ENUM_NS_END_
132
133
#endif // WEBSOCKETPP_TRANSPORT_IOSTREAM_BASE_HPP
websocketpp::transport::iostream::error::output_stream_required
An operation that requires an output stream was attempted before setting one.
Definition:
base.hpp:78
websocketpp::transport::iostream::vector_write_handler
lib::function< lib::error_code(connection_hdl, std::vector< transport::buffer > const &bufs)> vector_write_handler
The type and signature of the callback used by iostream transport to perform vectored writes...
Definition:
base.hpp:57
_WEBSOCKETPP_NOEXCEPT_TOKEN_
#define _WEBSOCKETPP_NOEXCEPT_TOKEN_
Definition:
cpp11.hpp:113
websocketpp::transport::iostream::error::bad_stream
stream error
Definition:
base.hpp:81
websocketpp::transport::iostream::error::make_error_code
lib::error_code make_error_code(error::value e)
Get an error code with the given value and the iostream transport category.
Definition:
base.hpp:118
websocketpp::transport::iostream::error::double_read
async_read called while another async_read was in progress
Definition:
base.hpp:74
websocketpp::transport::iostream::error::get_category
lib::error_category const & get_category()
Get a reference to a static copy of the iostream transport error category.
Definition:
base.hpp:112
websocketpp::transport::iostream::error::category::message
std::string message(int value) const
Definition:
base.hpp:93
websocketpp::transport::iostream::shutdown_handler
lib::function< lib::error_code(connection_hdl)> shutdown_handler
The type and signature of the callback used by iostream transport to signal a transport shutdown...
Definition:
base.hpp:61
system_error.hpp
websocketpp::transport::iostream::error::invalid_num_bytes
async_read_at_least call requested more bytes than buffer can store
Definition:
base.hpp:71
connection.hpp
websocketpp
Namespace for the WebSocket++ project.
Definition:
base64.hpp:41
_WEBSOCKETPP_ERROR_CODE_ENUM_NS_START_
#define _WEBSOCKETPP_ERROR_CODE_ENUM_NS_START_
Definition:
system_error.hpp:77
websocketpp::transport::iostream::error::category::name
char const * name() const _WEBSOCKETPP_NOEXCEPT_TOKEN_
Definition:
base.hpp:89
websocketpp::transport::iostream::error::value
value
Definition:
base.hpp:65
websocketpp::transport::iostream::error::category
iostream transport error category
Definition:
base.hpp:85
cpp11.hpp
connection_hdl.hpp
websocketpp::transport::iostream::error::general
Catch-all error for transport policy errors that don't fit in other categories.
Definition:
base.hpp:68
websocketpp::transport::iostream::error::category::category
category()
Definition:
base.hpp:87
_WEBSOCKETPP_ERROR_CODE_ENUM_NS_END_
#define _WEBSOCKETPP_ERROR_CODE_ENUM_NS_END_
Definition:
system_error.hpp:78
websocketpp::transport::iostream::write_handler
lib::function< lib::error_code(connection_hdl, char const *, size_t)> write_handler
The type and signature of the callback used by iostream transport to write.
Definition:
base.hpp:48
functional.hpp
ndnSIM
NFD
websocketpp
websocketpp
transport
iostream
base.hpp
Generated on Thu Nov 2 2017 03:30:30 for ndnSIM by
1.8.11