Example #1
0
 def __init__(self, **kwargs):
     kwargs['ParentEmissionThread'] = None
     self.IsParentEmissionThread = kwargs.get('IsParentEmissionThread', False)
     thread_id = setID(kwargs.get('thread_id'))
     if thread_id in _THREADS:
         newid = '__'.join([thread_id, setID(None)])
         self.LOG.warning('thread_id %s already exists using %s' % (thread_id, newid))
         thread_id = newid
     _THREADS[thread_id] = self
     self.AllowedEmissionThreads = set()
     self.AllowedEmissionThreads |= set(kwargs.get('AllowedEmissionThreads', []))
     self.AllowedEmissionThreads.add(thread_id)
     threading.Thread.__init__(self, name=thread_id)
     OSCBaseObject.__init__(self, **kwargs)
     self._thread_id = thread_id
     self._insertion_lock = Lock()
     self.Events = {}
     timed_events = []
     
     for cls in iterbases(self, 'OSCBaseObject'):
         if not hasattr(cls, '_Events'):
             continue
         for key in cls._Events.iterkeys():
             e = self.Properties[key]
             self.Events[key] = e
             if e.wait_timeout is not None:
                 timed_events.append(e.name)
     self._threaded_calls_idle = True
     timed_events.reverse()
     self.timed_events = timed_events
     self._threaded_calls_queue = collections.deque()
     self._timed_calls_queue = TimeQueue()
     self.disable_threaded_call_waits = kwargs.get('disable_threaded_call_waits', False)
Example #2
0
 def __init__(self, **kwargs):
     UserDict.UserDict.__init__(self)
     self._indexed_items = {}
     self.deserialize_callback = kwargs.get('deserialize_callback')
     self.parent_obj = kwargs.get('parent_obj')
     self.child_class = kwargs.get('child_class')
     self.allow_index_resort = kwargs.get('allow_index_resort', False)
     if self.child_class == '__self__':
         self.child_class = self.parent_obj.__class__
     self.send_child_updates_to_osc = kwargs.get(
         'send_child_updates_to_osc', False)
     self.updating_child_from_osc = False
     name = kwargs.get('name')
     if name:
         kwargs.setdefault('osc_address', name)
     OSCBaseObject.__init__(self, **kwargs)
     self.register_signal('child_added', 'child_removed',
                          'child_index_changed', 'child_update')
     if 'deserialize' not in kwargs:
         self.name = kwargs.get('name')
         self.ignore_index = kwargs.get('ignore_index', False)
     if self.send_child_updates_to_osc:
         self.add_osc_handler(
             callbacks={'child-update': self._on_osc_child_update})
     self.bind(child_update=self._ChildGroup_on_own_child_update)
Example #3
0
 def __new__(*args, **kwargs):
     events_by_cls = {}
     props_by_cls = {}
     cls = args[0]
     if cls != BaseThread:
         while issubclass(cls, BaseThread):
             d = {}
             p = {}
             events = cls.__dict__.get('_Events')
             if events is None:
                 cls = cls.__bases__[0]
                 continue
             props = cls.__dict__.get('_Properties', {})
             for key, val in events.iteritems():
                 e_kwargs = val.copy()
                 e_kwargs.setdefault('default', False)
                 additional_kwargs = e_kwargs.get(
                     'additional_property_kwargs', {})
                 additional_kwargs['wait_timeout'] = e_kwargs.get(
                     'wait_timeout')
                 e_kwargs['additional_property_kwargs'] = additional_kwargs
                 e_kwargs['ObjPropertyClass'] = Event
                 props[key] = e_kwargs
             setattr(cls, '_Properties', props)
             cls = cls.__bases__[0]
     return OSCBaseObject.__new__(*args, **kwargs)
Example #4
0
 def __init__(self, **kwargs):
     UserDict.UserDict.__init__(self)
     self._indexed_items = {}
     self.deserialize_callback = kwargs.get('deserialize_callback')
     self.parent_obj = kwargs.get('parent_obj')
     self.child_class = kwargs.get('child_class')
     self.allow_index_resort = kwargs.get('allow_index_resort', False)
     if self.child_class == '__self__':
         self.child_class = self.parent_obj.__class__
     self.send_child_updates_to_osc = kwargs.get('send_child_updates_to_osc', False)
     self.updating_child_from_osc = False
     name = kwargs.get('name')
     if name:
         kwargs.setdefault('osc_address', name)
     OSCBaseObject.__init__(self, **kwargs)
     self.register_signal('child_added', 'child_removed', 'child_index_changed', 'child_update')
     if 'deserialize' not in kwargs:
         self.name = kwargs.get('name')
         self.ignore_index = kwargs.get('ignore_index', False)
     if self.send_child_updates_to_osc:
         self.add_osc_handler(callbacks={'child-update':self._on_osc_child_update})
     self.bind(child_update=self._ChildGroup_on_own_child_update)
Example #5
0
    def __init__(self, **kwargs):
        kwargs['ParentEmissionThread'] = None
        self.IsParentEmissionThread = kwargs.get('IsParentEmissionThread',
                                                 False)
        thread_id = setID(kwargs.get('thread_id'))
        if thread_id in _THREADS:
            newid = '__'.join([thread_id, setID(None)])
            self.LOG.warning('thread_id %s already exists using %s' %
                             (thread_id, newid))
            thread_id = newid
        _THREADS[thread_id] = self
        self.AllowedEmissionThreads = set()
        self.AllowedEmissionThreads |= set(
            kwargs.get('AllowedEmissionThreads', []))
        self.AllowedEmissionThreads.add(thread_id)
        threading.Thread.__init__(self, name=thread_id)
        OSCBaseObject.__init__(self, **kwargs)
        self._thread_id = thread_id
        self._insertion_lock = Lock()
        self.Events = {}
        timed_events = []

        for cls in iterbases(self, 'OSCBaseObject'):
            if not hasattr(cls, '_Events'):
                continue
            for key in cls._Events.iterkeys():
                e = self.Properties[key]
                self.Events[key] = e
                if e.wait_timeout is not None:
                    timed_events.append(e.name)
        self._threaded_calls_idle = True
        timed_events.reverse()
        self.timed_events = timed_events
        self._threaded_calls_queue = collections.deque()
        self._timed_calls_queue = TimeQueue()
        self.disable_threaded_call_waits = kwargs.get(
            'disable_threaded_call_waits', False)
Example #6
0
 def __new__(*args, **kwargs):
     events_by_cls = {}
     props_by_cls = {}
     cls = args[0]
     if cls != BaseThread:
         while issubclass(cls, BaseThread):
             d = {}
             p = {}
             events = cls.__dict__.get('_Events')
             if events is None:
                 cls = cls.__bases__[0]
                 continue
             props = cls.__dict__.get('_Properties', {})
             for key, val in events.iteritems():
                 e_kwargs = val.copy()
                 e_kwargs.setdefault('default', False)
                 additional_kwargs = e_kwargs.get('additional_property_kwargs', {})
                 additional_kwargs['wait_timeout'] = e_kwargs.get('wait_timeout')
                 e_kwargs['additional_property_kwargs'] = additional_kwargs
                 e_kwargs['ObjPropertyClass'] = Event
                 props[key] = e_kwargs
             setattr(cls, '_Properties', props)
             cls = cls.__bases__[0]
     return OSCBaseObject.__new__(*args, **kwargs)