def __init__(self, servers=None, paths=None, orb=None, filter=[],
            dynamic=False, *args, **kwargs):
        '''Constructor.

        @param servers A list of servers to parse into the tree.
        @param paths A list of paths from which to get servers to parse
                     into the tree.
        @param orb If not None, the specified ORB will be used. If None,
                   the tree object will create its own ORB.
        @param filter A list of paths (each a list of strings).
                      If not empty, then only objects in the paths will
                      be parsed, to increase speed. If the tail of a
                      path is a directory, that entire directory will be
                      parsed. Directories that are not the tail will
                      only have the next entry in the path parsed.
        @param dynamic Use observers to keep the tree up-to-date. For example,
                       when a component changes state, an observer can notify
                       RTCTree so that the corresponding object in the tree can
                       be updated. Currently this only affects components.
        @raises NonRootPathError

        '''
        super(RTCTree, self).__init__()
        self._root = TreeNode('/', None, dynamic=dynamic)
        self._create_orb(orb)
        self._dynamic = dynamic
        if servers:
            self._parse_name_servers(servers, filter=filter, dynamic=dynamic)
        if paths:
            if type(paths[0]) == str:
                if paths[0][0] != '/':
                    raise exceptions.NonRootPathError(paths[0])
                if len(paths) > 1:
                    self.add_name_server(paths[1], filter=filter,
                            dynamic=dynamic)
            else:
                for p in paths:
                    if p[0] != '/':
                        raise exceptions.NonRootPathError(p)
                    if len(p) > 1:
                        self.add_name_server(p[1], filter=filter,
                                dynamic=dynamic)
            self.load_servers_from_env(filter=filter, dynamic=dynamic)
        if not servers and not paths:
            self.load_servers_from_env(filter=filter, dynamic=dynamic)
def __init__ ( self , servers = None , paths = None , orb = None , filter = [ ] , dynamic = False , * args , ** kwargs ) : super ( RTCTree , self ) . __init__ ( ) self . _root = TreeNode ( '/' , None , dynamic = dynamic ) self . _create_orb ( orb ) self . _dynamic = dynamic if servers : self . _parse_name_servers ( servers , filter = filter , dynamic = dynamic ) if paths : if type ( paths [ 0 ] ) == str : if paths [ 0 ] [ 0 ] != '/' : raise exceptions . NonRootPathError ( paths [ 0 ] ) if len ( paths ) > 1 : self . add_name_server ( paths [ 1 ] , filter = filter , dynamic = dynamic ) else : for p in paths : if p [ 0 ] != '/' : raise exceptions . NonRootPathError ( p ) if len ( p ) > 1 : self . add_name_server ( p [ 1 ] , filter = filter , dynamic = dynamic ) self . load_servers_from_env ( filter = filter , dynamic = dynamic ) if not servers and not paths : self . load_servers_from_env ( filter = filter , dynamic = dynamic )
Constructor.

        @param servers A list of servers to parse into the tree.
        @param paths A list of paths from which to get servers to parse
                     into the tree.
        @param orb If not None, the specified ORB will be used. If None,
                   the tree object will create its own ORB.
        @param filter A list of paths (each a list of strings).
                      If not empty, then only objects in the paths will
                      be parsed, to increase speed. If the tail of a
                      path is a directory, that entire directory will be
                      parsed. Directories that are not the tail will
                      only have the next entry in the path parsed.
        @param dynamic Use observers to keep the tree up-to-date. For example,
                       when a component changes state, an observer can notify
                       RTCTree so that the corresponding object in the tree can
                       be updated. Currently this only affects components.
        @raises NonRootPathError