mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-10 18:59:41 +02:00
Improve packet send and result collecting API
Instead of repeating the same pattern, when sending an IQ get/set packet and collecting the response PacketFilter filter = new PacketIDFilter(request.getPacketID()), PacketCollector collector = connection.createPacketCollector(filter); connection.sendPacket(reg); IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Stop queuing results collector.cancel(); if (result == null) { throw new XMPPException("No response from server."); } else if (result.getType() == IQ.Type.ERROR) { throw new XMPPException(result.getError()); } the API got redesigned, so that the above code block can be replaced with Packet result = connection.createPacketCollectorAndSend(request).nextResultOrThrow();
This commit is contained in:
parent
e6d5385129
commit
7bd7b3d24c
50 changed files with 333 additions and 1489 deletions
|
@ -19,11 +19,8 @@ package org.jivesoftware.smackx.workgroup.agent;
|
|||
|
||||
import org.jivesoftware.smackx.workgroup.packet.AgentInfo;
|
||||
import org.jivesoftware.smackx.workgroup.packet.AgentWorkgroups;
|
||||
import org.jivesoftware.smack.PacketCollector;
|
||||
import org.jivesoftware.smack.SmackConfiguration;
|
||||
import org.jivesoftware.smack.Connection;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smack.filter.PacketIDFilter;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
|
||||
import java.util.Collection;
|
||||
|
@ -40,20 +37,7 @@ public class Agent {
|
|||
public static Collection<String> getWorkgroups(String serviceJID, String agentJID, Connection connection) throws XMPPException {
|
||||
AgentWorkgroups request = new AgentWorkgroups(agentJID);
|
||||
request.setTo(serviceJID);
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
// Send the request
|
||||
connection.sendPacket(request);
|
||||
|
||||
AgentWorkgroups response = (AgentWorkgroups)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
AgentWorkgroups response = (AgentWorkgroups) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response.getWorkgroups();
|
||||
}
|
||||
|
||||
|
@ -84,20 +68,7 @@ public class Agent {
|
|||
agentInfo.setType(IQ.Type.GET);
|
||||
agentInfo.setTo(workgroupJID);
|
||||
agentInfo.setFrom(getUser());
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(agentInfo.getPacketID()));
|
||||
// Send the request
|
||||
connection.sendPacket(agentInfo);
|
||||
|
||||
AgentInfo response = (AgentInfo)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
AgentInfo response = (AgentInfo) connection.createPacketCollectorAndSend(agentInfo).nextResultOrThrow();
|
||||
return response.getName();
|
||||
}
|
||||
|
||||
|
@ -117,20 +88,6 @@ public class Agent {
|
|||
agentInfo.setTo(workgroupJID);
|
||||
agentInfo.setFrom(getUser());
|
||||
agentInfo.setName(newName);
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(agentInfo.getPacketID()));
|
||||
// Send the request
|
||||
connection.sendPacket(agentInfo);
|
||||
|
||||
IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
return;
|
||||
connection.createPacketCollectorAndSend(agentInfo).nextResultOrThrow();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -266,15 +266,7 @@ public class AgentSession {
|
|||
|
||||
connection.sendPacket(presence);
|
||||
|
||||
presence = (Presence)collector.nextResult(5000);
|
||||
collector.cancel();
|
||||
if (!presence.isAvailable()) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
|
||||
if (presence.getError() != null) {
|
||||
throw new XMPPException(presence.getError());
|
||||
}
|
||||
presence = (Presence)collector.nextResultOrThrow();
|
||||
|
||||
// We can safely update this iv since we didn't get any error
|
||||
this.online = online;
|
||||
|
@ -371,15 +363,7 @@ public class AgentSession {
|
|||
|
||||
this.connection.sendPacket(presence);
|
||||
|
||||
presence = (Presence)collector.nextResult(5000);
|
||||
collector.cancel();
|
||||
if (!presence.isAvailable()) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
|
||||
if (presence.getError() != null) {
|
||||
throw new XMPPException(presence.getError());
|
||||
}
|
||||
collector.nextResultOrThrow();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -422,15 +406,7 @@ public class AgentSession {
|
|||
|
||||
this.connection.sendPacket(presence);
|
||||
|
||||
presence = (Presence)collector.nextResult(5000);
|
||||
collector.cancel();
|
||||
if (!presence.isAvailable()) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
|
||||
if (presence.getError() != null) {
|
||||
throw new XMPPException(presence.getError());
|
||||
}
|
||||
collector.nextResultOrThrow();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -513,19 +489,7 @@ public class AgentSession {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
OccupantsInfo response = (OccupantsInfo)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
OccupantsInfo response = (OccupantsInfo) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -809,16 +773,7 @@ public class AgentSession {
|
|||
// Send the request
|
||||
connection.sendPacket(notes);
|
||||
|
||||
IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
collector.nextResultOrThrow();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -834,21 +789,8 @@ public class AgentSession {
|
|||
request.setTo(workgroupJID);
|
||||
request.setSessionID(sessionID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
ChatNotes response = (ChatNotes)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
ChatNotes response = (ChatNotes) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -871,19 +813,9 @@ public class AgentSession {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
AgentChatHistory response = (AgentChatHistory) connection.createPacketCollectorAndSend(
|
||||
request).nextResult();
|
||||
|
||||
AgentChatHistory response = (AgentChatHistory)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -898,20 +830,7 @@ public class AgentSession {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
|
||||
SearchSettings response = (SearchSettings)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
SearchSettings response = (SearchSettings) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -928,20 +847,7 @@ public class AgentSession {
|
|||
request.setTo(workgroupJID);
|
||||
request.setPersonal(!global);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
|
||||
Macros response = (Macros)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
Macros response = (Macros) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response.getRootGroup();
|
||||
}
|
||||
|
||||
|
@ -958,20 +864,7 @@ public class AgentSession {
|
|||
request.setPersonal(true);
|
||||
request.setPersonalMacroGroup(group);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
|
||||
IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -987,20 +880,8 @@ public class AgentSession {
|
|||
request.setTo(workgroupJID);
|
||||
request.setSessionID(sessionID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
ChatMetadata response = (ChatMetadata) connection.createPacketCollectorAndSend(request).nextResult();
|
||||
|
||||
|
||||
ChatMetadata response = (ChatMetadata)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
return response.getMetadata();
|
||||
}
|
||||
|
||||
|
@ -1043,19 +924,7 @@ public class AgentSession {
|
|||
iq.setTo(workgroupJID);
|
||||
iq.setFrom(connection.getUser());
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(iq.getPacketID()));
|
||||
connection.sendPacket(iq);
|
||||
|
||||
IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
connection.createPacketCollectorAndSend(iq).nextResultOrThrow();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1095,19 +964,7 @@ public class AgentSession {
|
|||
iq.setTo(workgroupJID);
|
||||
iq.setFrom(connection.getUser());
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(iq.getPacketID()));
|
||||
connection.sendPacket(iq);
|
||||
|
||||
IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
connection.createPacketCollectorAndSend(iq).nextResultOrThrow();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1123,19 +980,8 @@ public class AgentSession {
|
|||
setting.setType(IQ.Type.GET);
|
||||
setting.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(setting.getPacketID()));
|
||||
connection.sendPacket(setting);
|
||||
|
||||
GenericSettings response = (GenericSettings)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
GenericSettings response = (GenericSettings) connection.createPacketCollectorAndSend(
|
||||
setting).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -1144,21 +990,8 @@ public class AgentSession {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
MonitorPacket response = (MonitorPacket)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
MonitorPacket response = (MonitorPacket) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response.isMonitor();
|
||||
|
||||
}
|
||||
|
||||
public void makeRoomOwner(Connection con, String sessionID) throws XMPPException {
|
||||
|
@ -1167,19 +1000,6 @@ public class AgentSession {
|
|||
request.setTo(workgroupJID);
|
||||
request.setSessionID(sessionID);
|
||||
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
Packet response = collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,11 +19,8 @@ package org.jivesoftware.smackx.workgroup.agent;
|
|||
|
||||
import org.jivesoftware.smackx.workgroup.packet.Transcript;
|
||||
import org.jivesoftware.smackx.workgroup.packet.Transcripts;
|
||||
import org.jivesoftware.smack.PacketCollector;
|
||||
import org.jivesoftware.smack.SmackConfiguration;
|
||||
import org.jivesoftware.smack.Connection;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smack.filter.PacketIDFilter;
|
||||
|
||||
/**
|
||||
* A TranscriptManager helps to retrieve the full conversation transcript of a given session
|
||||
|
@ -50,20 +47,7 @@ public class TranscriptManager {
|
|||
public Transcript getTranscript(String workgroupJID, String sessionID) throws XMPPException {
|
||||
Transcript request = new Transcript(sessionID);
|
||||
request.setTo(workgroupJID);
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
// Send the request
|
||||
connection.sendPacket(request);
|
||||
|
||||
Transcript response = (Transcript) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
Transcript response = (Transcript) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -79,20 +63,7 @@ public class TranscriptManager {
|
|||
public Transcripts getTranscripts(String workgroupJID, String userID) throws XMPPException {
|
||||
Transcripts request = new Transcripts(userID);
|
||||
request.setTo(workgroupJID);
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
// Send the request
|
||||
connection.sendPacket(request);
|
||||
|
||||
Transcripts response = (Transcripts) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
Transcripts response = (Transcripts) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,11 +20,8 @@ package org.jivesoftware.smackx.workgroup.agent;
|
|||
import org.jivesoftware.smackx.search.ReportedData;
|
||||
import org.jivesoftware.smackx.workgroup.packet.TranscriptSearch;
|
||||
import org.jivesoftware.smackx.xdata.Form;
|
||||
import org.jivesoftware.smack.PacketCollector;
|
||||
import org.jivesoftware.smack.SmackConfiguration;
|
||||
import org.jivesoftware.smack.Connection;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smack.filter.PacketIDFilter;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
|
||||
/**
|
||||
|
@ -55,21 +52,8 @@ public class TranscriptSearchManager {
|
|||
search.setType(IQ.Type.GET);
|
||||
search.setTo(serviceJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(
|
||||
new PacketIDFilter(search.getPacketID()));
|
||||
connection.sendPacket(search);
|
||||
|
||||
TranscriptSearch response = (TranscriptSearch) collector.nextResult(
|
||||
SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
TranscriptSearch response = (TranscriptSearch) connection.createPacketCollectorAndSend(
|
||||
search).nextResultOrThrow();
|
||||
return Form.getFormFrom(response);
|
||||
}
|
||||
|
||||
|
@ -89,19 +73,8 @@ public class TranscriptSearchManager {
|
|||
search.setTo(serviceJID);
|
||||
search.addExtension(completedForm.getDataFormToSend());
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(search.getPacketID()));
|
||||
connection.sendPacket(search);
|
||||
|
||||
TranscriptSearch response = (TranscriptSearch) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
TranscriptSearch response = (TranscriptSearch) connection.createPacketCollectorAndSend(
|
||||
search).nextResultOrThrow();
|
||||
return ReportedData.getReportedDataFrom(response);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -153,8 +153,9 @@ public class Workgroup {
|
|||
* available only when agents are available for this workgroup.
|
||||
*
|
||||
* @return true if the workgroup is available for receiving new requests.
|
||||
* @throws XMPPException
|
||||
*/
|
||||
public boolean isAvailable() {
|
||||
public boolean isAvailable() throws XMPPException {
|
||||
Presence directedPresence = new Presence(Presence.Type.available);
|
||||
directedPresence.setTo(workgroupJID);
|
||||
PacketFilter typeFilter = new PacketTypeFilter(Presence.class);
|
||||
|
@ -164,19 +165,8 @@ public class Workgroup {
|
|||
|
||||
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();
|
||||
}
|
||||
Presence response = (Presence)collector.nextResultOrThrow();
|
||||
return Presence.Type.available == response.getType();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -323,22 +313,7 @@ public class Workgroup {
|
|||
|
||||
JoinQueuePacket joinPacket = new JoinQueuePacket(workgroupJID, answerForm, userID);
|
||||
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(joinPacket.getPacketID()));
|
||||
|
||||
this.connection.sendPacket(joinPacket);
|
||||
|
||||
IQ response = (IQ)collector.nextResult(10000);
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from the server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
|
||||
connection.createPacketCollectorAndSend(joinPacket).nextResultOrThrow();
|
||||
// Notify listeners that we've joined the queue.
|
||||
fireQueueJoinedEvent();
|
||||
}
|
||||
|
@ -418,18 +393,7 @@ public class Workgroup {
|
|||
}
|
||||
|
||||
DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID);
|
||||
PacketCollector collector = this.connection.createPacketCollector(new PacketIDFilter(departPacket.getPacketID()));
|
||||
|
||||
connection.sendPacket(departPacket);
|
||||
|
||||
IQ response = (IQ)collector.nextResult(5000);
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from the server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
connection.createPacketCollectorAndSend(departPacket).nextResultOrThrow();
|
||||
|
||||
// Notify listeners that we're no longer in the queue.
|
||||
fireQueueDepartedEvent();
|
||||
|
@ -670,20 +634,8 @@ public class Workgroup {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
ChatSettings response = (ChatSettings) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
|
||||
|
||||
ChatSettings response = (ChatSettings)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -717,20 +669,8 @@ public class Workgroup {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
|
||||
OfflineSettings response = (OfflineSettings)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
OfflineSettings response = (OfflineSettings) connection.createPacketCollectorAndSend(
|
||||
request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -745,20 +685,7 @@ public class Workgroup {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
|
||||
SoundSettings response = (SoundSettings)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
SoundSettings response = (SoundSettings) connection.createPacketCollectorAndSend(request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -773,20 +700,8 @@ public class Workgroup {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
|
||||
WorkgroupProperties response = (WorkgroupProperties)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
WorkgroupProperties response = (WorkgroupProperties) connection.createPacketCollectorAndSend(
|
||||
request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -803,20 +718,8 @@ public class Workgroup {
|
|||
request.setType(IQ.Type.GET);
|
||||
request.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
|
||||
connection.sendPacket(request);
|
||||
|
||||
|
||||
WorkgroupProperties response = (WorkgroupProperties)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
WorkgroupProperties response = (WorkgroupProperties) connection.createPacketCollectorAndSend(
|
||||
request).nextResultOrThrow();
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -834,19 +737,8 @@ public class Workgroup {
|
|||
workgroupForm.setType(IQ.Type.GET);
|
||||
workgroupForm.setTo(workgroupJID);
|
||||
|
||||
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(workgroupForm.getPacketID()));
|
||||
connection.sendPacket(workgroupForm);
|
||||
|
||||
WorkgroupForm response = (WorkgroupForm)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||
|
||||
// Cancel the collector.
|
||||
collector.cancel();
|
||||
if (response == null) {
|
||||
throw new XMPPException("No response from server on status set.");
|
||||
}
|
||||
if (response.getError() != null) {
|
||||
throw new XMPPException(response.getError());
|
||||
}
|
||||
WorkgroupForm response = (WorkgroupForm) connection.createPacketCollectorAndSend(
|
||||
workgroupForm).nextResultOrThrow();
|
||||
return Form.getFormFrom(response);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue