aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppClient.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/QXmppClient.h')
-rw-r--r--src/client/QXmppClient.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/client/QXmppClient.h b/src/client/QXmppClient.h
index 3337c5b1..a6502305 100644
--- a/src/client/QXmppClient.h
+++ b/src/client/QXmppClient.h
@@ -140,6 +140,14 @@ public:
~QXmppClient() override;
bool addExtension(QXmppClientExtension *extension);
+ template<typename T, typename... Args>
+ T *addNewExtension(Args... args)
+ {
+ // it's impossible that addExtension() returns false: ext is a new object
+ auto *ext = new T(args...);
+ addExtension(ext);
+ return ext;
+ }
bool insertExtension(int index, QXmppClientExtension *extension);
bool removeExtension(QXmppClientExtension *extension);