Files
NFD/daemon/face/multicast-udp-face.cpp
T
Steve DiBenedetto bf6a93da4e core: change logging from environment variable to configuration file-based
GlobalConfigurationFixture uses unit-tests.conf to determine default
and module specific logging levels. Logging will gracefully default to
INFO if unit-tests.conf is not found. See unit-tests.conf.sample for a
sample configuration file.

refs: #1375, #1267

Change-Id: Ib0c4eb4149748e6658f94ef1afa23ddd3072c0fa
2014-03-31 20:46:51 -06:00

63 lines
1.8 KiB
C++

/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/**
* Copyright (C) 2014 Named Data Networking Project
* See COPYING for copyright and distribution information.
*/
#include "multicast-udp-face.hpp"
namespace nfd {
NFD_LOG_INIT("MulticastUdpFace");
MulticastUdpFace::MulticastUdpFace(const shared_ptr<MulticastUdpFace::protocol::socket>& socket)
: DatagramFace<protocol>(FaceUri(socket->local_endpoint()), socket, false)
, m_multicastGroup(m_socket->local_endpoint())
{
NFD_LOG_INFO("Creating multicast UDP face for group " << m_multicastGroup);
}
const MulticastUdpFace::protocol::endpoint&
MulticastUdpFace::getMulticastGroup() const
{
return m_multicastGroup;
}
void
MulticastUdpFace::sendInterest(const Interest& interest)
{
onSendInterest(interest);
NFD_LOG_DEBUG("Sending interest");
m_socket->async_send_to(boost::asio::buffer(interest.wireEncode().wire(),
interest.wireEncode().size()),
m_multicastGroup,
bind(&DatagramFace<protocol>::handleSend, this, _1, interest.wireEncode()));
// anything else should be done here?
}
void
MulticastUdpFace::sendData(const Data& data)
{
/// \todo After this method implements duplicate suppression, onSendData event should
/// be triggered only when data is actually sent out
onSendData(data);
NFD_LOG_DEBUG("Sending data");
m_socket->async_send_to(boost::asio::buffer(data.wireEncode().wire(),
data.wireEncode().size()),
m_multicastGroup,
bind(&DatagramFace<protocol>::handleSend, this, _1, data.wireEncode()));
// anything else should be done here?
}
bool
MulticastUdpFace::isMultiAccess() const
{
return true;
}
} // namespace nfd