Major code style change to rename all files to lower case.
diff --git a/ndn-cpp/name.hpp b/ndn-cpp/name.hpp
new file mode 100644
index 0000000..b4a8dbe
--- /dev/null
+++ b/ndn-cpp/name.hpp
@@ -0,0 +1,144 @@
+/**
+ * @author: Jeff Thompson
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_NAME_HPP
+#define NDN_NAME_HPP
+
+#include <vector>
+#include <string>
+#include "c/name.h"
+#include "encoding/binary-xml-wire-format.hpp"
+
+namespace ndn {
+
+class Name {
+public:
+ class Component {
+ public:
+ /**
+ * Create a new Name::Component with an empty value.
+ */
+ Component()
+ {
+ }
+
+ /**
+ * Create a new Name::Component, copying the given value.
+ * @param value The value byte array.
+ */
+ Component(const std::vector<unsigned char> &value)
+ : value_(value)
+ {
+ }
+
+ /**
+ * Create a new Name::Component, copying the given value.
+ * @param value Pointer to the value byte array.
+ * @param valueLen Length of value.
+ */
+ Component(unsigned char *value, unsigned int valueLen)
+ : value_(value, value + valueLen)
+ {
+ }
+
+ /**
+ * Set the componentStruct to point to this component, without copying any memory.
+ * WARNING: The resulting pointer in componentStruct is invalid after a further use of this object which could reallocate memory.
+ * @param componentStruct The C ndn_NameComponent struct to receive the pointer.
+ */
+ void get(struct ndn_NameComponent &componentStruct) const
+ {
+ componentStruct.value = (unsigned char *)&value_[0];
+ componentStruct.valueLength = value_.size();
+ }
+
+ /**
+ * Set this component value by decoding the escapedString between first and last according to the NDN URI Scheme.
+ * If the escaped string is "", "." or ".." then return false, which means this component value was not changed, and
+ * the component should be skipped in a URI name.
+ * @param first Pointer to the beginning of the escaped string
+ * @param last Pointer to the first character past the end of the escaped string
+ * @return True for success, false if escapedString is not a valid escaped component.
+ */
+ bool setFromEscapedString(const char *first, const char *last);
+
+ const std::vector<unsigned char> &getValue() const { return value_; }
+
+ private:
+ std::vector<unsigned char> value_;
+ };
+
+ /**
+ * Create a new Name with no components.
+ */
+ Name() {
+ }
+
+ /**
+ * Create a new Name, copying the name components.
+ * @param components A vector of Component
+ */
+ Name(const std::vector<Component> &components)
+ : components_(components)
+ {
+ }
+
+ /**
+ * Parse the uri according to the NDN URI Scheme and create the name with the components.
+ * @param uri The URI string.
+ */
+ Name(const char *uri);
+
+ /**
+ * Set the nameStruct to point to the components in this name, without copying any memory.
+ * WARNING: The resulting pointers in nameStruct are invalid after a further use of this object which could reallocate memory.
+ * @param nameStruct A C ndn_Name struct where the components array is already allocated.
+ */
+ void get(struct ndn_Name &nameStruct) const;
+
+ /**
+ * Clear this name, and set the components by copying from the name struct.
+ * @param nameStruct A C ndn_Name struct
+ */
+ void set(const struct ndn_Name &nameStruct);
+
+ /**
+ * Add a new component, copying from value of length valueLength.
+ */
+ void addComponent(unsigned char *value, unsigned int valueLength) {
+ components_.push_back(Component(value, valueLength));
+ }
+
+ /**
+ * Clear all the components.
+ */
+ void clear() {
+ components_.clear();
+ }
+
+ /**
+ * Get the number of components.
+ * @return The number of components.
+ */
+ unsigned int getComponentCount() const {
+ return components_.size();
+ }
+
+ const Component &getComponent(unsigned int i) const { return components_[i]; }
+
+ /**
+ * Encode this name as a URI.
+ * @return The encoded URI.
+ */
+ std::string to_uri() const;
+
+private:
+ std::vector<Component> components_;
+};
+
+}
+
+#endif
+