#!/usr/bin/env python

import network_interface
import module

class Network():
    
    def __init__(self, logger):
        self.interfaces = []
        self.module_list = module.ModuleList()
        self.logger = logger
        
    def add_interface(self, interface):
        self.interfaces.append(interface)
        
    def load_interfaces(self):
        #TODO: Load interfaces from config file
        pass
    
    def get_interface(self, interface_name):
        for interface in self.interfaces:
            if interface.interface_name == interface_name:
                return interface
    
    def start_interface(self, interface_name):
        print("Network: start interface " + interface_name)
        #TODO: Start interface
        for interface in self.interfaces:
            if interface.interface_name == interface_name:
                interface.start()
    
    def start_all_interfaces(self):
        print("Network: start all interfaces")
        for interface in self.interfaces:
            interface.start()
    
    def send_message(self, message):
        module = self.module_list.lookup_module(message.module_uuid)
        if not module == None:
            module.interface.send_message(message)
        else:
            print("Could not find module " + str(message.module_uuid))
    
    def process_message(self, message):
        print("Network: process message")
        self.module_list.lookup_module(message.module_uuid).receive_message()
    
