// return 0 if error or next
        public UInt32 Receive_BattlePuList(UInt64 conid, UInt32 type, UInt16 totalSize, mln.EndianStream rStream)
        {
            UInt32 ofs = 0;

            switch (type)
            {
            case (Int32)BattlePuList_FuncID.ID_QUERYCONNECTBATTLEPULIST:     // 0
            {
                // ARGUMENTS
                // ARG 0 : UInt64 any_key
                UInt64 any_key;
                // BASIC TYPE
                rStream.get(out any_key);
                ofs += (8);
                // RECEIVE CALL
                Recv_QueryConnectBattlePuList(conid,
                                              any_key
                                              );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_QUERYCONNECTBATTLEPULISTRESULT:     // 1
            {
                // ARGUMENTS
                // ARG 0 : Byte num
                Byte num;
                // BASIC TYPE
                rStream.get(out num);
                ofs += (1);
                // RECEIVE CALL
                Recv_QueryConnectBattlePuListResult(conid,
                                                    num
                                                    );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_QUERYHEALTHCHECKBATTLEPULIST:     // 2
            {
                // ARGUMENTS
                // RECEIVE CALL
                Recv_QueryHealthCheckBattlePuList(conid
                                                  );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_QUERYHEALTHCHECKBATTLEPULISTRESULT:     // 3
            {
                // ARGUMENTS
                // RECEIVE CALL
                Recv_QueryHealthCheckBattlePuListResult(conid
                                                        );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_GETROOMLISTRESULT:     // 5
            {
                // ARGUMENTS
                // ARG 0 : BattleRoomInfo room_info
                UInt32 room_info_len;                                 // bin32 len
                rStream.get(out room_info_len);
                ofs += 4;
                BattleRoomInfo[] room_info = new BattleRoomInfo[room_info_len];
                for (UInt32 __ind = 0; __ind < room_info_len; __ind++)
                {
                    room_info[__ind] = new BattleRoomInfo();
                }
                // STRUCT TYPE
                for (UInt32 __ind = 0; __ind < room_info_len; __ind++)
                {
                    ofs += BattleRoomInfo.get(rStream, room_info[__ind]);
                }
                // RECEIVE CALL
                Recv_GetRoomListResult(conid,
                                       room_info, room_info_len
                                       );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_UPDATEROOMINFO:     // 6
            {
                // ARGUMENTS
                // RECEIVE CALL
                Recv_UpdateRoomInfo(conid
                                    );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_DELETEROOMINFO:     // 8
            {
                // ARGUMENTS
                // RECEIVE CALL
                Recv_DeleteRoomInfo(conid
                                    );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_APPOINTMENTBATTLERESULT:     // 11
            {
                // ARGUMENTS
                // ARG 0 : UInt64 matching_room_id
                UInt64 matching_room_id;
                // BASIC TYPE
                rStream.get(out matching_room_id);
                ofs += (8);
                // ARG 1 : BattlePuInfo battle_pu_info
                BattlePuInfo battle_pu_info = new BattlePuInfo();
                // STRUCT TYPE
                ofs += BattlePuInfo.get(rStream, battle_pu_info);
                // ARG 2 : UInt64 appointment_battle_pu_time
                UInt64 appointment_battle_pu_time;
                // BASIC TYPE
                rStream.get(out appointment_battle_pu_time);
                ofs += (8);
                // ARG 3 : Int32 result
                Int32 result;
                // BASIC TYPE
                rStream.get(out result);
                ofs += (4);
                // RECEIVE CALL
                Recv_AppointmentBattleResult(conid,
                                             matching_room_id,
                                             battle_pu_info,
                                             appointment_battle_pu_time,
                                             result
                                             );
                break;
            }

            case (Int32)BattlePuList_FuncID.ID_QUERYDISCONNECTBATTLEPULIST:     // 12
            {
                // ARGUMENTS
                // RECEIVE CALL
                Recv_QueryDisconnectBattlePuList(conid
                                                 );
                break;
            }
            }
            return(ofs);
        }