blob: 9692cffb93d3802fba5238455d33df2f2f7bd6c2 [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 Afanasyeva557d5a2013-12-28 21:59:03 -080024 connect(boost::asio::io_service &ioService,
25 const ReceiveCallback &receiveCallback,
26 const ErrorCallback &errorCallback);
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080027
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080028 virtual void
29 close();
Alexander Afanasyeve2e0d752014-01-03 13:30:30 -080030
31 virtual void
32 send(const Block &wire);
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080033
34private:
35 std::string unixSocket_;
Alexander Afanasyevfe3b1502013-12-18 16:45:03 -080036
37 class Impl;
38 std::auto_ptr<Impl> impl_;
39};
40
41}
42
43#endif