Exemplo n.º 1
0
        public override void Read(FrontendPackage package, FrontendChunkBlock chunkBlock, FrontendChunkReader chunkReader, BinaryReader reader)
        {
            FrontendTagStream tagStream = new FrontendMessagesTagStream(reader, package, chunkBlock,
                                                                        chunkBlock.Size);

            while (tagStream.HasTag())
            {
                FrontendTag tag = tagStream.NextTag(null);
                //Debug.WriteLine("PKG RESPONSES TAG {0}", tag);
                package = ProcessTag(package, tag);
            }
        }
Exemplo n.º 2
0
        public override FrontendObject Read(FrontendPackage package, ObjectReaderState readerState, BinaryReader reader)
        {
            FrontendObject    newFrontendObject = FrontendObject;
            FrontendTagStream tagStream         = new FrontendObjectTagStream(reader, readerState.CurrentChunkBlock, readerState.CurrentChunkBlock.Size);

            while (tagStream.HasTag())
            {
                FrontendTag tag = tagStream.NextTag(newFrontendObject);
                //Debug.WriteLine("OBJECT TAG {0}", tag);
                newFrontendObject = ProcessTag(newFrontendObject, tag);
            }

            return(newFrontendObject);
        }
Exemplo n.º 3
0
        public override FrontendObject Read(FrontendPackage package, ObjectReaderState readerState, BinaryReader reader)
        {
            FrontendScriptTagStream tagStream = new FrontendScriptTagStream(reader, readerState.CurrentChunkBlock, readerState.CurrentChunkBlock.Size);
            FrontendScript          script    = new FrontendScript();

            while (tagStream.HasTag())
            {
                FrontendTag tag = tagStream.NextTag(FrontendObject, script);
                //Debug.WriteLine("SCRIPT TAG {0}", tag);
                ProcessTag(FrontendObject, script, tag);
            }

            //Debug.WriteLine("ADD SCRIPT: id={0:X8}", script.Id);
            FrontendObject.Scripts.Add(script);

            return(FrontendObject);
        }
Exemplo n.º 4
0
        private FrontendObject ProcessTag(FrontendObject frontendObject, FrontendTag tag)
        {
            switch (tag)
            {
            case ObjectTypeTag objectTypeTag:
                return(ProcessObjectTypeTag(frontendObject, objectTypeTag));

            case StringBufferTextTag stringBufferTextTag when frontendObject is FrontendString frontendString:
                return(ProcessStringBufferTextTag(frontendString, stringBufferTextTag));

            case StringBufferFormattingTag stringBufferFormattingTag when frontendObject is FrontendString frontendString:
                return(ProcessStringBufferFormattingTag(frontendString, stringBufferFormattingTag));

            case StringBufferLeadingTag stringBufferLeadingTag when frontendObject is FrontendString frontendString:
                return(ProcessStringBufferLeadingTag(frontendString, stringBufferLeadingTag));

            case StringBufferLabelHashTag stringBufferLabelHashTag when frontendObject is FrontendString frontendString:
                return(ProcessStringBufferLabelHashTag(frontendString, stringBufferLabelHashTag));

            case StringBufferMaxWidthTag stringBufferMaxWidthTag when frontendObject is FrontendString frontendString:
                return(ProcessStringBufferMaxWidthTag(frontendString, stringBufferMaxWidthTag));

            case ObjectHashTag objectHashTag:
                frontendObject.NameHash = objectHashTag.Hash;
                break;

            case ObjectReferenceTag objectReferenceTag:
                ProcessObjectReferenceTag(frontendObject, objectReferenceTag);
                break;

            case ImageInfoTag imageInfoTag when frontendObject is FrontendImage frontendImage:
                ProcessImageInfoTag(frontendImage, imageInfoTag);
                break;

            case ObjectDataTag objectDataTag:
                ProcessObjectDataTag(frontendObject, objectDataTag);
                break;

            default:
                //Debug.WriteLine("WARN: Unprocessed tag - {0}", tag.GetType());
                break;
            }

            return(frontendObject);
        }
Exemplo n.º 5
0
        public FrontendTag AddFrontendTag(int tagId)
        {
            _logger.LogInformation($"Adding frontend tag - {tagId}");

            var tag         = _data.EfContext.Tags.Find(tagId);
            var frontendTag = new FrontendTag()
            {
                TagId = tagId,
                Tag   = tag
            };

            var tagEntity = _data.EfContext.FrontendTags.Add(frontendTag);

            _data.EfContext.SaveChanges();

            _logger.LogInformation($"Frontend tag {tagId} has added successfully");
            return(tagEntity.Entity);
        }
Exemplo n.º 6
0
        private FrontendPackage ProcessTag(FrontendPackage frontendPackage, FrontendTag tag)
        {
            switch (tag)
            {
            case MessageResponseInfoTag messageResponseInfoTag:
                ProcessMessageResponseInfoTag(frontendPackage, messageResponseInfoTag);
                break;

            case ResponseIdTag responseIdTag:
                ProcessResponseIdTag(frontendPackage, responseIdTag);
                break;

            case ResponseParamTag responseParamTag:
                ProcessResponseParamTag(frontendPackage, responseParamTag);
                break;

            case ResponseTargetTag responseTargetTag:
                ProcessResponseTargetTag(frontendPackage, responseTargetTag);
                break;
            }

            return(frontendPackage);
        }
Exemplo n.º 7
0
 private void ProcessTag(FrontendObject frontendObject, FrontendScript frontendScript, FrontendTag tag)
 {
     switch (tag)
     {
     case ScriptHeaderTag scriptHeaderTag:
         ProcessScriptHeaderTag(frontendObject, frontendScript, scriptHeaderTag);
         break;
     }
 }
Exemplo n.º 8
0
        private FrontendObject ProcessTag(FrontendObject frontendObject, FrontendChunkBlock frontendChunkBlock, FrontendTag tag)
        {
            switch (tag)
            {
            case MessageResponseInfoTag messageResponseInfoTag:
                ProcessMessageResponseInfoTag(frontendObject, frontendChunkBlock, messageResponseInfoTag);
                break;

            case ResponseIdTag responseIdTag:
                ProcessResponseIdTag(frontendObject, frontendChunkBlock, responseIdTag);
                break;

            case ResponseParamTag responseParamTag:
                ProcessResponseParamTag(frontendObject, frontendChunkBlock, responseParamTag);
                break;

            case ResponseTargetTag responseTargetTag:
                ProcessResponseTargetTag(frontendObject, frontendChunkBlock, responseTargetTag);
                break;
            }

            return(frontendObject);
        }