From 0e63ffa48bb7ebed987160c5f8344938d7eb3100 Mon Sep 17 00:00:00 2001 From: josh Date: Sun, 9 Mar 2008 04:46:28 +0000 Subject: [PATCH] added list of current searches to avoid receiving duplicate results git-svn-id: svn://anubis/gvsu@58 45c1a28c-8058-47b2-ae61-ca45b979098e --- cs654/proj1/KaZaServer.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cs654/proj1/KaZaServer.java b/cs654/proj1/KaZaServer.java index d4c5d70..4b3894c 100644 --- a/cs654/proj1/KaZaServer.java +++ b/cs654/proj1/KaZaServer.java @@ -9,11 +9,13 @@ public class KaZaServer implements Runnable private ServerSocket m_serverSocket; private HashMap m_clientData; private Vector m_peerGroupLeaders; + private HashMap m_currentSearches; public KaZaServer() { m_clientData = new HashMap(); m_peerGroupLeaders = new Vector(); + m_currentSearches = new HashMap(); } public void run() @@ -195,6 +197,14 @@ public class KaZaServer implements Runnable { String results = ""; String querylc = query.toLowerCase(); + + synchronized (m_currentSearches) + { + if (m_currentSearches.containsKey(querylc)) + return results; + m_currentSearches.put(querylc, 1); + } + if (depth > 0) { synchronized (m_peerGroupLeaders) @@ -241,6 +251,12 @@ public class KaZaServer implements Runnable } } } + + synchronized (m_currentSearches) + { + m_currentSearches.remove(querylc); + } + return results; }