/* * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2009 Daniel De Graaf * Copyright (C) 2005, 2008 Craig Edwards * Copyright (C) 2007 Dennis Friis * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public * License as published by the Free Software Foundation, version 2. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef TYPEDEFS_H #define TYPEDEFS_H class BanCacheManager; class BanItem; class BufferedSocket; class Channel; class Command; class ConfigReader; class ConfigTag; class DNSHeader; class DNSRequest; class Extensible; class FakeUser; class InspIRCd; class LocalUser; class Membership; class Module; class OperInfo; class RemoteUser; 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 > > user_hash; typedef nspace::hash_map > > chan_hash; #else #ifdef HASHMAP_DEPRECATED typedef nspace::hash_map user_hash; typedef nspace::hash_map chan_hash; #else typedef nspace::hash_map, irc::StrHashComp> user_hash; typedef nspace::hash_map, irc::StrHashComp> chan_hash; #endif #endif /** A list of failed port bindings, used for informational purposes on startup */ typedef std::vector > 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< std::pair > InvitedList; /** Holds a complete list of all allow and deny tags from the configuration file (connection classes) */ typedef std::vector > ClassVector; /** Typedef for the list of user-channel records for a user */ typedef std::set UserChanList; /** Shorthand for an iterator into a UserChanList */ typedef UserChanList::iterator UCListIter; /** Holds a complete ban list */ typedef std::vector BanList; /** A list of custom modes parameters on a channel */ typedef std::map CustomModeList; /** A cached text file stored with its contents as lines */ typedef std::vector file_cache; /** A configuration key and value pair */ typedef std::pair KeyVal; /** The entire configuration */ typedef std::multimap > ConfigDataHash; /** Iterator of ConfigDataHash */ typedef ConfigDataHash::const_iterator ConfigIter; /** Iterator pair, used for tag-name ranges */ typedef std::pair ConfigTagList; /** Index of valid oper blocks and types */ typedef std::map > OperIndex; /** Files read by the configuration */ typedef std::map ConfigFileCache; /** A hash of commands used by the core */ typedef nspace::hash_map Commandtable; /** Membership list of a channel */ typedef std::map UserMembList; /** Iterator of UserMembList */ typedef UserMembList::iterator UserMembIter; /** const Iterator of UserMembList */ typedef UserMembList::const_iterator UserMembCIter; /** Generic user list, used for exceptions */ typedef std::set CUList; /** A set of strings. */ typedef std::vector string_list; /** Contains an ident and host split into two strings */ typedef std::pair IdentHostPair; /** A map of xline factories */ typedef std::map XLineFactMap; /** A map of XLines indexed by string */ typedef std::map XLineLookup; /** A map of XLineLookup maps indexed by string */ typedef std::map XLineContainer; /** An iterator in an XLineContainer */ typedef XLineContainer::iterator ContainerIter; /** An interator in an XLineLookup */ typedef XLineLookup::iterator LookupIter; #endif