internal StreamConfiguration(JSONNode scNode) { RetentionPolicy = ApiEnums.GetValueOrDefault(scNode[ApiConstants.Retention].Value, RetentionPolicy.Limits); StorageType = ApiEnums.GetValueOrDefault(scNode[ApiConstants.Storage].Value, StorageType.File); DiscardPolicy = ApiEnums.GetValueOrDefault(scNode[ApiConstants.Discard].Value, DiscardPolicy.Old); Name = scNode[ApiConstants.Name].Value; Description = scNode[ApiConstants.Description].Value; Subjects = StringList(scNode, ApiConstants.Subjects); MaxConsumers = scNode[ApiConstants.MaxConsumers].AsLong; MaxMsgs = AsLongOrMinus1(scNode, ApiConstants.MaxMsgs); MaxMsgsPerSubject = AsLongOrMinus1(scNode, ApiConstants.MaxMsgsPerSubject); MaxBytes = AsLongOrMinus1(scNode, ApiConstants.MaxBytes); MaxAge = AsDuration(scNode, ApiConstants.MaxAge, Duration.Zero); MaxValueSize = AsLongOrMinus1(scNode, ApiConstants.MaxMsgSize); Replicas = scNode[ApiConstants.NumReplicas].AsInt; NoAck = scNode[ApiConstants.NoAck].AsBool; TemplateOwner = scNode[ApiConstants.TemplateOwner].Value; DuplicateWindow = AsDuration(scNode, ApiConstants.DuplicateWindow, Duration.Zero); Placement = Placement.OptionalInstance(scNode[ApiConstants.Placement]); Mirror = Mirror.OptionalInstance(scNode[ApiConstants.Mirror]); Sources = Source.OptionalListOf(scNode[ApiConstants.Sources]); Sealed = scNode[ApiConstants.Sealed].AsBool; AllowRollup = scNode[ApiConstants.AllowRollupHdrs].AsBool; DenyDelete = scNode[ApiConstants.DenyDelete].AsBool; DenyPurge = scNode[ApiConstants.DenyPurge].AsBool; }
internal ConsumerConfiguration(JSONNode ccNode) { _deliverPolicy = ApiEnums.GetDeliverPolicy(ccNode[ApiConstants.DeliverPolicy].Value); _ackPolicy = ApiEnums.GetAckPolicy(ccNode[ApiConstants.AckPolicy].Value); _replayPolicy = ApiEnums.GetReplayPolicy(ccNode[ApiConstants.ReplayPolicy]); Description = ccNode[ApiConstants.Description].Value; Durable = ccNode[ApiConstants.DurableName].Value; DeliverSubject = ccNode[ApiConstants.DeliverSubject].Value; DeliverGroup = ccNode[ApiConstants.DeliverGroup].Value; FilterSubject = ccNode[ApiConstants.FilterSubject].Value; SampleFrequency = ccNode[ApiConstants.SampleFreq].Value; StartTime = AsDate(ccNode[ApiConstants.OptStartTime]); AckWait = AsDuration(ccNode, ApiConstants.AckWait, null); IdleHeartbeat = AsDuration(ccNode, ApiConstants.IdleHeartbeat, null); MaxExpires = AsDuration(ccNode, ApiConstants.MaxExpires, null); InactiveThreshold = AsDuration(ccNode, ApiConstants.InactiveThreshold, null); _startSeq = ccNode[ApiConstants.OptStartSeq].AsUlongOr(UlongUnset); _maxDeliver = ccNode[ApiConstants.MaxDeliver].AsIntOr(IntUnset); _rateLimitBps = ccNode[ApiConstants.RateLimitBps].AsUlongOr(UlongUnset); _maxAckPending = ccNode[ApiConstants.MaxAckPending].AsIntOr(IntUnset); _maxPullWaiting = ccNode[ApiConstants.MaxWaiting].AsIntOr(IntUnset); _maxBatch = ccNode[ApiConstants.MaxBatch].AsIntOr(IntUnset); _maxBytes = ccNode[ApiConstants.MaxBytes].AsIntOr(IntUnset); _flowControl = ccNode[ApiConstants.FlowControl].AsBool; _headersOnly = ccNode[ApiConstants.HeadersOnly].AsBool; Backoff = DurationList(ccNode, ApiConstants.Backoff); }