PluginReceiveResult FileListTransfer::OnReceive(Packet *packet) { switch (packet->data[0]) { case ID_FILE_LIST_TRANSFER_HEADER: DecodeSetHeader(packet); return RR_STOP_PROCESSING_AND_DEALLOCATE; case ID_FILE_LIST_TRANSFER_FILE: DecodeFile(packet, true); return RR_STOP_PROCESSING_AND_DEALLOCATE; case ID_FILE_LIST_REFERENCE_PUSH: OnReferencePush(packet, true); return RR_STOP_PROCESSING_AND_DEALLOCATE; case ID_FILE_LIST_REFERENCE_PUSH_ACK: OnReferencePushAck(packet); return RR_STOP_PROCESSING_AND_DEALLOCATE; case ID_DOWNLOAD_PROGRESS: if (packet->length>sizeof(MessageID)+sizeof(unsigned int)*3) { if (packet->data[sizeof(MessageID)+sizeof(unsigned int)*3]==ID_FILE_LIST_TRANSFER_FILE) { DecodeFile(packet, false); return RR_STOP_PROCESSING_AND_DEALLOCATE; } if (packet->data[sizeof(MessageID)+sizeof(unsigned int)*3]==ID_FILE_LIST_REFERENCE_PUSH) { OnReferencePush(packet, false); return RR_STOP_PROCESSING_AND_DEALLOCATE; } } break; } return RR_CONTINUE_PROCESSING; }
PluginReceiveResult FileListTransfer::OnReceive(RakPeerInterface *peer, Packet *packet) { switch (packet->data[0]) { case ID_CONNECTION_LOST: case ID_DISCONNECTION_NOTIFICATION: RemoveReceiver(packet->playerId); break; case ID_FILE_LIST_TRANSFER_HEADER: DecodeSetHeader(packet); return RR_STOP_PROCESSING_AND_DEALLOCATE; case ID_FILE_LIST_TRANSFER_FILE: DecodeFile(packet); return RR_STOP_PROCESSING_AND_DEALLOCATE; } return RR_CONTINUE_PROCESSING; }