- build fix for poor distros who have a hard time with libircclient (now we just include this small lib in the source tree) so no longer required as an external lib

This commit is contained in:
Mark Vejvoda
2010-12-27 09:01:40 +00:00
parent b76cc89b60
commit 8d8afe78b5
873 changed files with 99837 additions and 95 deletions

View File

@@ -0,0 +1,114 @@
/*
* Copyright (c) 2007-2008 Dave Dribin
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/*
* This class is based on CInvocationGrabber:
*
* Copyright (c) 2007, Toxic Software
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of the Toxic Software nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#import <Foundation/Foundation.h>
/*
* @class DDInvocationGrabber
* @discussion DDInvocationGrabber is a helper object that makes it very easy to construct instances of NSInvocation for later use. The object is inspired by NSUndoManager's prepareWithInvocationTarget method. To use a DDInvocationGrabber object, you set its target to some object, then send it a message as if it were the target object (the DDInvocationGrabber object acts as a proxy), if the target message understands the message the DDInvocationGrabber object stores the message invocation.
DDInvocationGrabber *theGrabber = [DDInvocationGrabber invocationGrabber];
[theGrabber setTarget:someObject]
[theGrabber doSomethingWithParameter:someParameter]; // Send messages to 'theGrabber' as if it were 'someObject'
NSInvocation *theInvocation = [theGrabber invocation];
A slightly more concise version (using the covenience category) follows:
DDInvocationGrabber *theGrabber = [DDInvocationGrabber invocationGrabber];
[[theGrabber prepareWithInvocationTarget:someObject] doSomethingWithParameter:someParameter];
NSInvocation *theInvocation = [theGrabber invocation];
*/
@interface DDInvocationGrabber : NSProxy
{
id _target;
NSInvocation * _invocation;
BOOL _forwardInvokesOnMainThread;
BOOL _waitUntilDone;
}
/*
* @method invocationGrabber
* @abstract Returns a newly allocated, inited, autoreleased DDInvocationGrabber object.
*/
+ (id)invocationGrabber;
- (id)target;
- (void)setTarget:(id)inTarget;
- (NSInvocation *)invocation;
- (void)setInvocation:(NSInvocation *)inInvocation;
- (BOOL)forwardInvokesOnMainThread;
- (void)setForwardInvokesOnMainThread:(BOOL)forwardInvokesOnMainThread;
- (BOOL)waitUntilDone;
- (void)setWaitUntilDone:(BOOL)waitUntilDone;
@end
@interface DDInvocationGrabber (DDInvocationGrabber_Conveniences)
/*
* @method prepareWithInvocationTarget:
* @abstract Sets the target object of the receiver and returns itself. The sender can then send a message to the
*/
- (id)prepareWithInvocationTarget:(id)inTarget;
@end

View File

@@ -0,0 +1,171 @@
/*
* Copyright (c) 2007-2008 Dave Dribin
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/*
* This class is based on CInvocationGrabber:
*
* Copyright (c) 2007, Toxic Software
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of the Toxic Software nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#import "DDInvocationGrabber.h"
@implementation DDInvocationGrabber
+ (id)invocationGrabber
{
return([[[self alloc] init] autorelease]);
}
- (id)init
{
_target = nil;
_invocation = nil;
_forwardInvokesOnMainThread = NO;
_waitUntilDone = NO;
return self;
}
- (void)dealloc
{
[self setTarget:NULL];
[self setInvocation:NULL];
//
[super dealloc];
}
#pragma mark -
- (id)target
{
return _target;
}
- (void)setTarget:(id)inTarget
{
if (_target != inTarget)
{
[_target autorelease];
_target = [inTarget retain];
}
}
- (NSInvocation *)invocation
{
return _invocation;
}
- (void)setInvocation:(NSInvocation *)inInvocation
{
if (_invocation != inInvocation)
{
[_invocation autorelease];
_invocation = [inInvocation retain];
}
}
- (BOOL)forwardInvokesOnMainThread;
{
return _forwardInvokesOnMainThread;
}
- (void)setForwardInvokesOnMainThread:(BOOL)forwardInvokesOnMainThread;
{
_forwardInvokesOnMainThread = forwardInvokesOnMainThread;
}
- (BOOL)waitUntilDone;
{
return _waitUntilDone;
}
- (void)setWaitUntilDone:(BOOL)waitUntilDone;
{
_waitUntilDone = waitUntilDone;
}
#pragma mark -
- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
{
return [[self target] methodSignatureForSelector:selector];
}
- (void)forwardInvocation:(NSInvocation *)ioInvocation
{
[ioInvocation setTarget:[self target]];
[self setInvocation:ioInvocation];
if (_forwardInvokesOnMainThread)
{
if (!_waitUntilDone)
[_invocation retainArguments];
[_invocation performSelectorOnMainThread:@selector(invoke)
withObject:nil
waitUntilDone:_waitUntilDone];
}
}
@end
#pragma mark -
@implementation DDInvocationGrabber (DDnvocationGrabber_Conveniences)
- (id)prepareWithInvocationTarget:(id)inTarget
{
[self setTarget:inTarget];
return(self);
}
@end

View File

@@ -0,0 +1,153 @@
/*
* Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*/
/**
* @file IRCClientChannel.h
* @author Nathan Ollerenshaw
* @version 1.0
* @date 01.2009
* @brief Represents a connected IRC Channel.
*/
#import <Cocoa/Cocoa.h>
#import <IRCClient/IRCClientChannelDelegate.h>
/** \class IRCClientChannel
* @brief Represents a connected IRC Channel.
*
* IRCClientChannel objects are created by the IRCClientSession object
* for a given session when the client joins an IRC channel. At that time
* you are expected to register event handlers for each of the delegate
* methods described in the IRCClientChannelDelegate interface.
*/
@class IRCClientSession;
@interface IRCClientChannel : NSObject {
id delegate;
NSString *name;
NSStringEncoding encoding;
IRCClientSession *session;
NSString *topic;
NSString *modes;
NSMutableArray *names;
}
/** Delegate to send events to */
@property (assign) id delegate;
/** Name of the channel */
@property (copy) NSString *name;
/** Encoding used by this channel */
@property (assign) NSStringEncoding encoding;
/** Associated IRCClientSession object */
@property (assign) IRCClientSession *session;
/** Topic of the channel */
@property (copy) NSString *topic;
/** Mode of the channel */
@property (copy) NSString *modes;
/** An array of nicknames stored as NSStrings that list the connected users
for the channel */
@property (assign, readonly) NSMutableArray *names;
/** initWithName:
*
* Returns an initialised IRCClientChannel with a given channel name. You
* are not expected to initialise your own IRCClientChannel objects; if you
* wish to join a channel you should send a [IRCClientSession join:key:] message
* to your IRCClientSession object.
*
* @param aName Name of the channel.
*/
- (id)initWithName:(NSString *)aName;
/** Parts the channel.
*/
- (int)part;
/** Invites another IRC client to the channel.
*
* @param nick the nickname of the client to invite.
*/
- (int)invite:(NSString *)nick;
/** Sets the topic of the channel.
*
* Note that not all users on a channel have permission to change the topic; if you fail
* to set the topic, then you will not see an onTopic event on the IRCClientChannelDelegate.
*
* @param aTopic the topic the client wishes to set for the channel.
*/
- (void)setTopic:(NSString *)aTopic;
/** Sets the mode of the channel.
*
* Note that not all users on a channel have permission to change the mode; if you fail
* to set the mode, then you will not see an onMode event on the IRCClientChannelDelegate.
*
* @param mode the mode to set the channel to
* @param params paramaters for the mode, if it requires parameters.
*/
- (int)setMode:(NSString *)mode params:(NSString *)params;
/** Sends a public PRIVMSG to the channel. If you try to send more than can fit on an IRC
* buffer, it will be truncated.
*
* @param message the message to send to the channel.
*/
- (int)message:(NSString *)message;
/** Sends a public CTCP ACTION to the channel.
*
* @param action action to send to the channel.
*/
- (int)action:(NSString *)action;
/** Sends a public NOTICE to the channel.
*
* @param notice message to send to the channel.
*/
- (int)notice:(NSString *)notice;
/** Kicks someone from a channel.
*
* @param nick the IRC client to kick from the channel.
* @param reason the message to give to the channel and the IRC client for the kick.
*/
- (int)kick:(NSString *)nick reason:(NSString *)reason;
/** Sends a CTCP request to the channel.
*
* It is perfectly legal to send a CTCP request to an IRC channel, however many clients
* decline to respond to them, and often they are percieved as annoying.
*
* @param request the string of the request, in CTCP format.
*/
- (int)ctcpRequest:(NSString *)request;
@end

View File

@@ -0,0 +1,157 @@
/*
* Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*/
#import "IRCClientChannel.h"
#import "IRCClientSession.h"
#import "NSObject+DDExtensions.h"
@implementation IRCClientChannel
@synthesize delegate;
@synthesize name;
@synthesize encoding;
@synthesize session;
@synthesize topic;
@synthesize modes;
@synthesize names;
-(id)init
{
return [self initWithName:nil];
}
-(id)initWithName:(NSString *)aName
{
if ((self = [super init])) {
[self setName:aName];
topic = [[NSString alloc] init];
encoding = NSASCIIStringEncoding;
}
return self;
}
-(void)dealloc
{
[super dealloc];
}
- (int)part
{
return irc_cmd_part([session session], [name cStringUsingEncoding:NSASCIIStringEncoding]);
}
- (int)invite:(NSString *)nick
{
return irc_cmd_invite([session session], [nick cStringUsingEncoding:NSASCIIStringEncoding], [name cStringUsingEncoding:NSASCIIStringEncoding]);
}
- (int)refreshNames
{
return irc_cmd_names([session session], [name cStringUsingEncoding:NSASCIIStringEncoding]);
}
- (void)setTopic:(NSString *)aTopic
{
irc_cmd_topic([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [topic cStringUsingEncoding:encoding]);
}
- (int)setMode:(NSString *)mode params:(NSString *)params
{
return irc_cmd_channel_mode([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [mode cStringUsingEncoding:NSASCIIStringEncoding]);
}
- (int)message:(NSString *)message
{
return irc_cmd_msg([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [message cStringUsingEncoding:encoding]);
}
- (int)action:(NSString *)action
{
return irc_cmd_me([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [action cStringUsingEncoding:encoding]);
}
- (int)notice:(NSString *)notice
{
return irc_cmd_notice([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [notice cStringUsingEncoding:encoding]);
}
- (int)kick:(NSString *)nick reason:(NSString *)reason
{
return irc_cmd_kick([session session], [nick cStringUsingEncoding:NSASCIIStringEncoding], [name cStringUsingEncoding:NSASCIIStringEncoding], [reason cStringUsingEncoding:encoding]);
}
- (int)ctcpRequest:(NSString *)request
{
return irc_cmd_ctcp_request([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [request cStringUsingEncoding:encoding]);
}
// event handlers
//
// These farm events out to the delegate on the main thread.
- (void)onJoin:(NSString *)nick
{
if ([delegate respondsToSelector:@selector(onJoin:)])
[[delegate dd_invokeOnMainThread] onJoin:nick];
}
- (void)onPart:(NSString *)nick reason:(NSString *)reason
{
if ([delegate respondsToSelector:@selector(onPart:reason:)])
[[delegate dd_invokeOnMainThread] onPart:nick reason:reason];
}
- (void)onMode:(NSString *)mode params:(NSString *)params nick:(NSString *)nick
{
if ([delegate respondsToSelector:@selector(onMode:params:nick:)])
[[delegate dd_invokeOnMainThread] onMode:mode params:params nick:nick];
}
- (void)onTopic:(NSString *)aTopic nick:(NSString *)nick
{
[topic release];
topic = [NSString stringWithString:aTopic];
if ([delegate respondsToSelector:@selector(onTopic:nick:)])
[[delegate dd_invokeOnMainThread] onTopic:aTopic nick:nick];
}
- (void)onKick:(NSString *)nick reason:(NSString *)reason byNick:(NSString *)byNick
{
if ([delegate respondsToSelector:@selector(onKick:reason:byNick:)])
[[delegate dd_invokeOnMainThread] onKick:nick reason:reason byNick:byNick];
}
- (void)onPrivmsg:(NSString *)message nick:(NSString *)nick
{
if ([delegate respondsToSelector:@selector(onPrivmsg:nick:)])
[[delegate dd_invokeOnMainThread] onPrivmsg:message nick:nick];
}
- (void)onNotice:(NSString *)notice nick:(NSString *)nick
{
if ([delegate respondsToSelector:@selector(onNotice:nick:)])
[[delegate dd_invokeOnMainThread] onNotice:notice nick:nick];
}
- (void)onAction:(NSString *)action nick:(NSString *)nick
{
if ([delegate respondsToSelector:@selector(onAction:nick:)])
[[delegate dd_invokeOnMainThread] onAction:action nick:nick];
}
@end

View File

@@ -0,0 +1,116 @@
/*
* Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*/
/**
* @file IRCClientChannelDelegate.h
* @author Nathan Ollerenshaw
* @version 1.0
* @date 01.2009
* @brief Receives delegate messages from an IRCClientChannel.
* @protocol IRCClientChannelDelegate
*/
#import <Cocoa/Cocoa.h>
/** @brief Receives delegate messages from an IRCClientChannel.
*
* Each IRCClientChannel object needs a delegate. Delegate methods are called
* for each event that occurs on an IRC channel that the client is current on.
*
* Note that for any given parameter, it may be optional, in which case a nil
* object may be supplied instead of the given parameter.
*/
@interface NSObject (IRCClientChannelDelegate)
/** When a client joins this channel, the onJoin event is fired. Note that
* the nickname is most likely in nick!user\@host format, but may simply be a
* nickname, depending on the server implementation.
*
* You should also expect to see this event when the client first joins a channel,
* with a parameter of the client's nickname.
*
* @param nick The nickname of the user that joined the channel.
*/
- (void)onJoin:(NSString *)nick;
/** When an IRC client parts a channel you are connect to, you will see
* an onPart event. You will also see this event when you part a channel.
*
* @param nick (required) The nickname of the user that left the channel.
* @param reason (optional) The reason, if any, that the user gave for leaving.
*/
- (void)onPart:(NSString *)nick reason:(NSString *)reason;
/** Received when an IRC client changes the channel mode. What modes are available
* for a given channel is an implementation detail for each server.
*
* @param mode the new channel mode.
* @param params any parameters with the mode (such as channel key).
* @param nick the nickname of the IRC client that changed the mode.
*/
- (void)onMode:(NSString *)mode params:(NSString *)params nick:(NSString *)nick;
/** Received when the topic is changed for the channel.
*
* @param aTopic The new topic of the channel.
* @param nick Nickname of the IRC client that changed the topic.
*/
- (void)onTopic:(NSString *)aTopic nick:(NSString *)nick;
/** Received when an IRC client is kicked from a channel.
*
* @param nick nickname of the client that was kicked
* @param reason reason message given for the kick
* @param byNick nickname of the client that performed the kick command
*/
- (void)onKick:(NSString *)nick reason:(NSString *)reason byNick:(NSString *)byNick;
/** Received when an IRC client sends a public PRIVMSG to the channel. Note that the
* user may not necessarily be required to be on the channel to send a message
* to it.
*
* @param message the message sent to the channel.
* @param nick the nickname of the IRC client that sent the message.
*/
- (void)onPrivmsg:(NSString *)message nick:(NSString *)nick;
/** Received when an IRC client sends a public NOTICE to the channel. Note that
* the user may not necessarily be required to be on the channel to send a notice to
* it. Furthermore, the RFC states that the only difference between PRIVMSG and
* NOTICE is that a NOTICE may never be responded to automatically.
*
* @param notice the notice sent to the channel.
* @param nick the nickname of the IRC client that sent the notice.
*/
- (void)onNotice:(NSString *)notice nick:(NSString *)nick;
/** Received when an IRC client sends a CTCP ACTION message to the channel.
* used by lamers with no life to pretend that they are playing some form of
* MMORPG.
*
* @param action the action message sent to the channel.
* @param nick the nickname of the IRC client that sent the message.
*/
- (void)onAction:(NSString *)action nick:(NSString *)nick;
@end

View File

@@ -0,0 +1,264 @@
/*! \mainpage IRCClient - a Cocoa IRC Framework to create IRC clients
*
* \section intro_sec Introduction
*
* IRCClient is a Cocoa Framework that uses the excellent libircclient library
* written by Georgy Yunaev.
*
* \section usage Basic Usage
*
* To use this framework, you will need to write an IRCClientSessionDelegate to
* handle all of the events generated by the server, and an IRCClientChannelDelegate
* to handle all of the events generated by channels on that server.
*
* You then create an IRCClientSession object in your code, assign the required
* properties, and call connect: to connect to the server and run: to create
* the new thread and start receiving events. For example:
*
* \code
* IRCClientSession *session = [[IRCClientSession alloc] init];
* MyIRCClientSessionDelegate *controller = [[MyIRCClientSessionDelegate alloc] init];
*
* [session setDelegate:controller];
* [controller setSession:session];
*
* [session setServer:@"irc.dal.net"];
* [session setPort:@"6667"];
* [session setNickname:@"test"];
* [session setUsername:@"test"];
* [session setRealname:@"test"];
* [session connect];
*
* [session run]; //starts the thread
* \endcode
*
* \section author Author, copyright, support.
*
* If you have any questions, bug reports, suggestions regarding libircclient
* or the IRCClient framework, please visit http://libircclient.sourceforge.net
*
* <PRE>
* libircclient Copyright (C) 2004-2009 Georgy Yunaev gyunaev@ulduzsoft.com
* IRCClient Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
* </PRE>
*/
/**
* @file IRCClientSession.h
* @author Nathan Ollerenshaw
* @version 1.0
* @date 01.2009
* @brief Represents a connected IRC Session.
*/
#import <Cocoa/Cocoa.h>
#import <IRCClient/IRCClientSessionDelegate.h>
#include <IRCClient/libircclient.h>
/** @class IRCClientSession
* @brief Represents a connected IRC Session.
*
* IRCClientSession represents a single connection to an IRC server. On initialising
* the object, and setting the delegate, server, port, password, nickname, username and realname
* properties, you call the connect: and run: methods to connect to the IRC server
* and start a new thread.
*
* This thread then sends messages back to the main runloop to the IRC server delegate,
* or to the IRCClientChannel delegate as required.
*/
@class IRCClientChannel;
@interface IRCClientSession : NSObject {
id delegate;
irc_callbacks_t callbacks;
irc_session_t *session;
NSThread *thread;
NSString *version;
NSString *server;
NSString *port;
NSString *password;
NSString *nickname;
NSString *username;
NSString *realname;
NSMutableDictionary *channels;
NSMutableDictionary *nicks;
NSStringEncoding encoding;
}
/** delegate to send events to. */
@property (assign) id delegate;
/** The underlying libircclient handle */
@property (assign) irc_session_t *session;
/** The version string for the client to send back on CTCP VERSION requests */
@property (copy) NSString *version;
/** IRC server to connect to */
@property (copy) NSString *server;
/** IRC port to connect to */
@property (copy) NSString *port;
/** Server password to provide on connect (may be left empty or nil) */
@property (copy) NSString *password;
/** Nickname of the connected client. Note that setting this after connection will
not result in the client renaming on IRC. You need to send a nick: message instead.
*/
@property (copy) NSString *nickname;
/** Username of the connected client. Also known as the ident.
Setting this after connection does nothing.
*/
@property (copy) NSString *username;
/** Realname of the connected client.
Setting this after connection does nothing. */
@property (copy) NSString *realname;
/** An NSMutableDictionary of channels that the client is currently connected to.
You should not modify this. */
@property (assign,readonly) NSMutableDictionary *channels;
/** The default text encoding for messages on this server.
This affects messages received via PRIVMSG and NOTICE, and TOPIC in a channel.
You may change this at any time.
*/
@property (assign) NSStringEncoding encoding;
/** Connect to the IRC server.
Note that this performs the initial DNS lookup and the TCP connection, so if
there are any problems you will be notified via the return code of the message.
Look at the libircclient documentation for the different return codes. */
- (int)connect;
/** Disconnect from the IRC server.
This always works, as it simply shuts down the socket. If you want to disconnect
in a friendly way, you should use the quit: message. */
- (void)disconnect;
/** returns YES if the server is currently connected successfully, and NO if
it is not. */
- (bool)isConnected;
/** Starts a new thread and starts the libircclient runloop, processing events and
firing messages back to the main runloop as required. Calling this again will
do nothing other than raise a warning in your logs. */
- (void)run;
/** Sends a raw message to the IRC server. Please consult rfc1459 for the format
of IRC commands. */
- (int)sendRawWithFormat:(NSString *)format, ...;
/** quits the IRC server with the given reason. On success, an onQuit event will be
sent to the IRCClientSessionDelegate with the nickname of the IRC client.
The format is a standard NSString format string, followed by optional arguments.
*/
- (int)quit:(NSString *)reason;
/** Joins a channel with a given name and key
@param channel the channel to join
@param key they key for the channel (may be nil)
*/
- (int)join:(NSString *)channel key:(NSString *)key;
/** lists channels on the IRC server.
@param channel a channel name or string to pass to the LIST command. Implementation specific.
*/
- (int)list:(NSString *)channel;
/** sets the user mode for the IRC client
@param mode string to set
*/
- (int)userMode:(NSString *)mode;
/** sets the IRC client nickname. On success, an onNick event will be sent to the delegate
@param newnick new nickname to set.
*/
- (int)nick:(NSString *)newnick;
/** sends a WHOIS request to the IRC server
@param nick nickname of the irc client to whois.
*/
- (int)whois:(NSString *)nick;
/** send a PRIVMSG to another IRC client
@param message message to send
@param target the other IRC client to send the message to.
*/
- (int)message:(NSString *)message to:(NSString *)target;
/** send a CTCP ACTION to another IRC client
@param action the action message to send
@param target the nickname of the irc client to send the message to.
*/
- (int)action:(NSString *)action to:(NSString *)target;
/** send a NOTICE to another IRC client
@param notice the message text to send
@param target the nickname of the irc client to send the notice to.
*/
- (int)notice:(NSString *)notice to:(NSString *)target;
/** send a CTCP request to another IRC client
@param request the CTCP request string to send
@param target the nickname of the IRC client to send the request to.
*/
- (int)ctcpRequest:(NSString *)request target:(NSString *)target;
/** send a CTCP reply to another IRC client
@param reply the CTCP reply string to send
@param target the nickname of the IRC client to send the reply to.
*/
- (int)ctcpReply:(NSString *)reply target:(NSString *)target;
@end

View File

@@ -0,0 +1,744 @@
/*
* Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*/
#define IRCCLIENTVERSION "1.0"
#import "IRCClientSession.h"
#import "NSObject+DDExtensions.h"
#import "IRCClientChannel.h"
#include "string.h"
static void onConnect(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onNick(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onQuit(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onJoinChannel(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onPartChannel(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onMode(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onUserMode(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onTopic(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onKick(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onChannelPrvmsg(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onPrivmsg(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onNotice(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onInvite(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onCtcpRequest(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onCtcpReply(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onCtcpAction(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onUnknownEvent(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count);
static void onNumericEvent(irc_session_t * session, unsigned int event, const char * origin, const char ** params, unsigned int count);
@implementation IRCClientSession
@synthesize delegate;
@synthesize session;
@synthesize version;
@synthesize server;
@synthesize port;
@synthesize password;
@synthesize nickname;
@synthesize username;
@synthesize realname;
@synthesize channels;
@synthesize encoding;
-(id)init
{
if ((self = [super init])) {
callbacks.event_connect = onConnect;
callbacks.event_nick = onNick;
callbacks.event_quit = onQuit;
callbacks.event_join = onJoinChannel;
callbacks.event_part = onPartChannel;
callbacks.event_mode = onMode;
callbacks.event_umode = onUserMode;
callbacks.event_topic = onTopic;
callbacks.event_kick = onKick;
callbacks.event_channel = onChannelPrvmsg;
callbacks.event_privmsg = onPrivmsg;
callbacks.event_notice = onNotice;
callbacks.event_invite = onInvite;
callbacks.event_ctcp_req = onCtcpRequest;
callbacks.event_ctcp_rep = onCtcpReply;
callbacks.event_ctcp_action = onCtcpAction;
callbacks.event_unknown = onUnknownEvent;
callbacks.event_numeric = onNumericEvent;
callbacks.event_dcc_chat_req = NULL;
callbacks.event_dcc_send_req = NULL;
session = irc_create_session(&callbacks);
if (!session) {
NSLog(@"Could not create irc_session.");
return nil;
}
irc_set_ctx(session, self);
unsigned int high, low;
irc_get_version (&high, &low);
[self setVersion:[NSString stringWithFormat:@"IRCClient Framework v%s (Nathan Ollerenshaw) - libirc v%d.%d (Georgy Yunaev)", IRCCLIENTVERSION, high, low]];
channels = [[[NSMutableDictionary alloc] init] retain];
encoding = NSASCIIStringEncoding;
}
return self;
}
-(void)dealloc
{
if (irc_is_connected(session))
NSLog(@"Warning: IRC Session is not disconnected on dealloc");
irc_destroy_session(session);
[channels release];
[super dealloc];
}
- (int)connect;
{
unsigned short sPort = [port intValue];
return irc_connect(session, [server cStringUsingEncoding:encoding], sPort, [password length] > 0 ? [password cStringUsingEncoding:encoding] : NULL , [nickname cStringUsingEncoding:encoding], [username cStringUsingEncoding:encoding], [realname cStringUsingEncoding:encoding]);
}
- (void)disconnect
{
irc_disconnect(session);
}
- (bool)isConnected
{
return irc_is_connected(session);
}
- (void)startThread
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
irc_run(session);
[pool drain];
}
- (void)run
{
if (thread) {
NSLog(@"Thread already running!");
return;
}
thread = [[NSThread alloc] initWithTarget:self selector:@selector(startThread) object:nil];
[thread retain];
[thread start];
}
- (int)sendRawWithFormat:(NSString *)format, ...
{
va_list ap;
va_start(ap, format);
NSString *line = [[NSString alloc] initWithFormat:format arguments:ap];
va_end(ap);
return irc_send_raw(session, [line cStringUsingEncoding:encoding]);
}
- (int)quit:(NSString *)reason
{
return irc_cmd_quit(session, [reason cStringUsingEncoding:encoding]);
}
- (int)join:(NSString *)channel key:(NSString *)key
{
NSLog(@"Joining %@", channel);
if (!key || ![key length] > 0)
return irc_cmd_join(session, [channel cStringUsingEncoding:encoding], NULL);
return irc_cmd_join(session, [channel cStringUsingEncoding:encoding], [key cStringUsingEncoding:encoding]);
}
- (int)list:(NSString *)channel
{
return irc_cmd_list(session, [channel cStringUsingEncoding:encoding]);
}
- (int)userMode:(NSString *)mode
{
return irc_cmd_user_mode(session, [mode cStringUsingEncoding:encoding]);
}
- (int)nick:(NSString *)newnick
{
return irc_cmd_nick(session, [newnick cStringUsingEncoding:encoding]);
}
- (int)whois:(NSString *)nick
{
return irc_cmd_whois(session, [nick cStringUsingEncoding:encoding]);
}
- (int)message:(NSString *)message to:(NSString *)target
{
return irc_cmd_msg(session, [target cStringUsingEncoding:encoding], [message cStringUsingEncoding:encoding]);
}
- (int)action:(NSString *)action to:(NSString *)target
{
return irc_cmd_me(session, [target cStringUsingEncoding:encoding], [action cStringUsingEncoding:encoding]);
}
- (int)notice:(NSString *)notice to:(NSString *)target
{
return irc_cmd_notice(session, [target cStringUsingEncoding:encoding], [notice cStringUsingEncoding:encoding]);
}
- (int)ctcpRequest:(NSString *)request target:(NSString *)target
{
return irc_cmd_ctcp_request(session, [target cStringUsingEncoding:encoding], [request cStringUsingEncoding:encoding]);
}
- (int)ctcpReply:(NSString *)reply target:(NSString *)target
{
return irc_cmd_ctcp_reply(session, [target cStringUsingEncoding:encoding], [reply cStringUsingEncoding:encoding]);
}
@end
NSString *
getNickFromNickUserHost(NSString *nuh)
{
NSArray *nuhArray = [nuh componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"!@"]];
if ([nuhArray count] == 3)
return [NSString stringWithString:[nuhArray objectAtIndex:0]];
else
return [NSString stringWithString:nuh];
}
NSString *
getUserFromNickUserHost(NSString *nuh)
{
NSArray *nuhArray = [nuh componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"!@"]];
if ([nuhArray count] == 3)
return [NSString stringWithString:[nuhArray objectAtIndex:1]];
else
return nil;
}
NSString *
getHostFromNickUserHost(NSString *nuh)
{
NSArray *nuhArray = [nuh componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"!@"]];
if ([nuhArray count] == 3)
return [NSString stringWithString:[nuhArray objectAtIndex:2]];
else
return nil;
}
/*!
* The "on_connect" event is triggered when the client successfully
* connects to the server, and could send commands to the server.
* No extra params supplied; \a params is 0.
*/
static void onConnect(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
if ([[client delegate] respondsToSelector:@selector(onConnect)])
[[[client delegate] dd_invokeOnMainThread] onConnect];
}
/*!
* The "nick" event is triggered when the client receives a NICK message,
* meaning that someone (including you) on a channel with the client has
* changed their nickname.
*
* \param origin the person, who changes the nick. Note that it can be you!
* \param params[0] mandatory, contains the new nick.
*/
static void onNick(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSString *oldNick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
if ([[client nickname] compare:oldNick] == NSOrderedSame) {
[client setNickname:nick];
}
if ([[client delegate] respondsToSelector:@selector(onNick:oldNick:)])
[[[client delegate] dd_invokeOnMainThread] onNick:nick oldNick:oldNick];
}
/*!
* The "quit" event is triggered upon receipt of a QUIT message, which
* means that someone on a channel with the client has disconnected.
*
* \param origin the person, who is disconnected
* \param params[0] optional, contains the reason message (user-specified).
*/
static void onQuit(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *reason = [NSString stringWithCString:params[0] encoding:[client encoding]];
if ([[client delegate] respondsToSelector:@selector(onQuit:reason:)])
[[[client delegate] dd_invokeOnMainThread] onQuit:nick reason:reason];
}
/*!
* The "join" event is triggered upon receipt of a JOIN message, which
* means that someone has entered a channel that the client is on.
*
* \param origin the person, who joins the channel. By comparing it with
* your own nickname, you can check whether your JOIN
* command succeed.
* \param params[0] mandatory, contains the channel name.
*/
static void onJoinChannel(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *channel = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSString *nickOnly = getNickFromNickUserHost(nick);
if ([[client nickname] compare:nickOnly] == NSOrderedSame) {
// We just joined a channel; allocate an IRCClientChannel object and send it
// to the main thread.
IRCClientChannel *newChannel = [[IRCClientChannel alloc] initWithName:channel];
[[client channels] setObject:newChannel forKey:channel];
if ([[client delegate] respondsToSelector:@selector(onJoinChannel:)])
[[[client delegate] dd_invokeOnMainThread] onJoinChannel:newChannel];
} else {
// Someone joined a channel we're on.
IRCClientChannel *currentChannel = [[client channels] objectForKey:channel];
[currentChannel onJoin:nick];
}
}
/*!
* The "part" event is triggered upon receipt of a PART message, which
* means that someone has left a channel that the client is on.
*
* \param origin the person, who leaves the channel. By comparing it with
* your own nickname, you can check whether your PART
* command succeed.
* \param params[0] mandatory, contains the channel name.
* \param params[1] optional, contains the reason message (user-defined).
*/
static void onPartChannel(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *channel = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSData *reason = nil;
IRCClientChannel *currentChannel = nil;
if (count > 1)
reason = [NSData dataWithBytes:params[1] length:strlen(params[1])];
if ([[client nickname] compare:nick] == NSOrderedSame) {
// We just left a channel; remove it from the channels dict.
currentChannel = [[client channels] objectForKey:channel];
[[client channels] removeObjectForKey:channel];
} else {
// Someone left a channel we're on.
currentChannel = [[client channels] objectForKey:channel];
}
[currentChannel onPart:nick reason:[[NSString alloc] initWithData:reason encoding:[currentChannel encoding]]];
}
/*!
* The "mode" event is triggered upon receipt of a channel MODE message,
* which means that someone on a channel with the client has changed the
* channel's parameters.
*
* \param origin the person, who changed the channel mode.
* \param params[0] mandatory, contains the channel name.
* \param params[1] mandatory, contains the changed channel mode, like
* '+t', '-i' and so on.
* \param params[2] optional, contains the mode argument (for example, a
* key for +k mode, or user who got the channel operator status for
* +o mode)
*/
static void onMode(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *channel = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSString *mode = [NSString stringWithCString:params[1] encoding:NSASCIIStringEncoding];
NSString *modeParams = nil;
if (count > 2)
modeParams = [NSString stringWithCString:params[2] encoding:NSASCIIStringEncoding];
IRCClientChannel *currentChannel = [[client channels] objectForKey:channel];
[currentChannel onMode:mode params:modeParams nick:nick];
}
/*!
* The "umode" event is triggered upon receipt of a user MODE message,
* which means that your user mode has been changed.
*
* \param origin the person, who changed the channel mode.
* \param params[0] mandatory, contains the user changed mode, like
* '+t', '-i' and so on.
*/
static void onUserMode(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *mode = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
if ([[client delegate] respondsToSelector:@selector(onMode:)])
[[[client delegate] dd_invokeOnMainThread] onMode:mode];
}
/*!
* The "topic" event is triggered upon receipt of a TOPIC message, which
* means that someone on a channel with the client has changed the
* channel's topic.
*
* \param origin the person, who changes the channel topic.
* \param params[0] mandatory, contains the channel name.
* \param params[1] optional, contains the new topic.
*/
static void onTopic(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *channel = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSData *topic = nil;
if (count > 1)
topic = [NSData dataWithBytes:params[1] length:strlen(params[1])];
IRCClientChannel *currentChannel = [[client channels] objectForKey:channel];
[currentChannel onTopic:[[NSString alloc] initWithData:topic encoding:[currentChannel encoding]] nick:nick];
}
/*!
* The "kick" event is triggered upon receipt of a KICK message, which
* means that someone on a channel with the client (or possibly the
* client itself!) has been forcibly ejected.
*
* \param origin the person, who kicked the poor.
* \param params[0] mandatory, contains the channel name.
* \param params[1] optional, contains the nick of kicked person.
* \param params[2] optional, contains the kick text
*/
static void onKick(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *byNick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *channel = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSString *nick = nil;
NSData *reason = nil;
if (count > 1)
nick = [NSString stringWithCString:params[1] encoding:NSASCIIStringEncoding];
if (count > 2)
reason = [NSData dataWithBytes:params[2] length:strlen(params[2])];
if (nick == nil) {
// we got kicked
IRCClientChannel *currentChannel = [[client channels] objectForKey:channel];
[[client channels] removeObjectForKey:channel];
[currentChannel onKick:[client nickname] reason:[[NSString alloc] initWithData:reason encoding:[currentChannel encoding]] byNick:byNick];
} else {
// someone else got booted
IRCClientChannel *currentChannel = [[client channels] objectForKey:channel];
[currentChannel onKick:nick reason:[[NSString alloc] initWithData:reason encoding:[currentChannel encoding]] byNick:byNick];
}
}
/*!
* The "channel" event is triggered upon receipt of a PRIVMSG message
* to an entire channel, which means that someone on a channel with
* the client has said something aloud. Your own messages don't trigger
* PRIVMSG event.
*
* \param origin the person, who generates the message.
* \param params[0] mandatory, contains the channel name.
* \param params[1] optional, contains the message text
*/
static void onChannelPrvmsg(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *channel = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSData *message = nil;
if (count > 1) {
message = [NSData dataWithBytes:params[1] length:strlen(params[1])];
IRCClientChannel *currentChannel = [[client channels] objectForKey:channel];
[currentChannel onPrivmsg:[[NSString alloc] initWithData:message encoding:[currentChannel encoding]] nick:nick];
}
}
/*!
* The "privmsg" event is triggered upon receipt of a PRIVMSG message
* which is addressed to one or more clients, which means that someone
* is sending the client a private message.
*
* \param origin the person, who generates the message.
* \param params[0] mandatory, contains your nick.
* \param params[1] optional, contains the message text
*/
static void onPrivmsg(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSData *message = nil;
if (count > 1) {
message = [NSData dataWithBytes:params[1] length:strlen(params[1])];
if ([[client delegate] respondsToSelector:@selector(onPrivmsg:nick:)])
[[[client delegate] dd_invokeOnMainThread] onPrivmsg:message nick:nick];
}
// we eat privmsgs with no message
}
/*!
* The "notice" event is triggered upon receipt of a NOTICE message
* which means that someone has sent the client a public or private
* notice. According to RFC 1459, the only difference between NOTICE
* and PRIVMSG is that you should NEVER automatically reply to NOTICE
* messages. Unfortunately, this rule is frequently violated by IRC
* servers itself - for example, NICKSERV messages require reply, and
* are NOTICEs.
*
* \param origin the person, who generates the message.
* \param params[0] mandatory, contains the channel name.
* \param params[1] optional, contains the message text
*/
static void onNotice(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *target = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSData *notice = nil;
IRCClientChannel *currentChannel = [[client channels] objectForKey:target];
if (count > 1) {
notice = [NSData dataWithBytes:params[1] length:strlen(params[1])];
if (currentChannel != nil) {
[currentChannel onNotice:[[NSString alloc] initWithData:notice encoding:[currentChannel encoding]] nick:nick];
} else {
if ([[client delegate] respondsToSelector:@selector(onNotice:nick:)])
[[[client delegate] dd_invokeOnMainThread] onNotice:notice nick:nick];
}
}
// we eat notices with no message
}
/*!
* The "invite" event is triggered upon receipt of an INVITE message,
* which means that someone is permitting the client's entry into a +i
* channel.
*
* \param origin the person, who INVITEs you.
* \param params[0] mandatory, contains your nick.
* \param params[1] mandatory, contains the channel name you're invited into.
*
* \sa irc_cmd_invite irc_cmd_chanmode_invite
*/
static void onInvite(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *channel = [NSString stringWithCString:params[1] encoding:NSASCIIStringEncoding];
if ([[client delegate] respondsToSelector:@selector(onInvite:nick:)])
[[[client delegate] dd_invokeOnMainThread] onInvite:channel nick:nick];
}
/*!
* The "ctcp" event is triggered when the client receives the CTCP
* request. By default, the built-in CTCP request handler is used. The
* build-in handler automatically replies on most CTCP messages, so you
* will rarely need to override it.
*
* \param origin the person, who generates the message.
* \param params[0] mandatory, the complete CTCP message, including its
* arguments.
*
* Mirc generates PING, FINGER, VERSION, TIME and ACTION messages,
* check the source code of \c libirc_event_ctcp_internal function to
* see how to write your own CTCP request handler. Also you may find
* useful this question in FAQ: \ref faq4
*/
static void onCtcpRequest(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
if ( origin )
{
char nickbuf[128];
irc_target_get_nick (origin, nickbuf, sizeof(nickbuf));
if ( strstr (params[0], "PING") == params[0] ) {
irc_cmd_ctcp_reply (session, nickbuf, params[0]);
}
else if ( !strcmp (params[0], "VERSION") )
{
irc_cmd_ctcp_reply (session, nickbuf, [[NSString stringWithFormat:@"VERSION %@", [client version]] UTF8String]);
}
else if ( !strcmp (params[0], "FINGER") )
{
irc_cmd_ctcp_reply (session, nickbuf, [[NSString stringWithFormat:@"FINGER %@ (%@) Idle 0 seconds", [client username], [client realname]] UTF8String]);
}
else if ( !strcmp (params[0], "TIME") )
{
irc_cmd_ctcp_reply(session, nickbuf, [[[NSDate dateWithTimeIntervalSinceNow:0] descriptionWithCalendarFormat:@"TIME %a %b %e %H:%M:%S %Z %Y" timeZone:nil locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]] UTF8String]);
} else {
if ([[client delegate] respondsToSelector:@selector(onCtcpRequest:type:nick:)]) {
NSString *requestString = [[NSString alloc] initWithData:[NSData dataWithBytes:params[0] length:strlen(params[0])] encoding:[client encoding]];
NSRange firstSpace = [requestString rangeOfString:@" "];
NSString *type = [requestString substringToIndex:firstSpace.location];
NSString *request = [requestString substringFromIndex:(firstSpace.location + 1)];
[[[client delegate] dd_invokeOnMainThread] onCtcpRequest:request type:type nick:nick];
}
}
}
}
/*!
* The "ctcp" event is triggered when the client receives the CTCP reply.
*
* \param origin the person, who generates the message.
* \param params[0] mandatory, the CTCP message itself with its arguments.
*/
static void onCtcpReply(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSData *reply = [NSData dataWithBytes:params[0] length:strlen(params[0])];
if ([[client delegate] respondsToSelector:@selector(onCtcpReply:nick:)])
[[[client delegate] dd_invokeOnMainThread] onCtcpReply:reply nick:nick];
}
/*!
* The "action" event is triggered when the client receives the CTCP
* ACTION message. These messages usually looks like:\n
* \code
* [23:32:55] * Tim gonna sleep.
* \endcode
*
* \param origin the person, who generates the message.
* \param params[0] mandatory, the target of the message.
* \param params[1] mandatory, the ACTION message.
*/
static void onCtcpAction(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *nick = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSString *target = [NSString stringWithCString:params[0] encoding:NSASCIIStringEncoding];
NSData *action = [NSData dataWithBytes:params[1] length:strlen(params[1])];
IRCClientChannel *currentChannel = [[client channels] objectForKey:target];
if (currentChannel) {
// An action on a channel we're on
[currentChannel onAction:[[NSString alloc] initWithData:action encoding:[currentChannel encoding]] nick:nick];
} else {
// An action in a private message
if ([[client delegate] respondsToSelector:@selector(onAction:nick:)])
[[[client delegate] dd_invokeOnMainThread] onAction:action nick:nick];
}
}
/*!
* The "unknown" event is triggered upon receipt of any number of
* unclassifiable miscellaneous messages, which aren't handled by the
* library.
*/
static void onUnknownEvent(irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSString *eventString = [NSString stringWithCString:event encoding:NSASCIIStringEncoding];
NSString *sender = nil;
if (origin != NULL)
sender = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSMutableArray *paramsArray = [[NSMutableArray alloc] init];
for (unsigned int i = 0; i < count; i++)
[paramsArray addObject:[[NSString alloc] initWithData:[NSData dataWithBytes:params[i] length:strlen(params[i])] encoding:[client encoding]]];
if ([[client delegate] respondsToSelector:@selector(onUnknownEvent:origin:params:)])
[[[client delegate] dd_invokeOnMainThread] onUnknownEvent:eventString origin:sender params:paramsArray];
}
/*!
* The "numeric" event is triggered upon receipt of any numeric response
* from the server. There is a lot of such responses, see the full list
* here: \ref rfcnumbers.
*
* See the params in ::irc_eventcode_callback_t specification.
*/
static void onNumericEvent(irc_session_t * session, unsigned int event, const char * origin, const char ** params, unsigned int count)
{
IRCClientSession *client = (IRCClientSession *) irc_get_ctx(session);
NSUInteger eventNumber = event;
NSString *originString = [NSString stringWithCString:origin encoding:NSASCIIStringEncoding];
NSMutableArray *paramsArray = [[NSMutableArray alloc] init];
for (unsigned int i = 0; i < count; i++)
[paramsArray addObject:[[NSString alloc] initWithData:[NSData dataWithBytes:params[i] length:strlen(params[i])] encoding:[client encoding]]];
if ([[client delegate] respondsToSelector:@selector(onNumericEvent:origin:params:)])
[[[client delegate] dd_invokeOnMainThread] onNumericEvent:eventNumber origin:originString params:paramsArray];
}

View File

@@ -0,0 +1,152 @@
/*
* Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*/
#import <Cocoa/Cocoa.h>
#include <IRCClient/libircclient.h>
/**
* @file IRCClientChannelDelegate.h
* @author Nathan Ollerenshaw
* @version 1.0
* @date 01.2009
* @brief Receives delegate messages from an IRCClientSession.
* @protocol IRCClientSessionDelegate
*/
@class IRCClientChannel;
/** @brief Receives delegate messages from an IRCClientSession.
*
* Each IRCClientSession object needs a single delegate. Methods are called
* for each event that occurs on an IRC server that the client is connected to.
*
* Note that for any given parameter, it may be optional, in which case a nil
* object may be supplied instead of the given parameter.
*/
@interface NSObject (IRCClientSessionDelegate)
/** The client has successfully connected to the IRC server. */
- (void)onConnect;
/** An IRC client on a channel that this client is connected to has changed nickname,
* or this IRC client has changed nicknames.
*
* @param nick the new nickname
* @param oldNick the old nickname
*/
- (void)onNick:(NSString *)nick oldNick:(NSString *)oldNick;
/** An IRC client on a channel that this client is connected to has quit IRC.
*
* @param nick the nickname of the client that quit.
* @param reason (optional) the quit message, if any.
*/
- (void)onQuit:(NSString *)nick reason:(NSString *)reason;
/** The IRC client has joined (connected) successfully to a new channel. This
* event creates an IRCClientChannel object, which you are expected to asign a
* delegate to, to handle events from the channel.
*
* For example, on receipt of this message, a graphical IRC client would most
* likely open a new window, create an IRCClientChannelDelegate for the window,
* set the new IRCClientChannel's delegate to the new delegate, and then hook
* it up so that new events sent to the IRCClientChannelDelegate are sent to
* the window.
*
* @param channel the IRCClientChannel object for the newly joined channel.
*/
- (void)onJoinChannel:(IRCClientChannel *)channel;
/** The client has changed it's user mode.
*
* @param mode the new mode.
*/
- (void)onMode:(NSString *)mode;
/** The client has received a private PRIVMSG from another IRC client.
*
* @param message the text of the message
* @param nick the other IRC Client that sent the message.
*/
- (void)onPrivmsg:(NSData *)message nick:(NSString *)nick;
/** The client has received a private NOTICE from another client.
*
* @param notice the text of the message
* @param nick the nickname of the other IRC client that sent the message.
*/
- (void)onNotice:(NSData *)notice nick:(NSString *)nick;
/** The IRC client has been invited to a channel.
*
* @param channel the channel for the invitation.
* @param nick the nickname of the user that sent the invitation.
*/
- (void)onInvite:(NSString *)channel nick:(NSString *)nick;
/** A private CTCP request was sent to the IRC client.
*
* @param request the CTCP request string (after the type)
* @param type the CTCP request type
* @param nick the nickname of the user that sent the request.
*/
- (void)onCtcpRequest:(NSString *)request type:(NSString *)type nick:(NSString *)nick;
/** A private CTCP reply was sent to the IRC client.
*
* @param reply an NSData containing the raw C string of the reply.
* @param nick the nickname of the user that sent the reply.
*/
- (void)onCtcpReply:(NSData *)reply nick:(NSString *)nick;
/** A private CTCP ACTION was sent to the IRC client.
*
* CTCP ACTION is not limited to channels; it may also be sent directly to other users.
*
* @param action the action message text.
* @param nick the nickname of the client that sent the action.
*/
- (void)onAction:(NSData *)action nick:(NSString *)nick;
/** An unhandled event was received from the IRC server.
*
* @param event the unknown event name
* @param origin the sender of the event
* @param params an NSArray of NSData objects that are the raw C strings of the event.
*/
- (void)onUnknownEvent:(NSString *)event origin:(NSString *)origin params:(NSArray *)params;
/** An unhandled numeric was received from the IRC server
*
* @param event the unknown event number
* @param origin the sender of the event
* @param params an NSArray of NSData objects that are the raw C strings of the event.
*/
- (void)onNumericEvent:(NSUInteger)event origin:(NSString *)origin params:(NSArray *)params;
@end

View File

@@ -0,0 +1,35 @@
/*
* Copyright (c) 2007-2008 Dave Dribin
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#import <Foundation/Foundation.h>
@interface NSObject (DDExtensions)
- (id)dd_invokeOnMainThread;
- (id)dd_invokeOnMainThreadAndWaitUntilDone:(BOOL)waitUntilDone;
@end
#define ddsynthesize(_X_) @synthesize _X_ = _##_X_

View File

@@ -0,0 +1,43 @@
/*
* Copyright (c) 2007-2008 Dave Dribin
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#import "NSObject+DDExtensions.h"
#import "DDInvocationGrabber.h"
@implementation NSObject (DDExtensions)
- (id)dd_invokeOnMainThread;
{
return [self dd_invokeOnMainThreadAndWaitUntilDone:NO];
}
- (id)dd_invokeOnMainThreadAndWaitUntilDone:(BOOL)waitUntilDone;
{
DDInvocationGrabber * grabber = [DDInvocationGrabber invocationGrabber];
[grabber setForwardInvokesOnMainThread:YES];
[grabber setWaitUntilDone:waitUntilDone];
return [grabber prepareWithInvocationTarget:self];
}
@end

View File

@@ -0,0 +1,293 @@
# Doxyfile 1.5.7.1
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = IRCClient
PROJECT_NUMBER = 1.0
OUTPUT_DIRECTORY = doc
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH = /Extra/
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
SYMBOL_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = Classes
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.d \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.dox \
*.py \
*.f90 \
*.f \
*.vhd \
*.vhdl
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
HTML_DYNAMIC_SECTIONS = NO
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHG_LOCATION =
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NONE
TREEVIEW_WIDTH = 250
FORMULA_FONTSIZE = 10
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
MSCGEN_PATH = /Extra/Doxygen.app/Contents/Resources/
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
DOT_FONTNAME = FreeSans
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH = /usr/local/bin
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

View File

@@ -0,0 +1,408 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
693CA3360F188B3400BF8670 /* libircclient.c in Sources */ = {isa = PBXBuildFile; fileRef = 693CA3350F188B3400BF8670 /* libircclient.c */; };
694762D30F10AAAE002C0318 /* DDInvocationGrabber.h in Headers */ = {isa = PBXBuildFile; fileRef = 694762CB0F10AAAE002C0318 /* DDInvocationGrabber.h */; settings = {ATTRIBUTES = (Public, ); }; };
694762D40F10AAAE002C0318 /* DDInvocationGrabber.m in Sources */ = {isa = PBXBuildFile; fileRef = 694762CC0F10AAAE002C0318 /* DDInvocationGrabber.m */; };
694762D50F10AAAE002C0318 /* NSObject+DDExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 694762CD0F10AAAE002C0318 /* NSObject+DDExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; };
694762D60F10AAAE002C0318 /* NSObject+DDExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 694762CE0F10AAAE002C0318 /* NSObject+DDExtensions.m */; };
694762D70F10AAAE002C0318 /* IRCClientChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 694762CF0F10AAAE002C0318 /* IRCClientChannel.h */; settings = {ATTRIBUTES = (Public, ); }; };
694762D80F10AAAE002C0318 /* IRCClientChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 694762D00F10AAAE002C0318 /* IRCClientChannel.m */; };
694762D90F10AAAE002C0318 /* IRCClientSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 694762D10F10AAAE002C0318 /* IRCClientSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
694762DA0F10AAAE002C0318 /* IRCClientSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 694762D20F10AAAE002C0318 /* IRCClientSession.m */; };
6947631E0F10AE32002C0318 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 6947631D0F10AE32002C0318 /* LICENSE */; };
694763200F10AE46002C0318 /* README in Resources */ = {isa = PBXBuildFile; fileRef = 6947631F0F10AE46002C0318 /* README */; };
6989EABC0F1861FB0083030A /* IRCClientChannelDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6989EABA0F1861FB0083030A /* IRCClientChannelDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
6989EAC00F1862090083030A /* IRCClientSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6989EABE0F1862090083030A /* IRCClientSessionDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
6989EADD0F18810C0083030A /* Doxyfile in Resources */ = {isa = PBXBuildFile; fileRef = 6989EADC0F18810C0083030A /* Doxyfile */; };
69B1CAAC0F1F2F1B00EF6DE2 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA10F1F2F1B00EF6DE2 /* config.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAAD0F1F2F1B00EF6DE2 /* libirc_dcc.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA20F1F2F1B00EF6DE2 /* libirc_dcc.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAAE0F1F2F1B00EF6DE2 /* libirc_doc.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA30F1F2F1B00EF6DE2 /* libirc_doc.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAAF0F1F2F1B00EF6DE2 /* libirc_doc_faq.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA40F1F2F1B00EF6DE2 /* libirc_doc_faq.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAB00F1F2F1B00EF6DE2 /* libirc_errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA50F1F2F1B00EF6DE2 /* libirc_errors.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAB10F1F2F1B00EF6DE2 /* libirc_events.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA60F1F2F1B00EF6DE2 /* libirc_events.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAB20F1F2F1B00EF6DE2 /* libirc_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA70F1F2F1B00EF6DE2 /* libirc_options.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAB30F1F2F1B00EF6DE2 /* libirc_params.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA80F1F2F1B00EF6DE2 /* libirc_params.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAB40F1F2F1B00EF6DE2 /* libirc_rfcnumeric.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAA90F1F2F1B00EF6DE2 /* libirc_rfcnumeric.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAB50F1F2F1B00EF6DE2 /* libirc_session.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAAA0F1F2F1B00EF6DE2 /* libirc_session.h */; settings = {ATTRIBUTES = (Public, ); }; };
69B1CAB60F1F2F1B00EF6DE2 /* libircclient.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B1CAAB0F1F2F1B00EF6DE2 /* libircclient.h */; settings = {ATTRIBUTES = (Public, ); }; };
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
32DBCF5E0370ADEE00C91783 /* IRCClient_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IRCClient_Prefix.pch; sourceTree = "<group>"; };
693CA3350F188B3400BF8670 /* libircclient.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = libircclient.c; path = ../src/libircclient.c; sourceTree = SOURCE_ROOT; };
694762CB0F10AAAE002C0318 /* DDInvocationGrabber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDInvocationGrabber.h; sourceTree = "<group>"; };
694762CC0F10AAAE002C0318 /* DDInvocationGrabber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDInvocationGrabber.m; sourceTree = "<group>"; };
694762CD0F10AAAE002C0318 /* NSObject+DDExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+DDExtensions.h"; sourceTree = "<group>"; };
694762CE0F10AAAE002C0318 /* NSObject+DDExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+DDExtensions.m"; sourceTree = "<group>"; };
694762CF0F10AAAE002C0318 /* IRCClientChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IRCClientChannel.h; sourceTree = "<group>"; };
694762D00F10AAAE002C0318 /* IRCClientChannel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IRCClientChannel.m; sourceTree = "<group>"; };
694762D10F10AAAE002C0318 /* IRCClientSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IRCClientSession.h; sourceTree = "<group>"; };
694762D20F10AAAE002C0318 /* IRCClientSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IRCClientSession.m; sourceTree = "<group>"; };
6947631D0F10AE32002C0318 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = SOURCE_ROOT; };
6947631F0F10AE46002C0318 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
6989EABA0F1861FB0083030A /* IRCClientChannelDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IRCClientChannelDelegate.h; sourceTree = "<group>"; };
6989EABE0F1862090083030A /* IRCClientSessionDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IRCClientSessionDelegate.h; sourceTree = "<group>"; };
6989EADC0F18810C0083030A /* Doxyfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Doxyfile; sourceTree = SOURCE_ROOT; };
69B1CAA10F1F2F1B00EF6DE2 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../include/config.h; sourceTree = SOURCE_ROOT; };
69B1CAA20F1F2F1B00EF6DE2 /* libirc_dcc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_dcc.h; path = ../include/libirc_dcc.h; sourceTree = SOURCE_ROOT; };
69B1CAA30F1F2F1B00EF6DE2 /* libirc_doc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_doc.h; path = ../include/libirc_doc.h; sourceTree = SOURCE_ROOT; };
69B1CAA40F1F2F1B00EF6DE2 /* libirc_doc_faq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_doc_faq.h; path = ../include/libirc_doc_faq.h; sourceTree = SOURCE_ROOT; };
69B1CAA50F1F2F1B00EF6DE2 /* libirc_errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_errors.h; path = ../include/libirc_errors.h; sourceTree = SOURCE_ROOT; };
69B1CAA60F1F2F1B00EF6DE2 /* libirc_events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_events.h; path = ../include/libirc_events.h; sourceTree = SOURCE_ROOT; };
69B1CAA70F1F2F1B00EF6DE2 /* libirc_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_options.h; path = ../include/libirc_options.h; sourceTree = SOURCE_ROOT; };
69B1CAA80F1F2F1B00EF6DE2 /* libirc_params.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_params.h; path = ../include/libirc_params.h; sourceTree = SOURCE_ROOT; };
69B1CAA90F1F2F1B00EF6DE2 /* libirc_rfcnumeric.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_rfcnumeric.h; path = ../include/libirc_rfcnumeric.h; sourceTree = SOURCE_ROOT; };
69B1CAAA0F1F2F1B00EF6DE2 /* libirc_session.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libirc_session.h; path = ../include/libirc_session.h; sourceTree = SOURCE_ROOT; };
69B1CAAB0F1F2F1B00EF6DE2 /* libircclient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libircclient.h; path = ../include/libircclient.h; sourceTree = SOURCE_ROOT; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8DC2EF5B0486A6940098B216 /* IRCClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IRCClient.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8DC2EF560486A6940098B216 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
034768DFFF38A50411DB9C8B /* Products */ = {
isa = PBXGroup;
children = (
8DC2EF5B0486A6940098B216 /* IRCClient.framework */,
);
name = Products;
sourceTree = "<group>";
};
0867D691FE84028FC02AAC07 /* IRCClient */ = {
isa = PBXGroup;
children = (
6947632B0F10AFD3002C0318 /* doc */,
6947631F0F10AE46002C0318 /* README */,
6947631D0F10AE32002C0318 /* LICENSE */,
6989EADC0F18810C0083030A /* Doxyfile */,
08FB77AEFE84172EC02AAC07 /* Classes */,
32C88DFF0371C24200C91783 /* Other Sources */,
089C1665FE841158C02AAC07 /* Resources */,
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
034768DFFF38A50411DB9C8B /* Products */,
);
name = IRCClient;
sourceTree = "<group>";
};
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */,
1058C7B2FEA5585E11CA2CBB /* Other Frameworks */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
};
089C1665FE841158C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
8DC2EF5A0486A6940098B216 /* Info.plist */,
089C1666FE841158C02AAC07 /* InfoPlist.strings */,
);
name = Resources;
sourceTree = "<group>";
};
08FB77AEFE84172EC02AAC07 /* Classes */ = {
isa = PBXGroup;
children = (
694762CB0F10AAAE002C0318 /* DDInvocationGrabber.h */,
694762CC0F10AAAE002C0318 /* DDInvocationGrabber.m */,
694762CD0F10AAAE002C0318 /* NSObject+DDExtensions.h */,
694762CE0F10AAAE002C0318 /* NSObject+DDExtensions.m */,
6989EABA0F1861FB0083030A /* IRCClientChannelDelegate.h */,
694762CF0F10AAAE002C0318 /* IRCClientChannel.h */,
694762D00F10AAAE002C0318 /* IRCClientChannel.m */,
6989EABE0F1862090083030A /* IRCClientSessionDelegate.h */,
694762D10F10AAAE002C0318 /* IRCClientSession.h */,
694762D20F10AAAE002C0318 /* IRCClientSession.m */,
);
path = Classes;
sourceTree = "<group>";
};
1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
);
name = "Linked Frameworks";
sourceTree = "<group>";
};
1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
isa = PBXGroup;
children = (
0867D6A5FE840307C02AAC07 /* AppKit.framework */,
D2F7E79907B2D74100F64583 /* CoreData.framework */,
0867D69BFE84028FC02AAC07 /* Foundation.framework */,
);
name = "Other Frameworks";
sourceTree = "<group>";
};
32C88DFF0371C24200C91783 /* Other Sources */ = {
isa = PBXGroup;
children = (
69B1CAA10F1F2F1B00EF6DE2 /* config.h */,
69B1CAA20F1F2F1B00EF6DE2 /* libirc_dcc.h */,
69B1CAA30F1F2F1B00EF6DE2 /* libirc_doc.h */,
69B1CAA40F1F2F1B00EF6DE2 /* libirc_doc_faq.h */,
69B1CAA50F1F2F1B00EF6DE2 /* libirc_errors.h */,
69B1CAA60F1F2F1B00EF6DE2 /* libirc_events.h */,
69B1CAA70F1F2F1B00EF6DE2 /* libirc_options.h */,
69B1CAA80F1F2F1B00EF6DE2 /* libirc_params.h */,
69B1CAA90F1F2F1B00EF6DE2 /* libirc_rfcnumeric.h */,
69B1CAAA0F1F2F1B00EF6DE2 /* libirc_session.h */,
69B1CAAB0F1F2F1B00EF6DE2 /* libircclient.h */,
32DBCF5E0370ADEE00C91783 /* IRCClient_Prefix.pch */,
693CA3350F188B3400BF8670 /* libircclient.c */,
);
name = "Other Sources";
sourceTree = "<group>";
};
6947632B0F10AFD3002C0318 /* doc */ = {
isa = PBXGroup;
children = (
);
path = doc;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8DC2EF500486A6940098B216 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
694762D30F10AAAE002C0318 /* DDInvocationGrabber.h in Headers */,
694762D50F10AAAE002C0318 /* NSObject+DDExtensions.h in Headers */,
694762D70F10AAAE002C0318 /* IRCClientChannel.h in Headers */,
694762D90F10AAAE002C0318 /* IRCClientSession.h in Headers */,
6989EABC0F1861FB0083030A /* IRCClientChannelDelegate.h in Headers */,
6989EAC00F1862090083030A /* IRCClientSessionDelegate.h in Headers */,
69B1CAAC0F1F2F1B00EF6DE2 /* config.h in Headers */,
69B1CAAD0F1F2F1B00EF6DE2 /* libirc_dcc.h in Headers */,
69B1CAAE0F1F2F1B00EF6DE2 /* libirc_doc.h in Headers */,
69B1CAAF0F1F2F1B00EF6DE2 /* libirc_doc_faq.h in Headers */,
69B1CAB00F1F2F1B00EF6DE2 /* libirc_errors.h in Headers */,
69B1CAB10F1F2F1B00EF6DE2 /* libirc_events.h in Headers */,
69B1CAB20F1F2F1B00EF6DE2 /* libirc_options.h in Headers */,
69B1CAB30F1F2F1B00EF6DE2 /* libirc_params.h in Headers */,
69B1CAB40F1F2F1B00EF6DE2 /* libirc_rfcnumeric.h in Headers */,
69B1CAB50F1F2F1B00EF6DE2 /* libirc_session.h in Headers */,
69B1CAB60F1F2F1B00EF6DE2 /* libircclient.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8DC2EF4F0486A6940098B216 /* IRCClient */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "IRCClient" */;
buildPhases = (
8DC2EF500486A6940098B216 /* Headers */,
8DC2EF520486A6940098B216 /* Resources */,
8DC2EF540486A6940098B216 /* Sources */,
8DC2EF560486A6940098B216 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = IRCClient;
productInstallPath = "$(HOME)/Library/Frameworks";
productName = IRCClient;
productReference = 8DC2EF5B0486A6940098B216 /* IRCClient.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "IRCClient" */;
compatibilityVersion = "Xcode 3.1";
hasScannedForEncodings = 1;
mainGroup = 0867D691FE84028FC02AAC07 /* IRCClient */;
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
8DC2EF4F0486A6940098B216 /* IRCClient */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8DC2EF520486A6940098B216 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */,
6947631E0F10AE32002C0318 /* LICENSE in Resources */,
694763200F10AE46002C0318 /* README in Resources */,
6989EADD0F18810C0083030A /* Doxyfile in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8DC2EF540486A6940098B216 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
694762D40F10AAAE002C0318 /* DDInvocationGrabber.m in Sources */,
694762D60F10AAAE002C0318 /* NSObject+DDExtensions.m in Sources */,
694762D80F10AAAE002C0318 /* IRCClientChannel.m in Sources */,
694762DA0F10AAAE002C0318 /* IRCClientSession.m in Sources */,
693CA3360F188B3400BF8670 /* libircclient.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C1666FE841158C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
089C1667FE841158C02AAC07 /* English */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
1DEB91AE08733DA50010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = NO;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
FRAMEWORK_VERSION = A;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = IRCClient_Prefix.pch;
HEADER_SEARCH_PATHS = (
../src,
../include,
);
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Frameworks";
LD_DYLIB_INSTALL_NAME = "@executable_path/../Frameworks/$(EXECUTABLE_PATH)";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
../libircclient/trunk/src,
"\"$(SRCROOT)/../src\"",
);
PRODUCT_NAME = IRCClient;
WRAPPER_EXTENSION = framework;
};
name = Debug;
};
1DEB91AF08733DA50010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
FRAMEWORK_VERSION = A;
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = IRCClient_Prefix.pch;
HEADER_SEARCH_PATHS = (
../src,
../include,
);
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Frameworks";
LD_DYLIB_INSTALL_NAME = "../Frameworks/$(EXECUTABLE_PATH)";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
../libircclient/trunk/src,
"\"$(SRCROOT)/../src\"",
);
PRODUCT_NAME = IRCClient;
WRAPPER_EXTENSION = framework;
};
name = Release;
};
1DEB91B208733DA50010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
ONLY_ACTIVE_ARCH = YES;
PREBINDING = NO;
SDKROOT = macosx10.5;
};
name = Debug;
};
1DEB91B308733DA50010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
SDKROOT = macosx10.5;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "IRCClient" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1DEB91AE08733DA50010E9CD /* Debug */,
1DEB91AF08733DA50010E9CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "IRCClient" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1DEB91B208733DA50010E9CD /* Debug */,
1DEB91B308733DA50010E9CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
}

View File

@@ -0,0 +1,7 @@
//
// Prefix header for all source files of the 'IRCClient' target in the 'IRCClient' project.
//
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#endif

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>net.stupendous.${PRODUCT_NAME:identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

View File

@@ -0,0 +1,482 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -0,0 +1,21 @@
IRCClient.framework 1.0 by Nathan Ollerenshaw (chrome@stupendous.net)
This is a Cocoa framework wrapper around Georgy Yunaev's (gyunaev@ulduzsoft.com)
excellent libircclient library.
While Georgy's library is portable, obviously this Cocoa framework is specific
to Mac OS X systems. Though you might be able to get it working under
cocotron or GNUstep, those implementations of Cocoa are not supported.
To build the framework, you will need to configure libircclient library first.
From the Terminal, run the following command in the distribution directory:
./configure --enable-thread --enable-ipv6
The Xcode project is configured to include the libircclient.c source.
The framework is configured to build with a relative path of ../Frameworks/ so
it can be easily embedded in your application.
For documentation, examine the header files or read the Doxygen documentations
in 'doc'.

View File

@@ -0,0 +1,140 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: DDInvocationGrabber.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
<h1>DDInvocationGrabber.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2007-2008 Dave Dribin</span>
<a name="l00003"></a>00003 <span class="comment"> * </span>
<a name="l00004"></a>00004 <span class="comment"> * Permission is hereby granted, free of charge, to any person</span>
<a name="l00005"></a>00005 <span class="comment"> * obtaining a copy of this software and associated documentation</span>
<a name="l00006"></a>00006 <span class="comment"> * files (the "Software"), to deal in the Software without</span>
<a name="l00007"></a>00007 <span class="comment"> * restriction, including without limitation the rights to use, copy,</span>
<a name="l00008"></a>00008 <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span>
<a name="l00009"></a>00009 <span class="comment"> * of the Software, and to permit persons to whom the Software is</span>
<a name="l00010"></a>00010 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
<a name="l00011"></a>00011 <span class="comment"> * </span>
<a name="l00012"></a>00012 <span class="comment"> * The above copyright notice and this permission notice shall be</span>
<a name="l00013"></a>00013 <span class="comment"> * included in all copies or substantial portions of the Software.</span>
<a name="l00014"></a>00014 <span class="comment"> *</span>
<a name="l00015"></a>00015 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
<a name="l00016"></a>00016 <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
<a name="l00017"></a>00017 <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
<a name="l00018"></a>00018 <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span>
<a name="l00019"></a>00019 <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span>
<a name="l00020"></a>00020 <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span>
<a name="l00021"></a>00021 <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span>
<a name="l00022"></a>00022 <span class="comment"> * SOFTWARE.</span>
<a name="l00023"></a>00023 <span class="comment"> */</span>
<a name="l00024"></a>00024
<a name="l00025"></a>00025
<a name="l00026"></a>00026 <span class="comment">/*</span>
<a name="l00027"></a>00027 <span class="comment"> * This class is based on CInvocationGrabber:</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * Copyright (c) 2007, Toxic Software</span>
<a name="l00030"></a>00030 <span class="comment"> * All rights reserved.</span>
<a name="l00031"></a>00031 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00032"></a>00032 <span class="comment"> * modification, are permitted provided that the following conditions are</span>
<a name="l00033"></a>00033 <span class="comment"> * met:</span>
<a name="l00034"></a>00034 <span class="comment"> * </span>
<a name="l00035"></a>00035 <span class="comment"> * * Redistributions of source code must retain the above copyright notice,</span>
<a name="l00036"></a>00036 <span class="comment"> * this list of conditions and the following disclaimer.</span>
<a name="l00037"></a>00037 <span class="comment"> * </span>
<a name="l00038"></a>00038 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright</span>
<a name="l00039"></a>00039 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
<a name="l00040"></a>00040 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
<a name="l00041"></a>00041 <span class="comment"> * </span>
<a name="l00042"></a>00042 <span class="comment"> * * Neither the name of the Toxic Software nor the names of its</span>
<a name="l00043"></a>00043 <span class="comment"> * contributors may be used to endorse or promote products derived from</span>
<a name="l00044"></a>00044 <span class="comment"> * this software without specific prior written permission.</span>
<a name="l00045"></a>00045 <span class="comment"> * </span>
<a name="l00046"></a>00046 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</span>
<a name="l00047"></a>00047 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
<a name="l00048"></a>00048 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</span>
<a name="l00049"></a>00049 <span class="comment"> * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE</span>
<a name="l00050"></a>00050 <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
<a name="l00051"></a>00051 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
<a name="l00052"></a>00052 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
<a name="l00053"></a>00053 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
<a name="l00054"></a>00054 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
<a name="l00055"></a>00055 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF</span>
<a name="l00056"></a>00056 <span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00057"></a>00057 <span class="comment"> *</span>
<a name="l00058"></a>00058 <span class="comment"> */</span>
<a name="l00059"></a>00059
<a name="l00060"></a>00060 <span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span>
<a name="l00061"></a>00061
<a name="l00062"></a>00062 <span class="comment">/*</span>
<a name="l00063"></a>00063 <span class="comment"> * @class DDInvocationGrabber</span>
<a name="l00064"></a>00064 <span class="comment"> * @discussion DDInvocationGrabber is a helper object that makes it very easy to construct instances of NSInvocation for later use. The object is inspired by NSUndoManager's prepareWithInvocationTarget method. To use a DDInvocationGrabber object, you set its target to some object, then send it a message as if it were the target object (the DDInvocationGrabber object acts as a proxy), if the target message understands the message the DDInvocationGrabber object stores the message invocation.</span>
<a name="l00065"></a>00065 <span class="comment"> </span>
<a name="l00066"></a>00066 <span class="comment"> DDInvocationGrabber *theGrabber = [DDInvocationGrabber invocationGrabber];</span>
<a name="l00067"></a>00067 <span class="comment"> [theGrabber setTarget:someObject]</span>
<a name="l00068"></a>00068 <span class="comment"> [theGrabber doSomethingWithParameter:someParameter]; // Send messages to 'theGrabber' as if it were 'someObject'</span>
<a name="l00069"></a>00069 <span class="comment"> NSInvocation *theInvocation = [theGrabber invocation];</span>
<a name="l00070"></a>00070 <span class="comment"> </span>
<a name="l00071"></a>00071 <span class="comment"> A slightly more concise version (using the covenience category) follows:</span>
<a name="l00072"></a>00072 <span class="comment"> </span>
<a name="l00073"></a>00073 <span class="comment"> DDInvocationGrabber *theGrabber = [DDInvocationGrabber invocationGrabber];</span>
<a name="l00074"></a>00074 <span class="comment"> [[theGrabber prepareWithInvocationTarget:someObject] doSomethingWithParameter:someParameter];</span>
<a name="l00075"></a>00075 <span class="comment"> NSInvocation *theInvocation = [theGrabber invocation];</span>
<a name="l00076"></a>00076 <span class="comment"> </span>
<a name="l00077"></a>00077 <span class="comment"> */</span>
<a name="l00078"></a>00078 <span class="keyword">@interface </span>DDInvocationGrabber : NSProxy
<a name="l00079"></a>00079 {
<a name="l00080"></a>00080 <span class="keywordtype">id</span> _target;
<a name="l00081"></a>00081 NSInvocation * _invocation;
<a name="l00082"></a>00082 BOOL _forwardInvokesOnMainThread;
<a name="l00083"></a>00083 BOOL _waitUntilDone;
<a name="l00084"></a>00084 }
<a name="l00085"></a>00085
<a name="l00086"></a>00086 <span class="comment">/*</span>
<a name="l00087"></a>00087 <span class="comment"> * @method invocationGrabber</span>
<a name="l00088"></a>00088 <span class="comment"> * @abstract Returns a newly allocated, inited, autoreleased DDInvocationGrabber object.</span>
<a name="l00089"></a>00089 <span class="comment"> */</span>
<a name="l00090"></a>00090 + (id)invocationGrabber;
<a name="l00091"></a>00091
<a name="l00092"></a>00092 - (id)target;
<a name="l00093"></a>00093 - (void)setTarget:(<span class="keywordtype">id</span>)inTarget;
<a name="l00094"></a>00094
<a name="l00095"></a>00095 - (NSInvocation *)invocation;
<a name="l00096"></a>00096 - (void)setInvocation:(NSInvocation *)inInvocation;
<a name="l00097"></a>00097
<a name="l00098"></a>00098 - (BOOL)forwardInvokesOnMainThread;
<a name="l00099"></a>00099 - (void)setForwardInvokesOnMainThread:(BOOL)forwardInvokesOnMainThread;
<a name="l00100"></a>00100
<a name="l00101"></a>00101 - (BOOL)waitUntilDone;
<a name="l00102"></a>00102 - (void)setWaitUntilDone:(BOOL)waitUntilDone;
<a name="l00103"></a>00103
<a name="l00104"></a>00104 <span class="keyword">@end</span>
<a name="l00105"></a>00105
<a name="l00106"></a>00106 <span class="keyword">@interface </span>DDInvocationGrabber (DDInvocationGrabber_Conveniences)
<a name="l00107"></a>00107
<a name="l00108"></a>00108 <span class="comment">/*</span>
<a name="l00109"></a>00109 <span class="comment"> * @method prepareWithInvocationTarget:</span>
<a name="l00110"></a>00110 <span class="comment"> * @abstract Sets the target object of the receiver and returns itself. The sender can then send a message to the </span>
<a name="l00111"></a>00111 <span class="comment"> */</span>
<a name="l00112"></a>00112 - (id)prepareWithInvocationTarget:(<span class="keywordtype">id</span>)inTarget;
<a name="l00113"></a>00113
<a name="l00114"></a>00114 <span class="keyword">@end</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientChannel.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
<h1>IRCClientChannel.h</h1><a href="_i_r_c_client_channel_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* </span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This library is free software; you can redistribute it and/or modify it </span>
<a name="l00005"></a>00005 <span class="comment"> * under the terms of the GNU Lesser General Public License as published by </span>
<a name="l00006"></a>00006 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or (at your </span>
<a name="l00007"></a>00007 <span class="comment"> * option) any later version.</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT </span>
<a name="l00010"></a>00010 <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or </span>
<a name="l00011"></a>00011 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public </span>
<a name="l00012"></a>00012 <span class="comment"> * License for more details.</span>
<a name="l00013"></a>00013 <span class="comment"> */</span>
<a name="l00014"></a>00014
<a name="l00023"></a>00023 <span class="preprocessor">#import &lt;Cocoa/Cocoa.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#import "<a class="code" href="_i_r_c_client_channel_delegate_8h.html" title="Receives delegate messages from an IRCClientChannel.">IRCClientChannelDelegate.h</a>"</span>
<a name="l00025"></a>00025
<a name="l00035"></a>00035 <span class="keyword">@class</span> <a class="code" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a>;
<a name="l00036"></a><a class="code" href="interface_i_r_c_client_channel.html">00036</a> <span class="keyword">@interface </span><a class="code" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> : NSObject {
<a name="l00037"></a><a class="code" href="interface_i_r_c_client_channel.html#a24a320a08bb515f3ef5862d7bb1e6b2">00037</a> <span class="keywordtype">id</span> <a class="code" href="interface_i_r_c_client_channel.html#a24a320a08bb515f3ef5862d7bb1e6b2">delegate</a>;
<a name="l00038"></a><a class="code" href="interface_i_r_c_client_channel.html#fe81a99a24e3bc66fc5f05742fb52096">00038</a> NSString *<a class="code" href="interface_i_r_c_client_channel.html#fe81a99a24e3bc66fc5f05742fb52096">name</a>;
<a name="l00039"></a><a class="code" href="interface_i_r_c_client_channel.html#b2c7c8cea97e6f0dfd50f5ac2576a328">00039</a> NSStringEncoding <a class="code" href="interface_i_r_c_client_channel.html#b2c7c8cea97e6f0dfd50f5ac2576a328">encoding</a>;
<a name="l00040"></a><a class="code" href="interface_i_r_c_client_channel.html#1edd5edd8ec30f8763a8ad703e0bf0b1">00040</a> <a class="code" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> *<a class="code" href="interface_i_r_c_client_channel.html#1edd5edd8ec30f8763a8ad703e0bf0b1">session</a>;
<a name="l00041"></a><a class="code" href="interface_i_r_c_client_channel.html#eb5124389861d676b3332cca7c8dc000">00041</a> NSString *<a class="code" href="interface_i_r_c_client_channel.html#eb5124389861d676b3332cca7c8dc000">topic</a>;
<a name="l00042"></a><a class="code" href="interface_i_r_c_client_channel.html#b1d93e3a44e0f306b0bf9034c9d73ba3">00042</a> NSString *<a class="code" href="interface_i_r_c_client_channel.html#b1d93e3a44e0f306b0bf9034c9d73ba3">modes</a>;
<a name="l00043"></a><a class="code" href="interface_i_r_c_client_channel.html#d60403088ddc1434db87825e62c57d5c">00043</a> NSMutableArray *<a class="code" href="interface_i_r_c_client_channel.html#d60403088ddc1434db87825e62c57d5c">names</a>;
<a name="l00044"></a>00044 }
<a name="l00045"></a>00045
<a name="l00047"></a>00047 @property (assign) id delegate;
<a name="l00048"></a>00048
<a name="l00050"></a>00050 @property (copy) NSString *name;
<a name="l00051"></a>00051
<a name="l00053"></a>00053 @property (assign) NSStringEncoding encoding;
<a name="l00054"></a>00054
<a name="l00056"></a>00056 @property (assign) <a class="code" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> *session;
<a name="l00057"></a>00057
<a name="l00059"></a>00059 @property (copy) NSString *topic;
<a name="l00060"></a>00060
<a name="l00062"></a>00062 @property (copy) NSString *modes;
<a name="l00063"></a>00063
<a name="l00066"></a>00066 @property (assign, readonly) NSMutableArray *names;
<a name="l00067"></a>00067
<a name="l00078"></a>00078 - (<span class="keywordtype">id</span>)initWithName:(NSString *)aName;
<a name="l00079"></a>00079
<a name="l00083"></a>00083 - (<span class="keywordtype">int</span>)part;
<a name="l00084"></a>00084
<a name="l00090"></a>00090 - (<span class="keywordtype">int</span>)invite:(NSString *)nick;
<a name="l00091"></a>00091
<a name="l00100"></a>00100 - (<span class="keywordtype">void</span>)setTopic:(NSString *)aTopic;
<a name="l00101"></a>00101
<a name="l00111"></a>00111 - (<span class="keywordtype">int</span>)setMode:(NSString *)mode params:(NSString *)params;
<a name="l00112"></a>00112
<a name="l00119"></a>00119 - (<span class="keywordtype">int</span>)message:(NSString *)message;
<a name="l00120"></a>00120
<a name="l00126"></a>00126 - (<span class="keywordtype">int</span>)action:(NSString *)action;
<a name="l00127"></a>00127
<a name="l00133"></a>00133 - (<span class="keywordtype">int</span>)notice:(NSString *)notice;
<a name="l00134"></a>00134
<a name="l00141"></a>00141 - (<span class="keywordtype">int</span>)kick:(NSString *)nick reason:(NSString *)reason;
<a name="l00142"></a>00142
<a name="l00151"></a>00151 - (<span class="keywordtype">int</span>)ctcpRequest:(NSString *)request;
<a name="l00152"></a>00152
<a name="l00153"></a>00153 @end
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientChannel.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClientChannel.h File Reference</h1>Represents a connected IRC Channel.
<a href="#_details">More...</a>
<p>
<code>#import &lt;Cocoa/Cocoa.h&gt;</code><br>
<code>#import &quot;<a class="el" href="_i_r_c_client_channel_delegate_8h-source.html">IRCClientChannelDelegate.h</a>&quot;</code><br>
<p>
<a href="_i_r_c_client_channel_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents a connected IRC Channel. <a href="interface_i_r_c_client_channel.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Represents a connected IRC Channel.
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Ollerenshaw </dd></dl>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.0 </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>01.2009 </dd></dl>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientChannelDelegate.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
<h1>IRCClientChannelDelegate.h</h1><a href="_i_r_c_client_channel_delegate_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* </span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This library is free software; you can redistribute it and/or modify it </span>
<a name="l00005"></a>00005 <span class="comment"> * under the terms of the GNU Lesser General Public License as published by </span>
<a name="l00006"></a>00006 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or (at your </span>
<a name="l00007"></a>00007 <span class="comment"> * option) any later version.</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT </span>
<a name="l00010"></a>00010 <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or </span>
<a name="l00011"></a>00011 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public </span>
<a name="l00012"></a>00012 <span class="comment"> * License for more details.</span>
<a name="l00013"></a>00013 <span class="comment"> */</span>
<a name="l00014"></a>00014
<a name="l00024"></a>00024 <span class="preprocessor">#import &lt;Cocoa/Cocoa.h&gt;</span>
<a name="l00025"></a>00025
<a name="l00035"></a><a class="code" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">00035</a> <span class="keyword">@interface </span>NSObject (IRCClientChannelDelegate)
<a name="l00036"></a>00036
<a name="l00047"></a>00047 - (void)onJoin:(NSString *)nick;
<a name="l00048"></a>00048
<a name="l00056"></a>00056 - (void)onPart:(NSString *)nick reason:(NSString *)reason;
<a name="l00057"></a>00057
<a name="l00066"></a>00066 - (void)onMode:(NSString *)mode params:(NSString *)params nick:(NSString *)nick;
<a name="l00067"></a>00067
<a name="l00074"></a>00074 - (void)onTopic:(NSString *)aTopic nick:(NSString *)nick;
<a name="l00075"></a>00075
<a name="l00083"></a>00083 - (void)onKick:(NSString *)nick reason:(NSString *)reason byNick:(NSString *)byNick;
<a name="l00084"></a>00084
<a name="l00093"></a>00093 - (void)onPrivmsg:(NSString *)message nick:(NSString *)nick;
<a name="l00094"></a>00094
<a name="l00104"></a>00104 - (void)onNotice:(NSString *)notice nick:(NSString *)nick;
<a name="l00105"></a>00105
<a name="l00114"></a>00114 - (void)onAction:(NSString *)action nick:(NSString *)nick;
<a name="l00115"></a>00115
<a name="l00116"></a>00116 <span class="keyword">@end</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientChannelDelegate.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClientChannelDelegate.h File Reference</h1>Receives delegate messages from an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a>.
<a href="#_details">More...</a>
<p>
<code>#import &lt;Cocoa/Cocoa.h&gt;</code><br>
<p>
<a href="_i_r_c_client_channel_delegate_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Receives delegate messages from an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a>. <a href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Receives delegate messages from an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a>.
<p>
Receives delegate messages from an <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a>.<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Ollerenshaw </dd></dl>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.0 </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>01.2009</dd></dl>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Ollerenshaw </dd></dl>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.0 </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>01.2009 </dd></dl>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,107 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientSession.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
<h1>IRCClientSession.h</h1><a href="_i_r_c_client_session_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
<a name="l00064"></a>00064 <span class="preprocessor">#import &lt;Cocoa/Cocoa.h&gt;</span>
<a name="l00065"></a>00065 <span class="preprocessor">#import "IRCClientSessionDelegate.h"</span>
<a name="l00066"></a>00066 <span class="preprocessor">#include "libircclient.h"</span>
<a name="l00067"></a>00067
<a name="l00080"></a>00080 <span class="keyword">@class</span> <a class="code" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a>;
<a name="l00081"></a><a class="code" href="interface_i_r_c_client_session.html">00081</a> <span class="keyword">@interface </span><a class="code" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> : NSObject {
<a name="l00082"></a><a class="code" href="interface_i_r_c_client_session.html#ff1874c72e785b2097b9ef7ea8856557">00082</a> <span class="keywordtype">id</span> <a class="code" href="interface_i_r_c_client_session.html#ff1874c72e785b2097b9ef7ea8856557">delegate</a>;
<a name="l00083"></a>00083 irc_callbacks_t callbacks;
<a name="l00084"></a><a class="code" href="interface_i_r_c_client_session.html#7f3f3efa9e35c82bc92d89b2f264ca88">00084</a> irc_session_t *<a class="code" href="interface_i_r_c_client_session.html#7f3f3efa9e35c82bc92d89b2f264ca88">session</a>;
<a name="l00085"></a>00085 NSThread *thread;
<a name="l00086"></a>00086
<a name="l00087"></a><a class="code" href="interface_i_r_c_client_session.html#6d2142efde508caf40c8b86e7dd1756c">00087</a> NSString *<a class="code" href="interface_i_r_c_client_session.html#6d2142efde508caf40c8b86e7dd1756c">version</a>;
<a name="l00088"></a><a class="code" href="interface_i_r_c_client_session.html#cb1376cfad37cc503c21fa1235f39fa0">00088</a> NSString *<a class="code" href="interface_i_r_c_client_session.html#cb1376cfad37cc503c21fa1235f39fa0">server</a>;
<a name="l00089"></a><a class="code" href="interface_i_r_c_client_session.html#f4d8a5d0747ecb6ed2f55f282582e8cf">00089</a> NSString *<a class="code" href="interface_i_r_c_client_session.html#f4d8a5d0747ecb6ed2f55f282582e8cf">port</a>;
<a name="l00090"></a><a class="code" href="interface_i_r_c_client_session.html#6e304e45ddb942ead5b3c044a2b09e0b">00090</a> NSString *<a class="code" href="interface_i_r_c_client_session.html#6e304e45ddb942ead5b3c044a2b09e0b">password</a>;
<a name="l00091"></a>00091
<a name="l00092"></a><a class="code" href="interface_i_r_c_client_session.html#4f678f5ad868a7e3d739b1e9ad415249">00092</a> NSString *<a class="code" href="interface_i_r_c_client_session.html#4f678f5ad868a7e3d739b1e9ad415249">nickname</a>;
<a name="l00093"></a><a class="code" href="interface_i_r_c_client_session.html#281dfe78f639e87899d3aff71983484e">00093</a> NSString *<a class="code" href="interface_i_r_c_client_session.html#281dfe78f639e87899d3aff71983484e">username</a>;
<a name="l00094"></a><a class="code" href="interface_i_r_c_client_session.html#c124ffbdf87a785981c3e330f5a90088">00094</a> NSString *<a class="code" href="interface_i_r_c_client_session.html#c124ffbdf87a785981c3e330f5a90088">realname</a>;
<a name="l00095"></a>00095
<a name="l00096"></a><a class="code" href="interface_i_r_c_client_session.html#fd38f656f1f7b03495e26fe982bb9e2a">00096</a> NSMutableDictionary *<a class="code" href="interface_i_r_c_client_session.html#fd38f656f1f7b03495e26fe982bb9e2a">channels</a>;
<a name="l00097"></a>00097 NSMutableDictionary *nicks;
<a name="l00098"></a><a class="code" href="interface_i_r_c_client_session.html#2b8b240d57a57acce3186768308c667c">00098</a> NSStringEncoding <a class="code" href="interface_i_r_c_client_session.html#2b8b240d57a57acce3186768308c667c">encoding</a>;
<a name="l00099"></a>00099 }
<a name="l00100"></a>00100
<a name="l00102"></a>00102 @property (assign) id delegate;
<a name="l00103"></a>00103
<a name="l00105"></a>00105 @property (assign) irc_session_t *session;
<a name="l00106"></a>00106
<a name="l00108"></a>00108 @property (copy) NSString *version;
<a name="l00109"></a>00109
<a name="l00111"></a>00111 @property (copy) NSString *server;
<a name="l00112"></a>00112
<a name="l00114"></a>00114 @property (copy) NSString *port;
<a name="l00115"></a>00115
<a name="l00117"></a>00117 @property (copy) NSString *password;
<a name="l00118"></a>00118
<a name="l00122"></a>00122 @property (copy) NSString *nickname;
<a name="l00123"></a>00123
<a name="l00128"></a>00128 @property (copy) NSString *username;
<a name="l00129"></a>00129
<a name="l00133"></a>00133 @property (copy) NSString *realname;
<a name="l00134"></a>00134
<a name="l00138"></a>00138 @property (assign,readonly) NSMutableDictionary *channels;
<a name="l00139"></a>00139
<a name="l00146"></a>00146 @property (assign) NSStringEncoding encoding;
<a name="l00147"></a>00147
<a name="l00155"></a>00155 - (<span class="keywordtype">int</span>)connect;
<a name="l00156"></a>00156
<a name="l00162"></a>00162 - (<span class="keywordtype">void</span>)disconnect;
<a name="l00163"></a>00163
<a name="l00167"></a>00167 - (<span class="keywordtype">bool</span>)isConnected;
<a name="l00168"></a>00168
<a name="l00173"></a>00173 - (<span class="keywordtype">void</span>)run;
<a name="l00174"></a>00174
<a name="l00178"></a>00178 - (<span class="keywordtype">int</span>)sendRawWithFormat:(NSString *)format, ...;
<a name="l00179"></a>00179
<a name="l00186"></a>00186 - (<span class="keywordtype">int</span>)quit:(NSString *)reason;
<a name="l00187"></a>00187
<a name="l00194"></a>00194 - (<span class="keywordtype">int</span>)join:(NSString *)channel key:(NSString *)key;
<a name="l00195"></a>00195
<a name="l00201"></a>00201 - (<span class="keywordtype">int</span>)list:(NSString *)channel;
<a name="l00202"></a>00202
<a name="l00208"></a>00208 - (<span class="keywordtype">int</span>)userMode:(NSString *)mode;
<a name="l00209"></a>00209
<a name="l00215"></a>00215 - (<span class="keywordtype">int</span>)nick:(NSString *)newnick;
<a name="l00216"></a>00216
<a name="l00222"></a>00222 - (<span class="keywordtype">int</span>)whois:(NSString *)nick;
<a name="l00223"></a>00223
<a name="l00230"></a>00230 - (<span class="keywordtype">int</span>)message:(NSString *)message to:(NSString *)target;
<a name="l00231"></a>00231
<a name="l00238"></a>00238 - (<span class="keywordtype">int</span>)action:(NSString *)action to:(NSString *)target;
<a name="l00239"></a>00239
<a name="l00246"></a>00246 - (<span class="keywordtype">int</span>)notice:(NSString *)notice to:(NSString *)target;
<a name="l00247"></a>00247
<a name="l00254"></a>00254 - (<span class="keywordtype">int</span>)ctcpRequest:(NSString *)request target:(NSString *)target;
<a name="l00255"></a>00255
<a name="l00262"></a>00262 - (<span class="keywordtype">int</span>)ctcpReply:(NSString *)reply target:(NSString *)target;
<a name="l00263"></a>00263
<a name="l00264"></a>00264 @end
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientSession.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClientSession.h File Reference</h1>Represents a connected IRC Session.
<a href="#_details">More...</a>
<p>
<code>#import &lt;Cocoa/Cocoa.h&gt;</code><br>
<code>#import &quot;IRCClientSessionDelegate.h&quot;</code><br>
<code>#include &quot;libircclient.h&quot;</code><br>
<p>
<a href="_i_r_c_client_session_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents a connected IRC Session. <a href="interface_i_r_c_client_session.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Represents a connected IRC Session.
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Ollerenshaw </dd></dl>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.0 </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>01.2009 </dd></dl>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientSessionDelegate.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
<h1>IRCClientSessionDelegate.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* </span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This library is free software; you can redistribute it and/or modify it </span>
<a name="l00005"></a>00005 <span class="comment"> * under the terms of the GNU Lesser General Public License as published by </span>
<a name="l00006"></a>00006 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or (at your </span>
<a name="l00007"></a>00007 <span class="comment"> * option) any later version.</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT </span>
<a name="l00010"></a>00010 <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or </span>
<a name="l00011"></a>00011 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public </span>
<a name="l00012"></a>00012 <span class="comment"> * License for more details.</span>
<a name="l00013"></a>00013 <span class="comment"> */</span>
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <span class="preprocessor">#import &lt;Cocoa/Cocoa.h&gt;</span>
<a name="l00016"></a>00016 <span class="preprocessor">#include "libircclient.h"</span>
<a name="l00017"></a>00017
<a name="l00027"></a>00027 <span class="keyword">@class</span> <a class="code" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a>;
<a name="l00028"></a>00028
<a name="l00038"></a><a class="code" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">00038</a> <span class="keyword">@interface </span>NSObject (IRCClientSessionDelegate)
<a name="l00039"></a>00039
<a name="l00042"></a>00042 - (void)onConnect;
<a name="l00043"></a>00043
<a name="l00051"></a>00051 - (void)onNick:(NSString *)nick oldNick:(NSString *)oldNick;
<a name="l00052"></a>00052
<a name="l00059"></a>00059 - (void)onQuit:(NSString *)nick reason:(NSString *)reason;
<a name="l00060"></a>00060
<a name="l00074"></a>00074 - (void)onJoinChannel:(<a class="code" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> *)channel;
<a name="l00075"></a>00075
<a name="l00081"></a>00081 - (void)onMode:(NSString *)mode;
<a name="l00082"></a>00082
<a name="l00089"></a>00089 - (void)onPrivmsg:(NSData *)message nick:(NSString *)nick;
<a name="l00090"></a>00090
<a name="l00097"></a>00097 - (void)onNotice:(NSData *)notice nick:(NSString *)nick;
<a name="l00098"></a>00098
<a name="l00105"></a>00105 - (void)onInvite:(NSString *)channel nick:(NSString *)nick;
<a name="l00106"></a>00106
<a name="l00114"></a>00114 - (void)onCtcpRequest:(NSString *)request type:(NSString *)type nick:(NSString *)nick;
<a name="l00115"></a>00115
<a name="l00122"></a>00122 - (void)onCtcpReply:(NSData *)reply nick:(NSString *)nick;
<a name="l00123"></a>00123
<a name="l00132"></a>00132 - (void)onAction:(NSData *)action nick:(NSString *)nick;
<a name="l00133"></a>00133
<a name="l00141"></a>00141 - (void)onUnknownEvent:(NSString *)event origin:(NSString *)origin params:(NSArray *)params;
<a name="l00142"></a>00142
<a name="l00150"></a>00150 - (void)onNumericEvent:(NSUInteger)event origin:(NSString *)origin params:(NSArray *)params;
<a name="l00151"></a>00151
<a name="l00152"></a>00152 <span class="keyword">@end</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: NSObject+DDExtensions.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
<h1>NSObject+DDExtensions.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2007-2008 Dave Dribin</span>
<a name="l00003"></a>00003 <span class="comment"> * </span>
<a name="l00004"></a>00004 <span class="comment"> * Permission is hereby granted, free of charge, to any person</span>
<a name="l00005"></a>00005 <span class="comment"> * obtaining a copy of this software and associated documentation</span>
<a name="l00006"></a>00006 <span class="comment"> * files (the "Software"), to deal in the Software without</span>
<a name="l00007"></a>00007 <span class="comment"> * restriction, including without limitation the rights to use, copy,</span>
<a name="l00008"></a>00008 <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span>
<a name="l00009"></a>00009 <span class="comment"> * of the Software, and to permit persons to whom the Software is</span>
<a name="l00010"></a>00010 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
<a name="l00011"></a>00011 <span class="comment"> * </span>
<a name="l00012"></a>00012 <span class="comment"> * The above copyright notice and this permission notice shall be</span>
<a name="l00013"></a>00013 <span class="comment"> * included in all copies or substantial portions of the Software.</span>
<a name="l00014"></a>00014 <span class="comment"> *</span>
<a name="l00015"></a>00015 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
<a name="l00016"></a>00016 <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
<a name="l00017"></a>00017 <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
<a name="l00018"></a>00018 <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span>
<a name="l00019"></a>00019 <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span>
<a name="l00020"></a>00020 <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span>
<a name="l00021"></a>00021 <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span>
<a name="l00022"></a>00022 <span class="comment"> * SOFTWARE.</span>
<a name="l00023"></a>00023 <span class="comment"> */</span>
<a name="l00024"></a>00024
<a name="l00025"></a>00025 <span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span>
<a name="l00026"></a>00026
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="keyword">@interface </span>NSObject (DDExtensions)
<a name="l00029"></a>00029
<a name="l00030"></a>00030 - (id)dd_invokeOnMainThread;
<a name="l00031"></a>00031 - (id)dd_invokeOnMainThreadAndWaitUntilDone:(BOOL)waitUntilDone;
<a name="l00032"></a>00032
<a name="l00033"></a>00033 <span class="keyword">@end</span>
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="preprocessor">#define ddsynthesize(_X_) @synthesize _X_ = _##_X_</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,36 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Class List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td class="indexvalue">Represents a connected IRC Channel </td></tr>
<tr><td class="indexkey"><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td class="indexvalue">Represents a connected IRC Session </td></tr>
<tr><td class="indexkey"><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td class="indexvalue">Receives delegate messages from an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> </td></tr>
<tr><td class="indexkey"><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td class="indexvalue">Receives delegate messages from an <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> </td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClientChannel Member List</h1>This is the complete list of members for <a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a>, including all inherited members.<p><table>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#3dce7913593cee47fff8f6d052139e84">action:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#e48470def47fee0442f84d6cbb61805f">ctcpRequest:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#a24a320a08bb515f3ef5862d7bb1e6b2">delegate</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#a24a320a08bb515f3ef5862d7bb1e6b2">delegate</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#b2c7c8cea97e6f0dfd50f5ac2576a328">encoding</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#b2c7c8cea97e6f0dfd50f5ac2576a328">encoding</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#01568915fb1763dbbe851598bf6111a3">initWithName:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#6a3081eee9d9f576a554e451f38a85af">invite:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#a11844c7c48140a83464b5da453411db">kick:reason:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#4c130a850d288754d0bb80a50be50b3c">message:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#b1d93e3a44e0f306b0bf9034c9d73ba3">modes</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#b1d93e3a44e0f306b0bf9034c9d73ba3">modes</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#fe81a99a24e3bc66fc5f05742fb52096">name</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#fe81a99a24e3bc66fc5f05742fb52096">name</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#d60403088ddc1434db87825e62c57d5c">names</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#d60403088ddc1434db87825e62c57d5c">names</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#d3ff98549b3bf39c581d2c5b62d6de8d">notice:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#374315cc58c1e27ee74f15f6da4da699">part</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#1edd5edd8ec30f8763a8ad703e0bf0b1">session</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#1edd5edd8ec30f8763a8ad703e0bf0b1">session</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#2a7b182090c69541c9b1d5919da842de">setMode:params:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_channel.html#5a30badfcab9de2b95a9546758355850">setTopic:</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#eb5124389861d676b3332cca7c8dc000">topic</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_channel.html#eb5124389861d676b3332cca7c8dc000">topic</a></td><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a></td><td></td></tr>
</table></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClientSession Member List</h1>This is the complete list of members for <a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a>, including all inherited members.<p><table>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#c8c975193f7798f195d69b984aaa21fd">action:to:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#fd38f656f1f7b03495e26fe982bb9e2a">channels</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#fd38f656f1f7b03495e26fe982bb9e2a">channels</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#c9a0b7a41adeb92cf89fc53038ebc00b">connect</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#2cef231ee53c6ad6a5d9d96283084996">ctcpReply:target:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#6388c4f1f5cf3ffc14057984e29a4635">ctcpRequest:target:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#ff1874c72e785b2097b9ef7ea8856557">delegate</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#ff1874c72e785b2097b9ef7ea8856557">delegate</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#9cb82eac49784ccafbd6cf7dd262a766">disconnect</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#2b8b240d57a57acce3186768308c667c">encoding</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#2b8b240d57a57acce3186768308c667c">encoding</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#2295d13bd62cbc7a0bd722953c3f4c64">isConnected</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#12ce6d4e08abe1ac26d0a1c0e9c5387e">join:key:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#77e26b8a7488ac2e8298fe01eb1f729c">list:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#613d3215bf84eb7f99c088284321eb0d">message:to:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#608235f250367bdb74c05b8caa404d11">nick:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#4f678f5ad868a7e3d739b1e9ad415249">nickname</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#4f678f5ad868a7e3d739b1e9ad415249">nickname</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#2657fa7a70ddb705819b8b176692e6a0">notice:to:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#6e304e45ddb942ead5b3c044a2b09e0b">password</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#6e304e45ddb942ead5b3c044a2b09e0b">password</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#f4d8a5d0747ecb6ed2f55f282582e8cf">port</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#f4d8a5d0747ecb6ed2f55f282582e8cf">port</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#bfa66744f91a4408f40efaf752fe6071">quit:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#c124ffbdf87a785981c3e330f5a90088">realname</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#c124ffbdf87a785981c3e330f5a90088">realname</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#5ba88ff09ef13c00d8b7379b30c9eced">run</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#dcb54b817c20fa3c3beba65a944bca19">sendRawWithFormat:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#cb1376cfad37cc503c21fa1235f39fa0">server</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#cb1376cfad37cc503c21fa1235f39fa0">server</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#7f3f3efa9e35c82bc92d89b2f264ca88">session</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#7f3f3efa9e35c82bc92d89b2f264ca88">session</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#869e09863a186b409d140c8f8161a93a">userMode:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#281dfe78f639e87899d3aff71983484e">username</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#281dfe78f639e87899d3aff71983484e">username</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#6d2142efde508caf40c8b86e7dd1756c">version</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td></td><td><a class="el" href="interface_i_r_c_client_session.html#6d2142efde508caf40c8b86e7dd1756c">version</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_i_r_c_client_session.html#20ded6131f5bf067363a4701d2164907">whois:</a></td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a></td><td></td></tr>
</table></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>NSObject(IRCClientChannelDelegate) Member List</h1>This is the complete list of members for <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a>, including all inherited members.<p><table>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#79d5aa388db46960369ccbd250b8a5b5">onAction:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#d3e8a2612f8b6e2d65b407a0dffcd68b">onJoin:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#681261027838b019ea101a75c836a487">onKick:reason:byNick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#96106caa4eb6dc9f36a4a2ad7536de9a">onMode:params:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#6d73e8a2cb435d1f28d954104c0bd3c1">onNotice:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#5e606c4445b697158029bcf99949eb40">onPart:reason:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#2414fbf1731d8b70a79bc071e25d8d33">onPrivmsg:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#a1672182357b1768c817238a23564b7e">onTopic:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a></td><td></td></tr>
</table></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,44 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>NSObject(IRCClientSessionDelegate) Member List</h1>This is the complete list of members for <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a>, including all inherited members.<p><table>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#53420eee82af0529518a4780850e9e66">onAction:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#ba6db2dd75596bf702c62efc9e14eb0f">onConnect</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#a2e3129f7210795c4c300fc06e22d146">onCtcpReply:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31937b6b464b76943f1beab9226fdc57">onCtcpRequest:type:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#44f7535a12086d212300b71c36ee3f2a">onInvite:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#08bfc81348865b7501c75d9ca8fe32cb">onJoinChannel:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#9f6346c5e3452c528bb74be8d7ecd4dc">onMode:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#dae74e3cd13af45e6b94a1cc0638493b">onNick:oldNick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#76e1eaab848008d9d310495358672369">onNotice:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#16bc977438e490a4bb8e50769c4c46dc">onNumericEvent:origin:params:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#4e992d543d6241fa70b600b541c84bf5">onPrivmsg:nick:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31660c57ebf15aca5a1d5706a384d758">onQuit:reason:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
<tr class="memlist"><td>-&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#05bda6cfa9d696b1af1ab7da5f8ca271">onUnknownEvent:origin:params:</a></td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a></td><td></td></tr>
</table></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Alphabetical List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a></div><p>
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
</td><td><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;N&nbsp;&nbsp;</div></td></tr></table>
</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a></div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,441 @@
body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 12px;
}
/* @group Heading Levels */
h1 {
text-align: center;
font-size: 150%;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
/* @end */
caption {
font-weight: bold;
}
div.qindex, div.navpath, div.navtab{
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #153788;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #1b77c5;
}
a:hover {
text-decoration: underline;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code {
}
a.codeRef {
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
td.indexkey {
background-color: #e8eef2;
font-weight: bold;
border: 1px solid #CCCCCC;
margin: 2px 0px 2px 0;
padding: 2px 10px;
}
td.indexvalue {
background-color: #e8eef2;
border: 1px solid #CCCCCC;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #f0f0f0;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
/* @group Code Colorization */
span.keyword {
color: #008000
}
span.keywordtype {
color: #604020
}
span.keywordflow {
color: #e08000
}
span.comment {
color: #800000
}
span.preprocessor {
color: #806020
}
span.stringliteral {
color: #002080
}
span.charliteral {
color: #008080
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
.search {
color: #003399;
font-weight: bold;
}
form.search {
margin-bottom: 0px;
margin-top: 0px;
}
input.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
td.tiny {
font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
th.dirtab {
background: #e8eef2;
font-weight: bold;
}
hr {
height: 0;
border: none;
border-top: 1px solid #666;
}
/* @group Member Descriptions */
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #FAFAFA;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #ccc;
}
.memTemplParams {
color: #606060;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
margin-left: 3px;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 0;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memproto, .memdoc {
border: 1px solid #84b0c7;
}
.memproto {
padding: 0;
background-color: #d5e1e8;
font-weight: bold;
-webkit-border-top-left-radius: 8px;
-webkit-border-top-right-radius: 8px;
-moz-border-radius-topleft: 8px;
-moz-border-radius-topright: 8px;
}
.memdoc {
padding: 2px 5px;
background-color: #eef3f5;
border-top-width: 0;
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
}
.memdoc p, .memdoc dl, .memdoc ul {
margin: 6px 0;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0.5em;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
address {
font-style: normal;
color: #333;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,36 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: File Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>File List</h1>Here is a list of all documented files with brief descriptions:<table>
<tr><td class="indexkey"><b>DDInvocationGrabber.h</b> <a href="_d_d_invocation_grabber_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="_i_r_c_client_channel_8h.html">IRCClientChannel.h</a> <a href="_i_r_c_client_channel_8h-source.html">[code]</a></td><td class="indexvalue">Represents a connected IRC Channel </td></tr>
<tr><td class="indexkey"><a class="el" href="_i_r_c_client_channel_delegate_8h.html">IRCClientChannelDelegate.h</a> <a href="_i_r_c_client_channel_delegate_8h-source.html">[code]</a></td><td class="indexvalue">Receives delegate messages from an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> </td></tr>
<tr><td class="indexkey"><a class="el" href="_i_r_c_client_session_8h.html">IRCClientSession.h</a> <a href="_i_r_c_client_session_8h-source.html">[code]</a></td><td class="indexvalue">Represents a connected IRC Session </td></tr>
<tr><td class="indexkey"><b>IRCClientSessionDelegate.h</b> <a href="_i_r_c_client_session_delegate_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>NSObject+DDExtensions.h</b> <a href="_n_s_object_09_d_d_extensions_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,224 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_prop.html"><span>Properties</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_j"><span>j</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_q"><span>q</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li><a href="#index_v"><span>v</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
Here is a list of all documented class members with links to the class documentation for each member:
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>action:
: <a class="el" href="interface_i_r_c_client_channel.html#3dce7913593cee47fff8f6d052139e84">IRCClientChannel</a>
<li>action:to:
: <a class="el" href="interface_i_r_c_client_session.html#c8c975193f7798f195d69b984aaa21fd">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>channels
: <a class="el" href="interface_i_r_c_client_session.html#fd38f656f1f7b03495e26fe982bb9e2a">IRCClientSession</a>
<li>connect
: <a class="el" href="interface_i_r_c_client_session.html#c9a0b7a41adeb92cf89fc53038ebc00b">IRCClientSession</a>
<li>ctcpReply:target:
: <a class="el" href="interface_i_r_c_client_session.html#2cef231ee53c6ad6a5d9d96283084996">IRCClientSession</a>
<li>ctcpRequest:
: <a class="el" href="interface_i_r_c_client_channel.html#e48470def47fee0442f84d6cbb61805f">IRCClientChannel</a>
<li>ctcpRequest:target:
: <a class="el" href="interface_i_r_c_client_session.html#6388c4f1f5cf3ffc14057984e29a4635">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>delegate
: <a class="el" href="interface_i_r_c_client_channel.html#a24a320a08bb515f3ef5862d7bb1e6b2">IRCClientChannel</a>
, <a class="el" href="interface_i_r_c_client_session.html#ff1874c72e785b2097b9ef7ea8856557">IRCClientSession</a>
<li>disconnect
: <a class="el" href="interface_i_r_c_client_session.html#9cb82eac49784ccafbd6cf7dd262a766">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>encoding
: <a class="el" href="interface_i_r_c_client_channel.html#b2c7c8cea97e6f0dfd50f5ac2576a328">IRCClientChannel</a>
, <a class="el" href="interface_i_r_c_client_session.html#2b8b240d57a57acce3186768308c667c">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>initWithName:
: <a class="el" href="interface_i_r_c_client_channel.html#01568915fb1763dbbe851598bf6111a3">IRCClientChannel</a>
<li>invite:
: <a class="el" href="interface_i_r_c_client_channel.html#6a3081eee9d9f576a554e451f38a85af">IRCClientChannel</a>
<li>isConnected
: <a class="el" href="interface_i_r_c_client_session.html#2295d13bd62cbc7a0bd722953c3f4c64">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_j">- j -</a></h3><ul>
<li>join:key:
: <a class="el" href="interface_i_r_c_client_session.html#12ce6d4e08abe1ac26d0a1c0e9c5387e">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_k">- k -</a></h3><ul>
<li>kick:reason:
: <a class="el" href="interface_i_r_c_client_channel.html#a11844c7c48140a83464b5da453411db">IRCClientChannel</a>
</ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>list:
: <a class="el" href="interface_i_r_c_client_session.html#77e26b8a7488ac2e8298fe01eb1f729c">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>message:
: <a class="el" href="interface_i_r_c_client_channel.html#4c130a850d288754d0bb80a50be50b3c">IRCClientChannel</a>
<li>message:to:
: <a class="el" href="interface_i_r_c_client_session.html#613d3215bf84eb7f99c088284321eb0d">IRCClientSession</a>
<li>modes
: <a class="el" href="interface_i_r_c_client_channel.html#b1d93e3a44e0f306b0bf9034c9d73ba3">IRCClientChannel</a>
</ul>
<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
<li>name
: <a class="el" href="interface_i_r_c_client_channel.html#fe81a99a24e3bc66fc5f05742fb52096">IRCClientChannel</a>
<li>names
: <a class="el" href="interface_i_r_c_client_channel.html#d60403088ddc1434db87825e62c57d5c">IRCClientChannel</a>
<li>nick:
: <a class="el" href="interface_i_r_c_client_session.html#608235f250367bdb74c05b8caa404d11">IRCClientSession</a>
<li>nickname
: <a class="el" href="interface_i_r_c_client_session.html#4f678f5ad868a7e3d739b1e9ad415249">IRCClientSession</a>
<li>notice:
: <a class="el" href="interface_i_r_c_client_channel.html#d3ff98549b3bf39c581d2c5b62d6de8d">IRCClientChannel</a>
<li>notice:to:
: <a class="el" href="interface_i_r_c_client_session.html#2657fa7a70ddb705819b8b176692e6a0">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>onAction:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#79d5aa388db46960369ccbd250b8a5b5">NSObject(IRCClientChannelDelegate)</a>
, <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#53420eee82af0529518a4780850e9e66">NSObject(IRCClientSessionDelegate)</a>
<li>onConnect
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#ba6db2dd75596bf702c62efc9e14eb0f">NSObject(IRCClientSessionDelegate)</a>
<li>onCtcpReply:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#a2e3129f7210795c4c300fc06e22d146">NSObject(IRCClientSessionDelegate)</a>
<li>onCtcpRequest:type:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31937b6b464b76943f1beab9226fdc57">NSObject(IRCClientSessionDelegate)</a>
<li>onInvite:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#44f7535a12086d212300b71c36ee3f2a">NSObject(IRCClientSessionDelegate)</a>
<li>onJoin:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#d3e8a2612f8b6e2d65b407a0dffcd68b">NSObject(IRCClientChannelDelegate)</a>
<li>onJoinChannel:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#08bfc81348865b7501c75d9ca8fe32cb">NSObject(IRCClientSessionDelegate)</a>
<li>onKick:reason:byNick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#681261027838b019ea101a75c836a487">NSObject(IRCClientChannelDelegate)</a>
<li>onMode:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#9f6346c5e3452c528bb74be8d7ecd4dc">NSObject(IRCClientSessionDelegate)</a>
<li>onMode:params:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#96106caa4eb6dc9f36a4a2ad7536de9a">NSObject(IRCClientChannelDelegate)</a>
<li>onNick:oldNick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#dae74e3cd13af45e6b94a1cc0638493b">NSObject(IRCClientSessionDelegate)</a>
<li>onNotice:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#6d73e8a2cb435d1f28d954104c0bd3c1">NSObject(IRCClientChannelDelegate)</a>
, <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#76e1eaab848008d9d310495358672369">NSObject(IRCClientSessionDelegate)</a>
<li>onNumericEvent:origin:params:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#16bc977438e490a4bb8e50769c4c46dc">NSObject(IRCClientSessionDelegate)</a>
<li>onPart:reason:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#5e606c4445b697158029bcf99949eb40">NSObject(IRCClientChannelDelegate)</a>
<li>onPrivmsg:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#2414fbf1731d8b70a79bc071e25d8d33">NSObject(IRCClientChannelDelegate)</a>
, <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#4e992d543d6241fa70b600b541c84bf5">NSObject(IRCClientSessionDelegate)</a>
<li>onQuit:reason:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31660c57ebf15aca5a1d5706a384d758">NSObject(IRCClientSessionDelegate)</a>
<li>onTopic:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#a1672182357b1768c817238a23564b7e">NSObject(IRCClientChannelDelegate)</a>
<li>onUnknownEvent:origin:params:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#05bda6cfa9d696b1af1ab7da5f8ca271">NSObject(IRCClientSessionDelegate)</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>part
: <a class="el" href="interface_i_r_c_client_channel.html#374315cc58c1e27ee74f15f6da4da699">IRCClientChannel</a>
<li>password
: <a class="el" href="interface_i_r_c_client_session.html#6e304e45ddb942ead5b3c044a2b09e0b">IRCClientSession</a>
<li>port
: <a class="el" href="interface_i_r_c_client_session.html#f4d8a5d0747ecb6ed2f55f282582e8cf">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_q">- q -</a></h3><ul>
<li>quit:
: <a class="el" href="interface_i_r_c_client_session.html#bfa66744f91a4408f40efaf752fe6071">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>realname
: <a class="el" href="interface_i_r_c_client_session.html#c124ffbdf87a785981c3e330f5a90088">IRCClientSession</a>
<li>run
: <a class="el" href="interface_i_r_c_client_session.html#5ba88ff09ef13c00d8b7379b30c9eced">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>sendRawWithFormat:
: <a class="el" href="interface_i_r_c_client_session.html#dcb54b817c20fa3c3beba65a944bca19">IRCClientSession</a>
<li>server
: <a class="el" href="interface_i_r_c_client_session.html#cb1376cfad37cc503c21fa1235f39fa0">IRCClientSession</a>
<li>session
: <a class="el" href="interface_i_r_c_client_session.html#7f3f3efa9e35c82bc92d89b2f264ca88">IRCClientSession</a>
, <a class="el" href="interface_i_r_c_client_channel.html#1edd5edd8ec30f8763a8ad703e0bf0b1">IRCClientChannel</a>
<li>setMode:params:
: <a class="el" href="interface_i_r_c_client_channel.html#2a7b182090c69541c9b1d5919da842de">IRCClientChannel</a>
<li>setTopic:
: <a class="el" href="interface_i_r_c_client_channel.html#5a30badfcab9de2b95a9546758355850">IRCClientChannel</a>
</ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>topic
: <a class="el" href="interface_i_r_c_client_channel.html#eb5124389861d676b3332cca7c8dc000">IRCClientChannel</a>
</ul>
<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
<li>userMode:
: <a class="el" href="interface_i_r_c_client_session.html#869e09863a186b409d140c8f8161a93a">IRCClientSession</a>
<li>username
: <a class="el" href="interface_i_r_c_client_session.html#281dfe78f639e87899d3aff71983484e">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_v">- v -</a></h3><ul>
<li>version
: <a class="el" href="interface_i_r_c_client_session.html#6d2142efde508caf40c8b86e7dd1756c">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>whois:
: <a class="el" href="interface_i_r_c_client_session.html#20ded6131f5bf067363a4701d2164907">IRCClientSession</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,182 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Class Members - Functions</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_prop.html"><span>Properties</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_j"><span>j</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_q"><span>q</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>action:
: <a class="el" href="interface_i_r_c_client_channel.html#3dce7913593cee47fff8f6d052139e84">IRCClientChannel</a>
<li>action:to:
: <a class="el" href="interface_i_r_c_client_session.html#c8c975193f7798f195d69b984aaa21fd">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>connect
: <a class="el" href="interface_i_r_c_client_session.html#c9a0b7a41adeb92cf89fc53038ebc00b">IRCClientSession</a>
<li>ctcpReply:target:
: <a class="el" href="interface_i_r_c_client_session.html#2cef231ee53c6ad6a5d9d96283084996">IRCClientSession</a>
<li>ctcpRequest:
: <a class="el" href="interface_i_r_c_client_channel.html#e48470def47fee0442f84d6cbb61805f">IRCClientChannel</a>
<li>ctcpRequest:target:
: <a class="el" href="interface_i_r_c_client_session.html#6388c4f1f5cf3ffc14057984e29a4635">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>disconnect
: <a class="el" href="interface_i_r_c_client_session.html#9cb82eac49784ccafbd6cf7dd262a766">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>initWithName:
: <a class="el" href="interface_i_r_c_client_channel.html#01568915fb1763dbbe851598bf6111a3">IRCClientChannel</a>
<li>invite:
: <a class="el" href="interface_i_r_c_client_channel.html#6a3081eee9d9f576a554e451f38a85af">IRCClientChannel</a>
<li>isConnected
: <a class="el" href="interface_i_r_c_client_session.html#2295d13bd62cbc7a0bd722953c3f4c64">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_j">- j -</a></h3><ul>
<li>join:key:
: <a class="el" href="interface_i_r_c_client_session.html#12ce6d4e08abe1ac26d0a1c0e9c5387e">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_k">- k -</a></h3><ul>
<li>kick:reason:
: <a class="el" href="interface_i_r_c_client_channel.html#a11844c7c48140a83464b5da453411db">IRCClientChannel</a>
</ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>list:
: <a class="el" href="interface_i_r_c_client_session.html#77e26b8a7488ac2e8298fe01eb1f729c">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>message:
: <a class="el" href="interface_i_r_c_client_channel.html#4c130a850d288754d0bb80a50be50b3c">IRCClientChannel</a>
<li>message:to:
: <a class="el" href="interface_i_r_c_client_session.html#613d3215bf84eb7f99c088284321eb0d">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
<li>nick:
: <a class="el" href="interface_i_r_c_client_session.html#608235f250367bdb74c05b8caa404d11">IRCClientSession</a>
<li>notice:
: <a class="el" href="interface_i_r_c_client_channel.html#d3ff98549b3bf39c581d2c5b62d6de8d">IRCClientChannel</a>
<li>notice:to:
: <a class="el" href="interface_i_r_c_client_session.html#2657fa7a70ddb705819b8b176692e6a0">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>onAction:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#79d5aa388db46960369ccbd250b8a5b5">NSObject(IRCClientChannelDelegate)</a>
, <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#53420eee82af0529518a4780850e9e66">NSObject(IRCClientSessionDelegate)</a>
<li>onConnect
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#ba6db2dd75596bf702c62efc9e14eb0f">NSObject(IRCClientSessionDelegate)</a>
<li>onCtcpReply:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#a2e3129f7210795c4c300fc06e22d146">NSObject(IRCClientSessionDelegate)</a>
<li>onCtcpRequest:type:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31937b6b464b76943f1beab9226fdc57">NSObject(IRCClientSessionDelegate)</a>
<li>onInvite:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#44f7535a12086d212300b71c36ee3f2a">NSObject(IRCClientSessionDelegate)</a>
<li>onJoin:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#d3e8a2612f8b6e2d65b407a0dffcd68b">NSObject(IRCClientChannelDelegate)</a>
<li>onJoinChannel:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#08bfc81348865b7501c75d9ca8fe32cb">NSObject(IRCClientSessionDelegate)</a>
<li>onKick:reason:byNick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#681261027838b019ea101a75c836a487">NSObject(IRCClientChannelDelegate)</a>
<li>onMode:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#9f6346c5e3452c528bb74be8d7ecd4dc">NSObject(IRCClientSessionDelegate)</a>
<li>onMode:params:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#96106caa4eb6dc9f36a4a2ad7536de9a">NSObject(IRCClientChannelDelegate)</a>
<li>onNick:oldNick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#dae74e3cd13af45e6b94a1cc0638493b">NSObject(IRCClientSessionDelegate)</a>
<li>onNotice:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#6d73e8a2cb435d1f28d954104c0bd3c1">NSObject(IRCClientChannelDelegate)</a>
, <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#76e1eaab848008d9d310495358672369">NSObject(IRCClientSessionDelegate)</a>
<li>onNumericEvent:origin:params:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#16bc977438e490a4bb8e50769c4c46dc">NSObject(IRCClientSessionDelegate)</a>
<li>onPart:reason:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#5e606c4445b697158029bcf99949eb40">NSObject(IRCClientChannelDelegate)</a>
<li>onPrivmsg:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#2414fbf1731d8b70a79bc071e25d8d33">NSObject(IRCClientChannelDelegate)</a>
, <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#4e992d543d6241fa70b600b541c84bf5">NSObject(IRCClientSessionDelegate)</a>
<li>onQuit:reason:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31660c57ebf15aca5a1d5706a384d758">NSObject(IRCClientSessionDelegate)</a>
<li>onTopic:nick:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#a1672182357b1768c817238a23564b7e">NSObject(IRCClientChannelDelegate)</a>
<li>onUnknownEvent:origin:params:
: <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#05bda6cfa9d696b1af1ab7da5f8ca271">NSObject(IRCClientSessionDelegate)</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>part
: <a class="el" href="interface_i_r_c_client_channel.html#374315cc58c1e27ee74f15f6da4da699">IRCClientChannel</a>
</ul>
<h3><a class="anchor" name="index_q">- q -</a></h3><ul>
<li>quit:
: <a class="el" href="interface_i_r_c_client_session.html#bfa66744f91a4408f40efaf752fe6071">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>run
: <a class="el" href="interface_i_r_c_client_session.html#5ba88ff09ef13c00d8b7379b30c9eced">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>sendRawWithFormat:
: <a class="el" href="interface_i_r_c_client_session.html#dcb54b817c20fa3c3beba65a944bca19">IRCClientSession</a>
<li>setMode:params:
: <a class="el" href="interface_i_r_c_client_channel.html#2a7b182090c69541c9b1d5919da842de">IRCClientChannel</a>
<li>setTopic:
: <a class="el" href="interface_i_r_c_client_channel.html#5a30badfcab9de2b95a9546758355850">IRCClientChannel</a>
</ul>
<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
<li>userMode:
: <a class="el" href="interface_i_r_c_client_session.html#869e09863a186b409d140c8f8161a93a">IRCClientSession</a>
</ul>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>whois:
: <a class="el" href="interface_i_r_c_client_session.html#20ded6131f5bf067363a4701d2164907">IRCClientSession</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Class Members - Properties</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li class="current"><a href="functions_prop.html"><span>Properties</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>channels
: <a class="el" href="interface_i_r_c_client_session.html#fd38f656f1f7b03495e26fe982bb9e2a">IRCClientSession</a>
<li>delegate
: <a class="el" href="interface_i_r_c_client_channel.html#a24a320a08bb515f3ef5862d7bb1e6b2">IRCClientChannel</a>
, <a class="el" href="interface_i_r_c_client_session.html#ff1874c72e785b2097b9ef7ea8856557">IRCClientSession</a>
<li>encoding
: <a class="el" href="interface_i_r_c_client_channel.html#b2c7c8cea97e6f0dfd50f5ac2576a328">IRCClientChannel</a>
, <a class="el" href="interface_i_r_c_client_session.html#2b8b240d57a57acce3186768308c667c">IRCClientSession</a>
<li>modes
: <a class="el" href="interface_i_r_c_client_channel.html#b1d93e3a44e0f306b0bf9034c9d73ba3">IRCClientChannel</a>
<li>name
: <a class="el" href="interface_i_r_c_client_channel.html#fe81a99a24e3bc66fc5f05742fb52096">IRCClientChannel</a>
<li>names
: <a class="el" href="interface_i_r_c_client_channel.html#d60403088ddc1434db87825e62c57d5c">IRCClientChannel</a>
<li>nickname
: <a class="el" href="interface_i_r_c_client_session.html#4f678f5ad868a7e3d739b1e9ad415249">IRCClientSession</a>
<li>password
: <a class="el" href="interface_i_r_c_client_session.html#6e304e45ddb942ead5b3c044a2b09e0b">IRCClientSession</a>
<li>port
: <a class="el" href="interface_i_r_c_client_session.html#f4d8a5d0747ecb6ed2f55f282582e8cf">IRCClientSession</a>
<li>realname
: <a class="el" href="interface_i_r_c_client_session.html#c124ffbdf87a785981c3e330f5a90088">IRCClientSession</a>
<li>server
: <a class="el" href="interface_i_r_c_client_session.html#cb1376cfad37cc503c21fa1235f39fa0">IRCClientSession</a>
<li>session
: <a class="el" href="interface_i_r_c_client_session.html#7f3f3efa9e35c82bc92d89b2f264ca88">IRCClientSession</a>
, <a class="el" href="interface_i_r_c_client_channel.html#1edd5edd8ec30f8763a8ad703e0bf0b1">IRCClientChannel</a>
<li>topic
: <a class="el" href="interface_i_r_c_client_channel.html#eb5124389861d676b3332cca7c8dc000">IRCClientChannel</a>
<li>username
: <a class="el" href="interface_i_r_c_client_session.html#281dfe78f639e87899d3aff71983484e">IRCClientSession</a>
<li>version
: <a class="el" href="interface_i_r_c_client_session.html#6d2142efde508caf40c8b86e7dd1756c">IRCClientSession</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,38 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: Hierarchical Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li class="current"><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
<li><b>NSObject</b><ul>
<li><a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a>
<li><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a>
</ul>
<li><a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html">NSObject(IRCClientChannelDelegate)</a>
<li><a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html">NSObject(IRCClientSessionDelegate)</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,59 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClient - a Cocoa IRC Framework to create IRC clients</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClient - a Cocoa IRC Framework to create IRC clients</h1>
<p>
<h3 align="center">1.0 </h3><h2><a class="anchor" name="intro_sec">
Introduction</a></h2>
IRCClient is a Cocoa Framework that uses the excellent libircclient library written by Georgy Yunaev.<h2><a class="anchor" name="usage">
Basic Usage</a></h2>
To use this framework, you will need to write an <a class="el" href="protocol_i_r_c_client_session_delegate-p.html">IRCClientSessionDelegate</a> to handle all of the events generated by the server, and an <a class="el" href="protocol_i_r_c_client_channel_delegate-p.html">IRCClientChannelDelegate</a> to handle all of the events generated by channels on that server.<p>
You then create an <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> object in your code, assign the required properties, and call connect: to connect to the server and run: to create the new thread and start receiving events. For example:<p>
<div class="fragment"><pre class="fragment"> <a class="code" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> *session = [[<a class="code" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> alloc] init];
MyIRCClientSessionDelegate *controller = [[MyIRCClientSessionDelegate alloc] init];
[session setDelegate:controller];
[controller setSession:session];
[session setServer:<span class="stringliteral">@"irc.dal.net"</span>];
[session setPort:<span class="stringliteral">@"6667"</span>];
[session setNickname:<span class="stringliteral">@"test"</span>];
[session setUsername:<span class="stringliteral">@"test"</span>];
[session setRealname:<span class="stringliteral">@"test"</span>];
[session connect];
[session run]; <span class="comment">//starts the thread</span>
</pre></div><h2><a class="anchor" name="author">
Author, copyright, support.</a></h2>
If you have any questions, bug reports, suggestions regarding libircclient or the IRCClient framework, please visit <a href="http://libircclient.sourceforge.net">http://libircclient.sourceforge.net</a><p>
<pre>
libircclient Copyright (C) 2004-2009 Georgy Yunaev <a href="mailto:gyunaev@ulduzsoft.com">gyunaev@ulduzsoft.com</a>
IRCClient Copyright (C) 2009 Nathan Ollerenshaw <a href="mailto:chrome@stupendous.net">chrome@stupendous.net</a></pre><p>
<pre> This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.</pre><p>
<pre> This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
</pre> </div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,473 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientChannel Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClientChannel Class Reference</h1><!-- doxytag: class="IRCClientChannel" --><!-- doxytag: inherits="NSObject" -->Represents a connected IRC Channel.
<a href="#_details">More...</a>
<p>
<code>#import &lt;<a class="el" href="_i_r_c_client_channel_8h-source.html">IRCClientChannel.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for IRCClientChannel:</div>
<div class="dynsection">
<p><center><img src="interface_i_r_c_client_channel.png" usemap="#IRCClientChannel_map" border="0" alt=""></center>
<map name="IRCClientChannel_map">
</map>
</div>
<p>
<a href="class_i_r_c_client_channel-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(id)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#01568915fb1763dbbe851598bf6111a3">initWithName:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#374315cc58c1e27ee74f15f6da4da699">part</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#6a3081eee9d9f576a554e451f38a85af">invite:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#5a30badfcab9de2b95a9546758355850">setTopic:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#2a7b182090c69541c9b1d5919da842de">setMode:params:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#4c130a850d288754d0bb80a50be50b3c">message:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#3dce7913593cee47fff8f6d052139e84">action:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#d3ff98549b3bf39c581d2c5b62d6de8d">notice:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#a11844c7c48140a83464b5da453411db">kick:reason:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_channel.html#e48470def47fee0442f84d6cbb61805f">ctcpRequest:</a></td></tr>
<tr><td colspan="2"><br><h2>Properties</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">id&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html#a24a320a08bb515f3ef5862d7bb1e6b2">delegate</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html#fe81a99a24e3bc66fc5f05742fb52096">name</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSStringEncoding&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html#b2c7c8cea97e6f0dfd50f5ac2576a328">encoding</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html#1edd5edd8ec30f8763a8ad703e0bf0b1">session</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html#eb5124389861d676b3332cca7c8dc000">topic</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html#b1d93e3a44e0f306b0bf9034c9d73ba3">modes</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSMutableArray *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_channel.html#d60403088ddc1434db87825e62c57d5c">names</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Represents a connected IRC Channel.
<p>
<a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> objects are created by the <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> object for a given session when the client joins an IRC channel. At that time you are expected to register event handlers for each of the delegate methods described in the <a class="el" href="protocol_i_r_c_client_channel_delegate-p.html">IRCClientChannelDelegate</a> interface. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="3dce7913593cee47fff8f6d052139e84"></a><!-- doxytag: member="IRCClientChannel::action:" ref="3dce7913593cee47fff8f6d052139e84" args="(NSString *action)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) action: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>action</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sends a public CTCP ACTION to the channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>action to send to the channel. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="e48470def47fee0442f84d6cbb61805f"></a><!-- doxytag: member="IRCClientChannel::ctcpRequest:" ref="e48470def47fee0442f84d6cbb61805f" args="(NSString *request)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) ctcpRequest: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>request</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sends a CTCP request to the channel.<p>
It is perfectly legal to send a CTCP request to an IRC channel, however many clients decline to respond to them, and often they are percieved as annoying.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td>the string of the request, in CTCP format. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="01568915fb1763dbbe851598bf6111a3"></a><!-- doxytag: member="IRCClientChannel::initWithName:" ref="01568915fb1763dbbe851598bf6111a3" args="(NSString *aName)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (id) initWithName: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>aName</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
initWithName:<p>
Returns an initialised <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> with a given channel name. You are not expected to initialise your own <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> objects; if you wish to join a channel you should send a [<a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> join:key:] message to your <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> object.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>aName</em>&nbsp;</td><td>Name of the channel. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="6a3081eee9d9f576a554e451f38a85af"></a><!-- doxytag: member="IRCClientChannel::invite:" ref="6a3081eee9d9f576a554e451f38a85af" args="(NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) invite: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invites another IRC client to the channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the client to invite. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="a11844c7c48140a83464b5da453411db"></a><!-- doxytag: member="IRCClientChannel::kick:reason:" ref="a11844c7c48140a83464b5da453411db" args="(NSString *nick,[reason] NSString *reason)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) kick: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td>
</tr>
<tr>
<td class="paramkey">reason:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Kicks someone from a channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the IRC client to kick from the channel. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>the message to give to the channel and the IRC client for the kick. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="4c130a850d288754d0bb80a50be50b3c"></a><!-- doxytag: member="IRCClientChannel::message:" ref="4c130a850d288754d0bb80a50be50b3c" args="(NSString *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) message: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>message</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sends a public PRIVMSG to the channel. If you try to send more than can fit on an IRC buffer, it will be truncated.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>the message to send to the channel. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="d3ff98549b3bf39c581d2c5b62d6de8d"></a><!-- doxytag: member="IRCClientChannel::notice:" ref="d3ff98549b3bf39c581d2c5b62d6de8d" args="(NSString *notice)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) notice: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>notice</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sends a public NOTICE to the channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>notice</em>&nbsp;</td><td>message to send to the channel. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="374315cc58c1e27ee74f15f6da4da699"></a><!-- doxytag: member="IRCClientChannel::part" ref="374315cc58c1e27ee74f15f6da4da699" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) part </td>
<td></td>
<td class="paramname"> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Parts the channel.
</div>
</div><p>
<a class="anchor" name="2a7b182090c69541c9b1d5919da842de"></a><!-- doxytag: member="IRCClientChannel::setMode:params:" ref="2a7b182090c69541c9b1d5919da842de" args="(NSString *mode,[params] NSString *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) setMode: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>mode</em></td>
</tr>
<tr>
<td class="paramkey">params:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>params</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the mode of the channel.<p>
Note that not all users on a channel have permission to change the mode; if you fail to set the mode, then you will not see an onMode event on the <a class="el" href="protocol_i_r_c_client_channel_delegate-p.html">IRCClientChannelDelegate</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>the mode to set the channel to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>paramaters for the mode, if it requires parameters. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="5a30badfcab9de2b95a9546758355850"></a><!-- doxytag: member="IRCClientChannel::setTopic:" ref="5a30badfcab9de2b95a9546758355850" args="(NSString *aTopic)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) setTopic: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>aTopic</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the topic of the channel.<p>
Note that not all users on a channel have permission to change the topic; if you fail to set the topic, then you will not see an onTopic event on the <a class="el" href="protocol_i_r_c_client_channel_delegate-p.html">IRCClientChannelDelegate</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>aTopic</em>&nbsp;</td><td>the topic the client wishes to set for the channel. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Property Documentation</h2>
<a class="anchor" name="a24a320a08bb515f3ef5862d7bb1e6b2"></a><!-- doxytag: member="IRCClientChannel::delegate" ref="a24a320a08bb515f3ef5862d7bb1e6b2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (id) delegate<code> [read, write, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Delegate to send events to
</div>
</div><p>
<a class="anchor" name="b2c7c8cea97e6f0dfd50f5ac2576a328"></a><!-- doxytag: member="IRCClientChannel::encoding" ref="b2c7c8cea97e6f0dfd50f5ac2576a328" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSStringEncoding) encoding<code> [read, write, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Encoding used by this channel
</div>
</div><p>
<a class="anchor" name="b1d93e3a44e0f306b0bf9034c9d73ba3"></a><!-- doxytag: member="IRCClientChannel::modes" ref="b1d93e3a44e0f306b0bf9034c9d73ba3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) modes<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mode of the channel
</div>
</div><p>
<a class="anchor" name="fe81a99a24e3bc66fc5f05742fb52096"></a><!-- doxytag: member="IRCClientChannel::name" ref="fe81a99a24e3bc66fc5f05742fb52096" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) name<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Name of the channel
</div>
</div><p>
<a class="anchor" name="d60403088ddc1434db87825e62c57d5c"></a><!-- doxytag: member="IRCClientChannel::names" ref="d60403088ddc1434db87825e62c57d5c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSMutableArray *) names<code> [read, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
An array of nicknames stored as NSStrings that list the connected users for the channel
</div>
</div><p>
<a class="anchor" name="1edd5edd8ec30f8763a8ad703e0bf0b1"></a><!-- doxytag: member="IRCClientChannel::session" ref="1edd5edd8ec30f8763a8ad703e0bf0b1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (<a class="el" href="interface_i_r_c_client_session.html">IRCClientSession</a> *) session<code> [read, write, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Associated <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> object
</div>
</div><p>
<a class="anchor" name="eb5124389861d676b3332cca7c8dc000"></a><!-- doxytag: member="IRCClientChannel::topic" ref="eb5124389861d676b3332cca7c8dc000" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) topic<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Topic of the channel
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_i_r_c_client_channel_8h-source.html">IRCClientChannel.h</a><li>IRCClientChannel.m</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

View File

@@ -0,0 +1,730 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: IRCClientSession Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>IRCClientSession Class Reference</h1><!-- doxytag: class="IRCClientSession" --><!-- doxytag: inherits="NSObject" -->Represents a connected IRC Session.
<a href="#_details">More...</a>
<p>
<code>#import &lt;<a class="el" href="_i_r_c_client_session_8h-source.html">IRCClientSession.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for IRCClientSession:</div>
<div class="dynsection">
<p><center><img src="interface_i_r_c_client_session.png" usemap="#IRCClientSession_map" border="0" alt=""></center>
<map name="IRCClientSession_map">
</map>
</div>
<p>
<a href="class_i_r_c_client_session-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#c9a0b7a41adeb92cf89fc53038ebc00b">connect</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#9cb82eac49784ccafbd6cf7dd262a766">disconnect</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(bool)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#2295d13bd62cbc7a0bd722953c3f4c64">isConnected</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#5ba88ff09ef13c00d8b7379b30c9eced">run</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#dcb54b817c20fa3c3beba65a944bca19">sendRawWithFormat:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#bfa66744f91a4408f40efaf752fe6071">quit:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#12ce6d4e08abe1ac26d0a1c0e9c5387e">join:key:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#77e26b8a7488ac2e8298fe01eb1f729c">list:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#869e09863a186b409d140c8f8161a93a">userMode:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#608235f250367bdb74c05b8caa404d11">nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#20ded6131f5bf067363a4701d2164907">whois:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#613d3215bf84eb7f99c088284321eb0d">message:to:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#c8c975193f7798f195d69b984aaa21fd">action:to:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#2657fa7a70ddb705819b8b176692e6a0">notice:to:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#6388c4f1f5cf3ffc14057984e29a4635">ctcpRequest:target:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(int)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_i_r_c_client_session.html#2cef231ee53c6ad6a5d9d96283084996">ctcpReply:target:</a></td></tr>
<tr><td colspan="2"><br><h2>Properties</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">id&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#ff1874c72e785b2097b9ef7ea8856557">delegate</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">irc_session_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#7f3f3efa9e35c82bc92d89b2f264ca88">session</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#6d2142efde508caf40c8b86e7dd1756c">version</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#cb1376cfad37cc503c21fa1235f39fa0">server</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#f4d8a5d0747ecb6ed2f55f282582e8cf">port</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#6e304e45ddb942ead5b3c044a2b09e0b">password</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#4f678f5ad868a7e3d739b1e9ad415249">nickname</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#281dfe78f639e87899d3aff71983484e">username</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSString *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#c124ffbdf87a785981c3e330f5a90088">realname</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSMutableDictionary *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#fd38f656f1f7b03495e26fe982bb9e2a">channels</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">NSStringEncoding&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_i_r_c_client_session.html#2b8b240d57a57acce3186768308c667c">encoding</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Represents a connected IRC Session.
<p>
<a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> represents a single connection to an IRC server. On initialising the object, and setting the delegate, server, port, password, nickname, username and realname properties, you call the connect: and run: methods to connect to the IRC server and start a new thread.<p>
This thread then sends messages back to the main runloop to the IRC server delegate, or to the <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> delegate as required. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="c8c975193f7798f195d69b984aaa21fd"></a><!-- doxytag: member="IRCClientSession::action:to:" ref="c8c975193f7798f195d69b984aaa21fd" args="(NSString *action,[to] NSString *target)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) action: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>action</em></td>
</tr>
<tr>
<td class="paramkey">to:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>target</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
send a CTCP ACTION to another IRC client<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>the action message to send </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the nickname of the irc client to send the message to. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="c9a0b7a41adeb92cf89fc53038ebc00b"></a><!-- doxytag: member="IRCClientSession::connect" ref="c9a0b7a41adeb92cf89fc53038ebc00b" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) connect </td>
<td></td>
<td class="paramname"> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Connect to the IRC server.<p>
Note that this performs the initial DNS lookup and the TCP connection, so if there are any problems you will be notified via the return code of the message.<p>
Look at the libircclient documentation for the different return codes.
</div>
</div><p>
<a class="anchor" name="2cef231ee53c6ad6a5d9d96283084996"></a><!-- doxytag: member="IRCClientSession::ctcpReply:target:" ref="2cef231ee53c6ad6a5d9d96283084996" args="(NSString *reply,[target] NSString *target)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) ctcpReply: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>reply</em></td>
</tr>
<tr>
<td class="paramkey">target:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>target</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
send a CTCP reply to another IRC client<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>reply</em>&nbsp;</td><td>the CTCP reply string to send </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the nickname of the IRC client to send the reply to. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="6388c4f1f5cf3ffc14057984e29a4635"></a><!-- doxytag: member="IRCClientSession::ctcpRequest:target:" ref="6388c4f1f5cf3ffc14057984e29a4635" args="(NSString *request,[target] NSString *target)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) ctcpRequest: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>request</em></td>
</tr>
<tr>
<td class="paramkey">target:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>target</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
send a CTCP request to another IRC client<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td>the CTCP request string to send </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the nickname of the IRC client to send the request to. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="9cb82eac49784ccafbd6cf7dd262a766"></a><!-- doxytag: member="IRCClientSession::disconnect" ref="9cb82eac49784ccafbd6cf7dd262a766" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) disconnect </td>
<td></td>
<td class="paramname"> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Disconnect from the IRC server.<p>
This always works, as it simply shuts down the socket. If you want to disconnect in a friendly way, you should use the quit: message.
</div>
</div><p>
<a class="anchor" name="2295d13bd62cbc7a0bd722953c3f4c64"></a><!-- doxytag: member="IRCClientSession::isConnected" ref="2295d13bd62cbc7a0bd722953c3f4c64" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (bool) isConnected </td>
<td></td>
<td class="paramname"> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
returns YES if the server is currently connected successfully, and NO if it is not.
</div>
</div><p>
<a class="anchor" name="12ce6d4e08abe1ac26d0a1c0e9c5387e"></a><!-- doxytag: member="IRCClientSession::join:key:" ref="12ce6d4e08abe1ac26d0a1c0e9c5387e" args="(NSString *channel,[key] NSString *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) join: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>channel</em></td>
</tr>
<tr>
<td class="paramkey">key:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>key</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Joins a channel with a given name and key<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>channel</em>&nbsp;</td><td>the channel to join </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>they key for the channel (may be nil) </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="77e26b8a7488ac2e8298fe01eb1f729c"></a><!-- doxytag: member="IRCClientSession::list:" ref="77e26b8a7488ac2e8298fe01eb1f729c" args="(NSString *channel)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) list: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>channel</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
lists channels on the IRC server.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>channel</em>&nbsp;</td><td>a channel name or string to pass to the LIST command. Implementation specific. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="613d3215bf84eb7f99c088284321eb0d"></a><!-- doxytag: member="IRCClientSession::message:to:" ref="613d3215bf84eb7f99c088284321eb0d" args="(NSString *message,[to] NSString *target)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) message: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>message</em></td>
</tr>
<tr>
<td class="paramkey">to:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>target</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
send a PRIVMSG to another IRC client<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>message to send </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the other IRC client to send the message to. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="608235f250367bdb74c05b8caa404d11"></a><!-- doxytag: member="IRCClientSession::nick:" ref="608235f250367bdb74c05b8caa404d11" args="(NSString *newnick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) nick: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>newnick</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
sets the IRC client nickname. On success, an onNick event will be sent to the delegate<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>newnick</em>&nbsp;</td><td>new nickname to set. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="2657fa7a70ddb705819b8b176692e6a0"></a><!-- doxytag: member="IRCClientSession::notice:to:" ref="2657fa7a70ddb705819b8b176692e6a0" args="(NSString *notice,[to] NSString *target)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) notice: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>notice</em></td>
</tr>
<tr>
<td class="paramkey">to:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>target</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
send a NOTICE to another IRC client<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>notice</em>&nbsp;</td><td>the message text to send </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the nickname of the irc client to send the notice to. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="bfa66744f91a4408f40efaf752fe6071"></a><!-- doxytag: member="IRCClientSession::quit:" ref="bfa66744f91a4408f40efaf752fe6071" args="(NSString *reason)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) quit: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>reason</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
quits the IRC server with the given reason. On success, an onQuit event will be sent to the <a class="el" href="protocol_i_r_c_client_session_delegate-p.html">IRCClientSessionDelegate</a> with the nickname of the IRC client.<p>
The format is a standard NSString format string, followed by optional arguments.
</div>
</div><p>
<a class="anchor" name="5ba88ff09ef13c00d8b7379b30c9eced"></a><!-- doxytag: member="IRCClientSession::run" ref="5ba88ff09ef13c00d8b7379b30c9eced" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) run </td>
<td></td>
<td class="paramname"> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Starts a new thread and starts the libircclient runloop, processing events and firing messages back to the main runloop as required. Calling this again will do nothing other than raise a warning in your logs.
</div>
</div><p>
<a class="anchor" name="dcb54b817c20fa3c3beba65a944bca19"></a><!-- doxytag: member="IRCClientSession::sendRawWithFormat:" ref="dcb54b817c20fa3c3beba65a944bca19" args="(NSString *format,[,]...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) sendRawWithFormat: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>format</em></td>
</tr>
<tr>
<td class="paramkey">,</td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>...</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sends a raw message to the IRC server. Please consult rfc1459 for the format of IRC commands.
</div>
</div><p>
<a class="anchor" name="869e09863a186b409d140c8f8161a93a"></a><!-- doxytag: member="IRCClientSession::userMode:" ref="869e09863a186b409d140c8f8161a93a" args="(NSString *mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) userMode: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>mode</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
sets the user mode for the IRC client<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>string to set </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="20ded6131f5bf067363a4701d2164907"></a><!-- doxytag: member="IRCClientSession::whois:" ref="20ded6131f5bf067363a4701d2164907" args="(NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (int) whois: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
sends a WHOIS request to the IRC server<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>nickname of the irc client to whois. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Property Documentation</h2>
<a class="anchor" name="fd38f656f1f7b03495e26fe982bb9e2a"></a><!-- doxytag: member="IRCClientSession::channels" ref="fd38f656f1f7b03495e26fe982bb9e2a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSMutableDictionary *) channels<code> [read, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
An NSMutableDictionary of channels that the client is currently connected to.<p>
You should not modify this.
</div>
</div><p>
<a class="anchor" name="ff1874c72e785b2097b9ef7ea8856557"></a><!-- doxytag: member="IRCClientSession::delegate" ref="ff1874c72e785b2097b9ef7ea8856557" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (id) delegate<code> [read, write, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
delegate to send events to.
</div>
</div><p>
<a class="anchor" name="2b8b240d57a57acce3186768308c667c"></a><!-- doxytag: member="IRCClientSession::encoding" ref="2b8b240d57a57acce3186768308c667c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSStringEncoding) encoding<code> [read, write, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The default text encoding for messages on this server.<p>
This affects messages received via PRIVMSG and NOTICE, and TOPIC in a channel. You may change this at any time.
</div>
</div><p>
<a class="anchor" name="4f678f5ad868a7e3d739b1e9ad415249"></a><!-- doxytag: member="IRCClientSession::nickname" ref="4f678f5ad868a7e3d739b1e9ad415249" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) nickname<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Nickname of the connected client. Note that setting this after connection will not result in the client renaming on IRC. You need to send a nick: message instead.
</div>
</div><p>
<a class="anchor" name="6e304e45ddb942ead5b3c044a2b09e0b"></a><!-- doxytag: member="IRCClientSession::password" ref="6e304e45ddb942ead5b3c044a2b09e0b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) password<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Server password to provide on connect (may be left empty or nil)
</div>
</div><p>
<a class="anchor" name="f4d8a5d0747ecb6ed2f55f282582e8cf"></a><!-- doxytag: member="IRCClientSession::port" ref="f4d8a5d0747ecb6ed2f55f282582e8cf" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) port<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
IRC port to connect to
</div>
</div><p>
<a class="anchor" name="c124ffbdf87a785981c3e330f5a90088"></a><!-- doxytag: member="IRCClientSession::realname" ref="c124ffbdf87a785981c3e330f5a90088" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) realname<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Realname of the connected client.<p>
Setting this after connection does nothing.
</div>
</div><p>
<a class="anchor" name="cb1376cfad37cc503c21fa1235f39fa0"></a><!-- doxytag: member="IRCClientSession::server" ref="cb1376cfad37cc503c21fa1235f39fa0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) server<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
IRC server to connect to
</div>
</div><p>
<a class="anchor" name="7f3f3efa9e35c82bc92d89b2f264ca88"></a><!-- doxytag: member="IRCClientSession::session" ref="7f3f3efa9e35c82bc92d89b2f264ca88" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (irc_session_t *) session<code> [read, write, assign]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The underlying libircclient handle
</div>
</div><p>
<a class="anchor" name="281dfe78f639e87899d3aff71983484e"></a><!-- doxytag: member="IRCClientSession::username" ref="281dfe78f639e87899d3aff71983484e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) username<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Username of the connected client. Also known as the ident.<p>
Setting this after connection does nothing.
</div>
</div><p>
<a class="anchor" name="6d2142efde508caf40c8b86e7dd1756c"></a><!-- doxytag: member="IRCClientSession::version" ref="6d2142efde508caf40c8b86e7dd1756c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (NSString *) version<code> [read, write, copy]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The version string for the client to send back on CTCP VERSION requests
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_i_r_c_client_session_8h-source.html">IRCClientSession.h</a><li>IRCClientSession.m</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

View File

@@ -0,0 +1,357 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: NSObject(IRCClientChannelDelegate) Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>NSObject(IRCClientChannelDelegate) Class Reference</h1><!-- doxytag: class="NSObject(IRCClientChannelDelegate)" -->Receives delegate messages from an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a>.
<a href="#_details">More...</a>
<p>
<code>#import &lt;<a class="el" href="_i_r_c_client_channel_delegate_8h-source.html">IRCClientChannelDelegate.h</a>&gt;</code>
<p>
<p>
<a href="class_n_s_object_07_i_r_c_client_channel_delegate_08-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#d3e8a2612f8b6e2d65b407a0dffcd68b">onJoin:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#5e606c4445b697158029bcf99949eb40">onPart:reason:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#96106caa4eb6dc9f36a4a2ad7536de9a">onMode:params:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#a1672182357b1768c817238a23564b7e">onTopic:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#681261027838b019ea101a75c836a487">onKick:reason:byNick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#2414fbf1731d8b70a79bc071e25d8d33">onPrivmsg:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#6d73e8a2cb435d1f28d954104c0bd3c1">onNotice:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_channel_delegate_08.html#79d5aa388db46960369ccbd250b8a5b5">onAction:nick:</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Receives delegate messages from an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a>.
<p>
Each <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> object needs a delegate. Delegate methods are called for each event that occurs on an IRC channel that the client is current on.<p>
Note that for any given parameter, it may be optional, in which case a nil object may be supplied instead of the given parameter. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="79d5aa388db46960369ccbd250b8a5b5"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onAction:nick:" ref="79d5aa388db46960369ccbd250b8a5b5" args="(NSString *action,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onAction: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>action</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Received when an IRC client sends a CTCP ACTION message to the channel. used by lamers with no life to pretend that they are playing some form of MMORPG.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>the action message sent to the channel. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the IRC client that sent the message. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="d3e8a2612f8b6e2d65b407a0dffcd68b"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onJoin:" ref="d3e8a2612f8b6e2d65b407a0dffcd68b" args="(NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onJoin: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
When a client joins this channel, the onJoin event is fired. Note that the nickname is most likely in nick!user@host format, but may simply be a nickname, depending on the server implementation.<p>
You should also expect to see this event when the client first joins a channel, with a parameter of the client's nickname.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>The nickname of the user that joined the channel. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="681261027838b019ea101a75c836a487"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onKick:reason:byNick:" ref="681261027838b019ea101a75c836a487" args="(NSString *nick,[reason] NSString *reason,[byNick] NSString *byNick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onKick: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td>
</tr>
<tr>
<td class="paramkey">reason:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>reason</em></td>
</tr>
<tr>
<td class="paramkey">byNick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>byNick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Received when an IRC client is kicked from a channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>nickname of the client that was kicked </td></tr>
<tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>reason message given for the kick </td></tr>
<tr><td valign="top"></td><td valign="top"><em>byNick</em>&nbsp;</td><td>nickname of the client that performed the kick command </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="96106caa4eb6dc9f36a4a2ad7536de9a"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onMode:params:nick:" ref="96106caa4eb6dc9f36a4a2ad7536de9a" args="(NSString *mode,[params] NSString *params,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onMode: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>mode</em></td>
</tr>
<tr>
<td class="paramkey">params:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>params</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Received when an IRC client changes the channel mode. What modes are available for a given channel is an implementation detail for each server.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>the new channel mode. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>any parameters with the mode (such as channel key). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the IRC client that changed the mode. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="6d73e8a2cb435d1f28d954104c0bd3c1"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onNotice:nick:" ref="6d73e8a2cb435d1f28d954104c0bd3c1" args="(NSString *notice,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onNotice: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>notice</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Received when an IRC client sends a public NOTICE to the channel. Note that the user may not necessarily be required to be on the channel to send a notice to it. Furthermore, the RFC states that the only difference between PRIVMSG and NOTICE is that a NOTICE may never be responded to automatically.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>notice</em>&nbsp;</td><td>the notice sent to the channel. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the IRC client that sent the notice. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="5e606c4445b697158029bcf99949eb40"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onPart:reason:" ref="5e606c4445b697158029bcf99949eb40" args="(NSString *nick,[reason] NSString *reason)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onPart: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td>
</tr>
<tr>
<td class="paramkey">reason:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
When an IRC client parts a channel you are connect to, you will see an onPart event. You will also see this event when you part a channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>(required) The nickname of the user that left the channel. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>(optional) The reason, if any, that the user gave for leaving. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="2414fbf1731d8b70a79bc071e25d8d33"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onPrivmsg:nick:" ref="2414fbf1731d8b70a79bc071e25d8d33" args="(NSString *message,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onPrivmsg: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>message</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Received when an IRC client sends a public PRIVMSG to the channel. Note that the user may not necessarily be required to be on the channel to send a message to it.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>the message sent to the channel. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the IRC client that sent the message. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="a1672182357b1768c817238a23564b7e"></a><!-- doxytag: member="NSObject(IRCClientChannelDelegate)::onTopic:nick:" ref="a1672182357b1768c817238a23564b7e" args="(NSString *aTopic,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onTopic: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>aTopic</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Received when the topic is changed for the channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>aTopic</em>&nbsp;</td><td>The new topic of the channel. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>Nickname of the IRC client that changed the topic. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_i_r_c_client_channel_delegate_8h-source.html">IRCClientChannelDelegate.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

View File

@@ -0,0 +1,528 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>IRCClient: NSObject(IRCClientSessionDelegate) Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>NSObject(IRCClientSessionDelegate) Class Reference</h1><!-- doxytag: class="NSObject(IRCClientSessionDelegate)" -->Receives delegate messages from an <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a>.
<a href="#_details">More...</a>
<p>
<code>#import &lt;<a class="el" href="_i_r_c_client_session_delegate_8h-source.html">IRCClientSessionDelegate.h</a>&gt;</code>
<p>
<p>
<a href="class_n_s_object_07_i_r_c_client_session_delegate_08-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#ba6db2dd75596bf702c62efc9e14eb0f">onConnect</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#dae74e3cd13af45e6b94a1cc0638493b">onNick:oldNick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31660c57ebf15aca5a1d5706a384d758">onQuit:reason:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#08bfc81348865b7501c75d9ca8fe32cb">onJoinChannel:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#9f6346c5e3452c528bb74be8d7ecd4dc">onMode:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#4e992d543d6241fa70b600b541c84bf5">onPrivmsg:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#76e1eaab848008d9d310495358672369">onNotice:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#44f7535a12086d212300b71c36ee3f2a">onInvite:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#31937b6b464b76943f1beab9226fdc57">onCtcpRequest:type:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#a2e3129f7210795c4c300fc06e22d146">onCtcpReply:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#53420eee82af0529518a4780850e9e66">onAction:nick:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#05bda6cfa9d696b1af1ab7da5f8ca271">onUnknownEvent:origin:params:</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">(void)&nbsp;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_n_s_object_07_i_r_c_client_session_delegate_08.html#16bc977438e490a4bb8e50769c4c46dc">onNumericEvent:origin:params:</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Receives delegate messages from an <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a>.
<p>
Each <a class="el" href="interface_i_r_c_client_session.html" title="Represents a connected IRC Session.">IRCClientSession</a> object needs a single delegate. Methods are called for each event that occurs on an IRC server that the client is connected to.<p>
Note that for any given parameter, it may be optional, in which case a nil object may be supplied instead of the given parameter. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="53420eee82af0529518a4780850e9e66"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onAction:nick:" ref="53420eee82af0529518a4780850e9e66" args="(NSData *action,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onAction: </td>
<td></td>
<td class="paramtype">(NSData *)&nbsp;</td>
<td class="paramname"> <em>action</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
A private CTCP ACTION was sent to the IRC client.<p>
CTCP ACTION is not limited to channels; it may also be sent directly to other users.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>the action message text. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the client that sent the action. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="ba6db2dd75596bf702c62efc9e14eb0f"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onConnect" ref="ba6db2dd75596bf702c62efc9e14eb0f" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onConnect </td>
<td></td>
<td class="paramname"> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The client has successfully connected to the IRC server.
</div>
</div><p>
<a class="anchor" name="a2e3129f7210795c4c300fc06e22d146"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onCtcpReply:nick:" ref="a2e3129f7210795c4c300fc06e22d146" args="(NSData *reply,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onCtcpReply: </td>
<td></td>
<td class="paramtype">(NSData *)&nbsp;</td>
<td class="paramname"> <em>reply</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
A private CTCP reply was sent to the IRC client.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>reply</em>&nbsp;</td><td>an NSData containing the raw C string of the reply. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the user that sent the reply. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="31937b6b464b76943f1beab9226fdc57"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onCtcpRequest:type:nick:" ref="31937b6b464b76943f1beab9226fdc57" args="(NSString *request,[type] NSString *type,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onCtcpRequest: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>request</em></td>
</tr>
<tr>
<td class="paramkey">type:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>type</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
A private CTCP request was sent to the IRC client.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td>the CTCP request string (after the type) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>the CTCP request type </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the user that sent the request. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="44f7535a12086d212300b71c36ee3f2a"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onInvite:nick:" ref="44f7535a12086d212300b71c36ee3f2a" args="(NSString *channel,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onInvite: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>channel</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The IRC client has been invited to a channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>channel</em>&nbsp;</td><td>the channel for the invitation. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the user that sent the invitation. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="08bfc81348865b7501c75d9ca8fe32cb"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onJoinChannel:" ref="08bfc81348865b7501c75d9ca8fe32cb" args="(IRCClientChannel *channel)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onJoinChannel: </td>
<td></td>
<td class="paramtype">(<a class="el" href="interface_i_r_c_client_channel.html">IRCClientChannel</a> *)&nbsp;</td>
<td class="paramname"> <em>channel</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The IRC client has joined (connected) successfully to a new channel. This event creates an <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> object, which you are expected to asign a delegate to, to handle events from the channel.<p>
For example, on receipt of this message, a graphical IRC client would most likely open a new window, create an <a class="el" href="protocol_i_r_c_client_channel_delegate-p.html">IRCClientChannelDelegate</a> for the window, set the new IRCClientChannel's delegate to the new delegate, and then hook it up so that new events sent to the <a class="el" href="protocol_i_r_c_client_channel_delegate-p.html">IRCClientChannelDelegate</a> are sent to the window.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>channel</em>&nbsp;</td><td>the <a class="el" href="interface_i_r_c_client_channel.html" title="Represents a connected IRC Channel.">IRCClientChannel</a> object for the newly joined channel. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="9f6346c5e3452c528bb74be8d7ecd4dc"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onMode:" ref="9f6346c5e3452c528bb74be8d7ecd4dc" args="(NSString *mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onMode: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>mode</em> </td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The client has changed it's user mode.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>the new mode. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="dae74e3cd13af45e6b94a1cc0638493b"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onNick:oldNick:" ref="dae74e3cd13af45e6b94a1cc0638493b" args="(NSString *nick,[oldNick] NSString *oldNick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onNick: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td>
</tr>
<tr>
<td class="paramkey">oldNick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>oldNick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
An IRC client on a channel that this client is connected to has changed nickname, or this IRC client has changed nicknames.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the new nickname </td></tr>
<tr><td valign="top"></td><td valign="top"><em>oldNick</em>&nbsp;</td><td>the old nickname </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="76e1eaab848008d9d310495358672369"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onNotice:nick:" ref="76e1eaab848008d9d310495358672369" args="(NSData *notice,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onNotice: </td>
<td></td>
<td class="paramtype">(NSData *)&nbsp;</td>
<td class="paramname"> <em>notice</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The client has received a private NOTICE from another client.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>notice</em>&nbsp;</td><td>the text of the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the other IRC client that sent the message. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="16bc977438e490a4bb8e50769c4c46dc"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onNumericEvent:origin:params:" ref="16bc977438e490a4bb8e50769c4c46dc" args="(NSUInteger event,[origin] NSString *origin,[params] NSArray *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onNumericEvent: </td>
<td></td>
<td class="paramtype">(NSUInteger)&nbsp;</td>
<td class="paramname"> <em>event</em></td>
</tr>
<tr>
<td class="paramkey">origin:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>origin</em></td>
</tr>
<tr>
<td class="paramkey">params:</td>
<td></td>
<td class="paramtype">(NSArray *)&nbsp;</td>
<td class="paramname"> <em>params</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
An unhandled numeric was received from the IRC server<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>the unknown event number </td></tr>
<tr><td valign="top"></td><td valign="top"><em>origin</em>&nbsp;</td><td>the sender of the event </td></tr>
<tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>an NSArray of NSData objects that are the raw C strings of the event. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="4e992d543d6241fa70b600b541c84bf5"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onPrivmsg:nick:" ref="4e992d543d6241fa70b600b541c84bf5" args="(NSData *message,[nick] NSString *nick)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onPrivmsg: </td>
<td></td>
<td class="paramtype">(NSData *)&nbsp;</td>
<td class="paramname"> <em>message</em></td>
</tr>
<tr>
<td class="paramkey">nick:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The client has received a private PRIVMSG from another IRC client.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>the text of the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the other IRC Client that sent the message. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="31660c57ebf15aca5a1d5706a384d758"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onQuit:reason:" ref="31660c57ebf15aca5a1d5706a384d758" args="(NSString *nick,[reason] NSString *reason)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onQuit: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>nick</em></td>
</tr>
<tr>
<td class="paramkey">reason:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
An IRC client on a channel that this client is connected to has quit IRC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>nick</em>&nbsp;</td><td>the nickname of the client that quit. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>(optional) the quit message, if any. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="05bda6cfa9d696b1af1ab7da5f8ca271"></a><!-- doxytag: member="NSObject(IRCClientSessionDelegate)::onUnknownEvent:origin:params:" ref="05bda6cfa9d696b1af1ab7da5f8ca271" args="(NSString *event,[origin] NSString *origin,[params] NSArray *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) onUnknownEvent: </td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>event</em></td>
</tr>
<tr>
<td class="paramkey">origin:</td>
<td></td>
<td class="paramtype">(NSString *)&nbsp;</td>
<td class="paramname"> <em>origin</em></td>
</tr>
<tr>
<td class="paramkey">params:</td>
<td></td>
<td class="paramtype">(NSArray *)&nbsp;</td>
<td class="paramname"> <em>params</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
An unhandled event was received from the IRC server.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>the unknown event name </td></tr>
<tr><td valign="top"></td><td valign="top"><em>origin</em>&nbsp;</td><td>the sender of the event </td></tr>
<tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>an NSArray of NSData objects that are the raw C strings of the event. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_i_r_c_client_session_delegate_8h-source.html">IRCClientSessionDelegate.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 10 18:10:37 2009 for IRCClient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,102 @@
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : 8px;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs INPUT
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : 8px;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI.current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI.current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.navpath
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
}