Skip to content

Commit

Permalink
Implement NullCancellationToken
Browse files Browse the repository at this point in the history
  • Loading branch information
kelunik committed May 24, 2017
1 parent cd252e4 commit 3328699
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions lib/NullCancellationToken.php
@@ -0,0 +1,48 @@
<?php

namespace Amp;

/**
* A NullCancellationToken can be used to avoid conditionals to check whether a token has been provided.
*
* Instead of writing
*
* ```php
* if ($token) {
* $token->throwIfRequested();
* }
* ```
*
* potentially multiple times, it allows writing
*
* ```php
* $token = $token ?? new NullCancellationToken;
*
* // ...
*
* $token->throwIfRequested();
* ```
*
* instead.
*/
class NullCancellationToken implements CancellationToken {
/** @inheritdoc */
public function subscribe(callable $callback): string {
return "null-token";
}

/** @inheritdoc */
public function unsubscribe(string $id) {
// nothing to do
}

/** @inheritdoc */
public function isRequested(): bool {
return false;
}

/** @inheritdoc */
public function throwIfRequested() {
// nothing to do
}
}

0 comments on commit 3328699

Please sign in to comment.