Package com.google.appengine.api.xmpp.XMPPServicePb

Examples of com.google.appengine.api.xmpp.XMPPServicePb.BulkPresenceRequest


  @Override
  public List<Presence> getPresence(Iterable<JID> jabberIds, JID fromJid) {
    checkArgument(jabberIds != null, "Jabber ID list cannot be null");

    BulkPresenceRequest request = new BulkPresenceRequest();
    for (JID jabberId : jabberIds) {
      request.addJid(jabberId.getId());
    }

    checkArgument(request.jids().size() != 0, "Jabber ID list cannot be empty");

    if (fromJid != null) {
      request.setFromJid(fromJid.getId());
    }

    byte[] responseBytes;
    try {
      responseBytes = ApiProxy.makeSyncCall(PACKAGE, "BulkGetPresence", request.toByteArray());
    } catch (ApiProxy.ApplicationException ex) {
      switch (XmppServiceError.ErrorCode.valueOf(ex.getApplicationError())) {
        case INVALID_JID:
          throw new IllegalArgumentException(
              "One or more jabber ID is invalid: " + jabberIds.toString());
        case NO_BODY:
        case UNSPECIFIED_ERROR:
        default:
          throw new XMPPFailureException(
              String.format("Unknown error [code %d] retrieving presence for jabber IDs: %s",
                  ex.getApplicationError(), jabberIds));
      }
    }

    BulkPresenceResponse response = new BulkPresenceResponse();
    response.mergeFrom(responseBytes);
    ImmutableList.Builder<Presence> retVal = new ImmutableList.Builder<Presence>();
    for (int i = 0; i < response.presenceResponseSize(); i++) {
      PresenceResponse presenceResponse = response.getPresenceResponse(i);
      retVal.add(presenceFromPresenceResponse(new JID(request.getJid(i)), fromJid, presenceResponse,
         presenceResponse.isValid()));
    }

    return retVal.build();
  }
View Full Code Here

TOP

Related Classes of com.google.appengine.api.xmpp.XMPPServicePb.BulkPresenceRequest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.