Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefaultSubscriber ¶
type DefaultSubscriber struct{}
func (DefaultSubscriber) OnMessage ¶
func (DefaultSubscriber) OnMessage(*Message)
func (DefaultSubscriber) OnQuit ¶
func (DefaultSubscriber) OnQuit()
type MessageBus ¶
type MessageBus interface {
// A subscriber register on s specific topic.
// When a message on this topic is published, the subscriber's OnMessage() is called.
Register(topic Topic, sub Subscriber)
// UnRegister unregister the subscriber from message bus.
UnRegister(topic Topic, sub Subscriber)
// Used to publish a message on this message bus to notify subscribers.
Publish(topic Topic, payload interface{})
// Used to publish a message on this message bus to notify subscribers.
// Safe mode, make sure the subscriber's OnMessage() is called with the order of a message on this topic is published.
PublishSafe(topic Topic, payload interface{})
// Used to publish a message on this message bus to notify subscribers.
// Sync mod, make sure all messages are completed sequentially.
PublishSync(topic Topic, payload interface{})
// Close the message bus, all publishes are ignored.
Close()
}
MessageBus provides a pub-sub interface for cross-module communication
func NewMessageBus ¶
func NewMessageBus() MessageBus
type Subscriber ¶
type Subscriber interface {
// When a message with topic A is published on the message bus,
// all the subscribers's OnMessage() methods of topic A are called.
OnMessage(*Message)
// When the message bus is shutting down,
OnQuit()
}
Subscriber should implement these methods,
type Topic ¶
type Topic int
const ( Invalid Topic = iota ProposedBlock VerifyBlock VerifyResult CommitBlock ProposeState TxPoolSignal BlockInfo ContractEventInfo // For Net Service SendConsensusMsg RecvConsensusMsg SendSyncBlockMsg RecvSyncBlockMsg SendTxPoolMsg RecvTxPoolMsg BuildProposal // The following are contractual events topics // ChainConfig BlockVerifier Blockchain net cert_ac pk_ac pwk_ac ChainConfig // net cert_ac CertManageCertsDelete CertManageCertsFreeze CertManageCertsUnfreeze CertManageCertsRevoke CertManageCertsAliasUpdate CertManageCertsAliasDelete // net pk_ac PubkeyManageAdd PubkeyManageDelete // For Consistent Engine SendConsistentMsg RecvConsistentMsg // For new transactions signal for maxbft ProposeBlock MaxbftEpochConf // solve random tx RwSetVerifyFailTxs )
Source Files
¶
- message_bus.go
- topic_const.go
- topic_string.go
Click to show internal directories.
Click to hide internal directories.