/// <summary> /// Creates an instance of <see cref="PassiveSubscription"/> /// </summary> /// <param name="owner"></param> /// <param name="sid"></param> /// <param name="subject"></param> /// <param name="queue"></param> internal PassiveSubscription( SubscriptionPool owner, long sid, string subject, string queue ) : base(owner, sid, subject, queue, useCache: true) { this._mainSem = new SemaphoreSlim(0); }
/// <summary> /// Creates an instance of <see cref="ReactiveSubscription"/> /// </summary> /// <param name="owner"></param> /// <param name="sid"></param> /// <param name="subject"></param> /// <param name="queue"></param> /// <param name="syncHandler"></param> /// <param name="asyncHandler"></param> internal ReactiveSubscription( SubscriptionPool owner, long sid, string subject, string queue, Action <MsgOut, CancellationToken> syncHandler, Func <MsgOut, CancellationToken, Task> asyncHandler ) : base(owner, sid, subject, queue, useCache: true) { this._syncHandler = syncHandler; this._asyncHandler = asyncHandler; this._cts = new CancellationTokenSource(); }
/// <summary> /// Constructor for an instance of <see cref="SubscriptionBase"/> /// </summary> /// <param name="owner"></param> /// <param name="sid"></param> /// <param name="subject"></param> /// <param name="queue"></param> /// <param name="useCache"></param> protected SubscriptionBase( SubscriptionPool owner, long sid, string subject, string queue, bool useCache ) { this._owner = owner; this.SubId = sid; this._subject = subject; this._queue = queue; this._useCache = useCache; if (useCache) { this._deliveringQueue = new Queue <MsgOut>(); this._deliveringLocker = new object(); this.UpdateActualLimits(); } }