Beispiel #1
0
 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);
        }