Dirk



class  IrcTrackingException: object.Exception;




CustomIrcTracker!Payload  track(Payload = void)(IrcClient client);

Create a new channel and user tracking object for the given irc.client.IrcClient. Tracking for the new object is initially disabled; use IrcTracker.start to commence tracking.

Parameters
Payload type of extra storage per TrackedUser object
See Also
IrcTracker, TrackedUser.payload

class  CustomIrcTracker(Payload = void);
alias  IrcTracker = CustomIrcTracker!void.CustomIrcTracker;

Keeps track of all channels and channel members visible to the associated irc.client.IrcClient connection.

Parameters
Payload type of extra storage per TrackedUser object
See Also
CustomTrackedUser.payload

void  start();

Initiate or restart tracking, or do nothing if the tracker is already tracking.

If the associated client is unconnected, tracking starts immediately. If it is connected, information about the client's current channels will be queried, and tracking starts as soon as the information has been received.


void  stop();

Stop tracking, or do nothing if the tracker is not currently tracking.


const pure nothrow @property @safe bool  isTracking();

Boolean whether or not the tracker is currently tracking.


inout pure nothrow @property @safe inout(IrcClient)  client();

irc.client.IrcClient that this tracker is tracking for.


@property auto  channels();

InputRange (with length) of all channels the associated client is currently a member of.

Throws
IrcTrackingException if the tracker is disabled or not yet ready

@property auto  users();

InputRange (with length) of all users currently seen by the associated client.

The range includes the user for the associated client. Users that are not a member of any of the channels the associated client is a member of, but have sent a private message to the associated client, are not included.

Throws
IrcTrackingException if the tracker is disabled or not yet ready

CustomTrackedChannel!Payload*  findChannel(in char[] channelName);

Lookup a channel on this tracker by name.

The channel name must include the channel name prefix. Returns null if the associated client is not currently a member of the given channel.

Parameters
char[] channelName name of channel to lookup
Throws
IrcTrackingException if the tracker is disabled or not yet ready
See Also
TrackedChannel

CustomTrackedUser!Payload*  findUser(in char[] nickName);

Lookup a user on this tracker by nick name.

Users are searched among the members of all channels the associated client is currently a member of. The set includes the user for the associated client.

Parameters
char[] nickName nick name of user to lookup
Throws
IrcTrackingException if the tracker is disabled or not yet ready
See Also
TrackedUser

struct  CustomTrackedChannel(Payload = void);
alias  TrackedChannel = CustomTrackedChannel!void.CustomTrackedChannel;

Represents an IRC channel and its member users for use by IrcTracker.

The list of members includes the user associated with the tracking object. If the IrcTracker used to access an instance of this type was since stopped, the channel presents the list of members as it were at the time of the tracker being stopped.

Parameters
Payload type of extra storage per TrackedUser object
See Also
CustomTrackedUser.payload

@property string  name();

Name of the channel, including the channel prefix.


@property auto  users();

InputRange of all member users of this channel,

where each user is given as a (MREF TrackedUser)*.


CustomTrackedUser!Payload*  opBinary(string op : "in")(in char[] nick);

Lookup a member of this channel by nick name. null is returned if the given nick is not a member of this channel.

Parameters
char[] nick nick name of member to lookup

struct  TrackedUser;

Represents an IRC user for use by IrcTracker.


IrcUser  user;

Nick name,  user name and host name of the user.

TrackedUser is a super-type of irc.protocol.IrcUser.

Only the nick name is guaranteed to be non-null.

See Also
irc.protocol.IrcUser

string  realName;

Real name of the user. Is null unless a whois-query has been successfully issued for the user.

See Also
irc.client.IrcClient.queryWhois

string[]  channels;

Channels in which both the current user and the tracked user share membership.

See Also
irc.client.IrcClient.queryWhois to query  channels a user is in, regardless of shared membership with the current user.

struct  CustomTrackedUser(Payload);

Represents an IRC user for use by CustomIrcTracker.

Parameters
Payload type of extra data per user.

TrackedUser  user;

CustomTrackedUser is a super-type of TrackedUser.


Payload  payload;

Extra data attached to this user for per-application data.


this(string nickName);




template  CustomTrackedUser(Payload : void)