core: slim down `common.hpp`

Change-Id: I875c35147edd2261fbaa24e809c170d5cd9b94d3
diff --git a/daemon/face/channel.hpp b/daemon/face/channel.hpp
index 19fcd35..3ecb986 100644
--- a/daemon/face/channel.hpp
+++ b/daemon/face/channel.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -29,6 +29,8 @@
 #include "channel-log.hpp"
 #include "face-common.hpp"
 
+#include <functional>
+
 namespace nfd::face {
 
 /** \brief Represents a channel that listens on a local endpoint.
diff --git a/daemon/face/ethernet-channel.cpp b/daemon/face/ethernet-channel.cpp
index dfd5bf3..1ac0625 100644
--- a/daemon/face/ethernet-channel.cpp
+++ b/daemon/face/ethernet-channel.cpp
@@ -217,7 +217,7 @@
   if (!isListening())
     return;
 
-  std::string filter = "(ether proto " + to_string(ethernet::ETHERTYPE_NDN) +
+  std::string filter = "(ether proto " + std::to_string(ethernet::ETHERTYPE_NDN) +
                        ") && (ether dst " + m_localEndpoint->getEthernetAddress().toString() + ")";
   for (const auto& addr : m_channelFaces | boost::adaptors::map_keys) {
     filter += " && (not ether src " + addr.toString() + ")";
diff --git a/daemon/face/ethernet-channel.hpp b/daemon/face/ethernet-channel.hpp
index c675a52..86a3bc8 100644
--- a/daemon/face/ethernet-channel.hpp
+++ b/daemon/face/ethernet-channel.hpp
@@ -33,6 +33,8 @@
 #include <boost/asio/posix/stream_descriptor.hpp>
 #include <ndn-cxx/net/network-interface.hpp>
 
+#include <map>
+
 namespace nfd::face {
 
 /**
diff --git a/daemon/face/ethernet-factory.cpp b/daemon/face/ethernet-factory.cpp
index 1908cac..175a7d5 100644
--- a/daemon/face/ethernet-factory.cpp
+++ b/daemon/face/ethernet-factory.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -199,7 +199,7 @@
   if (req.params.mtu && *req.params.mtu < MIN_MTU) {
     // The specified MTU must be greater than the minimum possible
     NFD_LOG_TRACE("createFace: override MTU cannot be less than " << MIN_MTU);
-    onFailure(406, "Override MTU cannot be less than " + to_string(MIN_MTU));
+    onFailure(406, "Override MTU cannot be less than " + std::to_string(MIN_MTU));
     return;
   }
 
diff --git a/daemon/face/ethernet-protocol.cpp b/daemon/face/ethernet-protocol.cpp
index 137ff27..3d96d17 100644
--- a/daemon/face/ethernet-protocol.cpp
+++ b/daemon/face/ethernet-protocol.cpp
@@ -33,7 +33,7 @@
 checkFrameHeader(span<const uint8_t> packet, const Address& localAddr, const Address& destAddr)
 {
   if (packet.size() < HDR_LEN + MIN_DATA_LEN)
-    return {nullptr, "Received frame too short: " + to_string(packet.size()) + " bytes"};
+    return {nullptr, "Received frame too short: " + std::to_string(packet.size()) + " bytes"};
 
   const ether_header* eh = reinterpret_cast<const ether_header*>(packet.data());
 
@@ -41,7 +41,7 @@
   // make sure we do not process those frames (see #3348)
   uint16_t ethertype = boost::endian::big_to_native(eh->ether_type);
   if (ethertype != ETHERTYPE_NDN)
-    return {nullptr, "Received frame with wrong ethertype: " + to_string(ethertype)};
+    return {nullptr, "Received frame with wrong ethertype: " + std::to_string(ethertype)};
 
 #ifndef NDEBUG
   Address shost(eh->ether_shost);
diff --git a/daemon/face/ethernet-transport.cpp b/daemon/face/ethernet-transport.cpp
index 43f7e91..9ddbdb7 100644
--- a/daemon/face/ethernet-transport.cpp
+++ b/daemon/face/ethernet-transport.cpp
@@ -133,8 +133,8 @@
   if (sent < 0)
     handleError("Send operation failed: " + m_pcap.getLastError());
   else if (static_cast<size_t>(sent) < buffer.size())
-    handleError("Failed to send the full frame: size=" + to_string(buffer.size()) +
-                " sent=" + to_string(sent));
+    handleError("Failed to send the full frame: size=" + std::to_string(buffer.size()) +
+                " sent=" + std::to_string(sent));
   else
     // print block size because we don't want to count the padding in buffer
     NFD_LOG_FACE_TRACE("Successfully sent: " << block.size() << " bytes");
diff --git a/daemon/face/face-common.hpp b/daemon/face/face-common.hpp
index 18ca03c..bdaa3df 100644
--- a/daemon/face/face-common.hpp
+++ b/daemon/face/face-common.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -31,6 +31,7 @@
 #include "common/logger.hpp"
 
 #include <ndn-cxx/encoding/nfd-constants.hpp>
+#include <ndn-cxx/net/face-uri.hpp>
 
 #include <boost/logic/tribool.hpp>
 #include <variant>
@@ -76,10 +77,11 @@
  */
 using EndpointId = std::variant<std::monostate, ethernet::Address, udp::Endpoint>;
 
-/** \brief Parameters used to set Transport properties or LinkService options on a newly created face.
+/**
+ * \brief Parameters used to set Transport properties or LinkService options on a newly created face.
  *
- *  Parameters are passed as a struct rather than individually, so that a future change in the list
- *  of parameters does not require an update to the method signature in all subclasses.
+ * Parameters are passed as a struct rather than individually, so that a future change in the list
+ * of parameters does not require an update to the method signature in all subclasses.
  */
 struct FaceParams
 {
@@ -92,13 +94,14 @@
   boost::logic::tribool wantCongestionMarking = boost::logic::indeterminate;
 };
 
-/** \brief For internal use by FaceLogging macros.
+/**
+ * \brief For internal use by FaceLogging macros.
  *
- *  FaceLogHelper wraps a reference to Face, LinkService, or Transport object.
+ * FaceLogHelper wraps a reference to Face, LinkService, or Transport object.
  *
- *  `std::ostream& operator<<(std::ostream& os, const FaceLogHelper<T>& flh)`
- *  should be specialized to print "[id=888,local=scheme://local/uri,remote=scheme://remote/uri] "
- *  which will appear as part of the log message.
+ * `std::ostream& operator<<(std::ostream& os, const FaceLogHelper<T>& flh)`
+ * should be specialized to print "[id=888,local=scheme://local/uri,remote=scheme://remote/uri] "
+ * which will appear as part of the log message.
  */
 template<typename T>
 class FaceLogHelper
@@ -118,10 +121,12 @@
 
 using face::EndpointId;
 using face::FaceId;
+using ::ndn::FaceUri;
 
 } // namespace nfd
 
-/** \defgroup FaceLogging Face logging macros
+/**
+ * \defgroup FaceLogging Face logging macros.
  *
  * These macros augment the log message with some face-specific information,
  * such as the face ID, that are useful to distinguish which face produced the
diff --git a/daemon/face/face-system.hpp b/daemon/face/face-system.hpp
index 36148df..6441ee7 100644
--- a/daemon/face/face-system.hpp
+++ b/daemon/face/face-system.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -32,6 +32,9 @@
 #include <ndn-cxx/net/network-interface.hpp>
 #include <ndn-cxx/net/network-monitor.hpp>
 
+#include <map>
+#include <set>
+
 namespace nfd {
 
 class FaceTable;
diff --git a/daemon/face/generic-link-service.hpp b/daemon/face/generic-link-service.hpp
index 547ca67..dba7e85 100644
--- a/daemon/face/generic-link-service.hpp
+++ b/daemon/face/generic-link-service.hpp
@@ -31,6 +31,8 @@
 #include "lp-reassembler.hpp"
 #include "lp-reliability.hpp"
 
+#include <limits>
+
 namespace nfd::face {
 
 /** \brief Counters provided by GenericLinkService.
diff --git a/daemon/face/lp-reassembler.hpp b/daemon/face/lp-reassembler.hpp
index 1908ccc..dbb9b9f 100644
--- a/daemon/face/lp-reassembler.hpp
+++ b/daemon/face/lp-reassembler.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,6 +30,9 @@
 
 #include <ndn-cxx/lp/packet.hpp>
 #include <ndn-cxx/lp/sequence.hpp>
+#include <ndn-cxx/util/scheduler.hpp>
+
+#include <map>
 
 namespace nfd::face {
 
@@ -106,7 +109,7 @@
     std::vector<lp::Packet> fragments;
     size_t fragCount; ///< total fragments
     size_t nReceivedFragments; ///< number of received fragments
-    scheduler::ScopedEventId dropTimer;
+    ndn::scheduler::ScopedEventId dropTimer;
   };
 
   /**
diff --git a/daemon/face/lp-reliability.cpp b/daemon/face/lp-reliability.cpp
index 107212e..4f26e5d 100644
--- a/daemon/face/lp-reliability.cpp
+++ b/daemon/face/lp-reliability.cpp
@@ -30,6 +30,8 @@
 
 #include <ndn-cxx/lp/fields.hpp>
 
+#include <set>
+
 namespace nfd::face {
 
 NFD_LOG_INIT(LpReliability);
diff --git a/daemon/face/lp-reliability.hpp b/daemon/face/lp-reliability.hpp
index 3a4d703..0324304 100644
--- a/daemon/face/lp-reliability.hpp
+++ b/daemon/face/lp-reliability.hpp
@@ -31,7 +31,9 @@
 #include <ndn-cxx/lp/packet.hpp>
 #include <ndn-cxx/lp/sequence.hpp>
 #include <ndn-cxx/util/rtt-estimator.hpp>
+#include <ndn-cxx/util/scheduler.hpp>
 
+#include <map>
 #include <queue>
 
 namespace nfd::face {
@@ -181,7 +183,7 @@
 
   public:
     lp::Packet pkt;
-    scheduler::ScopedEventId rtoTimer;
+    ndn::scheduler::ScopedEventId rtoTimer;
     time::steady_clock::time_point sendTime = time::steady_clock::now();
     size_t retxCount = 0;
     size_t nGreaterSeqAcks = 0; ///< Number of Acks received for sequences greater than this fragment
@@ -219,7 +221,7 @@
   std::map<lp::Sequence, time::steady_clock::time_point> m_recentRecvSeqs;
   std::queue<lp::Sequence> m_recentRecvSeqsQueue;
   lp::Sequence m_lastTxSeqNo;
-  scheduler::ScopedEventId m_idleAckTimer;
+  ndn::scheduler::ScopedEventId m_idleAckTimer;
   ndn::util::RttEstimator m_rttEst;
 };
 
diff --git a/daemon/face/netdev-bound.hpp b/daemon/face/netdev-bound.hpp
index 68cbdc6..600e695 100644
--- a/daemon/face/netdev-bound.hpp
+++ b/daemon/face/netdev-bound.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -33,7 +33,8 @@
 
 class FaceSystem;
 
-/** \brief Manages netdev-bound faces.
+/**
+ * \brief Manages netdev-bound faces.
  */
 class NetdevBound : noncopyable
 {
@@ -42,7 +43,7 @@
   {
   public:
     RuleParseError(int index, std::string msg)
-      : Error("Error parsing face_system.netdev_bound.rule[" + to_string(index) + "]: " + msg)
+      : Error("Error parsing face_system.netdev_bound.rule[" + std::to_string(index) + "]: " + msg)
       , index(index)
       , msg(std::move(msg))
     {
diff --git a/daemon/face/network-predicate.hpp b/daemon/face/network-predicate.hpp
index 815afcc..0147d78 100644
--- a/daemon/face/network-predicate.hpp
+++ b/daemon/face/network-predicate.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -33,6 +33,8 @@
 
 #include <ndn-cxx/net/network-interface.hpp>
 
+#include <set>
+
 namespace nfd::face {
 
 class NetworkPredicateBase : private boost::equality_comparable<NetworkPredicateBase>
diff --git a/daemon/face/protocol-factory.hpp b/daemon/face/protocol-factory.hpp
index c490e07..56095bb 100644
--- a/daemon/face/protocol-factory.hpp
+++ b/daemon/face/protocol-factory.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -33,6 +33,10 @@
 #include <boost/range/adaptor/map.hpp>
 #include <boost/range/algorithm/copy.hpp>
 
+#include <functional>
+#include <map>
+#include <set>
+
 namespace nfd::face {
 
 /**
diff --git a/daemon/face/tcp-channel.cpp b/daemon/face/tcp-channel.cpp
index fbfd17d..b12b754 100644
--- a/daemon/face/tcp-channel.cpp
+++ b/daemon/face/tcp-channel.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -188,7 +188,7 @@
                           const tcp::Endpoint& remoteEndpoint,
                           const shared_ptr<ip::tcp::socket>& socket,
                           const FaceParams& params,
-                          const scheduler::EventId& connectTimeoutEvent,
+                          const ndn::scheduler::EventId& connectTimeoutEvent,
                           const FaceCreatedCallback& onFaceCreated,
                           const FaceCreationFailedCallback& onConnectFailed)
 {
diff --git a/daemon/face/tcp-channel.hpp b/daemon/face/tcp-channel.hpp
index cc000ea..6bdc4b9 100644
--- a/daemon/face/tcp-channel.hpp
+++ b/daemon/face/tcp-channel.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -28,8 +28,12 @@
 
 #include "channel.hpp"
 
+#include <ndn-cxx/util/scheduler.hpp>
+
 #include <boost/asio/ip/tcp.hpp>
 
+#include <map>
+
 namespace nfd::tcp {
 using Endpoint = boost::asio::ip::tcp::endpoint;
 } // namespace nfd::tcp
@@ -109,7 +113,7 @@
                 const tcp::Endpoint& remoteEndpoint,
                 const shared_ptr<boost::asio::ip::tcp::socket>& socket,
                 const FaceParams& params,
-                const scheduler::EventId& connectTimeoutEvent,
+                const ndn::scheduler::EventId& connectTimeoutEvent,
                 const FaceCreatedCallback& onFaceCreated,
                 const FaceCreationFailedCallback& onConnectFailed);
 
diff --git a/daemon/face/tcp-transport.hpp b/daemon/face/tcp-transport.hpp
index 2b088bb..c31c9cb 100644
--- a/daemon/face/tcp-transport.hpp
+++ b/daemon/face/tcp-transport.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -28,6 +28,8 @@
 
 #include "stream-transport.hpp"
 
+#include <ndn-cxx/util/scheduler.hpp>
+
 #include <boost/asio/ip/tcp.hpp>
 
 namespace nfd::face {
@@ -94,7 +96,7 @@
   boost::asio::ip::tcp::endpoint m_remoteEndpoint;
 
   // The following members are valid only when the persistency is set to permanent
-  scheduler::ScopedEventId m_reconnectEvent;
+  ndn::scheduler::ScopedEventId m_reconnectEvent;
   time::milliseconds m_nextReconnectWait;
 };
 
diff --git a/daemon/face/udp-channel.hpp b/daemon/face/udp-channel.hpp
index 8c96b09..c7d10fd 100644
--- a/daemon/face/udp-channel.hpp
+++ b/daemon/face/udp-channel.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,6 +30,7 @@
 #include "udp-protocol.hpp"
 
 #include <array>
+#include <map>
 
 namespace nfd::face {
 
diff --git a/daemon/face/udp-factory.cpp b/daemon/face/udp-factory.cpp
index be3f87e..5281303 100644
--- a/daemon/face/udp-factory.cpp
+++ b/daemon/face/udp-factory.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -281,7 +281,7 @@
   if (req.params.mtu && *req.params.mtu < MIN_MTU) {
     // The specified MTU must be greater than the minimum possible
     NFD_LOG_TRACE("createFace: override MTU cannot be less than " << MIN_MTU);
-    onFailure(406, "Override MTU cannot be less than " + to_string(MIN_MTU));
+    onFailure(406, "Override MTU cannot be less than " + std::to_string(MIN_MTU));
     return;
   }
 
diff --git a/daemon/face/udp-protocol.cpp b/daemon/face/udp-protocol.cpp
index bfddd43..e0a590d 100644
--- a/daemon/face/udp-protocol.cpp
+++ b/daemon/face/udp-protocol.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -25,6 +25,8 @@
 
 #include "udp-protocol.hpp"
 
+#include <limits>
+
 namespace nfd::udp {
 
 ssize_t
diff --git a/daemon/face/unicast-ethernet-transport.hpp b/daemon/face/unicast-ethernet-transport.hpp
index 22e943e..fb5a745 100644
--- a/daemon/face/unicast-ethernet-transport.hpp
+++ b/daemon/face/unicast-ethernet-transport.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -28,6 +28,8 @@
 
 #include "ethernet-transport.hpp"
 
+#include <ndn-cxx/util/scheduler.hpp>
+
 namespace nfd::face {
 
 /**
@@ -57,7 +59,7 @@
 
 private:
   const time::nanoseconds m_idleTimeout;
-  scheduler::ScopedEventId m_closeIfIdleEvent;
+  ndn::scheduler::ScopedEventId m_closeIfIdleEvent;
 };
 
 } // namespace nfd::face
diff --git a/daemon/face/unicast-udp-transport.hpp b/daemon/face/unicast-udp-transport.hpp
index 4aa7233..fd6d645 100644
--- a/daemon/face/unicast-udp-transport.hpp
+++ b/daemon/face/unicast-udp-transport.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -28,6 +28,8 @@
 
 #include "datagram-transport.hpp"
 
+#include <ndn-cxx/util/scheduler.hpp>
+
 #include <boost/asio/ip/udp.hpp>
 
 namespace nfd::face {
@@ -57,7 +59,7 @@
 
 private:
   const time::nanoseconds m_idleTimeout;
-  scheduler::ScopedEventId m_closeIfIdleEvent;
+  ndn::scheduler::ScopedEventId m_closeIfIdleEvent;
 };
 
 } // namespace nfd::face
diff --git a/daemon/face/websocket-channel.hpp b/daemon/face/websocket-channel.hpp
index a793a7c..aeae9cc 100644
--- a/daemon/face/websocket-channel.hpp
+++ b/daemon/face/websocket-channel.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -29,6 +29,8 @@
 #include "channel.hpp"
 #include "websocketpp.hpp"
 
+#include <map>
+
 namespace nfd::websocket {
 using Endpoint = boost::asio::ip::tcp::endpoint;
 } // namespace nfd::websocket
diff --git a/daemon/face/websocket-transport.hpp b/daemon/face/websocket-transport.hpp
index 0dcb530..3f08d79 100644
--- a/daemon/face/websocket-transport.hpp
+++ b/daemon/face/websocket-transport.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -29,6 +29,8 @@
 #include "transport.hpp"
 #include "websocketpp.hpp"
 
+#include <ndn-cxx/util/scheduler.hpp>
+
 namespace nfd::face {
 
 /** \brief Counters provided by WebSocketTransport.
@@ -96,7 +98,7 @@
   websocketpp::connection_hdl m_handle;
   websocket::Server& m_server;
   time::milliseconds m_pingInterval;
-  scheduler::ScopedEventId m_pingEventId;
+  ndn::scheduler::ScopedEventId m_pingEventId;
 };
 
 inline const WebSocketTransport::Counters&