private void processFileRequest(Sim_event ev) {
        if (ev == null) {
            return;
        }
        Object[] data = (Object[]) ev.get_data();
        if (data == null) {
            return;
        }

        String filename = (String) data[0]; // get file name
        int req_source = ((Integer) data[1]).intValue(); // get sender

        int ToS = 0; // a priority number for sending over the network
        if (data.length == 3) {
            ToS = ((Integer) data[2]).intValue(); // get ToS
        }

        File file = getFile(filename); // get the file
        int size = 0;
        if (file != null) {
            size = file.getSizeInByte();
        } else { // if file is not found
            size = DataGridTags.PKT_SIZE;
        }
        super.sim_schedule(outputPort_, 0, DataGridTags.FILE_DELIVERY,
                new IO_data(file, size, req_source, ToS));
    }