Communi  1.1.0
A cross-platform IRC client library written with Qt 4
 All Classes Files Functions Enumerations Enumerator Properties Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Properties
IrcCommand Class Reference

The IrcCommand class provides the most common IRC commands. More...

#include <IrcCommand>

List of all members.

Public Types

enum  Type {
  Custom, Nick, Quit, Join,
  Part, Topic, Names, List,
  Invite, Kick, Mode, Message,
  Notice, CtcpAction, CtcpRequest, CtcpReply,
  Who, Whois, Whowas, Away,
  Quote
}

Public Member Functions

 IrcCommand (QObject *parent=0)
virtual ~IrcCommand ()
virtual QString toString () const

Static Public Member Functions

static Q_INVOKABLE IrcCommandcreateAway (const QString &reason=QString())
static Q_INVOKABLE IrcCommandcreateCtcpAction (const QString &target, const QString &action)
static Q_INVOKABLE IrcCommandcreateCtcpReply (const QString &target, const QString &reply)
static Q_INVOKABLE IrcCommandcreateCtcpRequest (const QString &target, const QString &request)
static Q_INVOKABLE IrcCommandcreateInvite (const QString &user, const QString &channel)
static Q_INVOKABLE IrcCommandcreateJoin (const QString &channel, const QString &key=QString())
static Q_INVOKABLE IrcCommandcreateKick (const QString &channel, const QString &user, const QString &reason=QString())
static Q_INVOKABLE IrcCommandcreateList (const QString &channel, const QString &server=QString())
static Q_INVOKABLE IrcCommandcreateMessage (const QString &target, const QString &message)
static Q_INVOKABLE IrcCommandcreateMode (const QString &target, const QString &mode, const QString &arg=QString())
static Q_INVOKABLE IrcCommandcreateNames (const QString &channel)
static Q_INVOKABLE IrcCommandcreateNick (const QString &nick)
static Q_INVOKABLE IrcCommandcreateNotice (const QString &target, const QString &message)
static Q_INVOKABLE IrcCommandcreatePart (const QString &channel, const QString &reason=QString())
static Q_INVOKABLE IrcCommandcreateQuit (const QString &reason=QString())
static Q_INVOKABLE IrcCommandcreateQuote (const QStringList &parameters)
static Q_INVOKABLE IrcCommandcreateTopic (const QString &channel, const QString &topic=QString())
static Q_INVOKABLE IrcCommandcreateWho (const QString &mask)
static Q_INVOKABLE IrcCommandcreateWhois (const QString &user)
static Q_INVOKABLE IrcCommandcreateWhowas (const QString &user)

Properties

QByteArray encoding
QStringList parameters
Type type

Detailed Description

The IrcCommand class provides the most common IRC commands.

The IrcCommand class supports the most common IRC commands out of the box, and can be extended for custom commands as well. See IrcCommand::Type for the list of built-in command types. IRC commands, as in IrcCommand instances, are sent to the IRC server via IrcSession::sendCommand().

Creating commands

It is recommended to create IrcCommand instances via static IrcCommand::createXxx() methods.

Warning:
IrcCommand instances must be allocated on the heap, since IrcSession::sendCommand() takes ownership of the command and deletes it once it has been sent.

Custom commands

A "custom command" here refers to command types not listed in IrcCommand::Type, the list of built-in command types. There are two ways to send custom commands:

Example implementation of a custom command:

class IrcServerCommand : public IrcCommand
{
Q_OBJECT
public:
explicit IrcServerCommand(QObject* parent = 0) : IrcCommand(parent)
{
}
// provided for convenience, to ensure correct parameter order
static IrcCommand* create(const QString& serverName, int hopCount, const QString& info)
{
IrcCommand* command = new IrcServerCommand;
command->setParameters(QStringList() << serverName << QString::number(hopCount) << info);
return command;
}
// reimplemented from IrcCommand::toString()
virtual toString() const
{
// SERVER <servername> <hopcount> <info>
return QString("SERVER %1 %2 %3").arg(params.value(0), params.value(1), params.value(2));
}
};
See also:
IrcSession::sendCommand(), IrcSession::sendRaw(), IrcCommand::Type

Member Enumeration Documentation

This enum describes the built-in command types.

Enumerator:
Custom 

A custom command.

See also:
IrcCommand::toString()
Nick 

A nick command (NICK) is used to give user a nickname or change the previous one.

Quit 

A quit command (QUIT) is used to end a client session.

Join 

A join command (JOIN) is used to start listening a specific channel.

Part 

A part command (PART) causes the client to be removed from the channel.

Topic 

A topic command (TOPIC) is used to change or view the topic of a channel.

Names 

A names command (NAMES) is used to list all nicknames on a channel.

List 

A list command (LIST) is used to list channels and their topics.

Invite 

An invite command (INVITE) is used to invite users to a channel.

Kick 

A kick command (KICK) is used to forcibly remove a user from a channel.

Mode 

A mode command (MODE) is used to change the mode of users and channels.

Message 

A message command (PRIVMSG) is used to send private messages to channels and users.

Notice 

A notice command (NOTICE) is used to send notice messages to channels and users.

CtcpAction 

A CTCP action command is used to send an action message to channels and users.

CtcpRequest 

A CTCP request command is used to send a request.

CtcpReply 

A CTCP reply command is used to send a reply to a request.

Who 

A who command (WHO) is used to generate a query which returns a list of matching users.

Whois 

A whois command (WHOIS) is used to query information about a particular user.

Whowas 

A whowas command (WHOWAS) is used to query information about a user that no longer exists.

Away 

An away command (AWAY) is used to set the away status.

Quote 

A quote command is used to send a raw message to the server.


Constructor & Destructor Documentation

IrcCommand::IrcCommand ( QObject *  parent = 0)
explicit

Constructs a new IrcCommand with parent.

IrcCommand::~IrcCommand ( )
virtual

Destructs the IRC command.


Member Function Documentation

IrcCommand * IrcCommand::createAway ( const QString &  reason = QString())
static

Creates a new away command with type IrcCommand::Away and optional parameter reason.

IrcCommand * IrcCommand::createCtcpAction ( const QString &  target,
const QString &  action 
)
static

Creates a new CTCP action command with type IrcCommand::CtcpAction and parameters target and action.

IrcCommand * IrcCommand::createCtcpReply ( const QString &  target,
const QString &  reply 
)
static

Creates a new CTCP reply command with type IrcCommand::CtcpReply and parameters target and reply.

IrcCommand * IrcCommand::createCtcpRequest ( const QString &  target,
const QString &  request 
)
static

Creates a new CTCP request command with type IrcCommand::CtcpRequest and parameters target and request.

IrcCommand * IrcCommand::createInvite ( const QString &  user,
const QString &  channel 
)
static

Creates a new invite command with type IrcCommand::Invite and parameters user and channel.

IrcCommand * IrcCommand::createJoin ( const QString &  channel,
const QString &  key = QString() 
)
static

Creates a new join command with type IrcCommand::Join and parameters channel and optional key.

IrcCommand * IrcCommand::createKick ( const QString &  channel,
const QString &  user,
const QString &  reason = QString() 
)
static

Creates a new kick command with type IrcCommand::Kick and parameters channel, user and optional reason.

IrcCommand * IrcCommand::createList ( const QString &  channel,
const QString &  server = QString() 
)
static

Creates a new list command with type IrcCommand::List and parameters channel and optional server.

IrcCommand * IrcCommand::createMessage ( const QString &  target,
const QString &  message 
)
static

Creates a new message command with type IrcCommand::Message and parameters target and message.

IrcCommand * IrcCommand::createMode ( const QString &  target,
const QString &  mode,
const QString &  arg = QString() 
)
static

Creates a new mode command with type IrcCommand::Mode and parameters target, mode and optional arg.

IrcCommand * IrcCommand::createNames ( const QString &  channel)
static

Creates a new names command with type IrcCommand::Names and parameter channel.

IrcCommand * IrcCommand::createNick ( const QString &  nick)
static

Creates a new nick command with type IrcCommand::Nick and parameter nick.

IrcCommand * IrcCommand::createNotice ( const QString &  target,
const QString &  message 
)
static

Creates a new notice command with type IrcCommand::Notice and parameters target and message.

IrcCommand * IrcCommand::createPart ( const QString &  channel,
const QString &  reason = QString() 
)
static

Creates a new part command with type IrcCommand::Part and parameters channel and optional reason.

IrcCommand * IrcCommand::createQuit ( const QString &  reason = QString())
static

Creates a new quit command with type IrcCommand::Quit and optional parameter reason.

IrcCommand * IrcCommand::createQuote ( const QStringList &  parameters)
static

Creates a new quote command with type IrcCommand::Quote and parameters.

IrcCommand * IrcCommand::createTopic ( const QString &  channel,
const QString &  topic = QString() 
)
static

Creates a new topic command with type IrcCommand::Topic and parameters channel and optional topic.

IrcCommand * IrcCommand::createWho ( const QString &  mask)
static

Creates a new who command with type IrcCommand::Who and parameter mask.

IrcCommand * IrcCommand::createWhois ( const QString &  user)
static

Creates a new whois command with type IrcCommand::Whois and parameter user.

IrcCommand * IrcCommand::createWhowas ( const QString &  user)
static

Creates a new whowas command with type IrcCommand::Whowas and parameter user.

QString IrcCommand::toString ( ) const
virtual

Returns the command as a string.

Reimplement for custom commands.

See also:
IrcCommand::Custom

Property Documentation

QByteArray IrcCommand::encoding
readwrite

This property holds the encoding that is used when sending the command via IrcSession::sendCommand().

See QTextCodec::availableCodes() for the list of supported encodings. The default value is "UTF-8".

Access functions:
  • QByteArray encoding() const
  • void setEncoding(const QByteArray& encoding)
See also:
QTextCodec::availableCodecs()
QStringList IrcCommand::parameters
readwrite

This property holds the command parameters.

Access functions:
  • QStringList parameters() const
  • void setParameters(const QStringList& parameters)
IrcCommand::Type IrcCommand::type
readwrite

This property holds the command type.

Access functions:

The documentation for this class was generated from the following files: