public IFuture<Void> execute(IInternalAccess ia) { Map<String, Object> msg = new HashMap<String, Object>(); ComponentIdentifier rec = new ComponentIdentifier("rms@"+cid.getPlatformName(), cid.getAddresses()); msg.put(SFipa.RECEIVERS, new IComponentIdentifier[]{rec}); msg.put(SFipa.CONTENT, "ping"); msg.put(SFipa.PERFORMATIVE, SFipa.QUERY_IF); msg.put(SFipa.CONVERSATION_ID, SUtil.createUniqueId("msg_dis")); getMicroAgent().sendMessageAndWait(msg, SFipa.FIPA_MESSAGE_TYPE, new AbstractMessageHandler(5000, true) { public void handleMessage(Map msg, MessageType type) { // System.out.println("received reply: "+msg); performAnnouncements(cid); } public void timeoutOccurred() { // System.out.println("Received no ping reply, removed: "+cid); announcements.remove(cid); } }); return IFuture.DONE; } });
msg.put(SFipa.PERFORMATIVE, SFipa.QUERY_IF); msg.put(SFipa.CONVERSATION_ID, SUtil.createUniqueId("msg_dis")); getMicroAgent().sendMessageAndWait(msg, SFipa.FIPA_MESSAGE_TYPE, new AbstractMessageHandler(null, 5000, true, true)