Refine search
MultiUserChatLight(XMPPConnection connection, EntityJid room) { this.connection = connection; this.room = room; fromRoomFilter = FromMatchesFilter.create(room); fromRoomGroupChatFilter = new AndFilter(fromRoomFilter, MessageTypeFilter.GROUPCHAT); messageListener = new StanzaListener() { @Override public void processStanza(Stanza packet) throws NotConnectedException { Message message = (Message) packet; for (MessageListener listener : messageListeners) { listener.processMessage(message); } } }; connection.addSyncStanzaListener(messageListener, fromRoomGroupChatFilter); }
@Test public void abstractListFilterToStringTest() { AndFilter andFilter = new AndFilter(); andFilter.addFilter(new StanzaIdFilter("foo")); andFilter.addFilter(new ThreadFilter("42")); andFilter.addFilter(MessageWithBodiesFilter.INSTANCE); final String res = andFilter.toString(); assertEquals("AndFilter: (StanzaIdFilter: id=foo, ThreadFilter: thread=42, MessageWithBodiesFilter)", res); } }
new AndFilter( new FromMatchesFilter(room), new PacketTypeFilter(Message.class)); responseFilter = new AndFilter(responseFilter, new PacketFilter() { public boolean accept(Packet packet) { Message msg = (Message) packet; (Message) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); throw new XMPPException("No response from server."); throw new XMPPException(answer.getError());
public OfflineMessageManager(Connection connection) { this.connection = connection; packetFilter = new AndFilter(new PacketExtensionFilter("offline", namespace), new PacketTypeFilter(Message.class)); }
InputStream negotiateIncomingStream(Packet streamInitiation) throws XMPPException { Open openRequest = (Open) streamInitiation; if (openRequest.getType().equals(IQ.Type.ERROR)) { throw new XMPPException(openRequest.getError()); } PacketFilter dataFilter = new IBBMessageSidFilter(openRequest.getFrom(), openRequest.getSessionID()); PacketFilter closeFilter = new AndFilter(new PacketTypeFilter( IBBExtensions.Close.class), new FromMatchesFilter(openRequest .getFrom())); InputStream stream = new IBBInputStream(openRequest.getSessionID(), dataFilter, closeFilter); initInBandTransfer(openRequest); return stream; }
/** * Returns true if the workgroup is available for receiving new requests. The workgroup will be * available only when agents are available for this workgroup. * * @return true if the workgroup is available for receiving new requests. */ public boolean isAvailable() { Presence directedPresence = new Presence(Presence.Type.available); directedPresence.setTo(workgroupJID); PacketFilter typeFilter = new PacketTypeFilter(Presence.class); PacketFilter fromFilter = new FromContainsFilter(workgroupJID); PacketCollector collector = connection.createPacketCollector(new AndFilter(fromFilter, typeFilter)); connection.sendPacket(directedPresence); Presence response = (Presence)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Cancel the collector. collector.cancel(); if (response == null) { return false; } else if (response.getError() != null) { return false; } else { return Presence.Type.available == response.getType(); } }
PacketCollector response = connection.createPacketCollector(responseFilter); PacketFilter messageFilter = new AndFilter(packetFilter, new PacketFilter() { public boolean accept(Packet packet) { OfflineMessageInfo info = (OfflineMessageInfo) packet.getExtension("offline", IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); throw new XMPPException("No response from server."); } else if (answer.getError() != null) { throw new XMPPException(answer.getError()); SmackConfiguration.getPacketReplyTimeout()); while (message != null) { messages.add(message); message = (Message) messageCollector.nextResult( SmackConfiguration.getPacketReplyTimeout());
new AndFilter( new FromMatchesFilter(room), new PacketTypeFilter(Message.class)); responseFilter = new AndFilter(responseFilter, new PacketFilter() { public boolean accept(Packet packet) { Message msg = (Message) packet; (Message) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); throw new XMPPException("No response from server."); throw new XMPPException(answer.getError());
protected PacketFilter getDataPacketFilter() { /* * filter all IQ stanzas having type 'SET' (represented by Data class), containing a * data packet extension, matching session ID and recipient */ return new AndFilter(new PacketTypeFilter(Data.class), new IBBDataPacketFilter()); }
joinPresence.setTo(room + "/" + nickname); PacketFilter responseFilter = new AndFilter( new FromContainsFilter(room + "/" + nickname), new PacketTypeFilter(Presence.class)); PacketCollector response = connection.createPacketCollector(responseFilter); response.cancel(); if (presence == null) { throw new XMPPException("No response from server."); throw new XMPPException(presence.getError());
/** * Returns true if the workgroup is available for receiving new requests. The workgroup will be * available only when agents are available for this workgroup. * * @return true if the workgroup is available for receiving new requests. */ public boolean isAvailable() { Presence directedPresence = new Presence(Presence.Type.available); directedPresence.setTo(workgroupJID); PacketFilter typeFilter = new PacketTypeFilter(Presence.class); PacketFilter fromFilter = new FromContainsFilter(workgroupJID); PacketCollector collector = connection.createPacketCollector(new AndFilter(fromFilter, typeFilter)); connection.sendPacket(directedPresence); Presence response = (Presence)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Cancel the collector. collector.cancel(); if (response == null) { return false; } else if (response.getError() != null) { return false; } else { return Presence.Type.available == response.getType(); } }
PacketCollector response = connection.createPacketCollector(responseFilter); PacketFilter messageFilter = new AndFilter(packetFilter, new PacketFilter() { public boolean accept(Packet packet) { OfflineMessageInfo info = (OfflineMessageInfo) packet.getExtension("offline", IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); throw new XMPPException("No response from server."); } else if (answer.getError() != null) { throw new XMPPException(answer.getError()); SmackConfiguration.getPacketReplyTimeout()); while (message != null) { messages.add(message); message = (Message) messageCollector.nextResult( SmackConfiguration.getPacketReplyTimeout());
new AndFilter( new FromMatchesFilter(room), new PacketTypeFilter(Message.class)); responseFilter = new AndFilter(responseFilter, new PacketFilter() { public boolean accept(Packet packet) { Message msg = (Message) packet; (Message) response.nextResult(SmackConfiguration.getPacketReplyTimeout()); throw new XMPPException("No response from server."); throw new XMPPException(answer.getError());
@Override protected PacketFilter getDataPacketFilter() { /* * filter all message stanzas containing a data packet extension, matching session ID * and recipient */ return new AndFilter(new PacketTypeFilter(Message.class), new IBBDataPacketFilter()); }
PacketCollector collector = this.connection.createPacketCollector(new AndFilter(new PacketTypeFilter(Presence.class), new FromContainsFilter(workgroupJID))); collector.cancel(); if (!presence.isAvailable()) { throw new XMPPException("No response from server on status set."); throw new XMPPException(presence.getError());
leavePresence.setTo(myRoomJid); StanzaFilter reflectedLeavePresenceFilter = new AndFilter( StanzaTypeFilter.PRESENCE, new StanzaIdFilter(leavePresence), new OrFilter( new AndFilter(FromMatchesFilter.createFull(myRoomJid), PresenceTypeFilter.UNAVAILABLE, MUCUserStatusCodeFilter.STATUS_110_PRESENCE_TO_SELF), new AndFilter(fromRoomFilter, PresenceTypeFilter.ERROR)
/** * Returns true if the workgroup is available for receiving new requests. The workgroup will be * available only when agents are available for this workgroup. * * @return true if the workgroup is available for receiving new requests. */ public boolean isAvailable() { Presence directedPresence = new Presence(Presence.Type.available); directedPresence.setTo(workgroupJID); PacketFilter typeFilter = new PacketTypeFilter(Presence.class); PacketFilter fromFilter = new FromContainsFilter(workgroupJID); PacketCollector collector = connection.createPacketCollector(new AndFilter(fromFilter, typeFilter)); connection.sendPacket(directedPresence); Presence response = (Presence)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Cancel the collector. collector.cancel(); if (response == null) { return false; } else if (response.getError() != null) { return false; } else { return Presence.Type.available == response.getType(); } }