12 #include "inspircd_io.h"
14 // version is a simple class for holding a modules version number
16 Version::Version(int major, int minor, int revision, int build) : Major(major), Minor(minor), Revision(revision), Build(build) { };
18 // admin is a simple class for holding a server's administrative info
20 Admin::Admin(string name, string email, string nick) : Name(name), Email(email), Nick(nick) { };
23 // Announce to the world that the Module base
24 // class has been created or destroyed
29 void Module::OnUserConnect(userrec* user) { }
30 void Module::OnUserQuit(userrec* user) { }
31 void Module::OnUserJoin(userrec* user, chanrec* channel) { }
32 void Module::OnUserPart(userrec* user, chanrec* channel) { }
33 void Module::OnPacketTransmit(char *p) { }
34 void Module::OnPacketReceive(char *p) { }
35 void Module::OnRehash() { }
36 Version Module::GetVersion() { return Version(1,0,0,0); }
38 // server is a wrapper class that provides methods to all of the C-style
39 // exports in the core
50 void Server::SendOpers(string s)
52 WriteOpers("%s",s.c_str());
55 void Server::Log(int level, string s)
57 log(level,"%s",s.c_str());
60 void Server::Send(int Socket, string s)
62 Write(Socket,"%s",s.c_str());
65 void Server::SendServ(int Socket, string s)
67 WriteServ(Socket,"%s",s.c_str());
70 void Server::SendFrom(int Socket, userrec* User, string s)
72 WriteFrom(Socket,User,"%s",s.c_str());
75 void Server::SendTo(userrec* Source, userrec* Dest, string s)
77 WriteTo(Source,Dest,"%s",s.c_str());
80 void Server::SendChannel(userrec* User, chanrec* Channel, string s,bool IncludeSender)
84 WriteChannel(Channel,User,"%s",s.c_str());
88 ChanExceptSender(Channel,User,"%s",s.c_str());
92 bool Server::CommonChannels(userrec* u1, userrec* u2)
94 return (common_channels(u1,u2) != 0);
97 void Server::SendCommon(userrec* User, string text,bool IncludeSender)
101 WriteCommon(User,"%s",text.c_str());
105 WriteCommonExcept(User,"%s",text.c_str());
109 void Server::SendWallops(userrec* User, string text)
111 WriteWallOps(User,"%s",text.c_str());
114 bool Server::IsNick(string nick)
116 return (isnick(nick.c_str()) != 0);
119 userrec* Server::FindNick(string nick)
124 chanrec* Server::FindChannel(string channel)
126 return FindChan(channel.c_str());
129 string Server::ChanMode(userrec* User, chanrec* Chan)
131 string mode = cmode(User,Chan);
135 string Server::GetServerName()
137 return getservername();
140 string Server::GetNetworkName()
142 return getnetworkname();
145 Admin Server::GetAdmin()
147 return Admin(getadminname(),getadminemail(),getadminnick());
151 ConfigReader::ConfigReader()
157 ConfigReader::~ConfigReader()
162 ConfigReader::ConfigReader(string filename) : fname(filename) { };
164 string ConfigReader::ReadValue(string tag, string name, int index)
167 ReadConf(fname.c_str(),tag.c_str(),name.c_str(),index,val);
173 int ConfigReader::Enumerate(string tag)
175 return EnumConf(fname.c_str(),tag.c_str());
179 bool ConfigReader::Verify()
185 FileReader::FileReader(string filename)
188 readfile(c,filename.c_str());
192 FileReader::FileReader()
196 void FileReader::LoadFile(string filename)
199 readfile(c,filename.c_str());
203 FileReader::~FileReader()
207 string FileReader::GetLine(int x)
209 if ((x<0) || (x>fc.size()))
214 int FileReader::FileSize()
220 vector<Module*> modules(255);
221 vector<ircd_module*> factory(255);