-typedef void (handlerfunc) (char**, int, userrec*);
-
-/* prototypes */
-int InspIRCd(char** argv, int argc);
-chanrec* add_channel(userrec *user, const char* cn, const char* key, bool override);
-chanrec* del_channel(userrec *user, const char* cname, const char* reason, bool local);
-void force_nickchange(userrec* user,const char* newnick);
-void kill_link(userrec *user,const char* r);
-void kill_link_silent(userrec *user,const char* r);
-void call_handler(const char* commandname,char **parameters, int pcnt, userrec *user);
-bool is_valid_cmd(const char* commandname, int pcnt, userrec * user);
-std::string GetRevision();
-int loop_call(handlerfunc fn, char **parameters, int pcnt, userrec *u, int start, int end, int joins);
-void kick_channel(userrec *src,userrec *user, chanrec *Ptr, char* reason);
-void AddWhoWas(userrec* u);
-void ConnectUser(userrec *user);
-userrec* ReHashNick(char* Old, char* New);
-bool LoadModule(const char* filename);
-bool UnloadModule(const char* filename);
-char* ModuleError();
-/* optimization tricks to save us walking the user hash */
-void AddOper(userrec* user);
-void DeleteOper(userrec* user);
-void handle_version(char **parameters, int pcnt, userrec *user);
-// userrec optimization stuff
+
+class InspIRCd
+{
+
+ private:
+ char MODERR[MAXBUF];
+ void erase_factory(int j);
+ void erase_module(int j);
+ void BuildISupport();
+ void MoveTo(std::string modulename,int slot);
+
+ public:
+ time_t startup_time;
+ ModeParser* ModeGrok;
+ CommandParser* Parser;
+ SocketEngine* SE;
+ serverstats* stats;
+
+ void MakeLowerMap();
+ std::string GetRevision();
+ std::string GetVersionString();
+ char* ModuleError();
+ bool LoadModule(const char* filename);
+ bool UnloadModule(const char* filename);
+ void MoveToLast(std::string modulename);
+ void MoveToFirst(std::string modulename);
+ void MoveAfter(std::string modulename, std::string after);
+ void MoveBefore(std::string modulename, std::string before);
+ InspIRCd(int argc, char** argv);
+ void DoOneIteration(bool process_module_sockets);
+ int Run();
+
+};
+
+/* userrec optimization stuff */