Add ad hoc WiFi communication function

Change-Id: I6ec986708bfa2dcdf1cc2ed121f249fabd99ac86
diff --git a/src/osx-adhoc.hpp b/src/osx-adhoc.hpp
new file mode 100644
index 0000000..10019dd
--- /dev/null
+++ b/src/osx-adhoc.hpp
@@ -0,0 +1,70 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2013-2017, Regents of the University of California,
+ *
+ * This file is part of NFD Control Center.  See AUTHORS.md for complete list of NFD
+ * authors and contributors.
+ *
+ * NFD Control Center 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 Control Center 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
+ * Control Center, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef NCC_OSX_ADHOC_HPP
+#define NCC_OSX_ADHOC_HPP
+
+#include "config.hpp"
+
+#include <ndn-cxx/face.hpp>
+#include <ndn-cxx/mgmt/nfd/controller.hpp>
+#include <ndn-cxx/mgmt/nfd/face-monitor.hpp>
+
+#ifdef OSX_BUILD
+#define ADHOC_SUPPORTED 1
+#endif // OSX_BUILD
+
+#ifdef ADHOC_SUPPORTED
+
+namespace ndn {
+namespace ncc {
+
+class Adhoc
+{
+public:
+  Adhoc(Face& face, KeyChain& keychain);
+
+  ~Adhoc();
+
+  bool
+  createAdhoc();
+
+  void
+  onNotification(const ndn::nfd::FaceEventNotification& notification);
+
+  void
+  destroyAdhoc();
+
+private:
+  void
+  unregisterRoutes(uint16_t origin);
+
+private:
+  Face& m_face;
+  KeyChain& m_keyChain;
+  nfd::Controller* m_controller;
+  nfd::FaceMonitor* m_faceMonitor;
+};
+
+} // namespace ncc
+} // namespace ndn
+
+#endif // ADHOC_SUPPORTED
+
+#endif // NCC_OSX_ADHOC_HPP