*/
-#ifndef TYPEDEFS_H
-#define TYPEDEFS_H
+#pragma once
class BanCacheManager;
-class BanItem;
class BufferedSocket;
class Channel;
class Command;
-class ConfigReader;
+class ConfigStatus;
class ConfigTag;
-class DNSHeader;
-class DNSRequest;
class Extensible;
class FakeUser;
class InspIRCd;
class Invitation;
-class InviteBase;
class LocalUser;
class Membership;
class Module;
class OperInfo;
+class ProtocolServer;
class RemoteUser;
+class Server;
class ServerConfig;
class ServerLimits;
class Thread;
class User;
-class UserResolver;
class XLine;
class XLineManager;
class XLineFactory;
struct ConnectClass;
struct ModResult;
-struct ResourceRecord;
#include "hashcomp.h"
#include "base.h"
-#if defined(WINDOWS) && !defined(HASHMAP_DEPRECATED)
- typedef nspace::hash_map<std::string, User*, nspace::hash_compare<std::string, std::less<std::string> > > user_hash;
- typedef nspace::hash_map<std::string, Channel*, nspace::hash_compare<std::string, std::less<std::string> > > chan_hash;
-#else
- #ifdef HASHMAP_DEPRECATED
- typedef nspace::hash_map<std::string, User*, nspace::insensitive, irc::StrHashComp> user_hash;
- typedef nspace::hash_map<std::string, Channel*, nspace::insensitive, irc::StrHashComp> chan_hash;
- #else
- typedef nspace::hash_map<std::string, User*, nspace::hash<std::string>, irc::StrHashComp> user_hash;
- typedef nspace::hash_map<std::string, Channel*, nspace::hash<std::string>, irc::StrHashComp> chan_hash;
- #endif
-#endif
+typedef TR1NS::unordered_map<std::string, User*, irc::insensitive, irc::StrHashComp> user_hash;
+typedef TR1NS::unordered_map<std::string, Channel*, irc::insensitive, irc::StrHashComp> chan_hash;
+
+/** A list holding local users, this is the type of UserManager::local_users
+ */
+typedef intrusive_list<LocalUser> LocalUserList;
/** A list of failed port bindings, used for informational purposes on startup */
typedef std::vector<std::pair<std::string, std::string> > FailedPortList;
-/** 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.
- */
-typedef std::vector<Invitation*> InviteList;
-
/** Holds a complete list of all allow and deny tags from the configuration file (connection classes)
*/
typedef std::vector<reference<ConnectClass> > ClassVector;
/** Typedef for the list of user-channel records for a user
*/
-typedef std::set<Channel*> UserChanList;
+typedef intrusive_list<Membership> UserChanList;
/** Shorthand for an iterator into a UserChanList
*/
typedef UserChanList::iterator UCListIter;
-/** Holds a complete ban list
+/** List of channels to consider when building the neighbor list of a user
*/
-typedef std::vector<BanItem> BanList;
-
-/** A list of custom modes parameters on a channel
- */
-typedef std::map<char,std::string> CustomModeList;
+typedef std::vector<Membership*> IncludeChanList;
/** A cached text file stored with its contents as lines
*/
/** A hash of commands used by the core
*/
-typedef nspace::hash_map<std::string,Command*> Commandtable;
+typedef TR1NS::unordered_map<std::string, Command*> Commandtable;
/** Membership list of a channel */
typedef std::map<User*, Membership*> UserMembList;
/** An interator in an XLineLookup
*/
typedef XLineLookup::iterator LookupIter;
-
-
-#endif
-