示例#1
0
 public IronLeveldbStub(IronLeveldbOptions options,
                        ISeekable <InternalKey, InternalIByteArrayKeyValuePair> dataProvider, Action onDispose = null)
 {
     _dataProvider = dataProvider;
     _onDispose    = onDispose;
     _comparer     = options?.Comparer ?? LeveldbDefaultKeyComparer.Comparer;
 }
示例#2
0
        public void PushContext(IDictionary <string, object> input, ISeekable text, TextHolder parentHolder, bool skipOutput = false, bool disableLogging = false)
        {
            var holderDefinitions = parentHolder == null ? null : Context.PreparsedHolders.GetOrDefault(parentHolder.Name);

            if (parentHolder != null && Context.Holders.ContainsKey(parentHolder.Name))
            {
                parentHolder = Context.Holders[parentHolder.Name];
            }
            var newC = new TemplatorParsingContext(skipOutput)
            {
                Input            = input,
                ParentHolder     = parentHolder,
                Logger           = disableLogging ? null : (Context != null && Context.Nesting) ? new TemplatorLogger() : Config.Logger,
                Text             = text ?? Context?.Text,
                PreparsedHolders = holderDefinitions?.Children
            };

            if (Stack == null)
            {
                Context = newC;
                Stack   = new Stack <TemplatorParsingContext>();
                if (input == null)
                {
                    NoInput = true;
                }
                return;
            }
            Stack.Push(Context);
            Context = newC;
        }