43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
/*
|
|
* Copyright 2004 The WebRTC Project Authors. All rights reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef WEBRTC_LIBJINGLE_XMPP_SASLHANDLER_H_
|
|
#define WEBRTC_LIBJINGLE_XMPP_SASLHANDLER_H_
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace buzz {
|
|
|
|
class XmlElement;
|
|
class SaslMechanism;
|
|
|
|
// Creates mechanisms to deal with a given mechanism
|
|
class SaslHandler {
|
|
|
|
public:
|
|
|
|
// Intended to be subclassed
|
|
virtual ~SaslHandler() {}
|
|
|
|
// Should pick the best method according to this handler
|
|
// returns the empty string if none are suitable
|
|
virtual std::string ChooseBestSaslMechanism(const std::vector<std::string> & mechanisms, bool encrypted) = 0;
|
|
|
|
// Creates a SaslMechanism for the given mechanism name (you own it
|
|
// once you get it).
|
|
// If not handled, return NULL.
|
|
virtual SaslMechanism * CreateSaslMechanism(const std::string & mechanism) = 0;
|
|
};
|
|
|
|
}
|
|
|
|
#endif // WEBRTC_LIBJINGLE_XMPP_SASLHANDLER_H_
|