2014-04-02 21:40:35 +08:00
|
|
|
#pragma once
|
2014-01-04 19:45:04 +08:00
|
|
|
/**
|
|
|
|
|
* The login information to access a server
|
|
|
|
|
*
|
|
|
|
|
* This class combines login, password and vhost
|
|
|
|
|
*
|
|
|
|
|
* @copyright 2014 Copernica BV
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Set up namespace
|
|
|
|
|
*/
|
|
|
|
|
namespace AMQP {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class definition
|
|
|
|
|
*/
|
|
|
|
|
class Login
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
/**
|
|
|
|
|
* The username
|
|
|
|
|
* @var string
|
|
|
|
|
*/
|
|
|
|
|
std::string _user;
|
2014-01-04 21:11:06 +08:00
|
|
|
|
2014-01-04 19:45:04 +08:00
|
|
|
/**
|
|
|
|
|
* The password
|
|
|
|
|
* @var string
|
|
|
|
|
*/
|
|
|
|
|
std::string _password;
|
2014-01-04 21:11:06 +08:00
|
|
|
|
|
|
|
|
|
2014-01-04 19:45:04 +08:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
/**
|
|
|
|
|
* Constructor
|
|
|
|
|
* @param user
|
|
|
|
|
* @param password
|
|
|
|
|
*/
|
|
|
|
|
Login(const std::string &user, const std::string &password) :
|
2014-01-04 21:11:06 +08:00
|
|
|
_user(user), _password(password) {}
|
|
|
|
|
|
2014-01-27 04:02:23 +08:00
|
|
|
/**
|
|
|
|
|
* Copy constructor
|
|
|
|
|
* @param login
|
|
|
|
|
*/
|
|
|
|
|
Login(const Login &login) :
|
|
|
|
|
_user(login._user), _password(login._password) {}
|
|
|
|
|
|
2014-01-04 19:45:04 +08:00
|
|
|
/**
|
|
|
|
|
* Constructor
|
|
|
|
|
*/
|
|
|
|
|
Login() :
|
2014-01-04 21:11:06 +08:00
|
|
|
_user("guest"), _password("guest") {}
|
2014-01-04 19:45:04 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Destructor
|
|
|
|
|
*/
|
|
|
|
|
virtual ~Login() {}
|
|
|
|
|
|
2014-02-04 22:57:25 +08:00
|
|
|
/**
|
|
|
|
|
* Retrieve the user name
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
const std::string &user() const
|
|
|
|
|
{
|
|
|
|
|
return _user;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieve the password
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
const std::string &password() const
|
|
|
|
|
{
|
|
|
|
|
return _password;
|
|
|
|
|
}
|
|
|
|
|
|
2014-01-04 19:45:04 +08:00
|
|
|
/**
|
|
|
|
|
* String representation in SASL PLAIN mode
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
2014-08-19 21:00:20 +08:00
|
|
|
std::string saslPlain() const
|
2014-01-04 19:45:04 +08:00
|
|
|
{
|
|
|
|
|
// we need an initial string
|
|
|
|
|
std::string result("\0", 1);
|
|
|
|
|
|
|
|
|
|
// append other elements
|
|
|
|
|
return result.append(_user).append("\0",1).append(_password);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* End of namespace
|
|
|
|
|
*/
|
|
|
|
|
}
|
|
|
|
|
|