#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <locale.h>

#include "Map.h"
#include "Errors.h"

int main(int argc, char *argv[])
{
    int totalwords = 0;

    if (argc < 2) {
        Error("[WordCountMap] Usage: WordCountMap <input_file>");
    }

    setlocale(LC_ALL, "");

    for (int i = 1; i < argc; i++) {
        int fd_in = open(argv[i], O_RDONLY);
        int words;

        if (fd_in < 0) {
            Error("[WordCountMap] Error opening input file");
        }

        /*
         * En esta versión, la salida estándar del mapper estará redirigida
         * hacia la pipe común que comunica Map con Suffle.
         */
        words = map_process_file(fd_in, STDOUT_FILENO);
        totalwords += words;

        close(fd_in);
    }

    return totalwords;
}
