Current file: /root/works/bitsis/oxokuatro/CRE/WSFW/protocols/Rpc.php
Legend: executed not executed dead code

  Coverage
  Classes Functions / Methods Lines
Total
0.00%0.00%
0.00% 0 / 1
80.00%80.00%
80.00% 4 / 5 CRAP
95.45%95.45%
95.45% 21 / 22
 
Rpc
0.00%0.00%
0.00% 0 / 1
80.00%80.00%
80.00% 4 / 5
95.45%95.45%
95.45% 21 / 22
 initClient($params)
100.00%100.00%
100.00% 1 / 1 1
100.00%100.00%
100.00% 2 / 2
 call($method, $params)
100.00%100.00%
100.00% 1 / 1 1
100.00%100.00%
100.00% 1 / 1
 rpc_call ($_data = null)
100.00%100.00%
100.00% 1 / 1 3
100.00%100.00%
100.00% 12 / 12
 initServer($params)
100.00%100.00%
100.00% 1 / 1 1
100.00%100.00%
100.00% 1 / 1
 register($class)
0.00%0.00%
0.00% 0 / 1 2.02
83.33%83.33%
83.33% 5 / 6


       1                 : <?php                                                                                                        
       2                 : /**                                                                                                          
       3                 :  * Fitxer que defineix la clase Rpc                                                                          
       4                 :  * @package WSFW                                                                                             
       5                 :  */                                                                                                          
       6                 :                                                                                                              
       7                 : foreach(glob('WSFW/protocols/Rpc/*.php') as $file) include_once $file;                                       
       8                 :                                                                                                              
       9                 : /**                                                                                                          
      10                 :  * Rpc defineix la clase que implementa el protocol RPC                                                      
      11                 :  * @var string $request_url URL del client (interna)                                                         
      12                 :  */                                                                                                          
      13                 : abstract class Rpc extends WSFW_Protocol {                                                                   
      14                 :                                                                                                              
      15                 :     protected $request_url;                                                                                  
      16                 :                                                                                                              
      17                 :     /**                                                                                                      
      18                 :      * Inicialitza el client, únicament es guarda la direcció per poder fer les crides                       
      19                 :      * Defineix la URL i crea els objectes necessaris per la connexió                                        
      20                 :      * @param estructura $params Paràmetres del client (URL)                                                 
      21                 :      */                                                                                                      
      22                 :     public function initClient($params) {                                                                    
      23               9 :         $this->request_url = $params["url"];                                                                 
      24               9 :     }                                                                                                        
      25                 :                                                                                                              
      26                 :     /**                                                                                                      
      27                 :      * Crida a un mètode del WS                                                                              
      28                 :      * @param string $method Nom del mètode                                                                  
      29                 :      * @param estructura $params Paràmetres de la crida                                                      
      30                 :      * @return estructura Resposta                                                                           
      31                 :      */                                                                                                      
      32               3 :    public function call($method, $params){}                                                                  
      33                 :                                                                                                              
      34                 :     /**                                                                                                      
      35                 :      * Crida RPC                                                                                             
      36                 :      * Inclou el mètode i paràmetres codificats al cos del POST de la petició                                
      37                 :      * Es guarda el resultat obtingut al cos del GET i el codifica                                           
      38                 :      * @param estructura $_data Paràmetres de la crida                                                       
      39                 :      * @return estructura Resposta                                                                           
      40                 :      */                                                                                                      
      41                 :     protected function rpc_call ($_data = null) {                                                            
      42               7 :         if ($_data) {                                                                                        
      43               3 :             $request = $this->encode($_data);                                                                
      44               3 :             $data = stream_context_create(array('http' => array('method' => 'POST', 'content' => $request)));
      45               3 :             $response = file_get_contents($this->request_url, false, $data);                                 
      46               3 :         } else {                                                                                             
      47               4 :             $response = file_get_contents($this->request_url);                                               
      48                 :         }                                                                                                    
      49               7 :         if ($response == false)                                                                              
      50               7 :             return error("Error en la petición RPC");                                                        
      51               7 :         debug("Call RPC request", $request);                                                                 
      52               7 :         debug("Call RPC response", $response);                                                               
      53               7 :         $data = $this->decode($response);                                                                    
      54               7 :         return $data;                                                                                        
      55                 :     }                                                                                                        
      56                 :                                                                                                              
      57                 :     /**                                                                                                      
      58                 :      * Inicialitza el servidor                                                                               
      59                 :      * Per crear el servidor RPC no és necessari crear objectes ni especificar paràmetres                    
      60                 :      * @param estructura $params Paràmetres del servidor                                                     
      61                 :      */                                                                                                      
      62               3 :     public function initServer($params) {}                                                                   
      63                 :                                                                                                              
      64                 :     /**                                                                                                      
      65                 :      * Registra els serveis                                                                                  
      66                 :      * Executa el mètode especificant els paràmetres a la classe del programador                             
      67                 :      * @param object $class Instància de la classe del programador                                           
      68                 :      */                                                                                                      
      69                 :     public function register($class) {                                                                       
      70               3 :         global $phpunit_request;                                                                             
      71               3 :         if ($phpunit_request) $request = $this->decode($phpunit_request, true);                              
      72               0 :         else $request = $this->decode(file_get_contents('php://input'),true);                                
      73               3 :         $response = $class->$request["method"]($request["params"]);                                          
      74               3 :         echo $this->encode($response);                                                                       
      75               3 :     }                                                                                                        
      76                 :                                                                                                              
      77                 :     /**                                                                                                      
      78                 :      * Fonció de codificació de la crida                                                                     
      79                 :      * @param estructura $data Petició: Mètode i paràmetres                                                  
      80                 :      * @return string Petició codificada                                                                     
      81                 :      */                                                                                                      
      82                 :    abstract protected function encode($data);                                                                
      83                 :                                                                                                              
      84                 :     /**                                                                                                      
      85                 :      * Fonció de codificació de la resposta                                                                  
      86                 :      * @param string $data Petició: Mètode i paràmetres                                                      
      87                 :      * @return estructura Resposta                                                                            
      88                 :      */                                                                                                      
      89                 :    abstract protected function decode($data);                                                                
      90                 :                                                                                                              
      91                 : }                                                                                                            
      92                 :                                                                                                              
      93                 : ?>                                                                                                           

Generated by PHP_CodeCoverage 1.0.3 using PHP 5.3.3-7 and PHPUnit 3.5.5 at Tue Jan 25 2:17:13 CET 2011.