ForwardingFlags: Added ForwardingFlags class and use it in registerPrefix and ForwardingEntry instead of int flags.
diff --git a/ndn-cpp/forwarding-flags.hpp b/ndn-cpp/forwarding-flags.hpp
new file mode 100644
index 0000000..7f06dfd
--- /dev/null
+++ b/ndn-cpp/forwarding-flags.hpp
@@ -0,0 +1,134 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_FORWARDING_FLAGS_HPP
+#define NDN_FORWARDING_FLAGS_HPP
+
+#include "c/forwarding-flags.h"
+
+namespace ndn {
+
+/**
+ * A ForwardingFlags object holds the flags which specify how the forwarding daemon should forward an interest for
+ * a registered prefix. We use a separate ForwardingFlags object to retain future compatibility if the daemon forwarding
+ * bits are changed, amended or deprecated.
+ */
+class ForwardingFlags : public ndn_ForwardingFlags {
+public:
+ /**
+ * Create a new ForwardingFlags with "active" and "childInherit" set and all other flags cleared.
+ */
+ ForwardingFlags()
+ {
+ ndn_ForwardingFlags_initialize(this);
+ }
+
+ ForwardingFlags(const struct ndn_ForwardingFlags &forwardingFlagsStruct)
+ : ndn_ForwardingFlags(forwardingFlagsStruct)
+ {
+ }
+
+ /**
+ * Get the value of the "active" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getActive() const { return active; }
+
+ /**
+ * Get the value of the "childInherit" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getChildInherit() const { return childInherit; }
+
+ /**
+ * Get the value of the "advertise" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getAdvertise() const { return advertise; }
+
+ /**
+ * Get the value of the "last" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getLast() const { return last; }
+
+ /**
+ * Get the value of the "capture" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getCapture() const { return capture; }
+
+ /**
+ * Get the value of the "local" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getLocal() const { return local; }
+
+ /**
+ * Get the value of the "tap" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getTap() const { return tap; }
+
+ /**
+ * Get the value of the "captureOk" flag.
+ * @return true if the flag is set, false if it is cleared.
+ */
+ bool getCaptureOk() const { return captureOk; }
+
+ /**
+ * Set the value of the "active" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setActive(bool value) { active = value ? 1 : 0; }
+
+ /**
+ * Set the value of the "childInherit" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setChildInherit(bool value) { childInherit = value ? 1 : 0; }
+
+ /**
+ * Set the value of the "advertise" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setAdvertise(bool value) { advertise = value ? 1 : 0; }
+
+ /**
+ * Set the value of the "last" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setLast(bool value) { last = value ? 1 : 0; }
+
+ /**
+ * Set the value of the "capture" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setCapture(bool value) { capture = value ? 1 : 0; }
+
+ /**
+ * Set the value of the "local" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setLocal(bool value) { local = value ? 1 : 0; }
+
+ /**
+ * Set the value of the "tap" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setTap(bool value) { tap = value ? 1 : 0; }
+
+ /**
+ * Set the value of the "captureOk" flag
+ * @param value true to set the flag, false to clear it.
+ */
+ void setCaptureOk(bool value) { captureOk = value ? 1 : 0; }
+};
+
+}
+
+#endif