All pastes #743502 Raw Edit

Untitled

public text v1 · immutable
·published 2007-10-20 14:28 UTC
rendered paste body
namespace QtTapioca {

class Avatar;
class ContactBasePrivate;
class Handle;

class Q_DECL_EXPORT ContactBase: public ChannelTarget {
    Q_OBJECT
    Q_DECLARE_PRIVATE(ContactBase)
    Q_ENUMS(Presence)
    Q_ENUMS(Capability)

public:
    enum Presence {
        Offline = 1,
        Available,
        Away,
        XA,
        Hidden,
        Busy
    };
    enum Capability {
        None  = 0x00,
        Text  = 0x01,
        Audio = 0x02,
        Video = 0x03,
        All   = 0xFF
    };

    ~ContactBase();

    void requestAvatar();
    QString currentAvatarToken();
    Presence presence() const;
    QString presenceMessage() const;
    QString alias() const;
    QList<Capability> capabilities() const;

    bool operator==(const ContactBase &info) const;

Q_SIGNALS:
    void avatarReceived(QtTapioca::ContactBase *contactBase, QtTapioca::Avatar *avatar);
    void avatarUpdated(QtTapioca::ContactBase *contactBase, const QString &newToken);
    void presenceUpdated(QtTapioca::ContactBase *contactBase, QtTapioca::ContactBase::Presence presence, const QString &presenceMessage);
    void aliasChanged(QtTapioca::ContactBase *contactBase, const QString &alias);
    void capabilitiesChanged(QtTapioca::ContactBase *contactBase, QtTapioca::ContactBase::Capability capabilities);




namespace QtTapioca {

class ContactPrivate;

class Q_DECL_EXPORT Contact: public ContactBase {
    Q_OBJECT
    Q_DECLARE_PRIVATE(Contact)
    Q_ENUMS(SubscriptionStatus)
    Q_ENUMS(AuthorizationStatus)

public:
    enum SubscriptionStatus {
        NotSubscribed = 0,
        RemotePending,
        Subscribed
    };

    enum AuthorizationStatus {
        NonExistent = 0,
        LocalPending,
        Authorized
    };

    ~Contact();

    SubscriptionStatus subscriptionStatus() const;
    AuthorizationStatus authorizationStatus() const;
    void subscribe(bool value);
    void authorize(bool value);
    void hideFrom(bool value);
    bool hidingFrom() const;
    void block(bool value);
    bool isBlocked() const;

Q_SIGNALS:
    void subscriptionStatusChanged(QtTapioca::Contact::SubscriptionStatus status);
    void authorizationStatusChanged(QtTapioca::Contact::AuthorizationStatus status);
    void hideFromStatusChanged(bool status);
    void blockStatusChanged(bool status);