internal static ProtoBuf.DataFormat GetDataFromat(google.protobuf.FieldDescriptorProto.Type type) { switch (type) { /* * TYPE_DOUBLE' or type='TYPE_FLOAT' * or type='TYPE_FIXED32' or type='TYPE_FIXED64' * or type='TYPE_SFIXED32' or type='TYPE_SFIXED64'">FixedSize</xsl:when> */ case FieldDescriptorProto.Type.TYPE_DOUBLE: case FieldDescriptorProto.Type.TYPE_FLOAT: case FieldDescriptorProto.Type.TYPE_FIXED32: case FieldDescriptorProto.Type.TYPE_FIXED64: case FieldDescriptorProto.Type.TYPE_SFIXED32: case FieldDescriptorProto.Type.TYPE_SFIXED64: return(ProtoBuf.DataFormat.FixedSize); // <xsl:when test="type='TYPE_GROUP'">Group</xsl:when> case FieldDescriptorProto.Type.TYPE_GROUP: return(ProtoBuf.DataFormat.Group); /* * sl:when test="not(type) or type='TYPE_INT32' or type='TYPE_INT64' * or type='TYPE_UINT32' or type='TYPE_UINT64' * or type='TYPE_ENUM'">TwosComplement</xsl:when> */ case FieldDescriptorProto.Type.TYPE_INT32: case FieldDescriptorProto.Type.TYPE_INT64: case FieldDescriptorProto.Type.TYPE_UINT32: case FieldDescriptorProto.Type.TYPE_UINT64: case FieldDescriptorProto.Type.TYPE_ENUM: default: return(ProtoBuf.DataFormat.TwosComplement); // <xsl:when test="type='TYPE_SINT32' or type='TYPE_SINT64'">ZigZag</xsl:when> case FieldDescriptorProto.Type.TYPE_SINT32: case FieldDescriptorProto.Type.TYPE_SINT64: return(ProtoBuf.DataFormat.ZigZag); } }
static string GetFieldParseByType(google.protobuf.FieldDescriptorProto.Type type, string typeName) { //ProtoBuf.ProtoReader source; switch (type) { case FieldDescriptorProto.Type.TYPE_DOUBLE: return("source.ReadDouble()"); break; case FieldDescriptorProto.Type.TYPE_FLOAT: return("source.ReadSingle()"); break; case FieldDescriptorProto.Type.TYPE_INT64: return("source.ReadInt64()"); break; case FieldDescriptorProto.Type.TYPE_UINT64: return("source.ReadUInt64()"); break; case FieldDescriptorProto.Type.TYPE_INT32: return("source.ReadInt32()"); break; case FieldDescriptorProto.Type.TYPE_FIXED64: return("source.ReadUInt64()"); break; case FieldDescriptorProto.Type.TYPE_FIXED32: return("source.ReadUInt32()"); break; case FieldDescriptorProto.Type.TYPE_BOOL: return("source.ReadBoolean()"); break; case FieldDescriptorProto.Type.TYPE_STRING: return("source.ReadString()"); break; case FieldDescriptorProto.Type.TYPE_GROUP: throw new ProtoGenException("FieldDescriptorProto.Type.TYPE_GROUP do not Support Now! Please Check!"); return(""); break; case FieldDescriptorProto.Type.TYPE_BYTES: //ProtoReader.AppendBytes(overwriteList ? null : (byte[])value, source); return("ProtoReader.AppendBytes(null, source)"); break; case FieldDescriptorProto.Type.TYPE_UINT32: return("source.ReadUInt32()"); break; case FieldDescriptorProto.Type.TYPE_ENUM: //return ""; /*builder.AppendFormat(@" * int wireValue = source.ReadInt32(); * switch(wireValue){ * "); * google.protobuf.EnumDescriptorProto enumProto = FindEnum(typeName,message); * foreach(var item in enumProto.value) * { * builder.AppendFormat("case {0} : {1} = {2} break;\n",item.number,fieldName,typeName + item.name); * } * builder.AppendFormat("}"); * return ""; */ string name = typeName.Substring(1); return("(" + name + ")" + "source.ReadInt32()"); break; case FieldDescriptorProto.Type.TYPE_SFIXED32: return("source.ReadInt32()"); break; case FieldDescriptorProto.Type.TYPE_SFIXED64: return("source.ReadInt64()"); break; case FieldDescriptorProto.Type.TYPE_SINT32: return("source.ReadInt32()"); break; case FieldDescriptorProto.Type.TYPE_SINT64: return("source.ReadInt64()"); break; } throw new ProtoGenException("Do not Support Now! Please Check!"); return(""); }
internal static ProtoBuf.WireType TryGetWireType(google.protobuf.FieldDescriptorProto.Type type) { switch (type) { /* * else * { // enum is fine for adding as a meta-type * defaultWireType = WireType.None; * return null; * } */ case FieldDescriptorProto.Type.TYPE_ENUM: return(ProtoBuf.WireType.Variant); case FieldDescriptorProto.Type.TYPE_INT32: case FieldDescriptorProto.Type.TYPE_UINT32: case FieldDescriptorProto.Type.TYPE_FIXED32: return(GetIntWireType(GetDataFromat(type), 32)); case FieldDescriptorProto.Type.TYPE_INT64: case FieldDescriptorProto.Type.TYPE_UINT64: case FieldDescriptorProto.Type.TYPE_FIXED64: return(GetIntWireType(GetDataFromat(type), 64)); case FieldDescriptorProto.Type.TYPE_STRING: return(ProtoBuf.WireType.String); case FieldDescriptorProto.Type.TYPE_SINT32: case FieldDescriptorProto.Type.TYPE_SFIXED32: return(GetIntWireType(GetDataFromat(type), 32)); case FieldDescriptorProto.Type.TYPE_SINT64: case FieldDescriptorProto.Type.TYPE_SFIXED64: return(GetIntWireType(GetDataFromat(type), 64)); case FieldDescriptorProto.Type.TYPE_FLOAT: return(ProtoBuf.WireType.Fixed32); case FieldDescriptorProto.Type.TYPE_DOUBLE: return(ProtoBuf.WireType.Fixed64); case FieldDescriptorProto.Type.TYPE_BOOL: return(ProtoBuf.WireType.Variant); //case ProtoTypeCode.DateTime: // return "ProtoBuf.WireType.Variant"; //case ProtoTypeCode.Decimal: // defaultWireType = WireType.String; // return new DecimalSerializer(model); //case FieldDescriptorProto.Type.TYPE_INT32: // defaultWireType = GetIntWireType(dataFormat, 32); // return new ByteSerializer(model); //case ProtoTypeCode.SByte: // defaultWireType = GetIntWireType(dataFormat, 32); // return new SByteSerializer(model); //case ProtoTypeCode.Char: // defaultWireType = WireType.Variant; // return new CharSerializer(model); //case FieldDescriptorProto.Type.TYPE_INT16: // return GetIntWireType(GetDataFromat(type), 32); // return new Int16Serializer(model); //case ProtoTypeCode.UInt16: // defaultWireType = GetIntWireType(dataFormat, 32); // return new UInt16Serializer(model); //case ProtoTypeCode.TimeSpan: // defaultWireType = GetDateTimeWireType(dataFormat); // return new TimeSpanSerializer(model); //case ProtoTypeCode.Guid: // defaultWireType = WireType.String; // return new GuidSerializer(model); //ase ProtoTypeCode.Uri: // defaultWireType = WireType.String; // return new StringSerializer(model); //case ProtoTypeCode.ByteArray: // defaultWireType = WireType.String; // return new BlobSerializer(model, overwriteList); case FieldDescriptorProto.Type.TYPE_MESSAGE: return(ProtoBuf.WireType.String); } return(ProtoBuf.WireType.Variant); }