#ifndef __ZIMTCLIENT_H__ #define __ZIMTCLIENT_H__ #include "zimtcontact.h" #include "zimtevents.h" enum imcapabilities { imCanNotify = 2, imCanSendURL = 4, imCanSendFile = 8, imCanSendSMS = 16, imCanFetchAwayMsg = 32, imCanSetAwayMsg = 64, imCanChangeNick = 128, imChangableServer = 256, imCanChangePassword = 512, imCanUpdateDetails = 1024, imNoPasswords = 2048, imControlableVisibility = 4096 }; // Abstract class class zimtclient { protected: int capabilities; public: zimtclient(); virtual void init(); // Initialize Client virtual void connect(); // Connect to IM net virtual void disconnect(); // Disconnect from IM neto virtual void exectimers(); // ??? virtual void main(); // main loop virtual void getsockets(fd_set &rfds, fd_set &wfds, fd_set &efds, int &hsocket) const = 0; // ??? virtual bool isoursocket(fd_set &rfds, fd_set &wfds, fd_set &efds) const; // ??? virtual bool online() const; // Is online? virtual bool logged() const; // Is logged? virtual bool isconnecting() const; // Is trying to connect? virtual bool send(const zimtevent &ev); // Send, message, SMS, URL etc. virtual void sendnewuser(const zimtcontact &c); // Add a new user and retrieve info virtual void removeuser(const zimtcontact &ic); // Remove user from list virtual void setstatus(zimtstatus st); // Set Status (Online, offline, etc.) virtual zimtstatus getstatus() const; // Retrieve Status virtual void requestinfo(const zimtcontact &c); // Fetch infos for user virtual void requestawaymsg(const zimtcontact &c); // Fetch away message int getcapabilities() const; // What's that IM capable to do? }; #endif // __ZIMTCLIENT_H__