private void AddCallTableRow(DataTable tmptbl, callnode n, bool iscaller)
		{
			DataRow tmpRow;

			tmpRow = tmptbl.NewRow();
			tmpRow["id"] = n.id;
			if(iscaller)
				tmpRow["callerid"] = n.callerid;
			else
				tmpRow["calleeid"] = n.calleeid;
			tmptbl.Rows.Add(tmpRow);
		}
		private void BuildCallTables(DataTable tbl, int id, Dictionary<Vertex, Edge> callhash, bool iscaller)
		{
			string nameAndSignature = null;
			callnode cn = new callnode();
			cn.id = id;
			foreach(Vertex cv in  callhash.Keys)
			{
				nameAndSignature = cv.name;
				if(cv.signature != null)
					nameAndSignature += ' ' + cv.signature;
				if(iscaller)
				{
					if( basedataId.ContainsKey(nameAndSignature))
					{
						cn.callerid = (int)basedataId[nameAndSignature];
						AddCallTableRow(tbl, cn, iscaller);
					}
				}
				else
				{
					if( basedataId.ContainsKey(nameAndSignature))
					{
						cn.calleeid = (int)basedataId[nameAndSignature];
						AddCallTableRow(tbl, cn, iscaller);
					}

				}
			}
		}