# -*- coding: utf-8 -*-
# Licensed under the MIT license
# http://opensource.org/licenses/mit-license.php
# Copyright 2006-2008, Frank Scholz <coherence@beebits.net>
[docs]class ConnectionManagerClient:
def __init__(self, service):
self.service = service
self.namespace = service.get_type()
self.url = service.get_control_url()
self.service.client = self
self.service.subscribe()
# def __del__(self):
# # print('ConnectionManagerClient deleted')
# pass
[docs] def connection_manager_id(self):
return f'{self.service.device.get_id()}/{self.service.get_id()}'
[docs] def remove(self):
self.service.remove()
self.service = None
self.namespace = None
self.url = None
del self
[docs] def subscribe_for_variable(self, var_name, callback, signal=False):
self.service.subscribe_for_variable(var_name, instance=0,
callback=callback, signal=signal)
[docs] def get_protocol_info(self):
action = self.service.get_action('GetProtocolInfo')
return action.call()
[docs] def prepare_for_connection(self, remote_protocol_info,
peer_connection_manager, peer_connection_id,
direction):
action = self.service.get_action('PrepareForConnection')
if action: # optional
return action.call(RemoteProtocolInfo=remote_protocol_info,
PeerConnectionManager=peer_connection_manager,
PeerConnectionID=peer_connection_id,
Direction=direction)
return None
[docs] def connection_complete(self, connection_id):
action = self.service.get_action('ConnectionComplete')
if action: # optional
return action.call(ConnectionID=connection_id)
return None
[docs] def get_current_connection_ids(self):
action = self.service.get_action('GetCurrentConnectionIDs')
return action.call()
[docs] def get_current_connection_info(self, connection_id):
action = self.service.get_action('GetCurrentConnectionInfo')
return action.call(ConnectionID=connection_id)