33#include <QtCore/qobject.h>
34#include <QtCore/qmetatype.h>
35#include <QtCore/qstringlist.h>
36#include <QtCore/qscopedpointer.h>
41class IrcNetworkPrivate;
43class IRC_CORE_EXPORT IrcNetwork :
public QObject
47 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
48 Q_PROPERTY(QStringList modes READ modes NOTIFY modesChanged)
49 Q_PROPERTY(QStringList prefixes READ prefixes NOTIFY prefixesChanged)
50 Q_PROPERTY(QStringList channelTypes READ channelTypes NOTIFY channelTypesChanged)
51 Q_PROPERTY(QStringList statusPrefixes READ statusPrefixes NOTIFY statusPrefixesChanged)
52 Q_PROPERTY(QStringList availableCapabilities READ availableCapabilities NOTIFY availableCapabilitiesChanged)
53 Q_PROPERTY(QStringList requestedCapabilities READ requestedCapabilities WRITE setRequestedCapabilities NOTIFY requestedCapabilitiesChanged)
54 Q_PROPERTY(QStringList activeCapabilities READ activeCapabilities NOTIFY activeCapabilitiesChanged)
55 Q_PROPERTY(
bool skipCapabilityValidation READ skipCapabilityValidation WRITE setSkipCapabilityValidation NOTIFY skipCapabilityValidationChanged)
60 ~IrcNetwork()
override;
66 QStringList modes()
const;
67 QStringList prefixes()
const;
69 Q_INVOKABLE QString
modeToPrefix(
const QString& mode)
const;
70 Q_INVOKABLE QString
prefixToMode(
const QString& prefix)
const;
72 QStringList channelTypes()
const;
73 QStringList statusPrefixes()
const;
75 Q_INVOKABLE
bool isChannel(
const QString& name)
const;
84 Q_DECLARE_FLAGS(ModeTypes, ModeType)
86 Q_INVOKABLE QStringList channelModes(IrcNetwork::ModeTypes types)
const;
101 Q_INVOKABLE
int modeLimit(
const QString& mode)
const;
102 Q_INVOKABLE
int channelLimit(
const QString& type)
const;
103 Q_INVOKABLE
int targetLimit(
const QString& command)
const;
105 QStringList availableCapabilities()
const;
106 QStringList requestedCapabilities()
const;
107 QStringList activeCapabilities()
const;
108 bool skipCapabilityValidation()
const;
110 Q_INVOKABLE
bool hasCapability(
const QString& capability)
const;
111 Q_INVOKABLE
bool isCapable(
const QString& capability)
const;
114 bool requestCapability(
const QString& capability);
115 bool requestCapabilities(
const QStringList& capabilities);
116 void setRequestedCapabilities(
const QStringList& capabilities);
117 void setSkipCapabilityValidation(
bool skip);
121 void nameChanged(
const QString& name);
122 void modesChanged(
const QStringList& modes);
123 void prefixesChanged(
const QStringList& prefixes);
124 void channelTypesChanged(
const QStringList& types);
125 void statusPrefixesChanged(
const QStringList& prefixes);
126 void availableCapabilitiesChanged(
const QStringList& capabilities);
127 void requestedCapabilitiesChanged(
const QStringList& capabilities);
128 void activeCapabilitiesChanged(
const QStringList& capabilities);
129 void skipCapabilityValidationChanged(
bool skip);
133 friend class IrcProtocol;
134 friend class IrcConnection;
135 explicit IrcNetwork(IrcConnection* connection);
137 QScopedPointer<IrcNetworkPrivate> d_ptr;
138 Q_DECLARE_PRIVATE(IrcNetwork)
139 Q_DISABLE_COPY(IrcNetwork)
142#ifndef QT_NO_DEBUG_STREAM
145IRC_CORE_EXPORT QDebug operator<<(QDebug debug, IrcNetwork::ModeTypes types);
149Q_DECLARE_OPERATORS_FOR_FLAGS(IrcNetwork::ModeTypes)
153Q_DECLARE_METATYPE(IRC_PREPEND_NAMESPACE(
IrcNetwork*))
Provides means to establish a connection to an IRC server.
Definition ircconnection.h:49
IrcNetwork * network() const
Definition ircconnection.cpp:1327
Provides network information and capability management.
Definition ircnetwork.h:44
Q_INVOKABLE QString prefixToMode(const QString &prefix) const
Definition ircnetwork.cpp:440
Q_INVOKABLE bool isChannel(const QString &name) const
Definition ircnetwork.cpp:499
bool initialized
Definition ircnetwork.h:46
ModeType
Definition ircnetwork.h:77
@ TypeB
Type B modes.
Definition ircnetwork.h:79
@ TypeA
Type A modes.
Definition ircnetwork.h:78
@ TypeC
Type C modes.
Definition ircnetwork.h:80
@ TypeD
Type D modes.
Definition ircnetwork.h:81
@ AllTypes
All type modes.
Definition ircnetwork.h:82
Q_INVOKABLE QString modeToPrefix(const QString &mode) const
Definition ircnetwork.cpp:429
Limit
Definition ircnetwork.h:88
@ KickReasonLength
The maximum kick reason length.
Definition ircnetwork.h:93
@ ModeCount
The maximum number of channel modes allowed per mode command.
Definition ircnetwork.h:95
@ NickLength
The maximum nick name length.
Definition ircnetwork.h:89
@ AwayReasonLength
The maximum away reason length.
Definition ircnetwork.h:94
@ TopicLength
The maximum channel topic length.
Definition ircnetwork.h:91
@ ChannelLength
The maximum channel name length.
Definition ircnetwork.h:90
@ MonitorCount
The maximum amount of targets a client may have in their monitor list.
Definition ircnetwork.h:96
@ MessageLength
The maximum message length.
Definition ircnetwork.h:92
void requestingCapabilities()