From 2415fee0ed5cbd6a1092090f69e115a3cfb1d9ff Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Tue, 13 Jun 2006 13:32:49 -0400 Subject: [PATCH] Add util to generate unique ids. --- sugar/presence/Group.py | 25 +++---------------------- sugar/shell/activity.py | 8 ++++---- sugar/shell/shell.py | 13 ++++--------- 3 files changed, 11 insertions(+), 35 deletions(-) diff --git a/sugar/presence/Group.py b/sugar/presence/Group.py index a0527d33..2376978d 100644 --- a/sugar/presence/Group.py +++ b/sugar/presence/Group.py @@ -1,8 +1,6 @@ import Service -import sha -import binascii -import time +import sugar.util def is_group_service_type(stype): """Return True if the service type matches a group @@ -11,21 +9,6 @@ def is_group_service_type(stype): return True return False - -def _stringify_sha(sha_hash): - """Convert binary sha1 hash data into printable characters.""" - print_sha = "" - for char in sha_hash: - print_sha = print_sha + binascii.b2a_hex(char) - return print_sha - -def _sha_data(data): - """sha1 hash some bytes.""" - sha_hash = sha.new() - sha_hash.update(data) - return sha_hash.digest() - - __GROUP_NAME_TAG = "Name" __GROUP_RESOURCE_TAG = "Resource" @@ -37,10 +20,8 @@ def new_group_service(group_name, resource): raise ValueError("group resource must be a valid string.") # Create a randomized service type - data_string = "%s%s%s%s" % (time.time(), random.randint(10000, 100000), \ - group_name, resource) - hash_string = _stringify_sha(_sha_data(data_string)) - stype = "_%s_group_olpc._udp" % hash_string + data = "%s%s" % (group_name, resource) + stype = "_%s_group_olpc._udp" % sugar.util.unique_id(data) properties = {__GROUP_NAME_TAG: group_name, __GROUP_RESOURCE_TAG: resource } owner_nick = "" diff --git a/sugar/shell/activity.py b/sugar/shell/activity.py index 25184446..84296bd8 100644 --- a/sugar/shell/activity.py +++ b/sugar/shell/activity.py @@ -69,7 +69,7 @@ class ActivityDbusService(dbus.service.Object): SHELL_SERVICE_NAME + ".ActivityContainer") self._activity_id = self._activity_container.add_activity("") - self._object_path = SHELL_SERVICE_PATH + "/Activities/%d" % self._activity_id + self._object_path = SHELL_SERVICE_PATH + "/Activities/%s" % self._activity_id print "ActivityDbusService: object path is '%s'" % self._object_path @@ -77,8 +77,8 @@ class ActivityDbusService(dbus.service.Object): SHELL_SERVICE_NAME + ".ActivityHost") # Now let us register a peer service so the Shell can poke it - self._peer_service_name = ACTIVITY_SERVICE_NAME + "%d" % self._activity_id - self._peer_object_path = ACTIVITY_SERVICE_PATH + "/%d" % self._activity_id + self._peer_service_name = ACTIVITY_SERVICE_NAME + "%s" % self._activity_id + self._peer_object_path = ACTIVITY_SERVICE_PATH + "/%s" % self._activity_id self._service = dbus.service.BusName(self._peer_service_name, bus=self._bus) dbus.service.Object.__init__(self, self._service, self._peer_object_path) @@ -169,7 +169,7 @@ class Activity(object): self._activity_object = activity_object self._activity_id = activity_id self._window_id = self._activity_object.get_host_xembed_id() - print "Activity: XEMBED window ID is %d" % self._window_id + print "Activity: XEMBED window ID is %s" % self._window_id self._plug = gtk.Plug(self._window_id) self.on_connected_to_shell() diff --git a/sugar/shell/shell.py b/sugar/shell/shell.py index 5ee355d8..72b3ad3d 100755 --- a/sugar/shell/shell.py +++ b/sugar/shell/shell.py @@ -7,26 +7,21 @@ pygtk.require('2.0') import gtk import pango +import sugar.util from sugar.shell.PresenceWindow import PresenceWindow from sugar.shell.Owner import ShellOwner -activity_counter = 0 - class ActivityHost(dbus.service.Object): def __init__(self, activity_container, activity_name): - global activity_counter - self.activity_name = activity_name self.ellipsize_tab = False self.activity_container = activity_container - self.activity_id = activity_counter - activity_counter += 1 + self.activity_id = sugar.util.unique_id() - self.dbus_object_name = "/com/redhat/Sugar/Shell/Activities/%d" % self.activity_id - #print "object name = %s"%self.dbus_object_name + self.dbus_object_name = "/com/redhat/Sugar/Shell/Activities/%s" % self.activity_id dbus.service.Object.__init__(self, activity_container.service, self.dbus_object_name) self.socket = gtk.Socket() @@ -290,7 +285,7 @@ class ActivityContainer(dbus.service.Object): @dbus.service.method("com.redhat.Sugar.Shell.ActivityContainer", \ in_signature="s", \ - out_signature="i", \ + out_signature="s", \ sender_keyword="sender") def add_activity(self, activity_name, sender): #print "hello world, activity_name = '%s', sender = '%s'"%(activity_name, sender)