def __init__(self, interface_name):
        EncryptableWirelessInterface.__init__(self, interface_name)
        self.__async_manager = AsyncManager()
    
	def scan(self, finished_callback):
        ''' Performs a scan. Scanning is done asynchronously. '''
        def _do_scan(abort_if_needed, self):
            return EncryptableWirelessInterface._do_scan(self)
        def finish_up(result):
            print 'scan finished', result
            self.networks = result
            finished_callback()
        self.__async_manager.run(_do_scan, finish_up, self)
    
	def connect(self, finished_callback):
        ''' Attempts to connect. Connecting is done asynchronously.'''
        def _do_connect(abort_if_needed, interface, network):
            print 'connecting...'
            print interface
            print network
            import time
            while True:
                time.sleep(10)
                print 'in connecting thread...'
                abort_if_needed()
            print 'done connecting'
        def finish_up(result):
            finished_callback()
        self.__async_manager.run(_do_connect, finish_up, self,                                                     self.current_network,                                                     name='connect')
    
	def cancel_connection_attempt(self):
        ''' Cancel the current attempt to connect to the network. '''
        self.__async_manager.stop('connect')
 def __init__(self, interface_name):
     EncryptableWirelessInterface.__init__(self, interface_name)
     self.__async_manager = AsyncManager()
 def _do_scan(abort_if_needed, self):
     return EncryptableWirelessInterface._do_scan(self)