Documentation ¶
Index ¶
- type IQProcessor
- type Module
- type Modules
- func (m *Modules) AllModules() []Module
- func (m *Modules) IsEnabled(moduleName string) bool
- func (m *Modules) IsModuleIQ(iq *stravaganza.IQ) bool
- func (m *Modules) ProcessIQ(ctx context.Context, iq *stravaganza.IQ) error
- func (m *Modules) Start(ctx context.Context) error
- func (m *Modules) Stop(ctx context.Context) error
- func (m *Modules) StreamFeatures(ctx context.Context, domain string) ([]stravaganza.Element, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IQProcessor ¶
type IQProcessor interface { Module // MatchesNamespace tells whether iq child namespace corresponds to this module. // The serverTarget parameter will be true in case iq target is a server entity. MatchesNamespace(namespace string, serverTarget bool) bool // ProcessIQ will be invoked whenever iq stanza should be processed by this module. ProcessIQ(ctx context.Context, iq *stravaganza.IQ) error }
IQProcessor represents an iq processor module type.
type Module ¶
type Module interface { // Name returns specific module name. Name() string // StreamFeature returns module stream feature element. StreamFeature(ctx context.Context, domain string) (stravaganza.Element, error) // ServerFeatures returns module server features. ServerFeatures(ctx context.Context) ([]string, error) // AccountFeatures returns module account features. AccountFeatures(ctx context.Context) ([]string, error) // Start starts module. Start(ctx context.Context) error // Stop stops module. Stop(ctx context.Context) error }
Module represents generic module interface.
type Modules ¶
type Modules struct {
// contains filtered or unexported fields
}
Modules is the global module hub.
func NewModules ¶
NewModules returns a new initialized Modules instance.
func (*Modules) AllModules ¶
AllModules returns all configured modules.
func (*Modules) IsModuleIQ ¶
IsModuleIQ returns true in case iq stanza should be handled by modules.
Click to show internal directories.
Click to hide internal directories.