static IMessage MakeMessageInternal(
            TextMessageCapture capture,
            IRegex headRe,
            IRegex bodyRe,
            ref IMatch bodyMatch,
            IFieldsProcessor fieldsProcessor,
            MakeMessageFlags makeMessageFlags,
            DateTime sourceTime,
            ITimeOffsets timeOffsets,
            MessagesBuilderCallback threadLocalCallbackImpl
            )
        {
            if (bodyRe != null)
            {
                if (!bodyRe.Match(capture.BodyBuffer, capture.BodyIndex, capture.BodyLength, ref bodyMatch))
                {
                    return(null);
                }
            }

            int idx = 0;

            Group[] groups;

            fieldsProcessor.Reset();
            fieldsProcessor.SetSourceTime(sourceTime);
            fieldsProcessor.SetPosition(capture.BeginPosition);
            fieldsProcessor.SetTimeOffsets(timeOffsets);

            groups = capture.HeaderMatch.Groups;
            for (int i = 1; i < groups.Length; ++i)
            {
                var g = groups[i];
                fieldsProcessor.SetInputField(idx++, new StringSlice(capture.HeaderBuffer, g.Index, g.Length));
            }

            if (bodyRe != null)
            {
                groups = bodyMatch.Groups;
                for (int i = 1; i < groups.Length; ++i)
                {
                    var g = groups[i];
                    fieldsProcessor.SetInputField(idx++, new StringSlice(capture.BodyBuffer, g.Index, g.Length));
                }
            }
            else
            {
                fieldsProcessor.SetInputField(idx++, new StringSlice(capture.BodyBuffer, capture.BodyIndex, capture.BodyLength));
            }

            threadLocalCallbackImpl.SetCurrentPosition(capture.BeginPosition, capture.EndPosition);

            IMessage ret;

            ret = fieldsProcessor.MakeMessage(threadLocalCallbackImpl, makeMessageFlags);

            ret.SetRawText(StringSlice.Concat(capture.MessageHeaderSlice, capture.MessageBodySlice).Trim());

            return(ret);
        }
 public SingleThreadedStrategyImpl(MessagesReader reader) : base(
         reader.LogMedia,
         reader.StreamEncoding,
         CloneRegex(reader.fmtInfo.HeadRe, reader.IsQuickFormatDetectionMode ? ReOptions.Timeboxed : ReOptions.None).Regex,
         reader.fmtInfo.HeadRe.GetHeaderReSplitterFlags(),
         reader.fmtInfo.TextStreamPositioningParams
         )
 {
     this.reader          = reader;
     this.fieldsProcessor = reader.CreateNewFieldsProcessor();
     this.callback        = reader.CreateMessageBuilderCallback();
     this.headerRegex     = headerRe;
     this.bodyRegex       = CloneRegex(reader.fmtInfo.BodyRe).Regex;
 }
Example #3
0
        public void OnEnable()
        {
            //DI--------------
            _componentObtainer = ExposedEditorDi.Instance.Container.Resolve <IComponentObtainer>();
            _fieldsObtainer    = ExposedEditorDi.Instance.Container.Resolve <IFieldsObtainer>();
            _fieldsRenderer    = ExposedEditorDi.Instance.Container.Resolve <IFieldsRenderer>();
            _fieldsProcessor   = ExposedEditorDi.Instance.Container.Resolve <IFieldsProcessor>();
            //----------------

            _exposedReferences = (ExposedReferences)target;
            _exposedReferences.PreInitializationEnabled = _exposedReferences.hideFlags == HideFlags.None;

            _scriptMappings = _componentObtainer.GetComponentMappingsOnSameGameObject(_exposedReferences);

            _configFoldouts = new bool[_scriptMappings.Count];
            for (int index = 0; index < _configFoldouts.Length; index++)
            {
                _configFoldouts[index] = true;
            }

            _isPrefab = _exposedReferences.hideFlags != HideFlags.None;
        }