// SPDX-FileCopyrightText: 2010 Manjeet Dahiya // SPDX-FileCopyrightText: 2017 Niels Ole Salscheider // SPDX-FileCopyrightText: 2019 Linus Jahn // // SPDX-License-Identifier: LGPL-2.1-or-later #ifndef QXMPPGLOBAL_H #define QXMPPGLOBAL_H #include #define QXMPP_BUILD_SHARED @QXMPP_BUILD_SHARED@ #if QXMPP_BUILD_SHARED # if defined(QXMPP_BUILD) # define QXMPP_EXPORT Q_DECL_EXPORT # else # define QXMPP_EXPORT Q_DECL_IMPORT # endif #else # define QXMPP_EXPORT #endif #define QXMPP_AUTOTEST_EXPORT /// /// This macro expands a numeric value of the form 0xMMNNPP (MM = /// major, NN = minor, PP = patch) that specifies QXmpp's version /// number. For example, if you compile your application against /// QXmpp 1.2.3, the QXMPP_VERSION macro will expand to 0x010203. /// /// You can use QXMPP_VERSION to use the latest QXmpp features where /// available. /// #define QXMPP_VERSION QT_VERSION_CHECK(@PROJECT_VERSION_MAJOR@, @PROJECT_VERSION_MINOR@, @PROJECT_VERSION_PATCH@) /// /// Returns the version of QXmpp used at compile time as a string. /// inline QLatin1String QXmppVersion() { return QLatin1String("@PROJECT_VERSION@"); } // This sets which deprecated functions should still be usable // It works exactly like QT_DISABLE_DEPRECATED_BEFORE #ifndef QXMPP_DISABLE_DEPRECATED_BEFORE # define QXMPP_DISABLE_DEPRECATED_BEFORE 0x0 #endif // This works exactly like QT_DEPRECATED_SINCE, but checks QXMPP_DISABLE_DEPRECATED_BEFORE instead. #define QXMPP_DEPRECATED_SINCE(major, minor) (QT_VERSION_CHECK(major, minor, 0) > QXMPP_DISABLE_DEPRECATED_BEFORE) // workaround for Qt < 5.12 #ifndef Q_DECL_ENUMERATOR_DEPRECATED_X #define Q_DECL_ENUMERATOR_DEPRECATED_X(msg) #endif #ifndef QT_WARNING_DISABLE_DEPRECATED #define QT_WARNING_DISABLE_DEPRECATED #endif /// /// \namespace QXmpp /// /// Contains global functions and enumerations. /// /// \since QXmpp 1.5 /// namespace QXmpp { /// /// Parsing/serialization mode when using Stanza Content Encryption. /// /// \sa \xep{0420, Stanza Content Encryption} /// /// \since QXmpp 1.5 /// enum SceMode : uint8_t { SceAll, ///< Processes all known elements. ScePublic, ///< Only processes 'public' elements (e.g. needed for routing). SceSensitive, ///< Only processes sensitive elements that should be encrypted. }; /// /// Checks whether a mode is enabled. /// /// When an SceMode is given you can use this to check whether Public or Private /// elements are enabled. /// /// \since QXmpp 1.5 /// inline constexpr bool operator&(SceMode mode1, SceMode mode2) { return mode1 == SceAll || mode1 == mode2; } /// /// An empty struct indicating success in results. /// /// \since QXmpp 1.5 /// struct Success { }; } #endif // QXMPPGLOBAL_H