#include "hashcomp.h"
#include "cull_list.h"
-
-#define STATUS_OP 4
-#define STATUS_HOP 2
-#define STATUS_VOICE 1
-#define STATUS_NORMAL 0
-#define CC_ALLOW 0
-#define CC_DENY 1
+enum ChanStatus {
+ STATUS_OP = 4,
+ STATUS_HOP = 2,
+ STATUS_VOICE = 1,
+ STATUS_NORMAL = 0
+};
-template<typename T> string ConvToStr(const T &in);
+enum ClassTypes {
+ CC_ALLOW = 0,
+ CC_DENY = 1
+};
/** Holds a channel name to which a user has been invited.
*/
*/
long recvqmax;
+ /** Default constructor
+ */
userrec();
/** Returns the full displayed host of the user
*/
InvitedList* GetInviteList();
- void MakeHost(char* nhost);
-
+ /** Creates a wildcard host.
+ * Takes a buffer to use and fills the given buffer with the host in the format *!*@hostname
+ */
char* MakeWildHost();
+ /** Creates a host.
+ * Takes a buffer to use and fills the given buffer with the host in the format nick!user@host
+ */
+ void MakeHost(char* nhost);
+
/** Shuts down and closes the user's socket
*/
void CloseSocket();
+ /** Default destructor
+ */
virtual ~userrec();
#ifdef THREADED_DNS
+ /** Thread used for threaded lookups
+ */
pthread_t dnsthread;
#endif
};
+/** Used to hold WHOWAS information
+ */
class WhoWasGroup
{
public:
typedef std::deque<WhoWasGroup*> whowas_set;
typedef std::map<irc::string,whowas_set*> whowas_users;
-/** A lightweight userrec used by WHOWAS
- */
-
void AddOper(userrec* user);
void DeleteOper(userrec* user);
void kill_link(userrec *user,const char* r);
void FullConnectUser(userrec* user, CullList* Goners);
userrec* ReHashNick(char* Old, char* New);
void force_nickchange(userrec* user,const char* newnick);
-void ReadClassesAndTypes();
+
+/* Configuration callbacks */
+bool InitTypes(const char* tag);
+bool InitClasses(const char* tag);
+bool DoType(const char* tag, char** entries, void** values, int* types);
+bool DoClass(const char* tag, char** entries, void** values, int* types);
+bool DoneClassesAndTypes(const char* tag);
#endif