core+daemon: eliminate scheduler::{schedule,cancel} wrappers

Also move core/global-io.hpp to daemon/global.hpp

Refs: #4528, #4883
Change-Id: I0b99029f1a19d7451aab57099cd3303b7eb42ff3
diff --git a/core/common.hpp b/core/common.hpp
index 93c2933..c918724 100644
--- a/core/common.hpp
+++ b/core/common.hpp
@@ -66,7 +66,9 @@
 #include <ndn-cxx/net/face-uri.hpp>
 #include <ndn-cxx/util/backports.hpp>
 #include <ndn-cxx/util/exception.hpp>
+#include <ndn-cxx/util/scheduler.hpp>
 #include <ndn-cxx/util/signal.hpp>
+#include <ndn-cxx/util/time.hpp>
 
 #include <boost/asio.hpp>
 #include <boost/assert.hpp>
@@ -106,6 +108,7 @@
 using ndn::Interest;
 using ndn::Name;
 using ndn::PartialName;
+using ndn::Scheduler;
 
 // Not using a namespace alias (namespace tlv = ndn::tlv), because
 // it doesn't allow NFD to add other members to the namespace
@@ -115,6 +118,7 @@
 
 namespace lp = ndn::lp;
 namespace name = ndn::name;
+namespace scheduler = ndn::scheduler;
 namespace signal = ndn::util::signal;
 namespace time = ndn::time;
 using namespace ndn::time_literals;
diff --git a/core/global-io.cpp b/core/global-io.cpp
deleted file mode 100644
index e906999..0000000
--- a/core/global-io.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2019,  Regents of the University of California,
- *                           Arizona Board of Regents,
- *                           Colorado State University,
- *                           University Pierre & Marie Curie, Sorbonne University,
- *                           Washington University in St. Louis,
- *                           Beijing Institute of Technology,
- *                           The University of Memphis.
- *
- * This file is part of NFD (Named Data Networking Forwarding Daemon).
- * See AUTHORS.md for complete list of NFD authors and contributors.
- *
- * NFD is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "global-io.hpp"
-
-namespace nfd {
-
-static thread_local unique_ptr<boost::asio::io_service> g_ioService;
-static boost::asio::io_service* g_mainIoService = nullptr;
-static boost::asio::io_service* g_ribIoService = nullptr;
-
-boost::asio::io_service&
-getGlobalIoService()
-{
-  if (g_ioService == nullptr) {
-    g_ioService = make_unique<boost::asio::io_service>();
-  }
-  return *g_ioService;
-}
-
-#ifdef WITH_TESTS
-namespace scheduler {
-void
-resetGlobalScheduler(); // defined in scheduler.cpp
-} // namespace scheduler
-
-void
-resetGlobalIoService()
-{
-  scheduler::resetGlobalScheduler();
-  g_ioService.reset();
-}
-#endif
-
-void
-setMainIoService(boost::asio::io_service* mainIo)
-{
-  g_mainIoService = mainIo;
-}
-
-void
-setRibIoService(boost::asio::io_service* ribIo)
-{
-  g_ribIoService = ribIo;
-}
-
-boost::asio::io_service&
-getMainIoService()
-{
-  BOOST_ASSERT(g_mainIoService != nullptr);
-  return *g_mainIoService;
-}
-
-boost::asio::io_service&
-getRibIoService()
-{
-  BOOST_ASSERT(g_ribIoService != nullptr);
-  return *g_ribIoService;
-}
-
-void
-runOnMainIoService(const std::function<void()>& f)
-{
-  getMainIoService().post(f);
-}
-
-void
-runOnRibIoService(const std::function<void()>& f)
-{
-  getRibIoService().post(f);
-}
-
-} // namespace nfd
diff --git a/core/global-io.hpp b/core/global-io.hpp
deleted file mode 100644
index 0fb2fbe..0000000
--- a/core/global-io.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2018  Regents of the University of California,
- *                          Arizona Board of Regents,
- *                          Colorado State University,
- *                          University Pierre & Marie Curie, Sorbonne University,
- *                          Washington University in St. Louis,
- *                          Beijing Institute of Technology
- *
- * This file is part of NFD (Named Data Networking Forwarding Daemon).
- * See AUTHORS.md for complete list of NFD authors and contributors.
- *
- * NFD is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- **/
-
-#ifndef NFD_CORE_GLOBAL_IO_HPP
-#define NFD_CORE_GLOBAL_IO_HPP
-
-#include "common.hpp"
-
-namespace nfd {
-
-/** \return the global io_service instance
- */
-boost::asio::io_service&
-getGlobalIoService();
-
-void
-setMainIoService(boost::asio::io_service* mainIo);
-
-void
-setRibIoService(boost::asio::io_service* ribIo);
-
-/** \brief run a function on the main io_service instance
- */
-void
-runOnMainIoService(const std::function<void()>& f);
-
-/** \brief run a function on the RIB io_service instance
- */
-void
-runOnRibIoService(const std::function<void()>& f);
-
-boost::asio::io_service&
-getMainIoService();
-
-boost::asio::io_service&
-getRibIoService();
-
-#ifdef WITH_TESTS
-/** \brief delete the global io_service instance
- *
- *  It will be recreated at the next invocation of getGlobalIoService.
- */
-void
-resetGlobalIoService();
-#endif
-
-} // namespace nfd
-
-#endif // NFD_CORE_GLOBAL_IO_HPP
diff --git a/core/scheduler.cpp b/core/scheduler.cpp
deleted file mode 100644
index 68f7c75..0000000
--- a/core/scheduler.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2019,  Regents of the University of California,
- *                           Arizona Board of Regents,
- *                           Colorado State University,
- *                           University Pierre & Marie Curie, Sorbonne University,
- *                           Washington University in St. Louis,
- *                           Beijing Institute of Technology,
- *                           The University of Memphis.
- *
- * This file is part of NFD (Named Data Networking Forwarding Daemon).
- * See AUTHORS.md for complete list of NFD authors and contributors.
- *
- * NFD is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "scheduler.hpp"
-#include "global-io.hpp"
-
-namespace nfd {
-namespace scheduler {
-
-static thread_local unique_ptr<Scheduler> g_scheduler;
-
-Scheduler&
-getGlobalScheduler()
-{
-  if (g_scheduler == nullptr) {
-    g_scheduler = make_unique<Scheduler>(getGlobalIoService());
-  }
-  return *g_scheduler;
-}
-
-EventId
-schedule(time::nanoseconds after, const EventCallback& event)
-{
-  return getGlobalScheduler().scheduleEvent(after, event);
-}
-
-#ifdef WITH_TESTS
-void
-resetGlobalScheduler()
-{
-  g_scheduler.reset();
-}
-#endif
-
-} // namespace scheduler
-} // namespace nfd
diff --git a/core/scheduler.hpp b/core/scheduler.hpp
deleted file mode 100644
index 3ad448b..0000000
--- a/core/scheduler.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2019,  Regents of the University of California,
- *                           Arizona Board of Regents,
- *                           Colorado State University,
- *                           University Pierre & Marie Curie, Sorbonne University,
- *                           Washington University in St. Louis,
- *                           Beijing Institute of Technology,
- *                           The University of Memphis.
- *
- * This file is part of NFD (Named Data Networking Forwarding Daemon).
- * See AUTHORS.md for complete list of NFD authors and contributors.
- *
- * NFD is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef NFD_CORE_SCHEDULER_HPP
-#define NFD_CORE_SCHEDULER_HPP
-
-#include "common.hpp"
-
-#include <ndn-cxx/util/scheduler.hpp>
-
-namespace nfd {
-namespace scheduler {
-
-using ndn::util::scheduler::Scheduler;
-using ndn::util::scheduler::EventId;
-using ndn::util::scheduler::ScopedEventId;
-using ndn::util::scheduler::EventCallback;
-
-/** \brief Schedule an event.
- */
-EventId
-schedule(time::nanoseconds after, const EventCallback& event);
-
-/** \brief Cancel a scheduled event.
- */
-inline void
-cancel(EventId eventId)
-{
-  eventId.cancel();
-}
-
-} // namespace scheduler
-} // namespace nfd
-
-#endif // NFD_CORE_SCHEDULER_HPP