package handler import ( "time" "log" "udi/counter" ) type MessageT struct { Timestamp time.Time Topic string Payload string } type Handler interface { GetId() string Handle(MessageT) Lost(msg string, err error, message MessageT) S() F() } type CommonHandler struct { Id string } func (self *CommonHandler) S() { counter.SH(self.Id) } func (self *CommonHandler) F() { counter.FH(self.Id) } func (self *CommonHandler) GetId() string { return self.Id } func (self *CommonHandler) Lost(msg string, err error, message MessageT) { if err == nil { log.Printf("Error: %s, message %s is lost", msg, message) } else { log.Printf("Error: %s (%s), message %s is lost", msg, err, message) } self.F() }