Exemple #1
0
  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);
      }
    }
  }
Exemple #2
0
  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);
      }
    }
  }
Exemple #3
0
 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);
   }
 }
Exemple #4
0
 public void registerServer() {
   Message message = new REGMessage();
   myMsgTransfer.sendMessage(message);
 }
Exemple #5
0
 // Leave from the server
 public void unregisterServer() {
   Message unregMsg = new UNREGMessage();
   myMsgTransfer.sendMessage(unregMsg);
 }
Exemple #6
0
  public void joinWithNeighbor(String ip, int port) {

    Message newMessage = new JOINMessage(ip, port);
    myMsgTransfer.sendMessage(newMessage);
  }