- caller1<bool, const char*> IsIdent;
-
- /** Find a username by their file descriptor.
- * It is preferred to use this over directly accessing the fd_ref_table array.
- * @param socket The file descriptor of a user
- * @return A pointer to the user if the user exists locally on this descriptor
- */
- caller1<User*, int> FindDescriptor;
-
- /** Add a dns Resolver class to this server's active set
- * @param r The resolver to add
- * @param cached If this value is true, then the cache will
- * be searched for the DNS result, immediately. If the value is
- * false, then a request will be sent to the nameserver, and the
- * result will not be immediately available. You should usually
- * use the boolean value which you passed to the Resolver
- * constructor, which Resolver will set appropriately depending
- * on if cached results are available and haven't expired. It is
- * however safe to force this value to false, forcing a remote DNS
- * lookup, but not an update of the cache.
- * @return True if the operation completed successfully. Note that
- * if this method returns true, you should not attempt to access
- * the resolver class you pass it after this call, as depending upon
- * the request given, the object may be deleted!
- */
- bool AddResolver(Resolver* r, bool cached);
-
- /** Add a command to this server's command parser
- * @param f A Command command handler object to add
- * @throw ModuleException Will throw ModuleExcption if the command already exists
- */
- void AddCommand(Command *f);
-
- /** Send a modechange.
- * The parameters provided are identical to that sent to the
- * handler for class cmd_mode.
- * @param parameters The mode parameters
- * @param pcnt The number of items you have given in the first parameter
- * @param user The user to send error messages to
- */
- void SendMode(const std::vector<std::string>& parameters, User *user);
-
- /** Match two strings using pattern matching.
- * This operates identically to the global function match(),
- * except for that it takes std::string arguments rather than
- * const char* ones.
- * @param sliteral The literal string to match against
- * @param spattern The pattern to match against. CIDR and globs are supported.
- */
- bool MatchText(const std::string &sliteral, const std::string &spattern);
-
- /** Call the handler for a given command.
- * @param commandname The command whos handler you wish to call
- * @param parameters The mode parameters
- * @param pcnt The number of items you have given in the first parameter
- * @param user The user to execute the command as
- * @return True if the command handler was called successfully
- */
- CmdResult CallCommandHandler(const std::string &commandname, const std::vector<std::string>& parameters, User* user);
-
- /** Return true if the command is a module-implemented command and the given parameters are valid for it
- * @param parameters The mode parameters
- * @param pcnt The number of items you have given in the first parameter
- * @param user The user to test-execute the command as
- * @return True if the command handler is a module command, and there are enough parameters and the user has permission to the command
- */
- bool IsValidModuleCommand(const std::string &commandname, int pcnt, User* user);