/[cvs]/nfo/php/libs/org.netfrag.glib/DesignPattern/RemoteProxy.php
ViewVC logotype

Diff of /nfo/php/libs/org.netfrag.glib/DesignPattern/RemoteProxy.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8 by joko, Mon Mar 10 22:31:56 2003 UTC revision 1.13 by joko, Fri Apr 4 17:38:03 2003 UTC
# Line 7  Line 7 
7   * @name DesignPattern::RemoteProxy   * @name DesignPattern::RemoteProxy
8   *   *
9   *   *
10     */
11    
12    
13    /**
14   * <b>Cvs-Log:</b>   * <b>Cvs-Log:</b>
15   *   *
16   * <pre>   * <pre>
# Line 14  Line 18 
18   *    $Id$   *    $Id$
19   * -------------------------------------------------------------------------   * -------------------------------------------------------------------------
20   *    $Log$   *    $Log$
21     *    Revision 1.13  2003/04/04 17:38:03  joko
22     *    modifications regarding error-/exception-handling and -tracing
23     *
24     *    Revision 1.12  2003/03/29 08:01:21  joko
25     *    modified ErrorBoxing
26     *
27     *    Revision 1.11  2003/03/28 06:44:51  joko
28     *    VERBOSE mode
29     *
30     *    Revision 1.10  2003/03/28 03:05:54  joko
31     *    more fancy debugging-output
32     *
33     *    Revision 1.9  2003/03/10 23:05:25  joko
34     *    + fixed metadata for phpDocumentor
35     *
36   *    Revision 1.8  2003/03/10 22:31:56  joko   *    Revision 1.8  2003/03/10 22:31:56  joko
37   *    + fixed metadata for phpDocumentor   *    + fixed metadata for phpDocumentor
38   *   *
# Line 469  class DesignPattern_RemoteProxy extends Line 488  class DesignPattern_RemoteProxy extends
488            logp(get_class($this) . "->_loadRemote: argument 'guid' requires 'classname'", PEAR_LOG_WARNING);            logp(get_class($this) . "->_loadRemote: argument 'guid' requires 'classname'", PEAR_LOG_WARNING);
489            return;            return;
490          }          }
491            logp(get_class($this) . "->_loadRemote: getObjectByGuid", PEAR_LOG_DEBUG);
492          $args = array( guid => $this->objectId, classname => $this->meta[classname] );          $args = array( guid => $this->objectId, classname => $this->meta[classname] );
493          $result = $this->backend->send('getObjectByGuid', $args );          $result = $this->backend->send('getObjectByGuid', $args );
494    
# Line 477  class DesignPattern_RemoteProxy extends Line 497  class DesignPattern_RemoteProxy extends
497            logp(get_class($this) . "->_loadRemote: argument 'oid' requires valid objectId", PEAR_LOG_WARNING);            logp(get_class($this) . "->_loadRemote: argument 'oid' requires valid objectId", PEAR_LOG_WARNING);
498            return;            return;
499          }          }
500            logp(get_class($this) . "->_loadRemote: getObject", PEAR_LOG_DEBUG);
501          $result = $this->backend->send('getObject', $this->objectId);          $result = $this->backend->send('getObject', $this->objectId);
502    
503        } elseif ($this->meta[key]) {        } elseif ($this->meta[key]) {
# Line 490  class DesignPattern_RemoteProxy extends Line 511  class DesignPattern_RemoteProxy extends
511            return;            return;
512          }          }
513          */          */
514            //logp(get_class($this) . "->_loadRemote: $this->meta[command](" . join(' ', $this->meta[query]) . ")", PEAR_LOG_DEBUG);
515            //print Dumper(array($this->meta[command], $this->meta[query]));
516          $result = $this->backend->send($this->meta[command], $this->meta[query]);          $result = $this->backend->send($this->meta[command], $this->meta[query]);
517                    
518        }        }
519    
520        //print "result: " . dumpVar($result) . "<br>";
521    
522        $status = $this->backend->status();
523        //print Dumper($status);
524            
525      if ($result) {      $good = is_array($result) && sizeof($result) && $status[connected];
526        //print "result: " . dumpVar($result) . "<br>";  
527        if (count($result) == 0) { return; }      if ($good) {
528                
529        // FIXME: this is dangerous!        // FIXME: this is dangerous!
530          /*
531        if ($_GET[debug]) {        if ($_GET[debug]) {
532          print Dumper($result);          print Dumper($result);
533        }        }
534          */
535                
536        $this->payload = serialize($result);        $this->payload = serialize($result);
537        // ----- move this to _encode some times        // ----- move this to _encode some times
# Line 511  class DesignPattern_RemoteProxy extends Line 539  class DesignPattern_RemoteProxy extends
539        $this->_saveProxy();        $this->_saveProxy();
540        //print "oid: $this->objectId<br>";        //print "oid: $this->objectId<br>";
541        $this->flushState();        $this->flushState();
542        
543      } else {      } else {
544        //print "Error in _loadRemote!!!<br>";        
545        logp(get_class($this) . "->_loadRemote: error while trying to talk to remote side", PEAR_LOG_CRIT);        if (constants::get('APP_MODE_DEBUG')) {
546            $this->draw_error_box($status);
547          } else {
548            php::maintenance('rpc', array( status => $status ) );
549          }
550        
551      }      }
552            
553    }    }
554    
555    function draw_error_box($status) {
556      $style = html_style("text/css", '.boxlabel_yellow { color: yellow; font-weight:bold; }');
557      $statusbox = html_div();
558      $statusbox->set_style('background: red; border: 2px black groove; width:640px; padding:10px; margin:40px;');
559      $statusbox->add( html_span('boxlabel_yellow', "Method:"), get_class($this) . "->_loadRemote", html_br() );
560      $statusbox->add( html_span('boxlabel_yellow', "Connected:"), $status[connected], html_br() );
561      $statusbox->add( html_span('boxlabel_yellow', "RPCSESSID:"), $status[RPCSESSID], html_br() );
562      foreach ($status[errors] as $error) {
563        $statusbox->add( html_span('boxlabel_yellow', "Error($error[code]):"), $error[message], html_br() );
564      }
565        
566      $message = "Error while talking to remote side. Please check wire, socket or api.";
567      logp($message, PEAR_LOG_CRIT);
568      $statusbox->add( html_span('boxlabel_yellow', "Critical:"), $message, html_br() );
569    
570      // V1
571      /*
572      if (constants::get('VERBOSE') || constants::get('ERRORS_ONLY')) {
573        print $style->render();
574        print $statusbox->render();
575      } else {
576        foreach ($status[errors] as $error) {
577          print Dumper($error);
578        }
579      }
580      */
581    
582      // V2
583      trace( container($style, $statusbox) );
584    
585    }  
586    
587    
588    function _saveBackend($result) {    function _saveBackend($result) {
589      logp(get_class($this) . "->_saveBackend()");      logp(get_class($this) . "->_saveBackend()");
590    

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.13

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed