def __init__(self, tube): ExportedGObject.__init__(self, tube, constants.DBUS_PATH) self.tube = tube self.idNotify = self.tube.add_signal_receiver(self._newRecdTubeCb, 'notifyBudsOfNewRecd', constants.DBUS_IFACE, path=constants.DBUS_PATH, sender_keyword='sender') self.idRequest = self.tube.add_signal_receiver( self._reqRecdTubeCb, 'requestRecdBits', constants.DBUS_IFACE, path=constants.DBUS_PATH, sender_keyword='sender') self.idBroadcast = self.tube.add_signal_receiver( self._getRecdTubeCb, 'broadcastRecdBits', constants.DBUS_IFACE, path=constants.DBUS_PATH, sender_keyword='sender', byte_arrays=True) self.idUnavailable = self.tube.add_signal_receiver( self._unavailableRecdTubeCb, 'unavailableRecd', constants.DBUS_IFACE, path=constants.DBUS_PATH, sender_keyword='sender')
def __init__(self, tube, initiator): ExportedGObject.__init__(self, tube, PATH) self.initiator = initiator self._tube = tube self.me = None self._tube.watch_participants(self._participant_changed_cb)
def __init__(self, tube, is_initiator, model): ExportedGObject.__init__(self, tube, PATH) self.tube = tube self.is_initiator = is_initiator self.members = [] self.entered = False self.model = model self.bus_name = None self.tube.watch_participants(self.participant_change_cb)
def __init__(self, tube, is_initiator, get_buddy, game): ExportedGObject.__init__(self, tube, PATH) self._tube = tube self.is_initiator = is_initiator self._get_buddy = get_buddy self.game = game self.ordered_bus_names = [] self.entered = False self._tube.watch_participants(self.participant_change_cb) self.files = {}
def __init__(self, tube, initiator, view): ExportedGObject.__init__(self, tube, PATH) self.initiator = initiator self._tube = tube self._entered = False self._slots = [] self._view = view self._view.connect('frame-changed', self._frame_changed_cb) self._tube.watch_participants(self._participant_change_cb)
def __init__(self, tube, is_initiator, chat): ExportedGObject.__init__(self, tube, PATH) self.is_initiator = is_initiator self.chat = chat self._tube = tube self._entered = False self._buddies = {} self._tube.watch_participants(self._participant_change_cb)
def __init__(self, bus, object_id, **kwargs): """Initialize the Buddy object bus -- connection to the D-Bus session bus object_id -- the buddy's unique identifier, either based on their key-ID or JID kwargs -- used to initialize the object's properties constructs a DBUS "object path" from the BUDDY_PATH and object_id """ self._object_id = object_id self._object_path = dbus.ObjectPath(BUDDY_PATH + object_id) #: activity ID -> activity self._activities = {} self._activity_sigids = {} #: Telepathy plugin -> (handle, identifier e.g. JID) self._handles = {} self._awaiting = set(('alias', 'properties')) self._owner = False self._key = None self._icon = '' self._current_activity = '' self._current_activity_plugin = None self._nick = None self._color = None self._ip4_address = None self._tags = None _ALLOWED_INIT_PROPS = [_PROP_NICK, _PROP_KEY, _PROP_ICON, _PROP_CURACT, _PROP_COLOR, _PROP_IP4_ADDRESS, _PROP_TAGS] for (key, value) in kwargs.items(): if key not in _ALLOWED_INIT_PROPS: _logger.debug("Invalid init property '%s'; ignoring..." % key) del kwargs[key] # Set icon after superclass init, because it sends DBus and GObject # signals when set icon_data = None if kwargs.has_key(_PROP_ICON): icon_data = kwargs[_PROP_ICON] del kwargs[_PROP_ICON] ExportedGObject.__init__(self, bus, self._object_path, gobject_properties=kwargs) if icon_data is not None: self._icon = str(icon_data) self.IconChanged(self._icon)
def __init__(self): self._next_object_id = 0 # all Buddy objects # identifier -> Buddy, GC'd when no more refs exist self._buddies = WeakValueDictionary() # the online buddies for whom we know the full public key # base64 public key -> Buddy self._buddies_by_pubkey = {} # The online buddies (those who're available via some CM) # TP plugin -> (handle -> Buddy) self._handles_buddies = {} # activity id -> Activity self._activities_by_id = {} #: Tp plugin -> (handle -> Activity) self._activities_by_handle = {} #: Connection -> list of SignalMatch self._conn_matches = {} self._session_bus = dbus.SessionBus() self._session_bus.add_signal_receiver(self._connection_disconnected_cb, signal_name="Disconnected", dbus_interface="org.freedesktop.DBus") # Create the Owner object self._owner = self._create_owner() key = self._owner.props.key keyid = pubkey_to_keyid(key) self._buddies['keyid/' + keyid] = self._owner self._buddies_by_pubkey[key] = self._owner self._registry = ManagerRegistry() self._registry.LoadManagers() # Set up the Telepathy plugins self._plugins = [] debug_flags = set(environ.get('PRESENCE_SERVICE_DEBUG', '').split(',')) _logger.debug('Debug flags: %r', debug_flags) if 'disable-gabble' in debug_flags: self._server_plugin = None else: server = self._owner.get_server() if server and len(server): self._server_plugin = ServerPlugin(self._registry, self._owner) self._plugins.append(self._server_plugin) else: self._server_plugin = None if 'disable-salut' in debug_flags: self._ll_plugin = None else: self._ll_plugin = LinkLocalPlugin(self._registry, self._owner) self._plugins.append(self._ll_plugin) self._connected_plugins = set() for tp in self._plugins: self._handles_buddies[tp] = {} self._activities_by_handle[tp] = {} tp.connect('status', self._tp_status_cb) tp.connect('contacts-online', self._contacts_online) tp.connect('contacts-offline', self._contacts_offline) tp.connect('activity-invitation', self._activity_invitation) tp.connect('private-invitation', self._private_invitation) tp.connect('want-to-connect', self._want_to_connect) connection = tp.get_connection() if connection is not None: status = connection.GetStatus() self._tp_status_cb(tp, status, CONNECTION_STATUS_REASON_NONE_SPECIFIED) self._contacts_online_queue = [] ExportedGObject.__init__(self, self._session_bus, _PRESENCE_PATH) # for activation to work in a race-free way, we should really # export the bus name only after we export our initial object; # so this comes after the parent __init__ self._bus_name = dbus.service.BusName(_PRESENCE_SERVICE, bus=self._session_bus)