Compare commits
2 Commits
d8c2ef6f3b
...
7ce6703c5b
Author | SHA1 | Date | |
---|---|---|---|
7ce6703c5b | |||
37261cddbb |
@ -21,23 +21,28 @@ abstract class XmppManagerBase {
|
||||
}
|
||||
|
||||
/// Return the StanzaHandlers associated with this manager that deal with stanzas we
|
||||
/// send. These are run before the stanza is sent.
|
||||
/// send. These are run before the stanza is sent. The higher the value of the
|
||||
/// handler's priority, the earlier it is run.
|
||||
List<StanzaHandler> getOutgoingPreStanzaHandlers() => [];
|
||||
|
||||
/// Return the StanzaHandlers associated with this manager that deal with stanzas we
|
||||
/// send. These are run after the stanza is sent.
|
||||
/// send. These are run after the stanza is sent. The higher the value of the
|
||||
/// handler's priority, the earlier it is run.
|
||||
List<StanzaHandler> getOutgoingPostStanzaHandlers() => [];
|
||||
|
||||
/// Return the StanzaHandlers associated with this manager that deal with stanzas we
|
||||
/// receive.
|
||||
/// receive. The higher the value of the
|
||||
/// handler's priority, the earlier it is run.
|
||||
List<StanzaHandler> getIncomingStanzaHandlers() => [];
|
||||
|
||||
/// Return the StanzaHandlers associated with this manager that deal with stanza handlers
|
||||
/// that have to run before the main ones run. This is useful, for example, for OMEMO
|
||||
/// as we have to decrypt the stanza before we do anything else.
|
||||
/// as we have to decrypt the stanza before we do anything else. The higher the value
|
||||
/// of the handler's priority, the earlier it is run.
|
||||
List<StanzaHandler> getIncomingPreStanzaHandlers() => [];
|
||||
|
||||
/// Return the NonzaHandlers associated with this manager.
|
||||
/// Return the NonzaHandlers associated with this manager. The higher the value of the
|
||||
/// handler's priority, the earlier it is run.
|
||||
List<NonzaHandler> getNonzaHandlers() => [];
|
||||
|
||||
/// Return a list of features that should be included in a disco response.
|
||||
|
@ -5,7 +5,6 @@ import 'package:moxxmpp/src/stanza.dart';
|
||||
import 'package:moxxmpp/src/stringxml.dart';
|
||||
|
||||
abstract class Handler {
|
||||
|
||||
const Handler(this.matchStanzas, { this.nonzaTag, this.nonzaXmlns });
|
||||
final String? nonzaTag;
|
||||
final String? nonzaXmlns;
|
||||
@ -32,7 +31,6 @@ abstract class Handler {
|
||||
}
|
||||
|
||||
class NonzaHandler extends Handler {
|
||||
|
||||
NonzaHandler({
|
||||
required this.callback,
|
||||
String? nonzaTag,
|
||||
@ -46,7 +44,6 @@ class NonzaHandler extends Handler {
|
||||
}
|
||||
|
||||
class StanzaHandler extends Handler {
|
||||
|
||||
StanzaHandler({
|
||||
required this.callback,
|
||||
this.tagXmlns,
|
||||
|
@ -142,7 +142,7 @@ class StreamManagementManager extends XmppManagerBase {
|
||||
];
|
||||
|
||||
@override
|
||||
List<StanzaHandler> getIncomingStanzaHandlers() => [
|
||||
List<StanzaHandler> getIncomingPreStanzaHandlers() => [
|
||||
StanzaHandler(
|
||||
callback: _onServerStanzaReceived,
|
||||
priority: 9999,
|
||||
|
@ -4,7 +4,7 @@ import '../helpers/logging.dart';
|
||||
import '../helpers/xmpp.dart';
|
||||
|
||||
Future<void> runIncomingStanzaHandlers(StreamManagementManager man, Stanza stanza) async {
|
||||
for (final handler in man.getIncomingStanzaHandlers()) {
|
||||
for (final handler in man.getIncomingPreStanzaHandlers()) {
|
||||
if (handler.matches(stanza)) await handler.callback(stanza, StanzaHandlerData(false, false, null, stanza));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user