Commit a564a962 authored by Zhu Yong's avatar Zhu Yong
Browse files

add simple callback and handler

parent 75db8324
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import (
)

type Callback interface {
	Success()
	Failure()
	Done() bool
}
@@ -19,6 +20,10 @@ type SimpleCallback struct {
	done bool
}

func (c *SimpleCallback) Success() {
	c.done = true
}

func (c *SimpleCallback) Failure() {
	c.done = true
}
@@ -26,3 +31,29 @@ func (c *SimpleCallback) Failure() {
func (c *SimpleCallback) Done() bool {
	return c.done
}

type SimpleHandler struct {
	callback *Callback
}

func (h *SimpleHandler) Handle(cmd *kproto.Command, value []byte) error {
	if h.callback != nil {
		if cmd.Status != nil && cmd.Status.Code != nil {
			if cmd.GetStatus().GetCode() == kproto.Command_Status_SUCCESS {
				(*h.callback).Success()
			} else {
				(*h.callback).Failure()
			}
		}

	}
	return nil
}

func (h *SimpleHandler) Error() {

}

func (h *SimpleHandler) SetCallback(call *Callback) {
	h.callback = call
}