Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
    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);
            }
        }
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
    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);
            }
        }
    }
Ejemplo n.º 5
0
    void ReadProtobuf()
    {
        RequestWithSimpleOneof msg = new RequestWithSimpleOneof();
        FCSerialize            ar  = new FCSerialize();

        ar.ReadMode(m_msgBuffer);
        msg.ReadFrom(ar);
        PrintMsg(msg);
    }
Ejemplo n.º 6
0
    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);
            }
        }
    }
Ejemplo n.º 7
0
    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;
        }
    }
Ejemplo n.º 8
0
    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);
    }
Ejemplo n.º 9
0
    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);
    }
Ejemplo n.º 10
0
    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);
    }
Ejemplo n.º 11
0
 // 功能:设置读模式, 流的数据由已知的流中获取
 // 参数:nStart - 开始的位置
 //       nSize - 数据流的长度
 public void ReadMode(FCSerialize ar, int nStart, int nSize)
 {
 }
Ejemplo n.º 12
0
 public void  WriteTo(FCSerialize ar)
 {
     ar.ProtobufWrite(value, 1, PB_ZipType.PB_Zip_Varint);
 }
Ejemplo n.º 13
0
    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);
            }
        }
    }