Documentation
¶
Index ¶
- Constants
- Variables
- func ListEvents() []string
- func PushEvent(eventName string, values ...interface{})
- func RegisterEvent(pushMode PushMode, eventNames ...string) (err error)
- func Subscribe(eventName string, subscriber *Subscriber) (err error)
- func Unsubscribe(eventName string, subscriberIds ...string) (err error)
- func UnsubscribeAll(eventName string) (err error)
- type ClassicEventCenter
- func (p *ClassicEventCenter) ListEvents() (events []string)
- func (p *ClassicEventCenter) Name() string
- func (p *ClassicEventCenter) PushEvent(eventName string, values ...interface{})
- func (p *ClassicEventCenter) RegisterEvent(pushMode PushMode, eventNames ...string) (err error)
- func (p *ClassicEventCenter) Subscribe(eventName string, subscriber *Subscriber) (err error)
- func (p *ClassicEventCenter) Unsubscribe(eventName string, subscriberNames ...string) (err error)
- func (p *ClassicEventCenter) UnsubscribeAll(eventName string) (err error)
- type EventCenter
- type PushMode
- type Subscriber
- type SubscriberGroup
- func (p *SubscriberGroup) AddSubscriber(subscribers ...*Subscriber) (err error)
- func (p *SubscriberGroup) ClearSubscriber()
- func (p *SubscriberGroup) GetSubscriber(subscriberIds ...string) (subscriber []*Subscriber, err error)
- func (p *SubscriberGroup) PushEvent(eventName string, values ...interface{})
- func (p *SubscriberGroup) RemoveSubscriber(subscriberIds ...string) (err error)
- func (p *SubscriberGroup) SubscriberNameList() (subscriberNameList []string, err error)
- type SubscriberHandler
- type Subscribers
Constants ¶
View Source
const ( SequencyMode PushMode = 1 SequencyAndWaitMode = 2 ConcurrencyMode = 3 ConcurrencyAndWaitMode = 4 )
View Source
const EVENT_CENTER_ERR_NS = "EVENT_CENTER"
Variables ¶
View Source
var ( ERR_SUBSCRIBER_NOT_EXIST = errors.TN(EVENT_CENTER_ERR_NS, 1, "subscriber {{.id}} not exist") ERR_COULD_NOT_GET_ANONYMOUS_SUBSCRIBER = errors.TN(EVENT_CENTER_ERR_NS, 2, "could not get subscriber anonymous by name") ERR_INVALIDATE_INDEX_RANGE = errors.TN(EVENT_CENTER_ERR_NS, 3, "invalidate index range") ERR_SUBSCRIBER_ID_IS_EMPTY = errors.TN(EVENT_CENTER_ERR_NS, 4, "subscriber id is empty") ERR_SUBSCRIBER_HANDLER_IS_NIL = errors.TN(EVENT_CENTER_ERR_NS, 5, "subscriber handler is nil, index: {{.index}}, name: {{.id}}") ERR_SUBSCRIBER_ID_GENERATE_FAILED = errors.TN(EVENT_CENTER_ERR_NS, 6, "generate subscriber id failed, err: {{.err}}") ERR_SUBSCRIBER_IS_NIL = errors.TN(EVENT_CENTER_ERR_NS, 7, "subscriber is nil") ERR_EVENT_ALREADY_REGISTERED = errors.TN(EVENT_CENTER_ERR_NS, 8, "event already registered, name: {{.name}}") ERR_EVENT_NAME_IS_EMPTY = errors.TN(EVENT_CENTER_ERR_NS, 9, "event name is empty") ERR_EVENT_NOT_EXIST = errors.TN(EVENT_CENTER_ERR_NS, 10, "event not exist, name: {{.name}}") ERR_EVENT_CENTER_NAME_IS_EMPTY = errors.TN(EVENT_CENTER_ERR_NS, 11, "event center name is empty") )
Functions ¶
func ListEvents ¶
func ListEvents() []string
func RegisterEvent ¶
func Subscribe ¶
func Subscribe(eventName string, subscriber *Subscriber) (err error)
func Unsubscribe ¶
func UnsubscribeAll ¶
Types ¶
type ClassicEventCenter ¶
type ClassicEventCenter struct {
// contains filtered or unexported fields
}
func (*ClassicEventCenter) ListEvents ¶
func (p *ClassicEventCenter) ListEvents() (events []string)
func (*ClassicEventCenter) Name ¶
func (p *ClassicEventCenter) Name() string
func (*ClassicEventCenter) PushEvent ¶
func (p *ClassicEventCenter) PushEvent(eventName string, values ...interface{})
func (*ClassicEventCenter) RegisterEvent ¶
func (p *ClassicEventCenter) RegisterEvent(pushMode PushMode, eventNames ...string) (err error)
func (*ClassicEventCenter) Subscribe ¶
func (p *ClassicEventCenter) Subscribe(eventName string, subscriber *Subscriber) (err error)
func (*ClassicEventCenter) Unsubscribe ¶
func (p *ClassicEventCenter) Unsubscribe(eventName string, subscriberNames ...string) (err error)
func (*ClassicEventCenter) UnsubscribeAll ¶
func (p *ClassicEventCenter) UnsubscribeAll(eventName string) (err error)
type EventCenter ¶
type EventCenter interface {
Name() string
RegisterEvent(pushMode PushMode, eventNames ...string) (err error)
Subscribe(eventName string, subscriber *Subscriber) (err error)
Unsubscribe(eventName string, subscriberIds ...string) (err error)
UnsubscribeAll(eventName string) (err error)
PushEvent(eventName string, values ...interface{})
ListEvents() []string
}
func NewClassicEventCenter ¶
func NewClassicEventCenter(name string) (eventCenter EventCenter)
type Subscriber ¶
type Subscriber struct {
Handler SubscriberHandler
Weight int64
// contains filtered or unexported fields
}
func NewSubscriber ¶
func NewSubscriber(handler SubscriberHandler) *Subscriber
func (*Subscriber) Id ¶
func (p *Subscriber) Id() string
func (*Subscriber) SetWeight ¶
func (p *Subscriber) SetWeight(weight int64) *Subscriber
type SubscriberGroup ¶
type SubscriberGroup struct {
// contains filtered or unexported fields
}
func NewSubscriberGroup ¶
func NewSubscriberGroup(pushMode PushMode) *SubscriberGroup
func (*SubscriberGroup) AddSubscriber ¶
func (p *SubscriberGroup) AddSubscriber(subscribers ...*Subscriber) (err error)
func (*SubscriberGroup) ClearSubscriber ¶
func (p *SubscriberGroup) ClearSubscriber()
func (*SubscriberGroup) GetSubscriber ¶
func (p *SubscriberGroup) GetSubscriber(subscriberIds ...string) (subscriber []*Subscriber, err error)
func (*SubscriberGroup) PushEvent ¶
func (p *SubscriberGroup) PushEvent(eventName string, values ...interface{})
func (*SubscriberGroup) RemoveSubscriber ¶
func (p *SubscriberGroup) RemoveSubscriber(subscriberIds ...string) (err error)
func (*SubscriberGroup) SubscriberNameList ¶
func (p *SubscriberGroup) SubscriberNameList() (subscriberNameList []string, err error)
type SubscriberHandler ¶
type SubscriberHandler func(eventName string, values ...interface{})
type Subscribers ¶
type Subscribers []*Subscriber
func (Subscribers) Len ¶
func (p Subscribers) Len() int
func (Subscribers) Less ¶
func (p Subscribers) Less(i, j int) bool
func (Subscribers) Swap ¶
func (p Subscribers) Swap(i, j int)
Click to show internal directories.
Click to hide internal directories.