X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fcurl-de-sac.phh;h=4ef36444d6f155a818d963b85de68dfcb7e638cc;hb=2630bbd10b83238863e371681cc7d272e73a3f39;hp=ac7744dfc108c7dcb3704bacc502ea25787744ce;hpb=7edbe80f9797346b9950db411461f306d0e4b15d;p=curl-de-sac.git diff --git a/web/Obj/curl-de-sac.phh b/web/Obj/curl-de-sac.phh index ac7744d..4ef3644 100644 --- a/web/Obj/curl-de-sac.phh +++ b/web/Obj/curl-de-sac.phh @@ -25,26 +25,41 @@ $G_curl_de_sac_version = "0.1"; class CDS_cmd { - var $ch; var $cmd_cls; + var $ch; - function CDS_cmd($ch, $cmd_cls) + function CDS_cmd($cmd_cls, $ch) { - $this->ch = $ch; $this->cmd_cls = $cmd_cls; + $this->ch = $ch; + } + + function dbg_get() + { + // NOTE: cmd_cls must be valid by definition + if ($this->cmd_cls->cds == NULL) + return -1; + return $this->cmd_cls->cds->dbg_get(); } } class CDS_cmd_cls { + var $cds; var $name; var $tout; function CDS_cmd_cls($name, $tout) { + $this->cds = NULL; $this->name = $name; $this->tout = $tout; } + function cds_set($cds) + { + $this->cds = $cds; + } + static function pre_create($url) { if (($ch = curl_init()) == FALSE) @@ -98,7 +113,12 @@ class Curl_de_sac { $this->dbg = $dbg; } - function cmd_register($cmd_cls) + function dbg_get() + { + return($this->dbg); + } + + function cmd_cls_register($cmd_cls) { if (get_class($cmd_cls) != 'CDS_cmd_cls' && is_subclass_of($cmd_cls, 'CDS_cmd_cls') == FALSE) return FALSE; @@ -107,23 +127,30 @@ class Curl_de_sac { return FALSE; $this->cmd_cls[$cmd_cls->name] = $cmd_cls; + $cmd_cls->cds_set($this); return TRUE; } - function cmd_deregister($cmd_cls) + function cmd_cls_deregister($cmd_cls) { if (get_class($cmd_cls) != 'CDS_cmd_cls' && is_subclass_of($cmd_cls, 'CDS_cmd_cls') == FALSE) return FALSE; if (!isset($this->cmd_cls[$cmd_cls->name])) return FALSE; + $this->cmd_cls[$cmd_cls->name]->cds_set(NULL); + unset($this->cmd_cls[$cmd_cls->name]); return TRUE; } - function cmd_deregister_all() + function cmd_cls_deregister_all() { + foreach($this->cmd_cls as $cmd_cls) { + $cmd_cls->cds_set(NULL); + } + $this->cmd_cls = array(); }