00001 #ifndef PROTON_SASL_HPP
00002 #define PROTON_SASL_HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "./internal/export.hpp"
00026 #include "./internal/config.hpp"
00027 #include "./internal/object.hpp"
00028
00029 #include <proton/sasl.h>
00030
00031 #include <string>
00032
00035
00036 namespace proton {
00037
00039 class sasl {
00041 sasl(pn_sasl_t* s) : object_(s) {}
00043
00044 #if PN_CPP_HAS_DELETED_FUNCTIONS
00045 sasl() = delete;
00046 #else
00047 sasl();
00048 #endif
00049
00050 public:
00052 enum outcome {
00053 NONE = PN_SASL_NONE,
00054 OK = PN_SASL_OK,
00055 AUTH = PN_SASL_AUTH,
00056 SYS = PN_SASL_SYS,
00057 PERM = PN_SASL_PERM,
00058 TEMP = PN_SASL_TEMP
00059 };
00060
00062 PN_CPP_EXTERN enum outcome outcome() const;
00063
00065 PN_CPP_EXTERN std::string user() const;
00066
00068 PN_CPP_EXTERN std::string mech() const;
00069
00071 private:
00072 pn_sasl_t* const object_;
00073
00074 friend class transport;
00076 };
00077
00078 }
00079
00080 #endif // PROTON_SASL_HPP