public void WriteTo(FCSerialize ar) { ar.ProtobufWrite(name, 1, PB_ZipType.PB_Zip_Varint); ar.ProtobufWrite(age, 2, PB_ZipType.PB_Zip_Varint); ar.ProtobufWrite(address, 3, PB_ZipType.PB_Zip_Varint); ar.ProtobufWrite(contacts, 4, PB_ZipType.PB_Zip_Varint); }
public void ReadFrom(FCSerialize ar) { int nTag = 0; int nFiledIndex = 0; bool bSucRead = false; //while(nTag = ar.ProtobufReadTag()) // C#不支持这样的写法 while ((nTag = ar.ProtobufReadTag()) != 0) { nFiledIndex = nTag >> 3; bSucRead = false; switch (nFiledIndex) { case 1: if (nTag == 10) // MakeTag(1, 2) { bSucRead = ar.ProtobufRead(value, 1, PB_ZipType.PB_Zip_Varint); } break; default: break; } if (!bSucRead) { ar.ProtobufSkipField(nTag); } } }
public void WriteProtobuf() { RequestWithSimpleOneof msg = new RequestWithSimpleOneof(); msg.set_int_data(11); msg.set_str_data("abcdef"); MoreData more_data = msg.mutable_more_data(); more_data.str_value = "moredata_str_value"; Data data = msg.mutable_message_data3(); data.data_value = 12; FCSerialize ar = new FCSerialize(); ar.OwnWriteMode(1024); msg.WriteTo(ar); os.print("more_data.str_value={0}", more_data.str_value); os.print("more_data.str_value={0}", msg.mutable_more_data().str_value); ar.CopyTo(m_msgBuffer); os.print("序列化的的数据包的长度={0}字节", m_msgBuffer.Length); PrintMsg(msg); }
public void ReadFrom(FCSerialize ar) { int nTag = 0; int nFiledIndex = 0; bool bSucRead = false; //while(nTag = ar.ProtobufReadTag()) // C#不支持这样的写法 while ((nTag = ar.ProtobufReadTag()) != 0) { nFiledIndex = nTag >> 3; bSucRead = false; switch (nFiledIndex) { case 1: if (nTag == 10) // MakeTag(1, 2) { bSucRead = ar.ProtobufRead(name, 1, PB_ZipType.PB_Zip_Varint); } break; case 2: if (nTag == 16) // MakeTag(2, 0) { bSucRead = ar.ProtobufRead(phonenumber, 2, PB_ZipType.PB_Zip_Varint); } break; case 3: if (nTag == 24) // MakeTag(3, 0) { _oneof_case_0 = 3; // val1 bSucRead = ar.ProtobufRead(val1, 3, PB_ZipType.PB_Zip_Varint); } break; case 4: if (nTag == 32) // MakeTag(4, 0) { _oneof_case_0 = 4; // val2 bSucRead = ar.ProtobufRead(val2, 4, PB_ZipType.PB_Zip_Varint); } break; case 5: if (nTag == 42) // MakeTag(5, 2) { bSucRead = ar.ProtobufReadMap(map_test, 5, PB_ZipType.PB_Zip_Varint, PB_ZipType.PB_Zip_Varint); } break; default: break; } if (!bSucRead) { ar.ProtobufSkipField(nTag); } } }
void ReadProtobuf() { RequestWithSimpleOneof msg = new RequestWithSimpleOneof(); FCSerialize ar = new FCSerialize(); ar.ReadMode(m_msgBuffer); msg.ReadFrom(ar); PrintMsg(msg); }
public void ReadFrom(FCSerialize ar) { int nTag = 0; int nFiledIndex = 0; bool bSucRead = false; //while(nTag = ar.ProtobufReadTag()) // C#不支持这样的写法 while ((nTag = ar.ProtobufReadTag()) != 0) { nFiledIndex = nTag >> 3; bSucRead = false; switch (nFiledIndex) { case 1: if (nTag == 10) // MakeTag(1, 2) { bSucRead = ar.ProtobufRead(name, 1, PB_ZipType.PB_Zip_Varint); } break; case 2: if (nTag == 16) // MakeTag(2, 0) { bSucRead = ar.ProtobufRead(age, 2, PB_ZipType.PB_Zip_Varint); } break; case 3: if (nTag == 26) // MakeTag(3, 2) { bSucRead = ar.ProtobufRead(address, 3, PB_ZipType.PB_Zip_Varint); } break; case 4: if (nTag == 34) // MakeTag(4, 2) { bSucRead = ar.ProtobufRead(contacts, 4, PB_ZipType.PB_Zip_Varint); } break; default: break; } if (!bSucRead) { ar.ProtobufSkipField(nTag); } } }
public void WriteTo(FCSerialize ar) { ar.ProtobufWrite(value, 1, PB_ZipType.PB_Zip_Varint); ar.ProtobufWrite(optional_bytes, 2, PB_ZipType.PB_Zip_Varint); ar.ProtobufWrite(optional_data, 3, PB_ZipType.PB_Zip_Varint); ar.ProtobufWrite(second_data, 4, PB_ZipType.PB_Zip_Varint); switch (_oneof_case_0) { case 5: ar.ProtobufWrite(str_data, 5, PB_ZipType.PB_Zip_Varint); break; case 6: ar.ProtobufWrite(int_data, 6, PB_ZipType.PB_Zip_Varint); break; case 7: ar.ProtobufWrite(message_data, 7, PB_ZipType.PB_Zip_Varint); break; case 8: ar.ProtobufWrite(more_data, 8, PB_ZipType.PB_Zip_Varint); break; default: break; } switch (_oneof_case_1) { case 9: ar.ProtobufWrite(str_data3, 9, PB_ZipType.PB_Zip_Varint); break; case 10: ar.ProtobufWrite(int_data3, 10, PB_ZipType.PB_Zip_Varint); break; case 11: ar.ProtobufWrite(message_data3, 11, PB_ZipType.PB_Zip_Varint); break; case 12: ar.ProtobufWrite(more_data3, 12, PB_ZipType.PB_Zip_Varint); break; default: break; } }
public uint NormalReadProto() { uint nBeginTime = os.GetTickCount(); for (int i = 0; i < 100000; ++i) { Person msg = new Person(); FCSerialize ar = new FCSerialize(); ar.ReadMode(Buffer, 0, BufferLen); msg.ReadFrom(ar); } uint nEndTime = os.GetTickCount(); os.print("normal read proto, cost time:{0}ms, BufferLen = {1}", (nEndTime - nBeginTime), BufferLen); return(nEndTime - nBeginTime); }
public void WriteTo(FCSerialize ar) { ar.ProtobufWrite(name, 1, PB_ZipType.PB_Zip_Varint); ar.ProtobufWrite(phonenumber, 2, PB_ZipType.PB_Zip_Varint); switch (_oneof_case_0) { case 3: ar.ProtobufWrite(val1, 3, PB_ZipType.PB_Zip_Varint); break; case 4: ar.ProtobufWrite(val2, 4, PB_ZipType.PB_Zip_Varint); break; default: break; } ar.ProtobufWriteMap(map_test, 5, PB_ZipType.PB_Zip_Varint, PB_ZipType.PB_Zip_Varint); }
public uint NormalWriteProto() { Person msg = FillPersonMsg(); int nBufferLen = 0; uint nBeginTime = os.GetTickCount(); for (int i = 0; i < 100000; ++i) { FCSerialize ar = new FCSerialize(); ar.WriteMode(Buffer, 0, 1024); msg.WriteTo(ar); nBufferLen = ar.GetPosition(); } uint nEndTime = os.GetTickCount(); os.print("write proto, cost time:{0}ms, BufferLen = {1}", (nEndTime - nBeginTime), nBufferLen); BufferLen = nBufferLen; return(nEndTime - nBeginTime); }
// 功能:设置读模式, 流的数据由已知的流中获取 // 参数:nStart - 开始的位置 // nSize - 数据流的长度 public void ReadMode(FCSerialize ar, int nStart, int nSize) { }
public void WriteTo(FCSerialize ar) { ar.ProtobufWrite(value, 1, PB_ZipType.PB_Zip_Varint); }
public void ReadFrom(FCSerialize ar) { int nTag = 0; int nFiledIndex = 0; bool bSucRead = false; //while(nTag = ar.ProtobufReadTag()) // C#不支持这样的写法 while ((nTag = ar.ProtobufReadTag()) != 0) { nFiledIndex = nTag >> 3; bSucRead = false; switch (nFiledIndex) { case 1: if (nTag == 10) // MakeTag(1, 2) { bSucRead = ar.ProtobufRead(value, 1, PB_ZipType.PB_Zip_Varint); } break; case 2: if (nTag == 18) // MakeTag(2, 2) { bSucRead = ar.ProtobufRead(optional_bytes, 2, PB_ZipType.PB_Zip_Varint); } break; case 3: if (nTag == 26) // MakeTag(3, 2) { bSucRead = ar.ProtobufRead(optional_data, 3, PB_ZipType.PB_Zip_Varint); } break; case 4: if (nTag == 34) // MakeTag(4, 2) { bSucRead = ar.ProtobufRead(second_data, 4, PB_ZipType.PB_Zip_Varint); } break; case 5: if (nTag == 42) // MakeTag(5, 2) { _oneof_case_0 = 5; // str_data bSucRead = ar.ProtobufRead(str_data, 5, PB_ZipType.PB_Zip_Varint); } break; case 6: if (nTag == 48) // MakeTag(6, 0) { _oneof_case_0 = 6; // int_data bSucRead = ar.ProtobufRead(int_data, 6, PB_ZipType.PB_Zip_Varint); } break; case 7: if (nTag == 58) // MakeTag(7, 2) { _oneof_case_0 = 7; // message_data bSucRead = ar.ProtobufRead(message_data, 7, PB_ZipType.PB_Zip_Varint); } break; case 8: if (nTag == 66) // MakeTag(8, 2) { _oneof_case_0 = 8; // more_data bSucRead = ar.ProtobufRead(more_data, 8, PB_ZipType.PB_Zip_Varint); } break; case 9: if (nTag == 74) // MakeTag(9, 2) { _oneof_case_1 = 9; // str_data3 bSucRead = ar.ProtobufRead(str_data3, 9, PB_ZipType.PB_Zip_Varint); } break; case 10: if (nTag == 80) // MakeTag(10, 0) { _oneof_case_1 = 10; // int_data3 bSucRead = ar.ProtobufRead(int_data3, 10, PB_ZipType.PB_Zip_Varint); } break; case 11: if (nTag == 90) // MakeTag(11, 2) { _oneof_case_1 = 11; // message_data3 bSucRead = ar.ProtobufRead(message_data3, 11, PB_ZipType.PB_Zip_Varint); } break; case 12: if (nTag == 98) // MakeTag(12, 2) { _oneof_case_1 = 12; // more_data3 bSucRead = ar.ProtobufRead(more_data3, 12, PB_ZipType.PB_Zip_Varint); } break; default: break; } if (!bSucRead) { ar.ProtobufSkipField(nTag); } } }