ircpp::entity Class Reference

Entity is the base class from which users and channels classes are derived. More...

#include <entity.h>

Inheritance diagram for ircpp::entity:

ircpp::channel ircpp::user

List of all members.

Public Member Functions

const std::string & nick () const
 Returns the nick (name) of the entity.
const std::string & name () const
 Returns the name of the entity.
const sessionparent () const
 Returns the parent session.
virtual bool is_user () const =0
 Determine if this entity is a user object.
virtual bool is_channel () const =0
 Determine if this entity is a channel object.
const userto_user () const
 Convert an entity object to a user object.
const channelto_channel () const
 Convert an entity object to a channel object.
bool is_temporary () const
 Determine whether the entity is temporary or not.
bool cmd_privmsg (const std::string &text) const
 Send a message to the entity.
bool cmd_notice (const std::string &text) const
 Send a notice to the entity.
bool cmd_mode (const std::string &modestring) const
 Send a mode command to the entity.
bool cmd_ctcp (const std::string &command, const std::string &text="") const
 Send a CTCP message to the entity.
bool cmd_action (const std::string &text) const
 Send a CTCP ACTION message to the entity.

Public Attributes

boost::signal1< void,
entity & > 
sig_deletable
 Emitted when an entity may be safely deleted.
boost::signal1< void,
entity & > 
sig_deleting
 Emitted when an entity is about to be deleted.
boost::signal1< void,
const message & > 
sig_privmsg_msg
 Emitted when the entity receives a PRIVMSG.
boost::signal1< void,
const message & > 
sig_notice_msg
 Emitted when the entity receives a NOTICE.
boost::signal1< void,
const message & > 
sig_ctcp_msg
 Emitted when the entity receives a CTCP message.


Detailed Description

Entity is the base class from which users and channels classes are derived.

Users and channels share several characteristics - they can both have messages sent to them, both have modes, etc. So the user and channel objects are derived from a common object, called entity.

An entity object will be provided where both user and channel are equally applicable. For example, the recipient of a message can be either a channel or a user, so functions and signals dealing with the recipient of messages will use an entity.

Similarly, behaviour which can be done to both users and channels (e.g. sending a message) is implemented in the entity class.

You can find out whether an entity is really a user or a channel by using the is_user() and is_channel() functions. Once you have found out, you can use user-specific and channel-specific functions by casting the entity to a user or channel object. The to_user() and to_channel() functions are provided as a convenient way to do this.


Member Function Documentation

const string & ircpp::entity::nick (  )  const

Returns the nick (name) of the entity.

This function is identical to name() but is included because an entity may represent either a user or a channel.

Returns:
The nick, or name, of the entity

const string & ircpp::entity::name (  )  const

Returns the name of the entity.

This function is identical to nick() but is included because an entity may represent either a user or a channel.

Returns:
The nick, or name, of the entity

const session & ircpp::entity::parent (  )  const

Returns the parent session.

Every user and channel has an associated IRC session to which it belongs. This function returns it.

Returns:
A reference to the session to which the entity belongs

virtual bool ircpp::entity::is_user (  )  const [pure virtual]

Determine if this entity is a user object.

An entity may represent either a user or a channel. If it represents a user, this function will return true. You may then use to_user() to return a correctly-typed reference to a user object

Returns:
true if the entity is a user, false otherwise

Implemented in ircpp::channel, and ircpp::user.

virtual bool ircpp::entity::is_channel (  )  const [pure virtual]

Determine if this entity is a channel object.

An entity may represent either a user or a channel. If it represents a channel, this function will return true. You may then use to_channel() to return a correctly-typed reference to a channel object

Returns:
true if the entity is a channel, false otherwise

Implemented in ircpp::channel, and ircpp::user.

const user & ircpp::entity::to_user (  )  const

Convert an entity object to a user object.

An entity object may be either a user or a channel. If it is a user, this function can be used to convert an entity reference to a user reference.

This function is included for convenience. It has the same effect as dynamic_cast<const user&>, but will not throw an exception if the entity is not a user. Instead it will return the null user object.

You can use is_user() to determine whether the entity is actually a user or not before using this function.

Returns:
A reference to the entity object typecast as a user object, or a reference to the null user object if the entity is not a user.

const channel & ircpp::entity::to_channel (  )  const

Convert an entity object to a channel object.

An entity object may be either a user or a channel. If it is a channel, this function can be used to convert an entity reference to a channel reference.

This function is included for convenience. It has the same effect as dynamic_cast<const channel&>, but will not throw an exception if the entity is not a channel. Instead it will return the null channel object.

You can use is_channel() to determine whether the entity is actually a channel or not before using this function.

Returns:
A reference to the entity object typecast as a channel object, or a reference to the null channel object if the entity is not a channel.

bool ircpp::entity::is_temporary (  )  const

Determine whether the entity is temporary or not.

Entities may be temporary (destroyed after the message they are attached to has been processed) or permanent (stored in a list and accessible until they are deleted). This function determines whether an entity is temporary or permanent.

Returns:
true if the entity is temporary, false otherwise

bool ircpp::entity::cmd_privmsg ( const std::string &  text  )  const

Send a message to the entity.

Use this function to send a message (PRIVMSG) to the entity.

Parameters:
text The text of the message
Returns:
true if the command was sent successfully, false if not connected to irc or if the output buffer is full

bool ircpp::entity::cmd_notice ( const std::string &  text  )  const

Send a notice to the entity.

Use this function to send a notice to the entity.

Parameters:
text The text of the notice
Returns:
true if the command was sent successfully, false if not connected to irc or if the output buffer is full

bool ircpp::entity::cmd_mode ( const std::string &  modestring  )  const

Send a mode command to the entity.

Use this function to send a MODE command to the entity.

Parameters:
modestring A string containing the modes to be set or unset
Returns:
true if the command was sent successfully, false if not connected to irc or if the output buffer is full

bool ircpp::entity::cmd_ctcp ( const std::string &  command,
const std::string &  text = "" 
) const

Send a CTCP message to the entity.

Use this function to send a CTCP message to the entity.

Parameters:
command The CTCP command to send (e.g. "ACTION")
params The parameters of the command
Returns:
true if the command was sent successfully, false if not connected to irc or if the output buffer is full

bool ircpp::entity::cmd_action ( const std::string &  text  )  const

Send a CTCP ACTION message to the entity.

Use this function to send a CTCP ACTION message (commonly referred to as /me) to the entity.

Parameters:
text The text of the CTCP action
Returns:
true if the command was sent successfully, false if not connected to irc or if the output buffer is full


Member Data Documentation

boost::signal1<void, entity&> ircpp::entity::sig_deletable [mutable]

Emitted when an entity may be safely deleted.

When the session has its lists set to manual mode, it is your responsibility to delete user and channel objects when finished with them. This signal indicates that libircpp has finshed with this entity , and you may safely delete it when you no longer need it. For more information, see the manual section on lists Note that this signal is specific to one entity. If you wish to be notified when any user/channel becomes deletable, you should use session::user_deletable and session::channel_deletable

Parameters:
entity A reference to the entity which may now be deleted

boost::signal1<void, entity&> ircpp::entity::sig_deleting [mutable]

Emitted when an entity is about to be deleted.

When an entity is about to be deleted, it emits this signal. When you receive this signal, you should remove all pointers and references to the entity object, as it is no longer valid after this signal.

boost::signal1<void, const message&> ircpp::entity::sig_privmsg_msg [mutable]

Emitted when the entity receives a PRIVMSG.

Parameters:
message The received message

boost::signal1<void, const message&> ircpp::entity::sig_notice_msg [mutable]

Emitted when the entity receives a NOTICE.

Parameters:
message The received notice

boost::signal1<void, const message&> ircpp::entity::sig_ctcp_msg [mutable]

Emitted when the entity receives a CTCP message.

Parameters:
message The received message


The documentation for this class was generated from the following files:
Generated on Sat Oct 13 23:35:41 2007 for libircpp by  doxygen 1.5.3