/** Initializes a response object for the given request. If $req is null then a default, useless request object will be used in its place. Subclasses have two options for when to actually perform the action requested: - In the ctor. - Lazy, in toJSON(). Normally (that is, except in some testing cases), toJSON() will not be called more than once on any given response object, so it is reasonable to perform the action there, possibly caching the result in case it is called again. */ public function __construct(JSONRequest $req) { $this->setWrapperName('JSONResponse'); parent::__construct(); $this->req = $req; //$this->set('serverLocalTime',time(),false); $this->setID(JSONMessage::generateID()); if ($req) { $this->setType($req->getType()); $this->set('responseTo', $req->getID()); $this->setResult(0); } else { $this->setType('unknown'); $this->set('responseTo', null); } if (false && !$this->getCredentials() && @$_SESSION) { $ar = $_SESSION["credentials"]; if ($ar) { $this->setCredentials($ar); } } //??? $this->setCredentials( $req->getCredentials() ); }