Squashed 'third_party/ntcore_2016/' content from commit d8de5e4

Change-Id: Id4839f41b6a620d8bae58dcf1710016671cc4992
git-subtree-dir: third_party/ntcore_2016
git-subtree-split: d8de5e4f19e612e7102172c0dbf152ce82d3d63a
diff --git a/src/tables/ITableListener.cpp b/src/tables/ITableListener.cpp
new file mode 100644
index 0000000..df1f273
--- /dev/null
+++ b/src/tables/ITableListener.cpp
@@ -0,0 +1,9 @@
+#include "tables/ITableListener.h"
+
+#include "ntcore_c.h"
+
+void ITableListener::ValueChangedEx(ITable* source, llvm::StringRef key,
+                                    std::shared_ptr<nt::Value> value,
+                                    unsigned int flags) {
+  ValueChanged(source, key, value, (flags & NT_NOTIFY_NEW) != 0);
+}
diff --git a/src/tables/TableKeyNotDefinedException.cpp b/src/tables/TableKeyNotDefinedException.cpp
new file mode 100644
index 0000000..30bedd0
--- /dev/null
+++ b/src/tables/TableKeyNotDefinedException.cpp
@@ -0,0 +1,19 @@
+/*----------------------------------------------------------------------------*/
+/* Copyright (c) FIRST 2015. All Rights Reserved.                             */
+/* Open Source Software - may be modified and shared by FRC teams. The code   */
+/* must be accompanied by the FIRST BSD license file in the root directory of */
+/* the project.                                                               */
+/*----------------------------------------------------------------------------*/
+
+#include "tables/TableKeyNotDefinedException.h"
+
+TableKeyNotDefinedException::TableKeyNotDefinedException(llvm::StringRef key)
+    : msg("Unknown Table Key: ") {
+  msg += key;
+}
+
+const char* TableKeyNotDefinedException::what() const NT_NOEXCEPT {
+  return msg.c_str();
+}
+
+TableKeyNotDefinedException::~TableKeyNotDefinedException() NT_NOEXCEPT {}