class BinlogListener:
    
    def __init__(self,master_info):
        self.__master_info=master_info;
        self.__data = ''

    def start(self):
        self.connector = BinlogConnector(self.__master_info)
        self.connector.connect()
        BinlogProcessor.Init(self.__master_info['name'],self.__master_info['position'],self.__master_info['index'])

    def get_event(self):
        while True:
            Data = BinlogProcessor.Recv(self.connector.get_socket_fd());
            if(Data == -1):
                return;
            if Data == 0:
                raise Exception(0,"Lost Connection.")
            Data = Data[1:]
            self.__data += Data
            Ret = BinlogProcessor.Process(self.__data)
            print Ret
            self.__data = self.__data[Ret[1]:]
            if Ret[0] == 1:
                return Ret[2]

    def end(self):
        BinlogProcessor.DeInit()
        return