aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/rjeczalik/notify/tree.go
blob: cd6afd60d09f2790f83882eae718a21338f6eb20 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.

package notify

const buffer = 128

type tree interface {
    Watch(string, chan<- EventInfo, ...Event) error
    Stop(chan<- EventInfo)
    Close() error
}

func newTree() tree {
    c := make(chan EventInfo, buffer)
    w := newWatcher(c)
    if rw, ok := w.(recursiveWatcher); ok {
        return newRecursiveTree(rw, c)
    }
    return newNonrecursiveTree(w, c, make(chan EventInfo, buffer))
}