1 Star 0 Fork 0

xingyp / cn-infra

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
sql_watcher_api.go 1.67 KB
一键复制 编辑 原始数据 按行查看 历史
Ondrej Fabry 提交于 2018-07-31 21:52 . Generic code cleanup
// Copyright (c) 2017 Cisco and/or its affiliates.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package sql
import "github.com/ligato/cn-infra/datasync"
// Watcher defines API for monitoring changes in a datastore.
type Watcher interface {
// Watch starts to monitor changes in a data store.
// Watch events will be delivered to the <callback>.
Watch(callback func(WatchResp), statement ...string) error
}
// WatchResp represents a notification about change.
// It is passed to the Watch callback.
type WatchResp interface {
// GetChangeType returns the type of the change.
GetChangeType() datasync.Op
// GetValue returns the changed value.
GetValue(outBinding interface{}) error
}
// ToChan TODO (not implemented yet)
func ToChan(respChan chan WatchResp, options ...interface{}) func(event WatchResp) {
return func(WatchResp) {
/*select {
case respChan <- resp:
case <-time.After(defaultOpTimeout):
log.Warn("Unable to deliver watch event before timeout.")
}
select {
case wresp := <-recvChan:
for _, ev := range wresp.Events {
handleWatchEvent(respChan, ev)
}
case <-closeCh:
log.WithField("key", key).Debug("Watch ended")
return
}*/
}
}
1
https://gitee.com/xingyp/cn-infra.git
git@gitee.com:xingyp/cn-infra.git
xingyp
cn-infra
cn-infra
v2.2.0

搜索帮助

53164aa7 5694891 3bd8fe86 5694891