Exemple #1
0
  protected void deliverFromAgent(Message message) {
    // Deliver to admin or simulation (when simulation exists)
    String receiver = message.getReceiver();
    SimulationAgent proxy;
    if (isClosed) {
      // closed channel
    } else if (Admin.ADMIN.equals(receiver)) {
      Transportable content = message.getContent();
      if (message.getSender() == null) {
        message.setSender(name);
      }
      if ((content instanceof AdminContent)
          && (((AdminContent) content).getType() == AdminContent.QUIT)) {
        // Time to close this connection
        deliverToAgent(message.createReply(new AdminContent(AdminContent.QUIT)));
        close();

      } else {
        admin.deliverMessageFromAgent(this, message);
      }

    } else if ((proxy = this.proxy) != null) {
      proxy.deliverFromAgent(message);

    } else {
      // not a valid receiver because the agent is not in a game
    }
  }
Exemple #2
0
  public final void close() {
    if (!isClosed) {
      isClosed = true;
      admin.logoutAgentChannel(this);

      SimulationAgent proxy = this.proxy;
      if (proxy != null) {
        this.proxy = null;
        proxy.removeAgentChannel(this);
      }
    }
    closeChannel();
  }