Esempio n. 1
0
        public static string GetName(Types.Type type)
        {
            TypeTagName v = new TypeTagName();

            type.Accept(v);
            return(v.Name);
        }
Esempio n. 2
0
 private void EncodeCollection(TypeCollection type)
 {
     Types.Type vt = type.ValueType;
     sw.WriteLine(prefix + "{");
     sw.WriteLine(prefix + "    _os_.BeginWriteSegment(out var _state_);");
     sw.WriteLine(prefix + "    _os_.WriteInt(" + TypeTagName.GetName(vt) + ");");
     sw.WriteLine(prefix + "    _os_.WriteInt(" + varname + ".Count);");
     sw.WriteLine(prefix + "    foreach (var _v_ in " + varname + ")");
     sw.WriteLine(prefix + "    {");
     vt.Accept(new Encode("_v_", -1, "_os_", sw, prefix + "        "));
     sw.WriteLine(prefix + "    }");
     sw.WriteLine(prefix + "    _os_.EndWriteSegment(_state_); ");
     sw.WriteLine(prefix + "}");
 }
Esempio n. 3
0
        public void Visit(TypeMap type)
        {
            if (id < 0)
            {
                throw new Exception("invalie Variable.Id");
            }

            Types.Type keytype   = type.KeyType;
            Types.Type valuetype = type.ValueType;

            sw.WriteLine(prefix + bufname + ".WriteInt(ByteBuffer.MAP | " + id + " << ByteBuffer.TAG_SHIFT);");
            sw.WriteLine(prefix + "{");
            sw.WriteLine(prefix + "    _os_.BeginWriteSegment(out var _state_);");
            sw.WriteLine(prefix + "    _os_.WriteInt(" + TypeTagName.GetName(keytype) + ");");
            sw.WriteLine(prefix + "    _os_.WriteInt(" + TypeTagName.GetName(valuetype) + ");");
            sw.WriteLine(prefix + "    _os_.WriteInt(" + varname + ".Count);");
            sw.WriteLine(prefix + "    foreach (var _e_ in " + varname + ")");
            sw.WriteLine(prefix + "    {");
            keytype.Accept(new Encode("_e_.Key", -1, "_os_", sw, prefix + "        "));
            valuetype.Accept(new Encode("_e_.Value", -1, "_os_", sw, prefix + "        "));
            sw.WriteLine(prefix + "    }");
            sw.WriteLine(prefix + "    _os_.EndWriteSegment(_state_); ");
            sw.WriteLine(prefix + "}");
        }