public IStanSubscription Subscribe(string subject, string qgroup, StanSubscriptionOptions options, EventHandler <StanMsgHandlerArgs> handler) { if (subject == null) { throw new ArgumentNullException("subject"); } if (qgroup == null) { throw new ArgumentNullException("qgroup"); } if (options == null) { throw new ArgumentNullException("options"); } if (handler == null) { throw new ArgumentNullException("handler"); } return(subscribe(subject, qgroup, handler, options)); }
internal StanSubscriptionOptions(StanSubscriptionOptions opts) { if (opts == null) { return; } ackWait = opts.ackWait; if (opts.durableName != null) { durableName = StanOptions.DeepCopy(opts.durableName); } leaveOpen = opts.leaveOpen; manualAcks = opts.manualAcks; maxInFlight = opts.maxInFlight; startAt = opts.startAt; startSequence = opts.startSequence; useStartTimeDelta = opts.useStartTimeDelta; startTime = opts.startTime; startTimeDelta = opts.startTimeDelta; }
private IStanSubscription subscribe(string subject, string qgroup, EventHandler <StanMsgHandlerArgs> handler, StanSubscriptionOptions options) { AsyncSubscription sub = new AsyncSubscription(this, options); lock (mu) { if (nc == null) { throw new StanConnectionClosedException(); } // Register the subscription subMap[sub.Inbox] = sub; IConnection localNc = nc; } try { sub.subscribe(subRequests, subject, qgroup, handler); } catch { lock (mu) { subMap.Remove(sub.Inbox); } throw; } return(sub); }