2003-01-23 19:45:57 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=iso-8859-1" >
< title > modules.cpp Source File< / title >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" >
< / head > < body >
<!-- Generated by Doxygen 1.3 - rc2 -->
< center >
< a class = "qindex" href = "main.html" > Main Page< / a > < a class = "qindex" href = "hierarchy.html" > Class Hierarchy< / a > < a class = "qindex" href = "classes.html" > Alphabetical List< / a > < a class = "qindex" href = "annotated.html" > Compound List< / a > < a class = "qindex" href = "files.html" > File List< / a > < a class = "qindex" href = "functions.html" > Compound Members< / a > < a class = "qindex" href = "globals.html" > File Members< / a > < / center >
< hr > < h1 > modules.cpp< / h1 > < a href = "modules_8cpp.html" > Go to the documentation of this file.< / a > < div class = "fragment" > < pre > 00001 < span class = "comment" > /*< / span >
00002 < span class = "comment" > < / span >
00003 < span class = "comment" > $Log$
2003-01-27 00:28:57 +00:00
00003 < span class = "comment" > Revision 1.5 2003/01/27 00:28:57 brain
00003 < span class = "comment" > ...
2003-01-23 19:45:57 +00:00
00003 < span class = "comment" > < / span >
2003-01-23 20:38:00 +00:00
00004 < span class = "comment" > Revision 1.1.1.1 2003/01/23 19:45:58 brain< / span >
00005 < span class = "comment" > InspIRCd second source tree< / span >
00006 < span class = "comment" > < / span >
00007 < span class = "comment" > Revision 1.7 2003/01/22 20:49:16 brain< / span >
00008 < span class = "comment" > Added FileReader file-caching class< / span >
00009 < span class = "comment" > Changed m_randquote to use FileReader class< / span >
00010 < span class = "comment" > < / span >
00011 < span class = "comment" > Revision 1.6 2003/01/21 20:31:24 brain< / span >
00012 < span class = "comment" > Modified to add documentation< / span >
00013 < span class = "comment" > Added ConfigReader class for modules< / span >
00014 < span class = "comment" > < / span >
00015 < span class = "comment" > Revision 1.5 2003/01/13 22:30:50 brain< / span >
00016 < span class = "comment" > Added Admin class (holds /admin info for modules)< / span >
00017 < span class = "comment" > Added methods to Server class< / span >
00018 < span class = "comment" > < / span >
00019 < span class = "comment" > < / span >
00020 < span class = "comment" > */< / span >
00021
00022
00023
00024 < span class = "preprocessor" > #include < typeinfo> < / span >
00025 < span class = "preprocessor" > #include < iostream.h> < / span >
00026 < span class = "preprocessor" > #include "globals.h"< / span >
00027 < span class = "preprocessor" > #include "< a class = "code" href = "modules_8h.html" > modules.h< / a > "< / span >
00028 < span class = "preprocessor" > #include "inspircd_io.h"< / span >
00029
00030 < span class = "comment" > // version is a simple class for holding a modules version number< / span >
00031
< a name = "l00032" > < / a > < a class = "code" href = "classVersion.html#a0" > 00032< / a > < a class = "code" href = "classVersion.html#a0" > Version::Version< / a > (< span class = "keywordtype" > int< / span > major, < span class = "keywordtype" > int< / span > minor, < span class = "keywordtype" > int< / span > revision, < span class = "keywordtype" > int< / span > build) : Major(major), Minor(minor), Revision(revision), Build(build) { };
00033
00034 < span class = "comment" > // admin is a simple class for holding a server's administrative info< / span >
00035
< a name = "l00036" > < / a > < a class = "code" href = "classAdmin.html#a0" > 00036< / a > < a class = "code" href = "classAdmin.html#a0" > Admin::Admin< / a > (string name, string email, string nick) : Name(name), Email(email), Nick(nick) { };
00037
2003-01-23 19:45:57 +00:00
00038 < span class = "comment" > //< / span >
2003-01-23 20:38:00 +00:00
00039 < span class = "comment" > // Announce to the world that the Module base< / span >
00040 < span class = "comment" > // class has been created or destroyed< / span >
00041 < span class = "comment" > //< / span >
00042
< a name = "l00043" > < / a > < a class = "code" href = "classModule.html#a0" > 00043< / a > < a class = "code" href = "classModule.html#a0" > Module::Module< / a > () { }
< a name = "l00044" > < / a > < a class = "code" href = "classModule.html#a1" > 00044< / a > < a class = "code" href = "classModule.html#a1" > Module::~Module< / a > () { }
< a name = "l00045" > < / a > < a class = "code" href = "classModule.html#a3" > 00045< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classModule.html#a3" > Module::OnUserConnect< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * user) { }
< a name = "l00046" > < / a > < a class = "code" href = "classModule.html#a4" > 00046< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classModule.html#a4" > Module::OnUserQuit< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * user) { }
< a name = "l00047" > < / a > < a class = "code" href = "classModule.html#a5" > 00047< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classModule.html#a5" > Module::OnUserJoin< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * user, < a class = "code" href = "classchanrec.html" > chanrec< / a > * channel) { }
< a name = "l00048" > < / a > < a class = "code" href = "classModule.html#a6" > 00048< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classModule.html#a6" > Module::OnUserPart< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * user, < a class = "code" href = "classchanrec.html" > chanrec< / a > * channel) { }
< a name = "l00049" > < / a > < a class = "code" href = "classModule.html#a2" > 00049< / a > < a class = "code" href = "classVersion.html" > Version< / a > < a class = "code" href = "classModule.html#a2" > Module::GetVersion< / a > () { < span class = "keywordflow" > return< / span > < a class = "code" href = "classVersion.html" > Version< / a > (1,0,0,0); }
00050
00051 < span class = "comment" > // server is a wrapper class that provides methods to all of the C-style< / span >
00052 < span class = "comment" > // exports in the core< / span >
00053 < span class = "comment" > //< / span >
00054
< a name = "l00055" > < / a > < a class = "code" href = "classServer.html#a0" > 00055< / a > < a class = "code" href = "classServer.html#a0" > Server::Server< / a > ()
00056 {
00057 }
00058
< a name = "l00059" > < / a > < a class = "code" href = "classServer.html#a1" > 00059< / a > < a class = "code" href = "classServer.html#a1" > Server::~Server< / a > ()
00060 {
00061 }
00062
< a name = "l00063" > < / a > < a class = "code" href = "classServer.html#a2" > 00063< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a2" > Server::SendOpers< / a > (string s)
00064 {
00065 WriteOpers(< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00066 }
00067
< a name = "l00068" > < / a > < a class = "code" href = "classServer.html#a3" > 00068< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a3" > Server::Debug< / a > (string s)
00069 {
00070 debug(< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00071 }
00072
< a name = "l00073" > < / a > < a class = "code" href = "classServer.html#a4" > 00073< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a4" > Server::Send< / a > (< span class = "keywordtype" > int< / span > Socket, string s)
00074 {
00075 Write(Socket,< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00076 }
00077
< a name = "l00078" > < / a > < a class = "code" href = "classServer.html#a5" > 00078< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a5" > Server::SendServ< / a > (< span class = "keywordtype" > int< / span > Socket, string s)
00079 {
00080 WriteServ(Socket,< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00081 }
00082
< a name = "l00083" > < / a > < a class = "code" href = "classServer.html#a6" > 00083< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a6" > Server::SendFrom< / a > (< span class = "keywordtype" > int< / span > Socket, < a class = "code" href = "classuserrec.html" > userrec< / a > * User, string s)
00084 {
00085 WriteFrom(Socket,User,< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00086 }
00087
< a name = "l00088" > < / a > < a class = "code" href = "classServer.html#a7" > 00088< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a7" > Server::SendTo< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * Source, < a class = "code" href = "classuserrec.html" > userrec< / a > * Dest, string s)
00089 {
00090 WriteTo(Source,Dest,< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00091 }
00092
< a name = "l00093" > < / a > < a class = "code" href = "classServer.html#a8" > 00093< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a8" > Server::SendChannel< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * User, < a class = "code" href = "classchanrec.html" > chanrec< / a > * Channel, string s,< span class = "keywordtype" > bool< / span > IncludeSender)
00094 {
00095 < span class = "keywordflow" > if< / span > (IncludeSender)
00096 {
00097 WriteChannel(Channel,User,< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00098 }
00099 < span class = "keywordflow" > else< / span >
00100 {
00101 ChanExceptSender(Channel,User,< span class = "stringliteral" > "%s"< / span > ,s.c_str());
00102 }
00103 }
00104
< a name = "l00105" > < / a > < a class = "code" href = "classServer.html#a9" > 00105< / a > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classServer.html#a9" > Server::CommonChannels< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * u1, < a class = "code" href = "classuserrec.html" > userrec< / a > * u2)
00106 {
00107 < span class = "keywordflow" > return< / span > (common_channels(u1,u2) != 0);
00108 }
00109
< a name = "l00110" > < / a > < a class = "code" href = "classServer.html#a10" > 00110< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a10" > Server::SendCommon< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * User, string text,< span class = "keywordtype" > bool< / span > IncludeSender)
00111 {
00112 < span class = "keywordflow" > if< / span > (IncludeSender)
00113 {
00114 WriteCommon(User,< span class = "stringliteral" > "%s"< / span > ,text.c_str());
00115 }
00116 < span class = "keywordflow" > else< / span >
00117 {
00118 WriteCommonExcept(User,< span class = "stringliteral" > "%s"< / span > ,text.c_str());
00119 }
00120 }
00121
< a name = "l00122" > < / a > < a class = "code" href = "classServer.html#a11" > 00122< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classServer.html#a11" > Server::SendWallops< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * User, string text)
00123 {
00124 WriteWallOps(User,< span class = "stringliteral" > "%s"< / span > ,text.c_str());
00125 }
00126
< a name = "l00127" > < / a > < a class = "code" href = "classServer.html#a12" > 00127< / a > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classServer.html#a12" > Server::IsNick< / a > (string nick)
00128 {
00129 < span class = "keywordflow" > return< / span > (isnick(nick.c_str()) != 0);
00130 }
00131
< a name = "l00132" > < / a > < a class = "code" href = "classServer.html#a13" > 00132< / a > < a class = "code" href = "classuserrec.html" > userrec< / a > * < a class = "code" href = "classServer.html#a13" > Server::FindNick< / a > (string nick)
00133 {
00134 < span class = "keywordflow" > return< / span > Find(nick);
00135 }
00136
< a name = "l00137" > < / a > < a class = "code" href = "classServer.html#a14" > 00137< / a > < a class = "code" href = "classchanrec.html" > chanrec< / a > * < a class = "code" href = "classServer.html#a14" > Server::FindChannel< / a > (string channel)
00138 {
00139 < span class = "keywordflow" > return< / span > FindChan(channel.c_str());
00140 }
00141
< a name = "l00142" > < / a > < a class = "code" href = "classServer.html#a15" > 00142< / a > string < a class = "code" href = "classServer.html#a15" > Server::ChanMode< / a > (< a class = "code" href = "classuserrec.html" > userrec< / a > * User, < a class = "code" href = "classchanrec.html" > chanrec< / a > * Chan)
00143 {
00144 string mode = cmode(User,Chan);
00145 < span class = "keywordflow" > return< / span > mode;
00146 }
00147
< a name = "l00148" > < / a > < a class = "code" href = "classServer.html#a16" > 00148< / a > string < a class = "code" href = "classServer.html#a16" > Server::GetServerName< / a > ()
00149 {
00150 < span class = "keywordflow" > return< / span > getservername();
00151 }
00152
< a name = "l00153" > < / a > < a class = "code" href = "classServer.html#a17" > 00153< / a > string < a class = "code" href = "classServer.html#a17" > Server::GetNetworkName< / a > ()
00154 {
00155 < span class = "keywordflow" > return< / span > getnetworkname();
00156 }
00157
< a name = "l00158" > < / a > < a class = "code" href = "classServer.html#a18" > 00158< / a > < a class = "code" href = "classAdmin.html" > Admin< / a > < a class = "code" href = "classServer.html#a18" > Server::GetAdmin< / a > ()
00159 {
00160 < span class = "keywordflow" > return< / span > < a class = "code" href = "classAdmin.html" > Admin< / a > (getadminname(),getadminemail(),getadminnick());
00161 }
00162
00163
< a name = "l00164" > < / a > < a class = "code" href = "classConfigReader.html#a0" > 00164< / a > < a class = "code" href = "classConfigReader.html#a0" > ConfigReader::ConfigReader< / a > ()
00165 {
00166 < a class = "code" href = "classConfigReader.html#n0" > fname< / a > = CONFIG_FILE;
00167 }
00168
00169
< a name = "l00170" > < / a > < a class = "code" href = "classConfigReader.html#a2" > 00170< / a > < a class = "code" href = "classConfigReader.html#a2" > ConfigReader::~ConfigReader< / a > ()
00171 {
00172 }
2003-01-23 19:45:57 +00:00
00173
2003-01-23 20:38:00 +00:00
00174
< a name = "l00175" > < / a > < a class = "code" href = "classConfigReader.html#a1" > 00175< / a > < a class = "code" href = "classConfigReader.html#a0" > ConfigReader::ConfigReader< / a > (string filename) : fname(filename) { };
00176
< a name = "l00177" > < / a > < a class = "code" href = "classConfigReader.html#a3" > 00177< / a > string < a class = "code" href = "classConfigReader.html#a3" > ConfigReader::ReadValue< / a > (string tag, string name, < span class = "keywordtype" > int< / span > index)
00178 {
00179 < span class = "keywordtype" > char< / span > val[MAXBUF];
00180 ReadConf(< a class = "code" href = "classConfigReader.html#n0" > fname< / a > .c_str(),tag.c_str(),name.c_str(),index,val);
00181 string s = val;
00182 < span class = "keywordflow" > return< / span > s;
00183 }
00184
00185
< a name = "l00186" > < / a > < a class = "code" href = "classConfigReader.html#a4" > 00186< / a > < span class = "keywordtype" > int< / span > < a class = "code" href = "classConfigReader.html#a4" > ConfigReader::Enumerate< / a > (string tag)
00187 {
00188 < span class = "keywordflow" > return< / span > EnumConf(< a class = "code" href = "classConfigReader.html#n0" > fname< / a > .c_str(),tag.c_str());
00189 }
00190
00191
< a name = "l00192" > < / a > < a class = "code" href = "classConfigReader.html#a5" > 00192< / a > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classConfigReader.html#a5" > ConfigReader::Verify< / a > ()
00193 {
00194 < span class = "keywordflow" > return< / span > < span class = "keyword" > true< / span > ;
00195 }
00196
00197
< a name = "l00198" > < / a > < a class = "code" href = "classFileReader.html#a1" > 00198< / a > < a class = "code" href = "classFileReader.html#a0" > FileReader::FileReader< / a > (string filename)
00199 {
00200 < a class = "code" href = "modules_8h.html#a1" > file_cache< / a > c;
00201 readfile(c,filename.c_str());
00202 this-> < a class = "code" href = "classFileReader.html#o0" > fc< / a > = c;
00203 }
00204
< a name = "l00205" > < / a > < a class = "code" href = "classFileReader.html#a0" > 00205< / a > < a class = "code" href = "classFileReader.html#a0" > FileReader::FileReader< / a > ()
00206 {
00207 }
00208
< a name = "l00209" > < / a > < a class = "code" href = "classFileReader.html#a3" > 00209< / a > < span class = "keywordtype" > void< / span > < a class = "code" href = "classFileReader.html#a3" > FileReader::LoadFile< / a > (string filename)
00210 {
00211 < a class = "code" href = "modules_8h.html#a1" > file_cache< / a > c;
00212 readfile(c,filename.c_str());
00213 this-> < a class = "code" href = "classFileReader.html#o0" > fc< / a > = c;
00214 }
00215
< a name = "l00216" > < / a > < a class = "code" href = "classFileReader.html#a2" > 00216< / a > < a class = "code" href = "classFileReader.html#a2" > FileReader::~FileReader< / a > ()
00217 {
00218 }
00219
< a name = "l00220" > < / a > < a class = "code" href = "classFileReader.html#a4" > 00220< / a > string < a class = "code" href = "classFileReader.html#a4" > FileReader::GetLine< / a > (< span class = "keywordtype" > int< / span > x)
00221 {
00222 < span class = "keywordflow" > if< / span > ((x< 0) || (x> < a class = "code" href = "classFileReader.html#o0" > fc< / a > .size()))
00223 < span class = "keywordflow" > return< / span > < span class = "stringliteral" > ""< / span > ;
00224 < span class = "keywordflow" > return< / span > < a class = "code" href = "classFileReader.html#o0" > fc< / a > [x];
00225 }
00226
< a name = "l00227" > < / a > < a class = "code" href = "classFileReader.html#a5" > 00227< / a > < span class = "keywordtype" > int< / span > < a class = "code" href = "classFileReader.html#a5" > FileReader::FileSize< / a > ()
00228 {
00229 < span class = "keywordflow" > return< / span > < a class = "code" href = "classFileReader.html#o0" > fc< / a > .size();
00230 }
00231
00232
2003-01-27 00:28:57 +00:00
< / pre > < / div > < hr > < address style = "align: right;" > < small > Generated on Mon Jan 27 00:23:11 2003 for InspIRCd by
2003-01-23 19:45:57 +00:00
< a href = "http://www.doxygen.org/index.html" >
< img src = "doxygen.png" alt = "doxygen" align = "middle" border = 0
width=110 height=53>< / a > 1.3-rc2 < / small > < / address >
< / body >
< / html >