1 /* +------------------------------------+
2 * | Inspire Internet Relay Chat Daemon |
3 * +------------------------------------+
5 * InspIRCd: (C) 2002-2009 InspIRCd Development Team
6 * See: http://wiki.inspircd.org/Credits
8 * This program is free but copyrighted software; see
9 * the file COPYING for details.
11 * ---------------------------------------------------
17 class BanCacheManager;
44 struct ResourceRecord;
49 #if defined(WINDOWS) && !defined(HASHMAP_DEPRECATED)
50 typedef nspace::hash_map<std::string, User*, nspace::hash_compare<std::string, std::less<std::string> > > user_hash;
51 typedef nspace::hash_map<std::string, Channel*, nspace::hash_compare<std::string, std::less<std::string> > > chan_hash;
53 #ifdef HASHMAP_DEPRECATED
54 typedef nspace::hash_map<std::string, User*, nspace::insensitive, irc::StrHashComp> user_hash;
55 typedef nspace::hash_map<std::string, Channel*, nspace::insensitive, irc::StrHashComp> chan_hash;
57 typedef nspace::hash_map<std::string, User*, nspace::hash<std::string>, irc::StrHashComp> user_hash;
58 typedef nspace::hash_map<std::string, Channel*, nspace::hash<std::string>, irc::StrHashComp> chan_hash;
62 /** A list of failed port bindings, used for informational purposes on startup */
63 typedef std::vector<std::pair<std::string, std::string> > FailedPortList;
65 /** Holds a complete list of all channels to which a user has been invited and has not yet joined, and the time at which they'll expire.
67 typedef std::vector< std::pair<irc::string, time_t> > InvitedList;
69 /** Holds a complete list of all allow and deny tags from the configuration file (connection classes)
71 typedef std::vector<reference<ConnectClass> > ClassVector;
73 /** Typedef for the list of user-channel records for a user
75 typedef std::set<Channel*> UserChanList;
77 /** Shorthand for an iterator into a UserChanList
79 typedef UserChanList::iterator UCListIter;
81 /** Holds a complete ban list
83 typedef std::vector<BanItem> BanList;
85 /** A list of custom modes parameters on a channel
87 typedef std::map<char,std::string> CustomModeList;
89 /** A cached text file stored with its contents as lines
91 typedef std::vector<std::string> file_cache;
93 /** A configuration key and value pair
95 typedef std::pair<std::string, std::string> KeyVal;
97 /** The entire configuration
99 typedef std::multimap<std::string, reference<ConfigTag> > ConfigDataHash;
100 /** Iterator of ConfigDataHash */
101 typedef ConfigDataHash::const_iterator ConfigIter;
102 /** Iterator pair, used for tag-name ranges */
103 typedef std::pair<ConfigIter,ConfigIter> ConfigTagList;
105 /** Index of valid oper blocks and types */
106 typedef std::map<std::string, reference<OperInfo> > OperIndex;
108 /** A hash of commands used by the core
110 typedef nspace::hash_map<std::string,Command*> Commandtable;
112 /** Membership list of a channel */
113 typedef std::map<User*, Membership*> UserMembList;
114 /** Iterator of UserMembList */
115 typedef UserMembList::iterator UserMembIter;
116 /** const Iterator of UserMembList */
117 typedef UserMembList::const_iterator UserMembCIter;
119 /** Generic user list, used for exceptions */
120 typedef std::set<User*> CUList;
122 /** A set of strings.
124 typedef std::vector<std::string> string_list;
126 /** Contains an ident and host split into two strings
128 typedef std::pair<std::string, std::string> IdentHostPair;
130 /** A map of xline factories
132 typedef std::map<std::string, XLineFactory*> XLineFactMap;
134 /** A map of XLines indexed by string
136 typedef std::map<irc::string, XLine *> XLineLookup;
138 /** A map of XLineLookup maps indexed by string
140 typedef std::map<std::string, XLineLookup > XLineContainer;
142 /** An iterator in an XLineContainer
144 typedef XLineContainer::iterator ContainerIter;
146 /** An interator in an XLineLookup
148 typedef XLineLookup::iterator LookupIter;