@freemework/common
Version:
Common library of the Freemework Project.
31 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FCancellationExecutionElement = exports.FCancellationExecutionContext = void 0;
const f_cancellation_token_aggregated_js_1 = require("../cancellation/f_cancellation_token_aggregated.js");
const f_execution_context_js_1 = require("../execution_context/f_execution_context.js");
class FCancellationExecutionContext extends f_execution_context_js_1.FExecutionContextBase {
_cancellationToken;
get cancellationToken() { return this._cancellationToken; }
static of(context) {
const cancellationExecutionContext = f_execution_context_js_1.FExecutionContext.getExecutionContext(context, FCancellationExecutionContext);
return new FCancellationExecutionElement(cancellationExecutionContext);
}
constructor(prevContext, cancellationToken, isAggregateWithPrev = false) {
super(prevContext);
if (isAggregateWithPrev) {
const prev = f_execution_context_js_1.FExecutionContext
.findExecutionContext(prevContext, FCancellationExecutionContext);
if (prev !== null) {
this._cancellationToken = new f_cancellation_token_aggregated_js_1.FCancellationTokenAggregated(cancellationToken, prev.cancellationToken);
return;
}
}
this._cancellationToken = cancellationToken;
}
}
exports.FCancellationExecutionContext = FCancellationExecutionContext;
class FCancellationExecutionElement extends f_execution_context_js_1.FExecutionElement {
get cancellationToken() { return this.owner.cancellationToken; }
}
exports.FCancellationExecutionElement = FCancellationExecutionElement;
//# sourceMappingURL=f_cancellation_execution_context.js.map