diff options
author | Remko Tronçon <git@el-tramo.be> | 2012-12-13 13:35:53 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2013-04-06 20:22:02 (GMT) |
commit | 9eff25182d1bea576d1910200909384ce79d90fe (patch) | |
tree | f5dadbce5fa2c37c34fcc6bb32550e6930abce14 /Swiften/IDN/IDNConverter.h | |
parent | e9f2f7675b11ce36b3f66250156b78fae524a351 (diff) | |
download | swift-9eff25182d1bea576d1910200909384ce79d90fe.zip swift-9eff25182d1bea576d1910200909384ce79d90fe.tar.bz2 |
Make IDN implementation abstract.
Change-Id: I4c64f954ddeca7147d729b8be07237baa15c1795
Diffstat (limited to 'Swiften/IDN/IDNConverter.h')
-rw-r--r-- | Swiften/IDN/IDNConverter.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Swiften/IDN/IDNConverter.h b/Swiften/IDN/IDNConverter.h new file mode 100644 index 0000000..c55d969 --- /dev/null +++ b/Swiften/IDN/IDNConverter.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2013 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <string> +#include <Swiften/Base/API.h> +#include <Swiften/Base/SafeByteArray.h> + +namespace Swift { + class SWIFTEN_API IDNConverter { + public: + virtual ~IDNConverter(); + + enum StringPrepProfile { + NamePrep, + XMPPNodePrep, + XMPPResourcePrep, + SASLPrep + }; + + virtual std::string getStringPrepared(const std::string& s, StringPrepProfile profile) = 0; + virtual SafeByteArray getStringPrepared(const SafeByteArray& s, StringPrepProfile profile) = 0; + + // Thread-safe + virtual std::string getIDNAEncoded(const std::string& s) = 0; + }; +} |