func NewZookeeperTreeCache(conn *zk.Conn, path string, events chan ZookeeperTreeCacheEvent, logger log.Logger) *ZookeeperTreeCache {
	tc := &ZookeeperTreeCache{
		conn:   conn,
		prefix: path,
		events: events,
		stop:   make(chan struct{}),

		logger: logger,
	}
	tc.head = &zookeeperTreeCacheNode{
		events:   make(chan zk.Event),
		children: map[string]*zookeeperTreeCacheNode{},
		stopped:  true,
	}
	go tc.loop(path)
	return tc
}
func NewZookeeperTreeCache(conn *zk.Conn, path string, events chan ZookeeperTreeCacheEvent, logger log.Logger) *ZookeeperTreeCache {
	tc := &ZookeeperTreeCache{
		conn:   conn,
		prefix: path,
		events: events,
		stop:   make(chan struct{}),

		logger: logger,
	}
	tc.head = &zookeeperTreeCacheNode{
		events:   make(chan zk.Event),
		children: map[string]*zookeeperTreeCacheNode{},
		stopped:  true,
	}
	go tc.loop(path)
	return tc
}
func NewZookeeperTreeCache ( conn * zk . Conn , path string , events chan ZookeeperTreeCacheEvent , logger log . Logger ) * ZookeeperTreeCache { tc := & ZookeeperTreeCache { conn : conn , prefix : path , events : events , stop : make ( chan struct { } ) , logger : logger , } tc . head = & zookeeperTreeCacheNode { events : make ( chan zk . Event ) , children : map [ string ] * zookeeperTreeCacheNode { } , stopped : true , } go tc . loop ( path ) return tc }
// NewZookeeperTreeCache creates a new ZookeeperTreeCache for a given path.
NewZookeeperTreeCache creates a new ZookeeperTreeCache for a given path .