示例#1
0
        public byte[] GetResultBytes()
        {
            var builder   = new FlatBufferBuilder(1);
            var paramName = builder.CreateString("ParagraphID");             // TODO здесь надо передавать результат выполнения операции
            var paramVal  = builder.CreateString(ParagraphID.ToString());
            var parms     = new Offset <Param> [1];

            parms[0] = Param.CreateParam(builder, paramName, paramVal);
            var          paracol  = Message.CreateParamsVector(builder, parms);
            VectorOffset sentscol = default(VectorOffset);

            sentscol = SentenceMap.BuildSentOffsetFromSentStructList(builder, this.sentlist);

            Message.StartMessage(builder);
            Message.AddMessType(builder, MessType.mReplay);
            Message.AddServerType(builder, ServType.svSUBD);
            Message.AddComtype(builder, command);
            Message.AddParams(builder, paracol);
            Message.AddSentences(builder, sentscol);
            Message.AddDbID(builder, ParagraphID);
            var req = Message.EndMessage(builder);

            builder.Finish(req.Value);
            return(builder.SizedByteArray());
        }
示例#2
0
        public byte[] GetResultBytes()
        {
            var builder = new FlatBufferBuilder(1);
            // Синтаксический анализ - выполняется для одного предложения
            var senttlist = new List <SentenceMap>();

            senttlist.Add(this.sentence);
            VectorOffset sentscol = SentenceMap.BuildSentOffsetFromSentStructList(builder, senttlist);

            Message.StartMessage(builder);
            Message.AddMessType(builder, MessType.mReplay);
            Message.AddServerType(builder, ServType.svMorph);
            Message.AddComtype(builder, command);
            Message.AddSentences(builder, sentscol);
            var req = Message.EndMessage(builder);

            builder.Finish(req.Value);
            return(builder.SizedByteArray());
        }
示例#3
0
        private FlatBufferBuilder SetReq(string requestText = "")
        {
            var          builder  = new FlatBufferBuilder(1);
            VectorOffset paracol  = default(VectorOffset);
            VectorOffset sentscol = default(VectorOffset);

            switch (command)
            {
            case ComType.Separ:
            case ComType.Synt:
            {
                // Синтаксический анализ - выполняется для одного предложения
                var paramName = builder.CreateString("phrase");
                var paramVal  = builder.CreateString(requestText);
                var parms     = new Offset <Param> [1];
                parms[0] = Param.CreateParam(builder, paramName, paramVal);
                paracol  = Message.CreateParamsVector(builder, parms);
                break;
            }

            case ComType.Repar:
            {
                // Восстановление из структуры выполняется для одного предложения
                var senttlist = new List <SentenceMap>();
                senttlist.Add(this.sentstr);
                sentscol = SentenceMap.BuildSentOffsetFromSentStructList(builder, senttlist);
                break;
            }

            case ComType.GetWord:
            case ComType.SaveLex:
            {
                var paramName = builder.CreateString("word");
                var paramVal  = builder.CreateString(requestText);
                var parms     = new Offset <Param> [1];
                parms[0] = Param.CreateParam(builder, paramName, paramVal);
                paracol  = Message.CreateParamsVector(builder, parms);
                break;
            }

            case ComType.SavePara:
            {
                var innersents = parastr.GetParagraphSents();
                var senttlist  = innersents
                                 .OrderBy(y => y.order)
                                 .Select(x => x.sentstruct).ToList();
                sentscol = SentenceMap.BuildSentOffsetFromSentStructList(builder, senttlist);
                dbID     = parastr.ParagraphID;
                break;
            }

            case ComType.ReadPara:
            {
                dbID = parastr.ParagraphID;
                break;
            }

            case ComType.GetParags:
            {
                break;
            }

            case ComType.GetChildrenConts:
            {
                // dbID установлено
                break;
            }
            }

            Message.StartMessage(builder);
            Message.AddMessType(builder, MessType.mRequest);
            Message.AddServerType(builder, this.servType);
            Message.AddComtype(builder, this.command);
            Message.AddParams(builder, paracol);
            Message.AddSentences(builder, sentscol);
            Message.AddDbID(builder, dbID);
            var req = Message.EndMessage(builder);

            builder.Finish(req.Value);

            return(builder);
        }