X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=docs%2Fmodule-doc%2Fmodules_8h-source.html;h=c9a740a950e05aa42bd3675131df8df51033a3ec;hb=5a2675d174e661c55843b3795afe2d688e7197f9;hp=e76cb5143c5f477486ca789de524fa458d646998;hpb=3ffb95a12391eac5cf89549af9e790362fbfc075;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html index e76cb5143..c9a740a95 100644 --- a/docs/module-doc/modules_8h-source.html +++ b/docs/module-doc/modules_8h-source.html @@ -79,7 +79,7 @@ 00076 // loaded modules in a readable simple way, e.g.: 00077 // 'FOREACH_MOD OnConnect(user);' 00078 -00079 #define FOREACH_MOD for (int i = 0; i <= MODCOUNT; i++) modules[i]-> +00079 #define FOREACH_MOD for (int _i = 0; _i <= MODCOUNT; _i++) modules[_i]-> 00080 00081 // This define is similar to the one above but returns a result in MOD_RESULT. 00082 // The first module to return a nonzero result is the value to be accepted, @@ -88,8 +88,8 @@ 00085 // ********************************************************************************************* 00086 00087 #define FOREACH_RESULT(x) { MOD_RESULT = 0; \ -00088 for (int i = 0; i <= MODCOUNT; i++) { \ -00089 int res = modules[i]->x ; \ +00088 for (int _i = 0; _i <= MODCOUNT; _i++) { \ +00089 int res = modules[_i]->x ; \ 00090 if (res != 0) { \ 00091 MOD_RESULT = res; \ 00092 break; \ @@ -125,308 +125,318 @@ 00131 // Forward-delacare module for ModuleMessage etc 00132 class Module; 00133 -00138 class ModuleMessage : public classbase -00139 { -00140 public: -00143 virtual char* Send() = 0; -00144 }; -00145 -00151 class Request : public ModuleMessage -00152 { -00153 protected: -00156 char* data; -00160 Module* source; -00163 Module* dest; -00164 public: -00167 Request(char* anydata, Module* src, Module* dst); -00170 char* GetData(); -00173 Module* GetSource(); -00176 Module* GetDest(); -00182 char* Send(); -00183 }; -00184 -00185 -00191 class Event : public ModuleMessage -00192 { -00193 protected: -00196 char* data; -00200 Module* source; -00205 std::string id; -00206 public: -00209 Event(char* anydata, Module* src, std::string eventid); -00212 char* GetData(); -00215 Module* GetSource(); -00219 std::string GetEventID(); -00224 char* Send(); -00225 }; -00226 -00227 -00233 class Module : public classbase -00234 { -00235 public: -00236 -00240 Module(); -00241 -00245 virtual ~Module(); -00246 -00251 virtual Version GetVersion(); -00252 -00256 virtual void OnUserConnect(userrec* user); -00257 -00263 virtual void OnUserQuit(userrec* user); -00264 -00270 virtual void OnUserDisconnect(userrec* user); -00271 -00276 virtual void OnUserJoin(userrec* user, chanrec* channel); -00277 -00282 virtual void OnUserPart(userrec* user, chanrec* channel); -00283 -00289 virtual void OnPacketTransmit(std::string &data, std::string serv); -00290 -00297 virtual void OnPacketReceive(std::string &data, std::string serv); -00298 -00304 virtual void OnRehash(); -00305 -00314 virtual void OnServerRaw(std::string &raw, bool inbound, userrec* user); -00315 -00325 virtual int OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list &params); -00326 -00340 virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname); -00341 -00347 virtual int OnUserPreKick(userrec* source, userrec* user, chanrec* chan, std::string reason); -00348 -00353 virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, std::string reason); -00354 -00359 virtual void OnOper(userrec* user); -00360 -00369 virtual void OnInfo(userrec* user); -00370 -00375 virtual void OnWhois(userrec* source, userrec* dest); -00376 -00382 virtual int OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel); -00383 -00392 virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text); -00393 -00405 virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text); -00406 -00414 virtual int OnUserPreNick(userrec* user, std::string newnick); -00415 -00423 virtual void OnUserPostNick(userrec* user, std::string oldnick); -00424 -00446 virtual int OnAccessCheck(userrec* source,userrec* dest,chanrec* channel,int access_type); -00447 -00453 virtual string_list OnUserSync(userrec* user); -00454 -00460 virtual string_list OnChannelSync(chanrec* chan); -00461 -00465 virtual void On005Numeric(std::string &output); -00466 -00476 virtual int OnKill(userrec* source, userrec* dest, std::string reason); -00477 -00488 virtual void OnLoadModule(Module* mod,std::string name); -00489 -00495 virtual void OnBackgroundTimer(time_t curtime); -00496 -00504 virtual void OnSendList(userrec* user, chanrec* channel, char mode); -00505 -00516 virtual int OnPreCommand(std::string command, char **parameters, int pcnt, userrec *user); -00517 -00526 virtual bool OnCheckReady(userrec* user); -00527 -00535 virtual void OnUserRegister(userrec* user); -00536 -00542 virtual int OnRawMode(userrec* user, chanrec* chan, char mode, std::string param, bool adding, int pcnt); -00543 -00549 virtual int OnCheckInvite(userrec* user, chanrec* chan); -00550 -00557 virtual int OnCheckKey(userrec* user, chanrec* chan, std::string keygiven); -00558 -00564 virtual int OnCheckLimit(userrec* user, chanrec* chan); -00565 -00571 virtual int OnCheckBan(userrec* user, chanrec* chan); -00572 -00576 virtual void OnStats(char symbol); -00577 -00581 virtual int OnChangeLocalUserHost(userrec* user, std::string newhost); -00582 -00586 virtual int OnChangeLocalUserGECOS(userrec* user, std::string newhost); -00587 -00591 virtual int OnLocalTopicChange(userrec* user, chanrec* chan, std::string topic); -00592 -00603 virtual int OnMeshToken(char token,string_list params,serverrec* source,serverrec* reply, std::string tcp_host,std::string ipaddr,int port); -00604 -00610 virtual void OnEvent(Event* event); -00611 -00618 virtual char* OnRequest(Request* request); -00619 }; -00620 -00621 -00627 class Server : public classbase -00628 { -00629 public: -00633 Server(); -00637 virtual ~Server(); -00638 -00642 virtual void SendOpers(std::string s); -00647 virtual void Log(int level, std::string s); -00652 virtual void Send(int Socket, std::string s); -00657 virtual void SendServ(int Socket, std::string s); -00662 virtual void SendFrom(int Socket, userrec* User, std::string s); -00677 virtual void SendTo(userrec* Source, userrec* Dest, std::string s); -00684 virtual void SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender); -00689 virtual bool CommonChannels(userrec* u1, userrec* u2); -00697 virtual void SendCommon(userrec* User, std::string text,bool IncludeSender); -00702 virtual void SendWallops(userrec* User, std::string text); -00703 -00707 virtual bool IsNick(std::string nick); -00711 virtual int CountUsers(chanrec* c); -00715 virtual userrec* FindNick(std::string nick); -00719 virtual chanrec* FindChannel(std::string channel); -00724 virtual std::string ChanMode(userrec* User, chanrec* Chan); -00728 virtual bool IsOnChannel(userrec* User, chanrec* Chan); -00731 virtual std::string GetServerName(); -00734 virtual std::string GetNetworkName(); -00740 virtual Admin GetAdmin(); -00759 virtual bool AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off); -00760 -00782 virtual bool AddExtendedListMode(char modechar); -00783 -00801 virtual void AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source); -00802 -00824 virtual void SendMode(char **parameters, int pcnt, userrec *user); -00825 -00838 virtual void SendToModeMask(std::string modes, int flags, std::string text); -00839 -00845 virtual chanrec* JoinUserToChannel(userrec* user, std::string cname, std::string key); -00846 -00852 virtual chanrec* PartUserFromChannel(userrec* user, std::string cname, std::string reason); -00853 -00859 virtual void ChangeUserNick(userrec* user, std::string nickname); -00860 -00871 virtual void QuitUser(userrec* user, std::string reason); -00872 -00877 virtual bool MatchText(std::string sliteral, std::string spattern); +00134 // Thanks to Rob (from anope) for the idea of this message passing API +00135 // (its been done before, but this seemed a very neat and tidy way... +00136 +00141 class ModuleMessage : public classbase +00142 { +00143 public: +00146 virtual char* Send() = 0; +00147 }; +00148 +00154 class Request : public ModuleMessage +00155 { +00156 protected: +00159 char* data; +00163 Module* source; +00166 Module* dest; +00167 public: +00170 Request(char* anydata, Module* src, Module* dst); +00173 char* GetData(); +00176 Module* GetSource(); +00179 Module* GetDest(); +00185 char* Send(); +00186 }; +00187 +00188 +00194 class Event : public ModuleMessage +00195 { +00196 protected: +00199 char* data; +00203 Module* source; +00208 std::string id; +00209 public: +00212 Event(char* anydata, Module* src, std::string eventid); +00215 char* GetData(); +00218 Module* GetSource(); +00222 std::string GetEventID(); +00227 char* Send(); +00228 }; +00229 +00230 +00236 class Module : public classbase +00237 { +00238 public: +00239 +00243 Module(); +00244 +00248 virtual ~Module(); +00249 +00254 virtual Version GetVersion(); +00255 +00259 virtual void OnUserConnect(userrec* user); +00260 +00266 virtual void OnUserQuit(userrec* user); +00267 +00273 virtual void OnUserDisconnect(userrec* user); +00274 +00279 virtual void OnUserJoin(userrec* user, chanrec* channel); +00280 +00285 virtual void OnUserPart(userrec* user, chanrec* channel); +00286 +00292 virtual void OnPacketTransmit(std::string &data, std::string serv); +00293 +00300 virtual void OnPacketReceive(std::string &data, std::string serv); +00301 +00307 virtual void OnRehash(); +00308 +00317 virtual void OnServerRaw(std::string &raw, bool inbound, userrec* user); +00318 +00328 virtual int OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list &params); +00329 +00343 virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname); +00344 +00350 virtual int OnUserPreKick(userrec* source, userrec* user, chanrec* chan, std::string reason); +00351 +00356 virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, std::string reason); +00357 +00362 virtual void OnOper(userrec* user); +00363 +00372 virtual void OnInfo(userrec* user); +00373 +00378 virtual void OnWhois(userrec* source, userrec* dest); +00379 +00385 virtual int OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel); +00386 +00395 virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text); +00396 +00408 virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text); +00409 +00417 virtual int OnUserPreNick(userrec* user, std::string newnick); +00418 +00426 virtual void OnUserPostNick(userrec* user, std::string oldnick); +00427 +00449 virtual int OnAccessCheck(userrec* source,userrec* dest,chanrec* channel,int access_type); +00450 +00456 virtual string_list OnUserSync(userrec* user); +00457 +00463 virtual string_list OnChannelSync(chanrec* chan); +00464 +00468 virtual void On005Numeric(std::string &output); +00469 +00479 virtual int OnKill(userrec* source, userrec* dest, std::string reason); +00480 +00491 virtual void OnLoadModule(Module* mod,std::string name); +00492 +00498 virtual void OnBackgroundTimer(time_t curtime); +00499 +00507 virtual void OnSendList(userrec* user, chanrec* channel, char mode); +00508 +00519 virtual int OnPreCommand(std::string command, char **parameters, int pcnt, userrec *user); +00520 +00529 virtual bool OnCheckReady(userrec* user); +00530 +00538 virtual void OnUserRegister(userrec* user); +00539 +00545 virtual int OnRawMode(userrec* user, chanrec* chan, char mode, std::string param, bool adding, int pcnt); +00546 +00552 virtual int OnCheckInvite(userrec* user, chanrec* chan); +00553 +00560 virtual int OnCheckKey(userrec* user, chanrec* chan, std::string keygiven); +00561 +00567 virtual int OnCheckLimit(userrec* user, chanrec* chan); +00568 +00574 virtual int OnCheckBan(userrec* user, chanrec* chan); +00575 +00579 virtual void OnStats(char symbol); +00580 +00584 virtual int OnChangeLocalUserHost(userrec* user, std::string newhost); +00585 +00589 virtual int OnChangeLocalUserGECOS(userrec* user, std::string newhost); +00590 +00594 virtual int OnLocalTopicChange(userrec* user, chanrec* chan, std::string topic); +00595 +00606 virtual int OnMeshToken(char token,string_list params,serverrec* source,serverrec* reply, std::string tcp_host,std::string ipaddr,int port); +00607 +00613 virtual void OnEvent(Event* event); +00614 +00621 virtual char* OnRequest(Request* request); +00622 +00629 virtual int OnOperCompare(std::string password, std::string input); +00630 +00636 virtual void OnGlobalOper(userrec* user); +00637 +00642 virtual void OnGlobalConnect(userrec* user); +00643 +00644 }; +00645 +00646 +00652 class Server : public classbase +00653 { +00654 public: +00658 Server(); +00662 virtual ~Server(); +00663 +00667 virtual void SendOpers(std::string s); +00672 virtual void Log(int level, std::string s); +00677 virtual void Send(int Socket, std::string s); +00682 virtual void SendServ(int Socket, std::string s); +00687 virtual void SendFrom(int Socket, userrec* User, std::string s); +00702 virtual void SendTo(userrec* Source, userrec* Dest, std::string s); +00709 virtual void SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender); +00714 virtual bool CommonChannels(userrec* u1, userrec* u2); +00722 virtual void SendCommon(userrec* User, std::string text,bool IncludeSender); +00727 virtual void SendWallops(userrec* User, std::string text); +00728 +00732 virtual bool IsNick(std::string nick); +00736 virtual int CountUsers(chanrec* c); +00740 virtual userrec* FindNick(std::string nick); +00744 virtual chanrec* FindChannel(std::string channel); +00749 virtual std::string ChanMode(userrec* User, chanrec* Chan); +00753 virtual bool IsOnChannel(userrec* User, chanrec* Chan); +00756 virtual std::string GetServerName(); +00759 virtual std::string GetNetworkName(); +00765 virtual Admin GetAdmin(); +00784 virtual bool AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off); +00785 +00807 virtual bool AddExtendedListMode(char modechar); +00808 +00826 virtual void AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source); +00827 +00849 virtual void SendMode(char **parameters, int pcnt, userrec *user); +00850 +00863 virtual void SendToModeMask(std::string modes, int flags, std::string text); +00864 +00870 virtual chanrec* JoinUserToChannel(userrec* user, std::string cname, std::string key); +00871 +00877 virtual chanrec* PartUserFromChannel(userrec* user, std::string cname, std::string reason); 00878 -00890 virtual void CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user); -00891 -00897 virtual void ChangeHost(userrec* user, std::string host); -00898 -00904 virtual void ChangeGECOS(userrec* user, std::string gecos); -00905 -00914 virtual bool IsUlined(std::string server); -00915 -00919 virtual chanuserlist GetUsers(chanrec* chan); -00920 -00927 virtual bool UserToPseudo(userrec* user,std::string message); -00928 -00935 virtual bool PseudoToUser(userrec* alive,userrec* zombie,std::string message); -00936 -00944 virtual void AddGLine(long duration, std::string source, std::string reason, std::string hostmask); +00884 virtual void ChangeUserNick(userrec* user, std::string nickname); +00885 +00896 virtual void QuitUser(userrec* user, std::string reason); +00897 +00902 virtual bool MatchText(std::string sliteral, std::string spattern); +00903 +00915 virtual void CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user); +00916 +00922 virtual void ChangeHost(userrec* user, std::string host); +00923 +00929 virtual void ChangeGECOS(userrec* user, std::string gecos); +00930 +00939 virtual bool IsUlined(std::string server); +00940 +00944 virtual chanuserlist GetUsers(chanrec* chan); 00945 -00953 virtual void AddQLine(long duration, std::string source, std::string reason, std::string nickname); -00954 -00962 virtual void AddZLine(long duration, std::string source, std::string reason, std::string ipaddr); -00963 -00971 virtual void AddKLine(long duration, std::string source, std::string reason, std::string hostmask); -00972 -00980 virtual void AddELine(long duration, std::string source, std::string reason, std::string hostmask); -00981 -00984 virtual bool DelGLine(std::string hostmask); -00985 -00988 virtual bool DelQLine(std::string nickname); -00989 -00992 virtual bool DelZLine(std::string ipaddr); -00993 -00996 virtual bool DelKLine(std::string hostmask); +00952 virtual bool UserToPseudo(userrec* user,std::string message); +00953 +00960 virtual bool PseudoToUser(userrec* alive,userrec* zombie,std::string message); +00961 +00969 virtual void AddGLine(long duration, std::string source, std::string reason, std::string hostmask); +00970 +00978 virtual void AddQLine(long duration, std::string source, std::string reason, std::string nickname); +00979 +00987 virtual void AddZLine(long duration, std::string source, std::string reason, std::string ipaddr); +00988 +00996 virtual void AddKLine(long duration, std::string source, std::string reason, std::string hostmask); 00997 -01000 virtual bool DelELine(std::string hostmask); -01001 -01007 virtual long CalcDuration(std::string duration); -01008 -01011 virtual bool IsValidMask(std::string mask); -01012 -01017 virtual void MeshSendAll(std::string text); +01005 virtual void AddELine(long duration, std::string source, std::string reason, std::string hostmask); +01006 +01009 virtual bool DelGLine(std::string hostmask); +01010 +01013 virtual bool DelQLine(std::string nickname); +01014 +01017 virtual bool DelZLine(std::string ipaddr); 01018 -01025 virtual void MeshSendCommon(userrec* user, std::string text); +01021 virtual bool DelKLine(std::string hostmask); +01022 +01025 virtual bool DelELine(std::string hostmask); 01026 -01029 virtual void MeshSendAllAlive(std::string text); -01030 -01034 virtual void MeshSendUnicast(std::string destination, std::string text); -01035 -01040 virtual void MeshSendAllExcept(std::string target, std::string text); -01041 -01045 virtual bool MeshCheckChan(chanrec *c,std::string servername); -01046 -01050 virtual bool MeshCheckCommon(userrec* u,std::string servername); +01032 virtual long CalcDuration(std::string duration); +01033 +01036 virtual bool IsValidMask(std::string mask); +01037 +01042 virtual void MeshSendAll(std::string text); +01043 +01050 virtual void MeshSendCommon(userrec* user, std::string text); 01051 -01056 virtual Module* FindModule(std::string name); -01057 }; -01058 -01059 -01060 #define CONF_NOT_A_NUMBER 0x000010 -01061 #define CONF_NOT_UNSIGNED 0x000080 -01062 #define CONF_VALUE_NOT_FOUND 0x000100 -01063 #define CONF_FILE_NOT_FOUND 0x000200 -01064 -01065 -01072 class ConfigReader : public classbase -01073 { -01074 protected: -01080 std::stringstream *cache; -01081 std::stringstream *errorlog; -01084 bool readerror; -01085 long error; -01086 -01087 public: -01092 ConfigReader(); // default constructor reads ircd.conf -01096 ConfigReader(std::string filename); // read a module-specific config -01100 ~ConfigReader(); -01105 std::string ReadValue(std::string tag, std::string name, int index); -01111 bool ReadFlag(std::string tag, std::string name, int index); -01120 long ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned); -01125 long GetError(); -01132 int Enumerate(std::string tag); -01137 bool Verify(); -01144 void DumpErrors(bool bail,userrec* user); -01145 -01151 int EnumerateValues(std::string tag, int index); -01152 }; -01153 -01154 -01155 -01161 class FileReader : public classbase -01162 { -01163 file_cache fc; -01164 public: -01169 FileReader(); +01054 virtual void MeshSendAllAlive(std::string text); +01055 +01059 virtual void MeshSendUnicast(std::string destination, std::string text); +01060 +01065 virtual void MeshSendAllExcept(std::string target, std::string text); +01066 +01070 virtual bool MeshCheckChan(chanrec *c,std::string servername); +01071 +01075 virtual bool MeshCheckCommon(userrec* u,std::string servername); +01076 +01081 virtual Module* FindModule(std::string name); +01082 }; +01083 +01084 +01085 #define CONF_NOT_A_NUMBER 0x000010 +01086 #define CONF_NOT_UNSIGNED 0x000080 +01087 #define CONF_VALUE_NOT_FOUND 0x000100 +01088 #define CONF_FILE_NOT_FOUND 0x000200 +01089 +01090 +01097 class ConfigReader : public classbase +01098 { +01099 protected: +01105 std::stringstream *cache; +01106 std::stringstream *errorlog; +01109 bool readerror; +01110 long error; +01111 +01112 public: +01117 ConfigReader(); // default constructor reads ircd.conf +01121 ConfigReader(std::string filename); // read a module-specific config +01125 ~ConfigReader(); +01130 std::string ReadValue(std::string tag, std::string name, int index); +01136 bool ReadFlag(std::string tag, std::string name, int index); +01145 long ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned); +01150 long GetError(); +01157 int Enumerate(std::string tag); +01162 bool Verify(); +01169 void DumpErrors(bool bail,userrec* user); 01170 -01176 FileReader(std::string filename); -01177 -01181 ~FileReader(); -01182 -01188 void LoadFile(std::string filename); -01189 -01193 bool Exists(); -01194 -01199 std::string GetLine(int x); -01200 -01206 int FileSize(); -01207 }; -01208 -01209 -01216 class ModuleFactory : public classbase -01217 { -01218 public: -01219 ModuleFactory() { } -01220 virtual ~ModuleFactory() { } -01225 virtual Module * CreateModule() = 0; -01226 }; -01227 -01228 -01229 typedef DLLFactory<ModuleFactory> ircd_module; -01230 -01231 #endif -
Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by +01176 int EnumerateValues(std::string tag, int index); +01177 }; +01178 +01179 +01180 +01186 class FileReader : public classbase +01187 { +01188 file_cache fc; +01189 public: +01194 FileReader(); +01195 +01201 FileReader(std::string filename); +01202 +01206 ~FileReader(); +01207 +01213 void LoadFile(std::string filename); +01214 +01218 bool Exists(); +01219 +01224 std::string GetLine(int x); +01225 +01231 int FileSize(); +01232 }; +01233 +01234 +01241 class ModuleFactory : public classbase +01242 { +01243 public: +01244 ModuleFactory() { } +01245 virtual ~ModuleFactory() { } +01250 virtual Module * CreateModule() = 0; +01251 }; +01252 +01253 +01254 typedef DLLFactory<ModuleFactory> ircd_module; +01255 +01256 #endif +
Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by doxygen 1.3.3