/**
* Deferrable Update for closure/callback
*/
-class MWCallableUpdate implements DeferrableUpdate, DeferrableCallback {
- /** @var callable|null */
+class MWCallableUpdate
+ implements DeferrableUpdate, DeferrableCallback, TransactionRoundAwareUpdate
+{
+ /** @var callable|null Callback, or null if it was cancelled */
private $callback;
- /** @var string */
+ /** @var string Calling method name */
private $fname;
+ /** @var int One of the class TRX_ROUND_* constants */
+ private $trxRoundRequirement = self::TRX_ROUND_PRESENT;
/**
* @param callable $callback
}
}
+ /**
+ * @private This method is public so that it works with onTransactionResolution()
+ * @param int $trigger
+ */
public function cancelOnRollback( $trigger ) {
if ( $trigger === IDatabase::TRIGGER_ROLLBACK ) {
$this->callback = null;
public function getOrigin() {
return $this->fname;
}
+
+ /**
+ * @since 1.34
+ * @param int $mode One of the class TRX_ROUND_* constants
+ */
+ public function setTransactionRoundRequirement( $mode ) {
+ $this->trxRoundRequirement = $mode;
+ }
+
+ public function getTransactionRoundRequirement() {
+ return $this->trxRoundRequirement;
+ }
}