blob: 86ec08623cc83037dbef37ddfa9c5efef6c1c026 [file] [log] [blame]
Alexander Afanasyeva9034b02014-01-26 18:32:02 -08001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
3 * Copyright (C) 2014 Named Data Networking Project
4 * See COPYING for copyright and distribution information.
5 */
6
7#ifndef NFD_FACE_TCP_FACE_HPP
8#define NFD_FACE_TCP_FACE_HPP
9
10#include "stream-face.hpp"
11
12namespace ndn
13{
14
15/**
16 * \brief Implementation of Face abstraction that uses TCP
17 * as underlying transport mechanism
18 */
19class TcpFace : public StreamFace<boost::asio::ip::tcp>
20{
21public:
22 TcpFace(FaceId id, const shared_ptr<protocol::socket>& socket);
23
Alexander Afanasyev8ad71ba2014-01-27 00:07:14 -080024 // from Face
25 virtual void
26 sendInterest(const Interest& interest);
27
28 virtual void
29 sendData(const Data& data);
30
Alexander Afanasyeva9034b02014-01-26 18:32:02 -080031private:
32 shared_ptr<protocol::socket> m_socket;
33};
34
35} // namespace ndn
36
37#endif // NFD_FACE_TCP_FACE_HPP