Пример #1
0
  public synchronized void messageReceived(int to, Message m) {

    switch (m.amType()) {
      case DelugeAdvMsg.AM_TYPE:
        DelugeAdvMsg rxAdvMsg = (DelugeAdvMsg) m;

        if (vNum == rxAdvMsg.get_summary_vNum()
            && numPgs == rxAdvMsg.get_summary_numPgsComplete()) {
          // ALL DONE, QUIT!
          System.out.println("DOWNLOAD COMPLETE!");
          System.out.println("--------------------------------------------------");
          System.exit(0);
        }

        break;

      case DelugeReqUpdMetadataMsg.AM_TYPE:
        DelugeReqUpdMetadataMsg reqUpd = (DelugeReqUpdMetadataMsg) m;

        if (printAllMsgs) System.out.print(reqUpd);
        vNum = (short) (reqUpd.get_vNum() + 1);
        advMsg.set_summary_vNum(vNum);

        System.out.print("Upgrading from version [" + reqUpd.get_vNum() + "]");
        System.out.println(" to version [" + vNum + "]");

        transmitMetadataUpd();

        break;

      case DelugeReqMsg.AM_TYPE:
        DelugeReqMsg req = (DelugeReqMsg) m;

        if (printAllMsgs) System.out.print(req);

        if (vNum != req.get_vNum()) {
          System.out.println("ERROR: Node requesting wrong version");
          System.exit(1);
        }

        transmitPage(req.get_pgNum());

        break;
    }
  }
Пример #2
0
  public static void main(String[] args) throws Exception {
    String source = null;
    Vector v = new Vector();
    if (args.length > 0) {
      for (int i = 0; i < args.length; i++) {
        if (args[i].equals("-comm")) {
          source = args[++i];
        } else {
          String className = args[i];
          try {
            Class c = Class.forName(className);
            Object packet = c.newInstance();
            Message msg = (Message) packet;
            if (msg.amType() < 0) {
              System.err.println(className + " does not have an AM type - ignored");
            } else {
              v.addElement(msg);
            }
          } catch (Exception e) {
            System.err.println(e);
          }
        }
      }
    } else if (args.length != 0) {
      usage();
      System.exit(1);
    }

    MsgReader mr = new MsgReader(source);
    Enumeration msgs = v.elements();
    while (msgs.hasMoreElements()) {
      Message m = (Message) msgs.nextElement();
      mr.addMsgType(m);
    }
    mr.start();
  }