/* meanwhileaccount.h - meanwhile account Copyright (c) 2003-2004 by Sivaram Gottimukkala Copyright (c) 2005 by Jeremy Kerr Kopete (c) 2002-2004 by the Kopete developers ************************************************************************* * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ************************************************************************* */ #ifndef MEANWHILEACCOUNT_H #define MEANWHILEACCOUNT_H #include #include "meanwhileprotocol.h" #include "meanwhileplugin.h" class MeanwhileSession; /** * A class to handle a single Meanwhile Account. */ class MeanwhileAccount : public Kopete::PasswordedAccount { TQ_OBJECT public: /** * Create a new Meanwhile account * @param protocol The MeanwhileProtocol that this acccount is for * @param accountID The (meanwhile) account id of this account * @param name The name of this account */ MeanwhileAccount(MeanwhileProtocol *protocol, const TQString &accountID, const char *name = 0L); ~MeanwhileAccount(); virtual bool createContact(const TQString &contactId, Kopete::MetaContact *parentContact); virtual void connectWithPassword(const TQString &password); virtual void disconnect(); virtual void disconnect(Kopete::Account::DisconnectReason reason); virtual TDEActionMenu *actionMenu(); /** Get the server host name */ TQString getServerName(); /** Get the server port */ int getServerPort(); /** Set the server host name */ void setServerName(const TQString &server); /** Set the server port */ void setServerPort(int port); /** Provide an information plugin for this account */ void setPlugin(MeanwhilePlugin *plugin); /** Set the client identification parameters for the sametime connection */ void setClientID(int client, int major, int minor); /* returns true if custom IDs are in use, and populates the args */ bool getClientIDParams(int *clientID, int *verMajor, int *verMinor); /** Reset client identification parameters to their defaults */ void resetClientID(); MeanwhilePlugin *infoPlugin; /** * Save the current contact list to the server */ void syncContactsToServer(); /** * Get a reference to the meanwhile session object, if one exists */ MeanwhileSession *session(); /** * Get the meanwhile id for this account * @return The meanwhile ID for the account */ TQString meanwhileId() const; public slots: /** * Called by the session to notify that the state has changed */ void slotSessionStateChange(Kopete::OnlineStatus status); /** * Called by the session when a notification message has been received */ void slotServerNotification(const TQString &mesg); /** Reimplemented from Kopete::Account */ void setOnlineStatus(const Kopete::OnlineStatus& status, const TQString &reason = TQString()); void setAway(bool away, const TQString&reason = TQString()); private: /** Current online status */ Kopete::OnlineStatus status; /** A meanwhile session */ MeanwhileSession *m_session; /* The user id for this account */ TQString m_meanwhileId; }; #endif