--- nfo/php/libs/org.netfrag.glib/DesignPattern/RemoteProxy.php 2003/03/05 17:28:43 1.6 +++ nfo/php/libs/org.netfrag.glib/DesignPattern/RemoteProxy.php 2003/03/09 15:51:44 1.7 @@ -12,9 +12,12 @@ * *
  * -------------------------------------------------------------------------
- *    $Id: RemoteProxy.php,v 1.6 2003/03/05 17:28:43 joko Exp $
+ *    $Id: RemoteProxy.php,v 1.7 2003/03/09 15:51:44 joko Exp $
  * -------------------------------------------------------------------------
  *    $Log: RemoteProxy.php,v $
+ *    Revision 1.7  2003/03/09 15:51:44  joko
+ *    + additional metadata for Autodia
+ *
  *    Revision 1.6  2003/03/05 17:28:43  joko
  *    updated docu (phpDocumentor testing....)
  *
@@ -133,10 +136,10 @@
 
 
 /**
- * Data::Driver::Proxy  --  Multiple stage data fetching and caching
+ * DesignPattern::RemoteProxy  --  Multiple stage data fetching and caching
  *
  *
- * This class (Data::Driver::Proxy) provides an abstract framework 
+ * This class (DesignPattern::RemoteProxy) provides an abstract framework 
  * for loading/saving arbitrary data from/to data storages interfaced 
  * by storage *proxy*-drivers.
  * Don't mix these up with the concrete storage *handle*-drivers 
@@ -145,6 +148,12 @@
  * providing a more highlevel, consistent API making
  * it easier for Data::Driver::Proxy to do its main work:
  *
+ * quote from: http://home.earthlink.net/~huston2/dp/proxy.html
+ * "A remote proxy provides a local representative for an 
+ * object that resides in a different address space. This is 
+ * what the "stub" code in RPC and CORBA provides."
+ *
+ *
  * Multiple stage data fetching and caching:
  *
  * 
@@ -197,7 +206,11 @@
  * An attempt to implement some software design patterns
  * --- RemoteProxyPattern
  *
+ * @link http://www.agcs.com/supportv2/techpapers/patterns/papers/tutnotes/sld017.htm
+ * @link http://home.earthlink.net/~huston2/dp/proxy.html
+ * @link http://wiki.cs.uiuc.edu/PatternStories/RemoteObject
  * @link http://c2.com/cgi-bin/wiki?ProxyPattern
+ * @link http://c2.com/cgi-bin/wiki?LazyProxies
  *
  * @author Andreas Motl 
  * @link http://www.netfrag.org/~joko/
@@ -211,16 +224,15 @@
  * @name DesignPattern::RemoteProxy
  *
  *
- * @todo
- * 
- * x extend options to en-/disable caching via a) session and/or b) database
- *   o make feature available via runtime setter-method to these options
- * o use PEAR::Cache for caching purposes!!!
- * o refactor database access: use PEAR for this! no more 'connectdb' here!!!
- * o make database connection more flexible to make possible
- *     to have different (probably named) proxy databases (besides a "main database")
- * o rename this to Data::Proxy? or split into Data::Query, Data::Result and Data::Wrapper?
- * 
+ * @todo extend options to en-/disable caching via a) session and/or b) database + * make feature available via runtime setter-method to these options + * @todo PEAR::Cache for caching purposes!!! + * @todo refactor database access: use PEAR for this! no more 'connectdb' here!!! + * @todo make database connection more flexible to make possible + * to have different (probably named) proxy databases (besides a "main database") + * @todo rename this to Data::Proxy? or split into Data::Query, Data::Result and Data::Wrapper? + * @todo refactor this to a "RemoteObject" class!!! (inheriting from DesignPattern::RemoteObject) + * @todo rename this to "DesignPattern::LazyRemoteProxy"??? * */ class DesignPattern_RemoteProxy extends DesignPattern_Proxy { @@ -275,6 +287,13 @@ session_register_safe("proxy"); } + /** + * + * can do: (this is metadata supplied for Autodia, don't delete!) + * $this->backend = new DataSource_Proxy_XMLRPC() + * + */ + if ($this->meta[remote]) { //$this->backend = mkObject('Data::Driver::RPC::Remote', $this->meta[rpcinfo]); $this->backend = php::mkComponent('DataSource::Proxy::XMLRPC', $this->meta[rpcinfo]);