[sugar] Singleton
Marco Pesenti Gritti
mpg
Sat Aug 26 07:59:06 EDT 2006
Hi,
we should probably settle on a consistent implementation for singletons.
This is what we have in the ps:
_ps = None
def get_instance():
global _ps
if not _ps:
_ps = PresenceService()
return _ps
and PresenceService.get_instance() to get it.
In the icon cache:
class IconCache(gobject.GObject):
__metaclass__ = GObjectSingletonMeta
using this from sugar.util
class GObjectSingletonMeta(gobject.GObjectMeta):
"""GObject Singleton Metaclass"""
def __init__(klass, name, bases, dict):
gobject.GObjectMeta.__init__(klass, name, bases, dict)
klass.__instance = None
def __call__(klass, *args, **kwargs):
if klass.__instance is None:
klass.__instance = gobject.GObjectMeta.__call__(klass,
*args, **kwargs)
return klass.__instance
and you can use the normal constructor.
Thoughts?
Marco
More information about the Sugar-devel
mailing list