System_ProcWatch
[ class tree: System_ProcWatch ] [ index: System_ProcWatch ] [ all elements ]

Source for file Parser.php

Documentation is available at Parser.php

  1. <?php
  2. // +----------------------------------------------------------------------+
  3. // | PEAR :: System :: ProcWatch :: Config :: Parser                      |
  4. // +----------------------------------------------------------------------+
  5. // | This source file is subject to version 3.0 of the PHP license,       |
  6. // | that is available at http://www.php.net/license/3_0.txt              |
  7. // | If you did not receive a copy of the PHP license and are unable      |
  8. // | to obtain it through the world-wide-web, please send a note to       |
  9. // | license@php.net so we can mail you a copy immediately.               |
  10. // +----------------------------------------------------------------------+
  11. // | Copyright (c) 2003-2004 Michael Wallner <mike@iworks.at>             |
  12. // +----------------------------------------------------------------------+
  13. //
  14. // $Id: Parser.php 304228 2010-10-10 03:05:12Z clockwerx $
  15.  
  16. /**
  17. * Requires XML::Parser
  18. */
  19. require_once 'XML/Parser.php';
  20.  
  21. /** 
  22. * System_ProcWatch_Config_Parser
  23. * Parses an XML configuration string into a configuration array.
  24. *
  25. @author       Michael Wallner <mike@php.net>
  26. @package      System_ProcWatch
  27. @category     System
  28. @version      $Revision: 304228 $
  29. @access       protected
  30. */
  31. class System_ProcWatch_Config_Parser extends XML_Parser
  32. {
  33.     /**
  34.     * Parsed Configuration
  35.     *
  36.     * @access   private
  37.     * @var      array 
  38.     */
  39.     var $_conf = array();
  40.  
  41.     /**
  42.     * Current Job
  43.     *
  44.     * @access   private
  45.     * @var      reference 
  46.     */
  47.     var $_cur = null;
  48.     
  49.     /**
  50.     * Current Job Name
  51.     *
  52.     * @access   private
  53.     * @var      string 
  54.     */
  55.     var $_job '';
  56.     
  57.     /**
  58.     * Current Position
  59.     *
  60.     * @access   private
  61.     * @var      reference 
  62.     */
  63.     var $_pos = null;
  64.     
  65.     /**
  66.     * Constructor
  67.     *
  68.     * @access   protected
  69.     * @return   object 
  70.     */
  71.     function System_ProcWatch_Config_Parser()
  72.     {
  73.     }
  74.  
  75.     /**
  76.     * Constructor (ZE2)
  77.     *
  78.     * @access   protected
  79.     * @return   object 
  80.     */
  81.     function __construct()
  82.     {
  83.         parent::__construct(null'func'null);
  84.     }
  85.  
  86.     /**
  87.     * Reset
  88.     *
  89.     * @access   public
  90.     * @return   void 
  91.     */
  92.     function reset()
  93.     {
  94.         $this->_conf    = array();
  95.         $this->_cur     = null;
  96.         $this->_pos     = null;
  97.         
  98.         // call parent::reset()
  99.         parent::reset();
  100.     }
  101.     
  102.     /**
  103.     * Get Configuration from XML data
  104.     *
  105.     * @access   public
  106.     * @return   mixed 
  107.     * @param    string  $xml    XML configuration data
  108.     */
  109.     function getConf($xml)
  110.     {
  111.         $this->reset();
  112.  
  113.         $error $this->parseString($xml);
  114.         if (PEAR::isError($error)) {
  115.             return $error;
  116.         }
  117.         
  118.         return $this->_conf;
  119.     }
  120.     
  121.     /**
  122.     * CDATA handler
  123.     *
  124.     * @access   protected
  125.     * @return   void 
  126.     */
  127.     function cdataHandler($p$d)
  128.     {
  129.         $cdata trim($d);
  130.         if (!empty($cdata|| $cdata === '0'{
  131.             $this->_pos .= trim($d"\r\n");
  132.         }
  133.     }
  134.     
  135.     /**
  136.     * Watch
  137.     *
  138.     * @access   protected
  139.     * @return   void 
  140.     */
  141.     function xmltag_watch($p$e$a)
  142.     {
  143.         $job $a['NAME'];
  144.         
  145.         $this->_conf[$job= array(
  146.             'pattern'   => array(),
  147.             'condition' => array(),
  148.             'execute'   => array('shell' => array()'php' => array())
  149.         );
  150.  
  151.         $this->_job $job;
  152.         $this->_cur &$this->_conf[$job];
  153.     }
  154.     
  155.     /**
  156.     * Pattern
  157.     *
  158.     * @access   protected
  159.     * @return   void 
  160.     */
  161.     function xmltag_pattern($p$e$a)
  162.     {
  163.         $this->_pos &$this->_cur['pattern'][$a['MATCH']];
  164.     }
  165.     
  166.     /**
  167.     * Condition
  168.     *
  169.     * @access   protected
  170.     * @return   void 
  171.     */
  172.     function xmltag_condition($p$e$a)
  173.     {
  174.         $type = strToLower(trim($a['TYPE']));
  175.  
  176.         if ($type == 'presence'{
  177.  
  178.             $this->_cur['condition']['presence'= array();
  179.             $this->_cur &$this->_cur['condition']['presence'];
  180.  
  181.         elseif ($type == 'attr'{
  182.  
  183.             $this->_cur['condition']['attr'= array();
  184.             $this->_cur &$this->_cur['condition']['attr'][$a['ATTR']];
  185.  
  186.         }
  187.     }
  188.     
  189.     /**
  190.     * _Condition
  191.     *
  192.     * @access   protected
  193.     * @return   mixed 
  194.     */
  195.     function xmltag_condition_($p$e)
  196.     {
  197.         $this->_cur &$this->_conf[$this->_job];
  198.     }
  199.     
  200.     /**
  201.     * Execute
  202.     *
  203.     * @access   protected
  204.     * @return   void 
  205.     */
  206.     function xmltag_execute($p$e$a)
  207.     {
  208.         $count count($this->_cur['execute'][$a['TYPE']]);
  209.         $this->_pos &$this->_cur['execute'][$a['TYPE']][$count];
  210.     }
  211.  
  212.     /**
  213.     * Max
  214.     *
  215.     * @access   protected
  216.     * @return   void 
  217.     */
  218.     function xmltag_max($p$e$a)
  219.     {
  220.         $this->_pos &$this->_cur['max'];
  221.     }
  222.     
  223.     /**
  224.     * Min
  225.     *
  226.     * @access   protected
  227.     * @return   void 
  228.     */
  229.     function xmltag_min($p$e$a)
  230.     {
  231.         $this->_pos &$this->_cur['min'];
  232.     }
  233.     
  234.     /**
  235.     * Sum
  236.     *
  237.     * @access   protected
  238.     * @return   void 
  239.     */
  240.     function xmltag_sum($p$e$a)
  241.     {
  242.         $this->_pos &$this->_cur['sum'];
  243.     }
  244.     
  245.     /**
  246.     * Is
  247.     *
  248.     * @access   protected
  249.     * @return   void 
  250.     */
  251.     function xmltag_is($p$e$a)
  252.     {
  253.         $this->_pos &$this->_cur['is'];
  254.     }
  255.     
  256.     /**
  257.     * IsNot
  258.     *
  259.     * @access   protected
  260.     * @return   void 
  261.     */
  262.     function xmltag_isnot($p$e$a)
  263.     {
  264.         $this->_pos &$this->_cur['isnot'];
  265.     }
  266. }
  267. ?>

Documentation generated on Mon, 11 Mar 2019 15:39:51 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.