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
websocket-transport.hpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
26
#ifndef NFD_DAEMON_FACE_WEBSOCKET_TRANSPORT_HPP
27
#define NFD_DAEMON_FACE_WEBSOCKET_TRANSPORT_HPP
28
29
#include "
transport.hpp
"
30
#include "
websocketpp.hpp
"
31
#include "
core/scheduler.hpp
"
32
33
namespace
nfd
{
34
namespace
face
{
35
40
class
WebSocketTransportCounters
:
public
virtual
Transport::Counters
41
{
42
public
:
45
PacketCounter
nOutPings
;
46
49
PacketCounter
nInPongs
;
50
};
51
54
class
WebSocketTransport
final :
public
Transport
55
,
protected
virtual
WebSocketTransportCounters
56
{
57
public
:
60
typedef
WebSocketTransportCounters
Counters
;
61
62
WebSocketTransport
(
websocketpp::connection_hdl
hdl,
63
websocket::Server
&
server
,
64
time::milliseconds
pingInterval);
65
66
const
Counters&
67
getCounters() const final;
68
72
void
73
receiveMessage(const
std
::
string
& msg);
74
75
void
76
handlePong();
77
78
void
79
handlePongTimeout();
80
81
protected:
82
void
83
doClose() final;
84
85
private:
86
void
87
doSend(
Transport
::
Packet
&& packet) final;
88
89
void
90
schedulePing();
91
92
void
93
sendPing();
94
95
void
96
processErrorCode(const
websocketpp
::lib::error_code& error);
97
98
private:
99
websocketpp
::
connection_hdl
m_handle;
100
websocket::
Server
& m_server;
101
time
::
milliseconds
m_pingInterval;
102
scheduler::ScopedEventId m_pingEventId;
103
};
104
105
inline const
WebSocketTransport
::Counters&
106
WebSocketTransport
::getCounters()
const
107
{
108
return
*
this
;
109
}
110
111
}
// namespace face
112
}
// namespace nfd
113
114
#endif // NFD_DAEMON_FACE_WEBSOCKET_TRANSPORT_HPP
websocketpp.hpp
nfd::face::WebSocketTransportCounters
counters provided by WebSocketTransport
Definition:
websocket-transport.hpp:40
nfd::websocket::Server
websocketpp::server< websocketpp::config::asio > Server
Definition:
websocketpp.hpp:46
websocketpp::lib::asio::milliseconds
boost::posix_time::time_duration milliseconds(long duration)
Definition:
asio.hpp:117
nfd::face::Transport::Packet
stores a packet along with the remote endpoint
Definition:
transport.hpp:113
nfd::face::TransportCounters
counters provided by Transport
Definition:
transport.hpp:57
std
STL namespace.
websocketpp::connection_hdl
lib::weak_ptr< void > connection_hdl
A handle to uniquely identify a connection.
Definition:
connection_hdl.hpp:48
nfd::PacketCounter
represents a counter of number of packets
Definition:
counter.hpp:77
ndn::time
Definition:
time-custom-clock.hpp:28
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
websocketpp::server< websocketpp::config::asio >
websocketpp
Namespace for the WebSocket++ project.
Definition:
base64.hpp:41
face
nfd::face::WebSocketTransport::Counters
WebSocketTransportCounters Counters
counters provided by WebSocketTransport
Definition:
websocket-transport.hpp:60
nfd::face::WebSocketTransportCounters::nOutPings
PacketCounter nOutPings
count of outgoing Pings
Definition:
websocket-transport.hpp:45
nfd::face::WebSocketTransportCounters::nInPongs
PacketCounter nInPongs
count of incoming Pongs
Definition:
websocket-transport.hpp:49
scheduler.hpp
transport.hpp
nfd::face::WebSocketTransport
A Transport that communicates on a WebSocket connection.
Definition:
websocket-transport.hpp:54
nfd::face::Transport
the lower part of a Face
Definition:
transport.hpp:104
nfd::face::WebSocketTransport
WebSocketTransport
Definition:
websocket-transport.cpp:31
ndnSIM
NFD
daemon
face
websocket-transport.hpp
Generated on Thu Nov 2 2017 03:30:29 for ndnSIM by
1.8.11