. * * Consult LICENSE file for details ************************************************/ class ResolveRecipients extends RequestProcessor { /** * Handles the ResolveRecipients command * * @param int $commandCode * * @access public * @return boolean */ public function Handle($commandCode) { // Parse input if(!self::$decoder->getElementStartTag(SYNC_RESOLVERECIPIENTS_RESOLVERECIPIENTS)) return false; $resolveRecipients = new SyncResolveRecipients(); $resolveRecipients->Decode(self::$decoder); if(!self::$decoder->getElementEndTag()) return false; // SYNC_RESOLVERECIPIENTS_RESOLVERECIPIENTS $resolveRecipients = self::$backend->ResolveRecipients($resolveRecipients); self::$encoder->startWBXML(); self::$encoder->startTag(SYNC_RESOLVERECIPIENTS_RESOLVERECIPIENTS); self::$encoder->startTag(SYNC_RESOLVERECIPIENTS_STATUS); self::$encoder->content($resolveRecipients->status); self::$encoder->endTag(); // SYNC_RESOLVERECIPIENTS_STATUS foreach ($resolveRecipients->to as $i => $to) { self::$encoder->startTag(SYNC_RESOLVERECIPIENTS_RESPONSE); self::$encoder->startTag(SYNC_RESOLVERECIPIENTS_TO); self::$encoder->content($to); self::$encoder->endTag(); // SYNC_RESOLVERECIPIENTS_TO self::$encoder->startTag(SYNC_RESOLVERECIPIENTS_STATUS); self::$encoder->content($resolveRecipients->status); self::$encoder->endTag(); // do only if recipient is resolved if ($resolveRecipients->status != SYNC_RESOLVERECIPSSTATUS_RESPONSE_UNRESOLVEDRECIP) { self::$encoder->startTag(SYNC_RESOLVERECIPIENTS_RECIPIENTCOUNT); self::$encoder->content(count($resolveRecipients->recipient)); self::$encoder->endTag(); // SYNC_RESOLVERECIPIENTS_RECIPIENTCOUNT self::$encoder->startTag(SYNC_RESOLVERECIPIENTS_RECIPIENT); $resolveRecipients->recipient[$i]->Encode(self::$encoder); self::$encoder->endTag(); // SYNC_RESOLVERECIPIENTS_RECIPIENT } self::$encoder->endTag(); // SYNC_RESOLVERECIPIENTS_RESPONSE } self::$encoder->endTag(); // SYNC_RESOLVERECIPIENTS_RESOLVERECIPIENTS return true; } }