public ProtoBufferReaderBuilderCSLS(CodeToolBase _codetool, byte[] _buffer, int _len, string _classname)
 {
     mCodeTool  = _codetool;
     mReader    = new ProtobufferReaderCSLS(_buffer, _len);
     mClassName = _classname;
     InitType();
     mScriptObject = mCodeTool.GetCSLEObjectParmasByType(mScriptType);
     BuildMember();
 }
示例#2
0
            override public void ReadMember(ProtobufferReaderCSLS _reader)
            {
                BuilderObjectBase tchild = null;

                if (mCodeTool.IsLSType(mChildType.TypeForCLR))
                {
                    tchild = new BuilderObjectCELSClass(mCodeTool, mIndex, 0, null, mChildType, null);
                }
                else
                {
                    tchild = new BuilderObjectDefault(mCodeTool, mIndex, 0, null, mChildType, null);
                }
                AddMember(tchild);
                tchild.ReadMember(_reader);

                object tmet = mCodeTool.GetLMethod(mFunType, "Add", 1);

                mCodeTool.CallMethod(tmet, mSelfObject, tchild.Value);
                mIndex++;
            }
示例#3
0
            override public void ReadMember(ProtobufferReaderCSLS _reader)
            {
                int bytes = (int)_reader.ReadUInt32Variant(false);

                byte[] tbytearry = _reader.ReadBytes(bytes);
                if (tbytearry != null)
                {
                    ProtobufferReaderCSLS treader = new ProtobufferReaderCSLS(tbytearry, bytes);
                    int tfieldnumber = treader.ReadFieldHeader();
                    while (tfieldnumber > 0)
                    {
                        if (!Members.ContainsKey(tfieldnumber))
                        {
                            throw new InvalidOperationException("ProtoReaderMemberObject 未能从builder中找到对应的字段 fieldnumber:" + tfieldnumber);
                        }
                        BuilderObjectBase tprb = Members[tfieldnumber];
                        tprb.ReadMember(treader);
                        tfieldnumber = treader.ReadFieldHeader();
                    }
                }
            }
示例#4
0
 virtual public void ReadMember(ProtobufferReaderCSLS _reader)
 {
 }
示例#5
0
 override public void ReadMember(ProtobufferReaderCSLS _reader)
 {
     Value = _reader.ReadByData(mType, _reader.WType);
     SetValueToCSLEObject();
 }