Пример #1
0
 public MultiUserChat(XMPPConnection connection, String room) {
   this.nickname = null;
   this.joined = false;
   this.occupantsMap = new ConcurrentHashMap();
   this.invitationRejectionListeners = new ArrayList();
   this.subjectUpdatedListeners = new ArrayList();
   this.userStatusListeners = new ArrayList();
   this.participantStatusListeners = new ArrayList();
   this.presenceInterceptors = new ArrayList();
   this.connectionListeners = new ArrayList();
   this.connection = connection;
   this.room = room.toLowerCase(Locale.US);
   this.messageFilter =
       new AndFilter(FromMatchesFilter.create(this.room), MessageTypeFilter.GROUPCHAT);
   this.presenceFilter =
       new AndFilter(FromMatchesFilter.create(this.room), PacketTypeFilter.PRESENCE);
   this.messageCollector = new ConnectionDetachedPacketCollector();
   PacketListener c13323 = new C13323();
   PacketMultiplexListener packetMultiplexListener =
       new PacketMultiplexListener(this.messageCollector, new C13334(), c13323, new C13345());
   this.roomListenerMultiplexor = RoomListenerMultiplexor.getRoomMultiplexor(this.connection);
   RoomListenerMultiplexor roomListenerMultiplexor = this.roomListenerMultiplexor;
   String str = this.room;
   RoomMultiplexFilter roomMultiplexFilter = roomListenerMultiplexor.filter;
   if (str != null) {
     roomMultiplexFilter.roomAddressTable.put(str.toLowerCase(Locale.US), str);
   }
   RoomMultiplexListener roomMultiplexListener = roomListenerMultiplexor.listener;
   if (str != null) {
     roomMultiplexListener.roomListenersByAddress.put(
         str.toLowerCase(Locale.US), packetMultiplexListener);
   }
 }
Пример #2
0
  @Override
  public PacketFilter getInitiationPacketFilter(final String from, String streamID) {
    /*
     * this method is always called prior to #negotiateIncomingStream() so the SOCKS5
     * InitiationListener must ignore the next SOCKS5 Bytestream request with the given session
     * ID
     */
    this.manager.ignoreBytestreamRequestOnce(streamID);

    return new AndFilter(FromMatchesFilter.create(from), new BytestreamSIDFilter(streamID));
  }
Пример #3
0
  /**
   * 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.
   * @throws XMPPException
   */
  public boolean isAvailable() throws XMPPException {
    Presence directedPresence = new Presence(Presence.Type.available);
    directedPresence.setTo(workgroupJID);
    PacketFilter typeFilter = new PacketTypeFilter(Presence.class);
    PacketFilter fromFilter = FromMatchesFilter.create(workgroupJID);
    PacketCollector collector =
        connection.createPacketCollector(new AndFilter(fromFilter, typeFilter));

    connection.sendPacket(directedPresence);

    Presence response = (Presence) collector.nextResultOrThrow();
    return Presence.Type.available == response.getType();
  }