package notify import ( "context" "time" ) type Client interface { SetDefaultLink(func(message *Message)) SetLink(string, func(*Message)) send(msg TransferMsg) (WaitMsg, error) sendWait(msg TransferMsg, timeout time.Duration) (Message, error) Send(key string, value MsgVal) error SendWait(key string, value MsgVal, timeout time.Duration) (Message, error) SendCtx(ctx context.Context, key string, value MsgVal) (Message, error) Reply(m Message, value MsgVal) error ExchangeKey(newKey []byte) error Connect(network string, addr string) error ConnectTimeout(network string, addr string, timeout time.Duration) error SkipExchangeKey() bool SetSkipExchangeKey(bool) GetMsgEn() func([]byte, []byte) []byte SetMsgEn(func([]byte, []byte) []byte) GetMsgDe() func([]byte, []byte) []byte SetMsgDe(func([]byte, []byte) []byte) Heartbeat() HeartbeatPeroid() time.Duration SetHeartbeatPeroid(duration time.Duration) GetSecretKey() []byte SetSecretKey(key []byte) RsaPubKey() []byte SetRsaPubKey([]byte) Stop() error StopMonitorChan() <-chan struct{} Status() Status GetSequenceEn() func(interface{}) ([]byte, error) SetSequenceEn(func(interface{}) ([]byte, error)) GetSequenceDe() func([]byte) (interface{}, error) SetSequenceDe(func([]byte) (interface{}, error)) SendObjCtx(ctx context.Context, key string, val interface{}) (Message, error) SendObj(key string, val interface{}) error }