gloox
1.0
|
#include <registration.h>
Classes | |
class | Query |
A wrapping class for the XEP-0077 <query> element. More... |
Public Types | |
enum | fieldEnum |
Public Member Functions | |
Registration (ClientBase *parent, const JID &to) | |
Registration (ClientBase *parent) | |
virtual | ~Registration () |
void | fetchRegistrationFields () |
bool | createAccount (int fields, const RegistrationFields &values) |
void | createAccount (DataForm *form) |
void | removeAccount () |
void | changePassword (const std::string &username, const std::string &password) |
void | registerRegistrationHandler (RegistrationHandler *rh) |
void | removeRegistrationHandler () |
virtual bool | handleIq (const IQ &iq) |
virtual void | handleIqID (const IQ &iq, int context) |
Public Member Functions inherited from IqHandler | |
virtual | ~IqHandler () |
This class is an implementation of XEP-0077 (In-Band Registration).
Derive your object from RegistrationHandler and implement the virtual functions offered by that interface. Then use it like this:
In RegistrationHandler::handleRegistrationFields() you should check which information the server requires to open a new account. You might not always get away with just username and password. Then call createAccount() with a filled-in RegistrationFields and an int
representing the bit-wise ORed fields you want to have included in the registration attempt. For your convenience you can use the 'fields' argument of handleRegistrationFields(). ;) It's your responsibility to make sure at least those fields the server requested are filled in.
Check tests/register_test.cpp
for an example.
Definition at line 92 of file registration.h.
enum fieldEnum |
The possible fields of a XEP-0077 account registration.
Definition at line 99 of file registration.h.
Registration | ( | ClientBase * | parent, |
const JID & | to | ||
) |
Constructor.
parent | The ClientBase which is used for establishing a connection. |
to | The server or service to authenticate with. If empty the currently connected server will be used. |
Definition at line 219 of file registration.cpp.
Registration | ( | ClientBase * | parent | ) |
Constructor. Registration will be attempted with the ClientBase's connected host.
parent | The ClientBase which is used for establishing a connection. |
Definition at line 225 of file registration.cpp.
|
virtual |
Virtual destructor.
Definition at line 240 of file registration.cpp.
void changePassword | ( | const std::string & | username, |
const std::string & | password | ||
) |
Tells the server to change the password for the current account.
username | The username to change the password for. You might want to use Client::username() to get the current prepped username. |
password | The new password. |
Definition at line 293 of file registration.cpp.
bool createAccount | ( | int | fields, |
const RegistrationFields & | values | ||
) |
Attempts to register an account with the given credentials. Only the fields OR'ed in fields
will be sent. This can only be called with an unauthenticated parent (Client).
fields | The fields to use to generate the registration request. OR'ed fieldEnum values. |
values | The struct contains the values which shall be used for the registration. |
Definition at line 260 of file registration.cpp.
void createAccount | ( | DataForm * | form | ) |
Attempts to register an account with the given credentials. This can only be called with an unauthenticated parent (Client).
form | The DataForm containing the registration credentials. |
Definition at line 273 of file registration.cpp.
void fetchRegistrationFields | ( | ) |
Use this function to request the registration fields the server requires. The required fields are returned asynchronously to the object registered as RegistrationHandler by calling RegistrationHandler::handleRegistrationFields().
Definition at line 250 of file registration.cpp.
|
inlinevirtual |
Reimplement this function if you want to be notified about incoming IQs.
iq | The complete IQ stanza. |
Implements IqHandler.
Definition at line 310 of file registration.h.
|
virtual |
Reimplement this function if you want to be notified about incoming IQs with a specific value of the id
attribute. You have to enable tracking of those IDs using Client::trackID(). This is usually useful for IDs that generate a positive reply, i.e. <iq type='result' id='reg'/> where a namespace filter wouldn't work.
iq | The complete IQ stanza. |
context | A value to restore context, stored with ClientBase::trackID(). |
Implements IqHandler.
Definition at line 315 of file registration.cpp.
void registerRegistrationHandler | ( | RegistrationHandler * | rh | ) |
Registers the given rh
as RegistrationHandler. Only one handler is possible at a time.
rh | The RegistrationHandler to register. |
Definition at line 305 of file registration.cpp.
void removeAccount | ( | ) |
Tells the server to remove the currently authenticated account from the server.
Definition at line 283 of file registration.cpp.
void removeRegistrationHandler | ( | ) |
Un-registers the current RegistrationHandler.
Definition at line 310 of file registration.cpp.