public void sendSEROKMsg(Message message) { System.out.println("Received query : " + message); noOfRcvMsg++; if (!lastMessage.isequal(message)) { lastMessage = message; System.out.println("Searching file locally."); ArrayList<String> filesArray = this.searchQueryInLocal(message.query); Configuration.setBackUpNeighbor(message.ip_from, message.port_from); String[] files = filesArray.toArray(new String[filesArray.size()]); if (files.length > 0) { Message serokMsg = new SEROKMessage(files, message.hops, message.ip_from, message.port_from); myMsgTransfer.sendMessage(serokMsg); noOfAnsMsg++; System.out.println("Answered query : " + message); } else { Message serokMsg = new SEROKMessage(files, message.hops, message.ip_from, message.port_from); myMsgTransfer.sendMessage(serokMsg); System.out.println("Searching file globally."); forwardSerMsg(message); } } }
public void forwardSerMsg(Message message) { List<Neighbor> neighbors = Configuration.getNeighbors(); Iterator<Neighbor> neighborsIterator = neighbors.iterator(); while (neighborsIterator.hasNext()) { Neighbor temp = neighborsIterator.next(); if (!message.ip_from.matches(temp.getIpAddress()) || message.port_from != temp.getPortNumber()) { Message serMsg = new SERMessage( message.query, message.hops + 1, message.ip_from, message.port_from, temp.getIpAddress(), temp.getPortNumber()); noOfFwdMsg++; System.out.println( "Forwarded query : " + message.ip_from + ":" + message.port_from + " TO " + temp.getIpAddress() + ":" + temp.getPortNumber()); myMsgTransfer.sendMessage(serMsg); } } }
public void leaveDSSystem() { List<Neighbor> neighbors = Configuration.getNeighbors(); Iterator<Neighbor> neighborsIterator = neighbors.iterator(); while (neighborsIterator.hasNext()) { Neighbor temp = neighborsIterator.next(); Message leaveMsg = new LEAVEMessage(temp.getIpAddress(), temp.getPortNumber()); myMsgTransfer.sendMessage(leaveMsg); } }
public void registerServer() { Message message = new REGMessage(); myMsgTransfer.sendMessage(message); }
// Leave from the server public void unregisterServer() { Message unregMsg = new UNREGMessage(); myMsgTransfer.sendMessage(unregMsg); }
public void joinWithNeighbor(String ip, int port) { Message newMessage = new JOINMessage(ip, port); myMsgTransfer.sendMessage(newMessage); }