blob: 1cc4758110552a2895478a2c44a2245de5aef5cf [file] [log] [blame]
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -08001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
2/**
3 * Copyright (C) 2013 Regents of the University of California.
4 * @author: Jeff Thompson <jefft0@remap.ucla.edu>
5 * See COPYING for copyright and distribution information.
6 */
7
8#ifndef NDN_UDPTRANSPORT_HPP
9#define NDN_UDPTRANSPORT_HPP
10
11#include <string>
12#include "transport.hpp"
13
14namespace ndn {
15
Alexander Afanasyeve2e0d752014-01-03 13:30:30 -080016class UnixTransport : public Transport
17{
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080018public:
19 UnixTransport(const std::string &unixSocket = "/tmp/.ndnd.sock");
20 ~UnixTransport();
21
Alexander Afanasyeve2e0d752014-01-03 13:30:30 -080022 // from Transport
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080023 virtual void
Alexander Afanasyeve2e0d752014-01-03 13:30:30 -080024 connect(boost::asio::io_service &ioService, const ReceiveCallback &receiveCallback);
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080025
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080026 virtual void
27 close();
Alexander Afanasyeve2e0d752014-01-03 13:30:30 -080028
29 virtual void
30 send(const Block &wire);
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080031
32private:
33 std::string unixSocket_;
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080034
35 class Impl;
36 std::auto_ptr<Impl> impl_;
37};
38
39}
40
41#endif