www.pudn.com > fanccMSNr.src.rar > MessengerListener.hpp
#pragma once
#include "User.hpp"
namespace poral {
class MessengerModel;
/**
* An interface for object that wish to be informed when MessengerModel
* changed.
*/
class MessengerListener {
public:
typedef enum {
/** Switches to connecting mode. */
CONNECTING,
/** Failed attempting to connect or keeping the connection up. */
CONNECTION_FAILED,
/** Connection reset by local host */
CONNECTION_CLOSED,
/** Connection reset because another client logged in */
CONNECTION_CLOSED_BY_OTHERS,
/** Connection reset because of server down */
CONNECTION_CLOSED_BY_SERVER,
/** Authentication failed */
AUTH_FAILED,
/** Connection newly established */
CONNECTED,
/** My status changed */
MY_STATUS_CHANGED,
/** My screenName changed */
MY_SCREEN_NAME_CHANGED,
} Event;
/**
* Notifies update event to listener. possible event enumerated in
* MessengerListener::Event.
*/
virtual void messengerUpdate(MessengerModel &model, Event event)=0;
typedef enum {
/** Another user adds you */
ADDS_YOU,
/** New user added in FL list */
ADDED,
/** User status changed */
STATUS_CHANGED,
BLOCKED,
UNBLOCKED,
LOGIN,
LOGOUT,
/** User removed from FL list */
REMOVED,
} UserEvent;
/**
* Notifies that new user income or status of user has been changed.
*/
virtual void userUpdate(const User &user, UserEvent event)=0;
/**
* Requests new chatter view, which should listen to given ChatterModel.
*/
virtual void chatterViewRequested(ChatterModel &model)=0;
};
}