Add ProfileData
diff --git a/src/profile-data.cpp b/src/profile-data.cpp
new file mode 100644
index 0000000..e111e54
--- /dev/null
+++ b/src/profile-data.cpp
@@ -0,0 +1,44 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ *                     Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#include "profile-data.h"
+
+using namespace std;
+using namespace ndn;
+
+ProfileData::ProfileData (const Name& identityName,
+			  const string& profileType,
+			  const Blob& profileValue)
+  : Data()
+  , m_identityName(identityName)
+  , m_profileType(profileType)
+{
+  Name tmpName = identityName;
+  setName(tmpName.append(profileType));
+  setContent(Content(profileValue.buf(), profileValue.size()));
+}
+
+
+ProfileData::ProfileData (const ProfileData& profile)
+  : Data()
+  , m_identityName(profile.m_identityName)
+  , m_profileType(profile.m_profileType)
+{
+  setName(profile.getName());
+  setContent(profile.getContent());
+}
+
+Ptr<ProfileData> 
+ProfileData::fromData (const Data& data)
+{
+  //TODO:
+  return NULL;
+}
+
diff --git a/src/profile-data.h b/src/profile-data.h
new file mode 100644
index 0000000..a1e71cf
--- /dev/null
+++ b/src/profile-data.h
@@ -0,0 +1,43 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ *                     Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#ifndef PROFILE_DATA_H
+#define PROFILE_DATA_H
+
+#include <ndn.cxx/data.h>
+
+class ProfileData : public ndn::Data
+{
+public:
+  ProfileData (const ndn::Name& identityName,
+               const std::string& profileType,
+               const ndn::Blob& profileValue);
+
+  ProfileData (const ProfileData& profile);
+
+  ~ProfileData () {}
+
+  static ndn::Ptr<ProfileData> 
+  fromData (const ndn::Data& data);
+
+  inline const ndn::Name&
+  getIdentityName() const
+  { return m_identityName; }
+
+  inline const std::string&
+  getProfileType() const
+  { return m_profileType; }
+
+private:
+  ndn::Name m_identityName;
+  std::string m_profileType;
+};
+
+#endif