// RAINBOND, Application Management Platform // Copyright (C) 2014-2017 Goodrain Co., Ltd. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. For any non-GPL usage of Rainbond, // one or multiple Commercial Licenses authorized by Goodrain Co., Ltd. // must be obtained first. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . package watch // Interface can be implemented by anything that knows how to watch and report changes. type Interface interface { // Stops watching. Will close the channel returned by ResultChan(). Releases // any resources used by the watch. Stop() // Returns a chan which will receive all the events. If an error occurs // or Stop() is called, this channel will be closed, in which case the // watch should be completely cleaned up. ResultChan() <-chan Event } // EventType defines the possible types of events. type EventType string const ( Added EventType = "ADDED" Modified EventType = "MODIFIED" Deleted EventType = "DELETED" Error EventType = "ERROR" DefaultChanSize int32 = 100 ) // Event represents a single event to a watched resource. type Event struct { Type EventType Source *event Error Status } //GetKey GetKey func (e Event) GetKey() string { return e.Source.key } //GetValue GetValue func (e Event) GetValue() []byte { return e.Source.value } //GetValueString GetValueString func (e Event) GetValueString() string { return string(e.Source.value) } //GetPreValue GetPreValue func (e Event) GetPreValue() []byte { return e.Source.prevValue } //GetPreValueString GetPreValueString func (e Event) GetPreValueString() string { return string(e.Source.prevValue) }