Merge branch 'nlsr-cpp' of https://github.com/NDN-Routing/NLSR0.0 into nlsr-cpp
diff --git a/nlsr_lsa.cpp b/nlsr_lsa.cpp
new file mode 100644
index 0000000..b6ba605
--- /dev/null
+++ b/nlsr_lsa.cpp
@@ -0,0 +1,37 @@
+#include<string>
+#include<iostream>
+#include<algorithm>
+
+#include "nlsr_lsa.hpp"
+
+using namespace std;
+
+string 
+Lsa::getLsaKey()
+{
+	string key;
+	key=origRouter + "/" + boost::lexical_cast<std::string>(lsType) + "/" 
+	    + boost::lexical_cast<std::string>(lsSeqNo);
+	return key;
+}
+
+string
+NameLsa::getNameLsaData()
+{
+	string nameLsaData;
+	nameLsaData=origRouter + "|" + boost::lexical_cast<std::string>(lsType) + "|" 
+	    + boost::lexical_cast<std::string>(lsSeqNo) + "|" 
+	    + boost::lexical_cast<std::string>(lifeTime);
+	nameLsaData+="|";
+	nameLsaData+=boost::lexical_cast<std::string>(npl.getNplSize());
+
+	std::list<string> nl=npl.getNameList();
+	for( std::list<string>::iterator it=nl.begin(); it != nl.end(); it++)
+	{
+		nameLsaData+="|";
+		nameLsaData+=(*it);
+	}
+	
+	return nameLsaData;
+}
+
diff --git a/nlsr_lsa.hpp b/nlsr_lsa.hpp
new file mode 100644
index 0000000..4c252e6
--- /dev/null
+++ b/nlsr_lsa.hpp
@@ -0,0 +1,121 @@
+#ifndef NLSR_LSA_HPP
+#define NLSR_LSA_HPP
+
+#include "nlsr_adjacent.hpp"
+#include "nlsr_npl.hpp"
+#include "nlsr_adl.hpp"
+
+using namespace std;
+
+class Lsa{
+public:
+	Lsa()
+		: origRouter()
+		, lsSeqNo()
+		, lifeTime()
+	{
+	}	
+
+
+	void setLsType(uint8_t lst)
+	{
+		lsType=lst;
+	}
+
+	uint8_t getLsType()
+	{
+		return lsType;
+	}
+
+	void setLsSeqNo(uint32_t lsn)
+	{
+		lsSeqNo=lsn;
+	}
+
+	uint32_t getLsSeqNo()
+	{
+		return lsSeqNo;
+	}
+
+	string& getOrigRouter()
+	{
+		return origRouter;
+	}
+
+	void setOrigRouter(string& org)
+	{
+		origRouter=org;
+	}
+
+	uint32_t getLifeTime()
+	{
+		return lifeTime;
+	}
+
+	void setLifeTime(uint32_t lt)
+	{
+		lifeTime=lt;
+	}
+	string getLsaKey();
+protected:
+	string origRouter;
+	uint8_t lsType;
+	uint32_t lsSeqNo;
+	uint32_t lifeTime;
+};
+
+class NameLsa:Lsa{
+public:
+	NameLsa()
+		: Lsa()
+		, npl()
+	{
+		setLsType(1);
+	}
+
+
+	Npl& getNpl(){
+		return npl;
+	}
+
+	void addNameToLsa(string& name)
+	{
+		npl.insertIntoNpl(name);
+	}
+
+	string getNameLsaData();
+	
+private:
+	Npl npl;
+	
+};
+
+class AdjLsa:Lsa{
+public:
+	AdjLsa()
+		: Lsa()
+		, adl()
+	{
+	}
+
+private:
+	uint32_t noLink;
+	Adl adl;
+};
+
+class CorLsa:Lsa{
+public:
+	CorLsa()
+		:Lsa()
+	{
+	}
+private:
+	double corRad;
+	double corTheta;
+
+};
+
+
+
+
+#endif
diff --git a/nlsr_npl.hpp b/nlsr_npl.hpp
index da4bda7..878e4cc 100644
--- a/nlsr_npl.hpp
+++ b/nlsr_npl.hpp
@@ -14,6 +14,14 @@
 	~Npl();
 
 	int insertIntoNpl(string& name);
+	int getNplSize()
+	{
+		return nameList.size();
+	}
+	std::list<string>& getNameList()
+	{
+		return nameList;
+	}
 	void printNpl();
 
 private: