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
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