import socket
import random
import time
from codis import  enviaTroballa, repTroballa, enviaOK, repOK

def observador(host, port, ftrobats):
    """:param str host: adreça servidor central 
       :param int port: nombre de port del servidor 
       :param str ftrobats: nom del fitxer que conté
       la llista de troballes de l'observador a enviar al
       servidor.

       Envia les troballes de `ftrobats` al servidor central. L'enviament
       es pautat en pauses de 0.001 a 0.009 segons. Un cop enviades
       totes les quantitats, tanca la connexió.

    """
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host, port))
    f = open(ftrobats, 'r')
    for t in f:
        n_nius, ocell, zona = t.split(',')
        enviaTroballa(s, (n_nius, ocell, zona))
        if  not repOK(s):
            raise RuntimeError("error protocol amb la central")
        time.sleep(0.001*random.randint(1,9))
    f.close()
    s.close()

if __name__ == "__main__":
        import sys
        observador('localhost', 50007, sys.argv[1])      
