Esempio n. 1
0
class LocalGC(object):
    """ A version of the global context which can be intialized to
    provide local paths """
    
    def __init__(self, local = '/'):
        self.gc = GC()
        self.local = local
    def __getitem__(self, name):
        return self.getProvider(name)
    def __getattr__(self, attr):
        if attr == 'providers':
            return self.gc.providers
    def registerProvider(self, provider):
        name = provider.getName()
        if name[0] != '/':
            name = self.local + name
        provider.setName(name)
        self.gc.registerProvider(provider)
    def registerThread(self, name, thread):
        self.gc.registerThread(name, thread)
    def getProvider(self, name):
        try:
            if name[0] != '/':
                name = self.local + name
            return self.gc.getProvider(name)
        except:
            print
            print "Provider by name: '" + name + "' not found in global or local context"
            print
            raise