From: <Jef...@us...> - 2007-10-09 20:31:30
|
Revision: 247 http://libirc.svn.sourceforge.net/libirc/?rev=247&view=rev Author: JeffM2501 Date: 2007-10-09 13:31:25 -0700 (Tue, 09 Oct 2007) Log Message: ----------- make event data structures all be called client data structures so they don't conflict with server event data. Modified Paths: -------------- trunk/libirc/include/IRCClient.h trunk/libirc/include/IRCEvents.h trunk/libirc/include/IRCServer.h trunk/libirc/include/libIRC.h trunk/libirc/src/IRCClient.cpp trunk/libirc/src/IRCServer.cpp trunk/libirc/src/irClientCommands.cpp trunk/libirc/src/irClientEvents.cpp trunk/libirc/src/ircBasicCommands.cpp Modified: trunk/libirc/include/IRCClient.h =================================================================== --- trunk/libirc/include/IRCClient.h 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/include/IRCClient.h 2007-10-09 20:31:25 UTC (rev 247) @@ -174,11 +174,11 @@ // command sending and receving methods called by handlers virtual bool sendCommand ( std::string &commandName, BaseIRCCommandInfo &info ); - virtual bool sendIRCCommand ( teIRCCommands command, IRCCommandINfo &info ); + virtual bool sendIRCCommand ( teIRCCommands command, IRCCommandInfo &info ); virtual bool sendCTMPCommand ( teCTCPCommands command, CTCPCommandINfo &info ); virtual bool receveCommand ( std::string &commandName, BaseIRCCommandInfo &info ); - virtual bool receveIRCCommand ( teIRCCommands command, IRCCommandINfo &info ); + virtual bool receveIRCCommand ( teIRCCommands command, IRCCommandInfo &info ); virtual bool receveCTMPCommand ( teCTCPCommands command, CTCPCommandINfo &info ); // -------------------------------------------------------------------------------------- @@ -206,8 +206,8 @@ std::string getNick ( void ) {return nickname;} // used by the raw IRC command Handlers to update internal states and trigger events - void noticeMessage ( trMessageEventInfo &info ); - void welcomeMessage ( trMessageEventInfo &info ); + void noticeMessage ( trClientMessageEventInfo &info ); + void welcomeMessage ( trClientMessageEventInfo &info ); void beginMOTD ( void ){MOTD = "";} void addMOTD ( std::string line ) {MOTD += line + std::string("\n");} void endMOTD ( void ); Modified: trunk/libirc/include/IRCEvents.h =================================================================== --- trunk/libirc/include/IRCEvents.h 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/include/IRCEvents.h 2007-10-09 20:31:25 UTC (rev 247) @@ -20,6 +20,7 @@ #include "IRCTextUtils.h" class IRCClient; +class IRCServerConnectedClient; typedef enum { @@ -55,55 +56,62 @@ teIRCEventType eventType; }trBaseEventInfo; +// basic structiure that all server events are based on +// events with no data use this +typedef struct trBaseServerEventInfo : public trBaseEventInfo +{ + IRCServerConnectedClient *client; +}trBaseServerEventInfo; + // nickname error type events, used for eIRCNickNameError -typedef struct trNickErrorEventInfo : public trBaseEventInfo +typedef struct trClientNickErrorEventInfo : public trBaseEventInfo { int error; std::string message; -}trNickErrorEventInfo; +}trClientNickErrorEventInfo; // join type evetns, used for eIRCChannelJoinEvent, eIRCUserJoinEvent -typedef struct trJoinEventInfo : public trBaseEventInfo +typedef struct trClientJoinEventInfo : public trBaseEventInfo { std::string channel; std::string user; -}trJoinEventInfo; +}trClientJoinEventInfo; // mode type evetns, used for eIRCUserModeSet,eIRCChannelModeSet,eIRCChannelUserModeSet -typedef struct trModeEventInfo : public trBaseEventInfo +typedef struct trClientModeEventInfo : public trBaseEventInfo { std::string target; std::string from; std::string mode; std::string message; -}trModeEventInfo; +}trClientModeEventInfo; // nick change type evetns, used for eIRCNickNameChange -typedef struct trNickChangeEventInfo : public trBaseEventInfo +typedef struct trClientNickChangeEventInfo : public trBaseEventInfo { std::string oldname; std::string newName; -}trNickChangeEventInfo; +}trClientNickChangeEventInfo; // part type evetns, used for eIRCChannelPartEvent, eIRCUserPartEvent, eIRCQuitEvetnt -typedef struct trPartEventInfo : public trBaseEventInfo +typedef struct trClientPartEventInfo : public trBaseEventInfo { std::string channel; std::string user; std::string reason; -}trPartEventInfo; +}trClientPartEventInfo; // kick and ban type events , used for eIRCChannelKickEvent,eIRCChannelBanEvent, eIRCUserPartEvent -typedef struct trKickBanEventInfo : public trBaseEventInfo +typedef struct trClientKickBanEventInfo : public trBaseEventInfo { std::string channel; std::string user; std::string reason; std::string kicker; -}trKickBanEventInfo; +}trClientKickBanEventInfo; // message events, used for eIRCChannelMessageEvent, eIRCPrivateMessageEvent, eIRCNoticeEvent, eIRCWelcomeEvent, eIRCTopicChangeEvent -typedef struct trMessageEventInfo : public trBaseEventInfo +typedef struct trClientMessageEventInfo : public trBaseEventInfo { std::string target; std::string source; @@ -112,7 +120,7 @@ std::vector<std::string> params; std::string getAsString ( int start = 0, int end = -1 ) {return string_util::getStringFromList(params," ",start,end);} -}trMessageEventInfo; +}trClientMessageEventInfo; class IRCBasicEventCallback { Modified: trunk/libirc/include/IRCServer.h =================================================================== --- trunk/libirc/include/IRCServer.h 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/include/IRCServer.h 2007-10-09 20:31:25 UTC (rev 247) @@ -137,8 +137,9 @@ virtual bool allowConnection ( const char* hostmask, unsigned char ip[4] ); virtual void clientConnect ( IRCServerConnectedClient *client ); virtual void clientDisconnect ( IRCServerConnectedClient *client ); - virtual void clientIRCCommand ( const std::string &command, IRCServerConnectedClient *client ); + virtual void clientIRCCommand ( const BaseIRCCommandInfo &command, IRCServerConnectedClient *client ); + IRCServerChannel *getChannel ( const char *name ); IRCServerChannel *getChannel ( const std::string& name ); Modified: trunk/libirc/include/libIRC.h =================================================================== --- trunk/libirc/include/libIRC.h 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/include/libIRC.h 2007-10-09 20:31:25 UTC (rev 247) @@ -21,6 +21,7 @@ #ifndef string_list typedef std::vector<std::string> string_list; +#endif // IRC includes #include "ircCommands.h" @@ -28,9 +29,6 @@ #include "IRCUserManager.h" #include "TCPConnection.h" -#endif - - #define _DEFAULT_IRC_PORT 6667 // simple OS indpendent sleep function @@ -74,7 +72,7 @@ }; // a normal Internet Relay Chat command -class IRCCommandINfo : public BaseIRCCommandInfo +class IRCCommandInfo : public BaseIRCCommandInfo { public: teIRCCommands ircCommand; Modified: trunk/libirc/src/IRCClient.cpp =================================================================== --- trunk/libirc/src/IRCClient.cpp 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/src/IRCClient.cpp 2007-10-09 20:31:25 UTC (rev 247) @@ -135,7 +135,7 @@ if (!reason.size()) reason = "shuting down"; - IRCCommandINfo info; + IRCCommandInfo info; info.params.push_back(reason); if (!sendIRCCommand(eCMD_QUIT,info)) @@ -390,7 +390,7 @@ return false; } -bool IRCClient::sendIRCCommand ( teIRCCommands command, IRCCommandINfo &info ) +bool IRCClient::sendIRCCommand ( teIRCCommands command, IRCCommandInfo &info ) { info.type = eIRCCommand; info.ircCommand = command; @@ -441,7 +441,7 @@ return false; } -bool IRCClient::receveIRCCommand ( teIRCCommands command, IRCCommandINfo &info ) +bool IRCClient::receveIRCCommand ( teIRCCommands command, IRCCommandInfo &info ) { info.type = eIRCCommand; info.ircCommand = command; @@ -728,7 +728,7 @@ // atempt to keep adding crap to the nick till it goes requestedNick += '_'; - IRCCommandINfo info; + IRCCommandInfo info; info.params.push_back(requestedNick); if (!sendIRCCommand(eCMD_NICK,info)) Modified: trunk/libirc/src/IRCServer.cpp =================================================================== --- trunk/libirc/src/IRCServer.cpp 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/src/IRCServer.cpp 2007-10-09 20:31:25 UTC (rev 247) @@ -297,7 +297,20 @@ void IRCServer::processIRCLine ( std::string line, IRCServerConnectedClient *client ) { + // we have a single line of text, do something with it. + // see if it's a command, and or call any handlers that we have + // also check for error returns + // right now we don't know if it's an IRC or CTCP command so just go with the generic one + // let the command parse it out into paramaters and find the command + BaseIRCCommandInfo commandInfo; + commandInfo.parse(line); + std::string handler; + + //if (!commandInfo.prefixed) + // commandInfo.source = getServerHost(); + + clientIRCCommand(commandInfo,client); } bool IRCServer::sendTextToPeer ( const std::string &text, TCPServerConnectedPeer *peer ) @@ -430,7 +443,7 @@ return true; } -void IRCServer::clientIRCCommand ( const std::string &command, IRCServerConnectedClient *client ) +void IRCServer::clientIRCCommand ( const BaseIRCCommandInfo &command, IRCServerConnectedClient *client ) { } Modified: trunk/libirc/src/irClientCommands.cpp =================================================================== --- trunk/libirc/src/irClientCommands.cpp 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/src/irClientCommands.cpp 2007-10-09 20:31:25 UTC (rev 247) @@ -40,7 +40,7 @@ requestedNick = nick; - IRCCommandINfo info; + IRCCommandInfo info; info.params.push_back(nick); if (!sendIRCCommand(eCMD_NICK,info)) @@ -71,7 +71,7 @@ { requestedNick = nick; - IRCCommandINfo info; + IRCCommandInfo info; info.params.push_back(nick); if (!sendIRCCommand(eCMD_NICK,info)) @@ -89,7 +89,7 @@ if (getConnectionState() < eSentNickAndUSer) return false; - IRCCommandINfo info; + IRCCommandInfo info; info.target = channel; if (!sendIRCCommand(eCMD_JOIN,info)) { @@ -112,7 +112,7 @@ if (getConnectionState() < eSentNickAndUSer) return false; - IRCCommandINfo info; + IRCCommandInfo info; info.target = channel; info.params.push_back(reason); @@ -126,7 +126,7 @@ std::string nick = getNick(); userManager.userPartChannel(nick, channel); - trPartEventInfo eventInfo; + trClientPartEventInfo eventInfo; eventInfo.eventType = eIRCChannelPartEvent; eventInfo.reason = reason; @@ -163,7 +163,7 @@ std::string message = messageHeader+*itr+messageFooter; int len = (int)message.size(); - IRCCommandINfo commandInfo; + IRCCommandInfo commandInfo; commandInfo.target = target; commandInfo.params.clear(); commandInfo.params.push_back(message); @@ -175,24 +175,24 @@ bool IRCClient::sendCTCPRequest ( std::string target, teCTCPCommands command, std::string &data) { - std::string message = CMD_PRIVMSG; - message += " " + target + " :"; - message += CTCP_DELIMITER + ctcpCommandParser.getCommandName(command); - if (data != "") - message += " " + data; - message += CTCP_DELIMITER; - return sendTextToServer(message); + std::string message = CMD_PRIVMSG; + message += " " + target + " :"; + message += CTCP_DELIMITER + ctcpCommandParser.getCommandName(command); + if (data != "") + message += " " + data; + message += CTCP_DELIMITER; + return sendTextToServer(message); } bool IRCClient::sendCTCPReply ( std::string target, teCTCPCommands command, std::string &data) { - std::string message = CMD_NOTICE; - message += " " + target + " :"; - message += CTCP_DELIMITER + ctcpCommandParser.getCommandName(command); - if (data != "") - message += " " + data; - message += CTCP_DELIMITER; - return sendTextToServer(message); + std::string message = CMD_NOTICE; + message += " " + target + " :"; + message += CTCP_DELIMITER + ctcpCommandParser.getCommandName(command); + if (data != "") + message += " " + data; + message += CTCP_DELIMITER; + return sendTextToServer(message); } bool IRCClient::kick ( std::string user, std::string channel, std::string reason ) @@ -204,7 +204,7 @@ if (!userManager.userInChannel(user,channel)) return false; - IRCCommandINfo info; + IRCCommandInfo info; info.target = channel; info.params.push_back(user); info.params.push_back(reason); @@ -234,7 +234,7 @@ if (getConnectionState() < eSentNickAndUSer) return false; - IRCCommandINfo info; + IRCCommandInfo info; info.target = target; info.params.push_back(theMode); if (option.size()) Modified: trunk/libirc/src/irClientEvents.cpp =================================================================== --- trunk/libirc/src/irClientEvents.cpp 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/src/irClientEvents.cpp 2007-10-09 20:31:25 UTC (rev 247) @@ -21,7 +21,7 @@ // event trigers from low level messages // this way the low level events don't need the logic for the high level events. -void IRCClient::noticeMessage ( trMessageEventInfo &info ) +void IRCClient::noticeMessage ( trClientMessageEventInfo &info ) { if (info.params[1] == "Looking") { @@ -32,7 +32,7 @@ } } -void IRCClient::welcomeMessage ( trMessageEventInfo &info ) +void IRCClient::welcomeMessage ( trClientMessageEventInfo &info ) { setNick(info.target); requestedNick = info.target; @@ -63,7 +63,7 @@ userManager.userJoinChannel(who,info.target); - trJoinEventInfo joinInfo; + trClientJoinEventInfo joinInfo; joinInfo.eventType = who == getNick() ? eIRCChannelJoinEvent : eIRCUserJoinEvent; joinInfo.channel = info.target; @@ -77,7 +77,7 @@ std::string who = goodies[0]; - trPartEventInfo partInfo; + trClientPartEventInfo partInfo; userManager.userPartChannel(who,info.target); if (who == getNick()) @@ -94,7 +94,7 @@ { userManager.modeReceved(channel,reportedServerHost,mode); - trModeEventInfo info; + trClientModeEventInfo info; info.eventType = eIRCChannelModeSet; info.target = channel; info.from = reportedServerHost; @@ -106,7 +106,7 @@ { userManager.topicReceved(channel,topic,true); - trMessageEventInfo info; + trClientMessageEventInfo info; info.eventType = eIRCTopicChangeEvent; info.target = channel; info.source = source; @@ -118,10 +118,10 @@ { std::string who = info.target; - trModeEventInfo modeInfo; + trClientModeEventInfo modeInfo; modeInfo.eventType = eIRCNULLEvent; - trKickBanEventInfo banInfo; + trClientKickBanEventInfo banInfo; banInfo.eventType = eIRCNULLEvent; modeInfo.target = who; @@ -196,7 +196,7 @@ void IRCClient::privMessage ( BaseIRCCommandInfo &info ) { - trMessageEventInfo msgInfo; + trClientMessageEventInfo msgInfo; msgInfo.source = info.source; msgInfo.target = info.target; msgInfo.message = info.getAsString(); @@ -220,7 +220,7 @@ void IRCClient::nickNameError ( int error, std::string message ) { - trNickErrorEventInfo info; + trClientNickErrorEventInfo info; info.error = error; if (getConnectionState() < eLoggedIn) @@ -239,7 +239,7 @@ userManager.nickChange(who,info.target); - trNickChangeEventInfo eventInfo; + trClientNickChangeEventInfo eventInfo; eventInfo.eventType = eIRCNickNameChange; eventInfo.oldname = who; eventInfo.newName = info.target; @@ -248,7 +248,7 @@ void IRCClient::kickCommand ( BaseIRCCommandInfo &info ) { - trKickBanEventInfo eventInfo; + trClientKickBanEventInfo eventInfo; eventInfo.eventType = eIRCUserKickedEvent; eventInfo.channel = info.target; @@ -269,7 +269,7 @@ std::string who = goodies[0]; - trPartEventInfo partInfo; + trClientPartEventInfo partInfo; userManager.userPartChannel(who,info.target); if (who == getNick()) Modified: trunk/libirc/src/ircBasicCommands.cpp =================================================================== --- trunk/libirc/src/ircBasicCommands.cpp 2007-10-09 18:48:16 UTC (rev 246) +++ trunk/libirc/src/ircBasicCommands.cpp 2007-10-09 20:31:25 UTC (rev 247) @@ -33,7 +33,7 @@ bool IRCNickCommand::send ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - IRCCommandINfo &ircInfo = (IRCCommandINfo&)info; + IRCCommandInfo &ircInfo = (IRCCommandInfo&)info; std::string commandLine; @@ -58,7 +58,7 @@ bool IRCUserCommand::send ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - IRCCommandINfo &ircInfo = (IRCCommandINfo&)info; + IRCCommandInfo &ircInfo = (IRCCommandInfo&)info; std::string commandLine; @@ -77,7 +77,7 @@ bool IRCPingCommand::receve ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - IRCCommandINfo ircInfo; + IRCCommandInfo ircInfo; ircInfo.command = eCMD_PONG; client.sendIRCCommand(eCMD_PONG,ircInfo); return true; @@ -85,7 +85,7 @@ bool IRCPingCommand::send ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - IRCCommandINfo &ircInfo = (IRCCommandINfo&)info; + IRCCommandInfo &ircInfo = (IRCCommandInfo&)info; std::string commandLine; // PING @@ -107,7 +107,7 @@ bool IRCPongCommand::send ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - IRCCommandINfo &ircInfo = (IRCCommandINfo&)info; + IRCCommandInfo &ircInfo = (IRCCommandInfo&)info; std::string commandLine; // PING @@ -123,7 +123,7 @@ bool IRCNoticeCommand::receve ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - trMessageEventInfo messageInfo; + trClientMessageEventInfo messageInfo; messageInfo.eventType = eIRCNoticeEvent; messageInfo.source = info.source; @@ -267,7 +267,7 @@ bool IRCPrivMsgCommand::send ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - IRCCommandINfo &ircInfo = (IRCCommandINfo&)info; + IRCCommandInfo &ircInfo = (IRCCommandInfo&)info; std::string commandLine; ircInfo.target = @@ -292,7 +292,7 @@ bool IRCKickCommand::send ( IRCClient &client, std::string &command, BaseIRCCommandInfo &info ) { - IRCCommandINfo &ircInfo = (IRCCommandINfo&)info; + IRCCommandInfo &ircInfo = (IRCCommandInfo&)info; std::string commandLine; @@ -346,7 +346,7 @@ case RPL_WELCOME:// "Welcome to the Internet Relay Network <nick>!<user>@<host>" { - trMessageEventInfo messageInfo; + trClientMessageEventInfo messageInfo; messageInfo.eventType = eIRCNoticeEvent; messageInfo.target = info.target; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |