From bcb704366cb5e333a626c18c308c7e0448a8e69f Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kopete/protocols/irc/libkirc/kircentity.h | 128 ++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 kopete/protocols/irc/libkirc/kircentity.h (limited to 'kopete/protocols/irc/libkirc/kircentity.h') diff --git a/kopete/protocols/irc/libkirc/kircentity.h b/kopete/protocols/irc/libkirc/kircentity.h new file mode 100644 index 00000000..c9336439 --- /dev/null +++ b/kopete/protocols/irc/libkirc/kircentity.h @@ -0,0 +1,128 @@ +/* + kircentity.h - IRC Client + + Copyright (c) 2004 by Michel Hermier + + Kopete (c) 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 KIRCENTITY_H +#define KIRCENTITY_H + +#include +#include +#include + +#include +#include +#include +#include + +namespace KIRC +{ + +class Engine; + +class Entity + : public QObject, + public KShared +{ + Q_OBJECT + +public: + typedef enum Type + { + Unknown, + Server, + Channel, + Service, + User + }; + + Entity(const QString &name, const Type type = Unknown); + virtual ~Entity(); + + QString name() const; + QString host() const; + + KIRC::Entity::Type type() const; + KIRC::Entity::Type guessType(); + static KIRC::Entity::Type guessType(const QString &name); + + // FIXME: Remove these is* functions ... They are duplicate with the ::guessType(const QString&) + inline static bool isUser( const QString &s ) + { return sm_userRegExp.exactMatch(s); }; + inline bool isChannel() + { return isChannel(m_name); }; + inline static bool isChannel( const QString &s ) + { return sm_channelRegExp.exactMatch(s); }; + + QString userNick() const; + static QString userNick(const QString &s); + + QString userName() const; + static QString userName(const QString &s); + + QString userHost() const; + static QString userHost(const QString &s); + +signals: + void destroyed(KIRC::Entity *self); + +private: + + static QString userInfo(const QString &s, int num_cap); + + static const QRegExp sm_userRegExp; + static const QRegExp sm_userStrictRegExp; + static const QRegExp sm_channelRegExp; + + KIRC::Entity::Type m_type; + QString m_name; + + // peer ip address if the entity is a User. + QString m_address; +}; + +class EntityPtr + : public KSharedPtr +{ +public: + EntityPtr(KIRC::Entity *entity = 0) + : KSharedPtr(entity) + { } + + EntityPtr(const KIRC::EntityPtr &entity) + : KSharedPtr(entity) + { } +}; + +class EntityPtrList + : public QValueList +{ +public: + EntityPtrList() + { } + + EntityPtrList(const EntityPtr &entity) + { + append(entity); + } + + EntityPtrList(const QValueList &list) + : QValueList(list) + { } +}; + +} + +#endif -- cgit v1.2.1