Page MenuHomePhorge

No OneTemporary

diff --git a/src/conduit/ArcanistConduitEngine.php b/src/conduit/ArcanistConduitEngine.php
index 7817f52c..c9171245 100644
--- a/src/conduit/ArcanistConduitEngine.php
+++ b/src/conduit/ArcanistConduitEngine.php
@@ -1,108 +1,118 @@
<?php
final class ArcanistConduitEngine
extends Phobject {
private $conduitURI;
private $conduitToken;
private $conduitTimeout;
private $client;
public function isCallable() {
return ($this->conduitURI !== null);
}
public function setConduitURI($conduit_uri) {
$this->conduitURI = $conduit_uri;
return $this;
}
public function getConduitURI() {
return $this->conduitURI;
}
public function setConduitToken($conduit_token) {
$this->conduitToken = $conduit_token;
return $this;
}
public function getConduitToken() {
return $this->conduitToken;
}
public function setConduitTimeout($conduit_timeout) {
$this->conduitTimeout = $conduit_timeout;
return $this;
}
public function getConduitTimeout() {
return $this->conduitTimeout;
}
public function newCall($method, array $parameters) {
- if ($this->conduitURI == null) {
+ if ($this->conduitURI == null && $this->client === null) {
$this->raiseURIException();
}
return id(new ArcanistConduitCall())
->setEngine($this)
->setMethod($method)
->setParameters($parameters);
}
public function resolveCall($method, array $parameters) {
return $this->newCall($method, $parameters)->resolve();
}
public function newFuture(ArcanistConduitCall $call) {
$method = $call->getMethod();
$parameters = $call->getParameters();
$future = $this->getClient()->callMethod($method, $parameters);
return $future;
}
private function getClient() {
if (!$this->client) {
$conduit_uri = $this->getConduitURI();
$client = new ConduitClient($conduit_uri);
$timeout = $this->getConduitTimeout();
if ($timeout) {
$client->setTimeout($timeout);
}
$token = $this->getConduitToken();
if ($token) {
$client->setConduitToken($this->getConduitToken());
}
+
+ $this->client = $client;
}
- return $client;
+ return $this->client;
}
private function raiseURIException() {
$list = id(new PhutilConsoleList())
->addItem(
pht(
'Run in a working copy with "phabricator.uri" set in ".arcconfig".'))
->addItem(
pht(
'Set a default URI with `arc set-config phabricator.uri <uri>`.'))
->addItem(
pht(
'Specify a URI explicitly with `--config phabricator.uri=<uri>`.'));
$block = id(new PhutilConsoleBlock())
->addParagraph(
pht(
'This command needs to communicate with Phabricator, but no '.
'Phabricator URI is configured.'))
->addList($list);
throw new ArcanistUsageException($block->drawConsoleString());
}
+ public static function newConduitEngineFromConduitClient(
+ ConduitClient $client) {
+
+ $engine = new self();
+ $engine->client = $client;
+
+ return $engine;
+ }
}

File Metadata

Mime Type
text/x-diff
Expires
Sun, Jan 19, 17:11 (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1126831
Default Alt Text
(3 KB)

Event Timeline