[sync] still more syncml command classes

Anthony Mills amills at gascard.net
Sat Dec 20 03:15:34 PST 2003


I put these files in this directory horde/framework/RPC/RPC/syncml_command.
Feel free to move them around.  The factory can be rewritten to use file names
instead of a switch statement.  The elements are case sensitive.

Anthony

-------------- next part --------------
<?php
/**
 * The Horde_RPC_syncml_command class provides a SyncML implementation of the
 * Horde RPC system.
 *
 * $Horde: framework/RPC/RPC/syncml.php,v 1.6 2003/12/17 16:02:44 chuck Exp $
 *
 * Copyright 2003 Anthony Mills <amills at pyramid6.com>
 *
 * See the enclosed file COPYING for license information (LGPL). If you
 * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
 *
 * @author  Anthony Mills <amills at pyramid6.com>
 * @version $Revision: 1.6 $
 * @since   Horde 3.0
 * @package Horde_RPC
 */
 
 /**
  * All variables are from the client standpoint.
  *
  *
  */
class Horde_RPC_syncml_sync_Final extends Horde_RPC_syncml_sync_command {
    
    function output($currentCmdID, $output)
    {
        return $currentCmdID;
    }
}

-------------- next part --------------
<?php

include_once 'Horde/RPC/syncml_state.php';
include_once 'Horde/RPC/syncml_status.php';
include_once 'Horde/RPC/syncml_command/command.php';

/**
 * The Horde_RPC_syncml class provides a SyncML implementation of the
 * Horde RPC system.
 *
 * $Horde: framework/RPC/RPC/syncml.php,v 1.6 2003/12/17 16:02:44 chuck Exp $
 *
 * Copyright 2003 Anthony Mills <amills at pyramid6.com>
 *
 * See the enclosed file COPYING for license information (LGPL). If you
 * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
 *
 * @author  Anthony Mills <amills at pyramid6.com>
 * @version $Revision: 1.6 $
 * @since   Horde 3.0
 * @package Horde_RPC
 */
 
 /**
  * All variables are from the client standpoint.
  *
  *
  */
class Horde_RPC_syncml_command_Results extends Horde_RPC_syncml_command {
     
    var $cmdRef;
    
    function output($currentCmdID, $output)
    {                
            $$attrs = array();
            $output->startElement($this->_uri, 'Results', $attrs);
               
            $output->startElement($this->_uri, 'CmdID', $attrs);
            $chars = $this->_currentCmdID;
            $output->characters($chars);
            $output->endElement($this->_uri, 'CmdID');            
            
            $output->startElement($this->_uri, 'MsgRef', $attrs);
            $chars = $this->_msgID;
            $output->characters($chars);
            $output->endElement($this->_uri, 'MsgRef');
            
            $output->startElement($this->_uri, 'CmdRef', $attrs);
            $chars = $this->_cmdRef;
            $output->characters($chars);
            $output->endElement($this->_uri, 'CmdRef');
                                
//   <Meta>
//    <Type xmlns='syncml:metinf'>
//     application/vnd.syncml-devinf+xml
//    </Type>
//   </Meta>
//   <Item>
//    <Source>
//     <LocURI>
//      ./devinf11
//     </LocURI>
//    </Source>
//    <Data>
//     <DevInf xmlns='syncml:devinf'>
//      <VerDTD>
//       1.1
//      </VerDTD>
//      <Man>
//       Synthesis AG
//      </Man>
//      <Mod>
//       Synthesis Sync Server 1.0 Demo
//      </Mod>
//      <OEM>
//       Synthesis AG
//      </OEM>
//      <SwV>
//       2.0.1.5
//      </SwV>
//      <DevId>
//       SySync Server (textdb,standalone)
//      </DevId>
//      <DevTyp>
//       server
//      </DevTyp>
//      <UTC>
//      </UTC>
//      <SupportNumberOfChanges>
//      </SupportNumberOfChanges>
//      <SupportLargeObjs>
//      </SupportLargeObjs>
//      <DataStore>
//       <SourceRef>
//        ./contacts
//       </SourceRef>
//       <DisplayName>
//        contacts
//       </DisplayName>
//       <Rx-Pref>
//        <CTType>
//         text/x-vcard
//        </CTType>
//        <VerCT>
//         2.1
//        </VerCT>
//       </Rx-Pref>
//       <Rx>
//        <CTType>
//         text/vcard
//        </CTType>
//        <VerCT>
//         3.0
//        </VerCT>
//       </Rx>
//       <Tx-Pref>
//        <CTType>
//         text/x-vcard
//        </CTType>
//        <VerCT>
//         2.1
//        </VerCT>
//       </Tx-Pref>
//       <Tx>
//        <CTType>
//         text/vcard
//        </CTType>
//        <VerCT>
//         3.0
//        </VerCT>
//       </Tx>
//       <SyncCap>
//        <SyncType>
//         1
//        </SyncType>
//        <SyncType>
//         2
//        </SyncType>
//        <SyncType>
//         4
//        </SyncType>
//        <SyncType>
//         5
//        </SyncType>
//        <SyncType>
//         6
//        </SyncType>
//       </SyncCap>
//      </DataStore>
//      <DataStore>
//       <SourceRef>
//        ./events
//       </SourceRef>
//       <DisplayName>
//        events
//       </DisplayName>
//       <Rx-Pref>
//        <CTType>
//         text/x-vcalendar
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Rx-Pref>
//       <Tx-Pref>
//        <CTType>
//         text/x-vcalendar
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Tx-Pref>
//       <SyncCap>
//        <SyncType>
//         1
//        </SyncType>
//        <SyncType>
//         2
//        </SyncType>
//        <SyncType>
//         4
//        </SyncType>
//        <SyncType>
//         5
//        </SyncType>
//        <SyncType>
//         6
//        </SyncType>
//       </SyncCap>
//      </DataStore>
//      <DataStore>
//       <SourceRef>
//        ./tasks
//       </SourceRef>
//       <DisplayName>
//        tasks
//       </DisplayName>
//       <Rx-Pref>
//        <CTType>
//         text/x-vcalendar
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Rx-Pref>
//       <Tx-Pref>
//        <CTType>
//         text/x-vcalendar
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Tx-Pref>
//       <SyncCap>
//        <SyncType>
//         1
//        </SyncType>
//        <SyncType>
//         2
//        </SyncType>
//        <SyncType>
//         4
//        </SyncType>
//        <SyncType>
//         5
//        </SyncType>
//        <SyncType>
//         6
//        </SyncType>
//       </SyncCap>
//      </DataStore>
//      <DataStore>
//       <SourceRef>
//        ./calendar
//       </SourceRef>
//       <DisplayName>
//        calendar
//       </DisplayName>
//       <Rx-Pref>
//        <CTType>
//         text/x-vcalendar
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Rx-Pref>
//       <Tx-Pref>
//        <CTType>
//         text/x-vcalendar
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Tx-Pref>
//       <SyncCap>
//        <SyncType>
//         1
//        </SyncType>
//        <SyncType>
//         2
//        </SyncType>
//        <SyncType>
//         3
//        </SyncType>
//        <SyncType>
//         4
//        </SyncType>
//        <SyncType>
//         5
//        </SyncType>
//        <SyncType>
//         6
//        </SyncType>
//       </SyncCap>
//      </DataStore>
//      <DataStore>
//       <SourceRef>
//        ./notes
//       </SourceRef>
//       <DisplayName>
//        notes
//       </DisplayName>
//       <Rx-Pref>
//        <CTType>
//         text/plain
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Rx-Pref>
//       <Tx-Pref>
//        <CTType>
//         text/plain
//        </CTType>
//        <VerCT>
//         1.0
//        </VerCT>
//       </Tx-Pref>
//       <SyncCap>
//        <SyncType>
//         1
//        </SyncType>
//        <SyncType>
//         2
//        </SyncType>
//        <SyncType>
//         4
//        </SyncType>
//        <SyncType>
//         5
//        </SyncType>
//        <SyncType>
//         6
//        </SyncType>
//       </SyncCap>
//      </DataStore>
//      <CTCap>
//       <CTType>
//        text/x-vcard
//       </CTType>
//       <PropName>
//        BEGIN
//       </PropName>
//       <ValEnum>
//        VCARD
//       </ValEnum>
//       <PropName>
//        END
//       </PropName>
//       <ValEnum>
//        VCARD
//       </ValEnum>
//       <PropName>
//        VERSION
//       </PropName>
//       <ValEnum>
//        2.1
//       </ValEnum>
//       <PropName>
//        REV
//       </PropName>
//       <PropName>
//        N
//       </PropName>
//       <PropName>
//        TITLE
//       </PropName>
//       <PropName>
//        ORG
//       </PropName>
//       <PropName>
//        EMAIL
//       </PropName>
//       <PropName>
//        URL
//       </PropName>
//       <PropName>
//        TEL
//       </PropName>
//       <PropName>
//        ADR
//       </PropName>
//       <PropName>
//        BDAY
//       </PropName>
//       <PropName>
//        NOTE
//       </PropName>
//       <CTType>
//        text/vcard
//       </CTType>
//       <PropName>
//        BEGIN
//       </PropName>
//       <ValEnum>
//        VCARD
//       </ValEnum>
//       <PropName>
//        END
//       </PropName>
//       <ValEnum>
//        VCARD
//       </ValEnum>
//       <PropName>
//        VERSION
//       </PropName>
//       <ValEnum>
//        3.0
//       </ValEnum>
//       <PropName>
//        REV
//       </PropName>
//       <PropName>
//        N
//       </PropName>
//       <PropName>
//        TITLE
//       </PropName>
//       <PropName>
//        ORG
//       </PropName>
//       <PropName>
//        EMAIL
//       </PropName>
//       <PropName>
//        URL
//       </PropName>
//       <PropName>
//        TEL
//       </PropName>
//       <PropName>
//        ADR
//       </PropName>
//       <PropName>
//        BDAY
//       </PropName>
//       <PropName>
//        NOTE
//       </PropName>
//       <CTType>
//        text/x-vcalendar
//       </CTType>
//       <PropName>
//        BEGIN
//       </PropName>
//       <ValEnum>
//        VCALENDAR
//       </ValEnum>
//       <ValEnum>
//        VEVENT
//       </ValEnum>
//       <ValEnum>
//        VTODO
//       </ValEnum>
//       <PropName>
//        END
//       </PropName>
//       <ValEnum>
//        VCALENDAR
//       </ValEnum>
//       <ValEnum>
//        VEVENT
//       </ValEnum>
//       <ValEnum>
//        VTODO
//       </ValEnum>
//       <PropName>
//        VERSION
//       </PropName>
//       <ValEnum>
//        1.0
//       </ValEnum>
//       <PropName>
//        TZ
//       </PropName>
//       <PropName>
//        LAST-MODIFIED
//       </PropName>
//       <PropName>
//        DCREATED
//       </PropName>
//       <PropName>
//        SUMMARY
//       </PropName>
//       <PropName>
//        DESCRIPTION
//       </PropName>
//       <PropName>
//        LOCATION
//       </PropName>
//       <PropName>
//        CATEGORIES
//       </PropName>
//       <PropName>
//        DTSTART
//       </PropName>
//       <PropName>
//        DTEND
//       </PropName>
//       <PropName>
//        ATTENDEE
//       </PropName>
//       <PropName>
//        RRULE
//       </PropName>
//       <PropName>
//        EXDATE
//       </PropName>
//       <PropName>
//        AALARM
//       </PropName>
//       <PropName>
//        DALARM
//       </PropName>
//       <PropName>
//        LOCATION
//       </PropName>
//       <PropName>
//        CATEGORIES
//       </PropName>
//       <PropName>
//        DUE
//       </PropName>
//       <PropName>
//        PRIORITY
//       </PropName>
//       <PropName>
//        STATUS
//       </PropName>
//       <PropName>
//        AALARM
//       </PropName>
//       <PropName>
//        DALARM
//       </PropName>
//      </CTCap>
//     </DevInf>
//    </Data>
//   </Item>
   
        $output->endElement($$this->_uri, 'Results');

        $currentCmdID++;
        
        return $currentCmdID;
        
    }
    
    /** Setter for property sourceRef.
     * @param sourceRef New value of property sourceRef.
     *
     */
    function setCmdRef($cmdRef) {
        $this->_cmdRef = $cmdRef;
    }         
    
}
-------------- next part --------------
<?php

include_once 'Horde/RPC/syncml_state.php';
include_once 'Horde/RPC/syncml_command/command.php';

/**
 * The Horde_RPC_syncml class provides a SyncML implementation of the
 * Horde RPC system.
 *
 * $Horde: framework/RPC/RPC/syncml.php,v 1.6 2003/12/17 16:02:44 chuck Exp $
 *
 * Copyright 2003 Anthony Mills <amills at pyramid6.com>
 *
 * See the enclosed file COPYING for license information (LGPL). If you
 * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
 *
 * @author  Anthony Mills <amills at pyramid6.com>
 * @version $Revision: 1.6 $
 * @since   Horde 3.0
 * @package Horde_RPC
 */
 
 /**
  * All variables are from the client standpoint.
  *
  *
  */
class Horde_RPC_syncml_command_Status extends Horde_RPC_syncml_command {
    
    var $_response;
    
    var $_cmdRef;
    
    var $_cmd;  //must be present
    
    var $_sourceRef; //must if not null
    
    var $_targetRef;

    var $_chalMetaFormat;
       
    var $_chalMetaType;
       
    var $_chalMetaNextNonce; 

    var $_itemDataAnchorNext;      
    
    function Horde_RPC_syncml_command_status() {
    }
    
    /** Creates a new instance of Response */
    function Horde_RPC_syncml_command_Status($response, $cmd)
    {
        $this->_response = $response;
        $this->_cmd = $cmd;
    }
    
    /** Creates a new instance of Response */    
    function output($currentCmdID, $output)
    {
        $attrs = array();
        
        if ($this->_cmd != null) {
            $attrs = array();
            $output->startElement($this->_uri, 'Status', $attrs);
               
            $output->startElement($this->_uri, 'CmdID', $attrs);
            $chars = $this->_currentCmdID;
            $output->characters(chars);
            $output->endElement($this->_uri, 'CmdID');            
            
            $output->startElement($this->_uri, 'MsgRef', $attrs);
            $chars = $this->_msgID;
            $output->characters(chars);
            $output->endElement($this->_uri, 'MsgRef');
            
            $output->startElement($this->_uri, 'CmdRef', $attrs);
            $chars = $this->_cmdRef;
            $output->characters(chars);
            $output->endElement($this->_uri, 'CmdRef');
            
            $output->startElement($this->_uri, 'Cmd', $attrs);
            $chars = $this->_cmd;
            $output->characters(chars);
            $output->endElement($this->_uri, 'Cmd');
            
            if (sourceRef != null) {
                $output->startElement($this->_uri, 'SourceRef', $attrs);
                $chars = $this->_sourceRef;
            $output->characters(chars);
                $output->endElement($this->_uri, 'SourceRef');        
            }
            
            if (targetRef != null) {
                $output->startElement($this->_uri, 'TargetRef', $attrs);
                $chars = $this->_targetRef;
                $output->characters(chars);
                $output->endElement($this->_uri, 'TargetRef');        
            }
                    
            if (chalMetaFormat != null && chalMetaType != null && chalMetaNextNonce != null) {
                $output->startElement($this->_uri, 'Chal', $attrs);
                    $output->startElement($this->_uri, 'Meta', $attrs);
                
                    $metainfuri = (version == 0) ? NAME_SPACE_URI_METINF : NAME_SPACE_URI_METINF_1_1;
                
                        $output->startElement(metainf$this->_uri, 'Format', $attrs);
                        $chars = $this->_chalMetaFormat;
                        $output->characters(chars);
                        $output->endElement(metainf$this->_uri, 'Format');    
                        
                        $output->startElement(metainf$this->_uri, 'Type', $attrs);
                        $chars = $this->_chalMetaType;
                        $output->characters(chars);
                        $output->endElement(metainf$this->_uri, 'Type');     
                        
                        $output->startElement(metainf$this->_uri, 'NextNonce', $attrs);
                        $chars = $this->_chalMetaNextNonce;
                        $output->characters(chars);
                        $output->endElement(metainf$this->_uri, 'NextNonce');        
                
                    $output->endElement($this->_uri, 'Meta');                    
                $output->endElement($this->_uri, 'Chal');        
            }
            
            $output->startElement($this->_uri, 'Data', $attrs);
            $chars = $this->_response;
            $output->characters(chars);
            $output->endElement($this->_uri, 'Data');
            
            if ($itemDataAnchorNext != null) {
                $output->startElement($this->_uri, 'Item', $attrs);
                    $output->startElement($this->_uri, 'Data', $attrs);
                
                    $metainfuri = ($this->_version == 0) ? SyncMLState.NAME_SPACE_URI_METINF : SyncMLState.NAME_SPACE_URI_METINF_1_1;
                
                        $output->startElement($metainfuri, 'Anchor', $attrs);
                            $output->startElement($metainfuri, 'Next', $attrs);
                            $chars = $this->_itemDataAnchorNext;
                            $output->characters(chars);
                            $output->endElement($metainfuri, 'Next');        
                
                        $output->endElement($metainfuri, 'Anchor');
                
                    $output->endElement($this->_uri, 'Data');                    
                $output->endElement($this->_uri, 'Item');
           }
            
            $output->endElement($this->_uri, 'Status');
            
            $currentCmdID++;
        }                
        
        return $currentCmdID;
    }

    /** Setter for property response.
     * @param response New value of property response.
     *
     */
    function setResponse($response)
    {
        $this->_response = $response;
    }
    
    /** Setter for property cmd.
     * @param cmd New value of property cmd.
     *
     */
    function setCmd($cmd)
    {
        $this->_cmd = $cmd;
    }
     
    /** Setter for property sourceRef.
     * @param sourceRef New value of property sourceRef.
     *
     */
    function setCmdRef($cmdRef)
    {
        $this->_cmdRef = $cmdRef;
    }
     
    /** Setter for property sourceRef.
     * @param sourceRef New value of property sourceRef.
     *
     */
    function setSourceRef($sourceRef)
    {
        $this->_sourceRef = $sourceRef;
    }
     
    /** Setter for property targetRef.
     * @param targetRef New value of property targetRef.
     *
     */
    function setTargetRef($targetRef)
    {
        $this->_targetRef = $targetRef;
    }
    
    /** Setter for property itemDataAnchorNext.
     * @param itemDataAnchorNextNew value of property itemDataAnchorNext.
     *
     */
    function setItemDataAnchorNext($itemDataAnchorNext)
    {
        $this->_itemDataAnchorNext = $itemDataAnchorNext;
    }
}

?>


More information about the sync mailing list