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