diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-04-04 12:05:19 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-04-05 11:24:54 +0200 |
| commit | fef64aee68706aac6b1d5a69c7e3503e9d2180cc (patch) | |
| tree | 09c3a1d52624799e64ba26e984e921779b7de1e9 /src/base/QXmppGlobal.h | |
| parent | a060a70cf6a815b18dc42ed76a3a577cc3ec14e2 (diff) | |
| download | qxmpp-fef64aee68706aac6b1d5a69c7e3503e9d2180cc.tar.gz | |
BuildConstants: Move non-build dependant constants into Global.h
Co-authored-by: Melvin Keskin <melvo@olomono.de>
Diffstat (limited to 'src/base/QXmppGlobal.h')
| -rw-r--r-- | src/base/QXmppGlobal.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/base/QXmppGlobal.h b/src/base/QXmppGlobal.h index d71037bd..2e403bd6 100644 --- a/src/base/QXmppGlobal.h +++ b/src/base/QXmppGlobal.h @@ -9,4 +9,80 @@ #include "QXmppBuildConstants.h" +#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 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 |
