aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppClient.h
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2021-07-06 22:01:33 +0200
committerLinus Jahn <lnj@kaidan.im>2021-07-23 21:40:02 +0200
commit222575aaa68ba1696da84e7dd53708959f8b611b (patch)
treeebcc27833bbbccb64c794a7daf1a8a669b5fe937 /src/client/QXmppClient.h
parent9e59f99fd0cfef5e0fa528fe5f1c58c1ef3ad4b4 (diff)
downloadqxmpp-222575aaa68ba1696da84e7dd53708959f8b611b.tar.gz
QXmppClient: Add addNewExtension<T>()
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);