package syncdb import ( "basic.com/valib/logger.git" "encoding/json" ) type UserDelegate struct { } // NodeMeta is used to retrieve meta-data about the current node // when broadcasting an alive message. It's length is limited to // the given byte size. This metadata is available in the Node structure. func (d *UserDelegate) NodeMeta(limit int) []byte{ return []byte{} } // NotifyMsg is called when a user-data message is received. // Care should be taken that this method does not block, since doing // so would block the entire UDP packet receive loop. Additionally, the byte // slice may be modified after the call returns, so it should be copied if needed func (d *UserDelegate) NotifyMsg(msg []byte) { recvMsg := msg logger.Info("UserDelegate NotifyMsg.len:",len(recvMsg)) QueryTcpResponseChan <- msg var dumpSqls []string err := json.Unmarshal(recvMsg, &dumpSqls) if err == nil { logger.Debug("dumpSqls:", dumpSqls) } else { logger.Error("UserDelete unmarshal msg to dumpSqls err:",err) } } // GetBroadcasts is called when user data messages can be broadcast. // It can return a list of buffers to send. Each buffer should assume an // overhead as provided with a limit on the total byte size allowed. // The total byte size of the resulting data to send must not exceed // the limit. Care should be taken that this method does not block, // since doing so would block the entire UDP packet receive loop. func (d *UserDelegate) GetBroadcasts(overhead, limit int) [][]byte { return [][]byte{} } // LocalState is used for a TCP Push/Pull. This is sent to // the remote side in addition to the membership information. Any // data can be sent here. See MergeRemoteState as well. The `join` // boolean indicates this is for a join instead of a push/pull. func (d *UserDelegate) LocalState(join bool) []byte { return []byte{} } // MergeRemoteState is invoked after a TCP Push/Pull. This is the // state received from the remote side and is the result of the // remote side's LocalState call. The 'join' // boolean indicates this is for a join instead of a push/pull. func (d *UserDelegate) MergeRemoteState(buf []byte, join bool) { }