X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Ftypedefs.h;h=336084c556657aaf4715fe9400325cf91953f432;hb=7ffef79f97c8dc9f21da35dff9f822be7f62edf3;hp=8c26d5a8d5c4853381c8ffe6e1f21c4d8c8bb13c;hpb=98d5ac1394464f4d1a20c73b1ab2114449f3653a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/typedefs.h b/include/typedefs.h index 8c26d5a8d..336084c55 100644 --- a/include/typedefs.h +++ b/include/typedefs.h @@ -1,50 +1,143 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2005, 2008 Craig Edwards + * Copyright (C) 2007 Dennis Friis * - * This program is free but copyrighted software; see - * the file COPYING for details. + * 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 __TYPEDEF_H__ -#define __TYPEDEF_H__ -#include -#include "inspircd_config.h" -#include "hash_map.h" -#include "hashcomp.h" +#pragma once -class User; +class BanCacheManager; +class BufferedSocket; class Channel; +class Command; +class ConfigStatus; +class ConfigTag; +class Extensible; +class FakeUser; +class InspIRCd; +class Invitation; +class LocalUser; +class Membership; +class Module; +class OperInfo; +class ProtocolServer; +class RemoteUser; +class Server; +class ServerConfig; +class ServerLimits; +class Thread; +class User; +class XLine; +class XLineManager; +class XLineFactory; +struct ConnectClass; +struct ModResult; + +#include "hashcomp.h" +#include "base.h" + +typedef TR1NS::unordered_map user_hash; +typedef TR1NS::unordered_map chan_hash; + +/** A list holding local users, this is the type of UserManager::local_users + */ +typedef intrusive_list LocalUserList; + +/** A list of failed port bindings, used for informational purposes on startup */ +typedef std::vector > FailedPortList; + +/** 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 intrusive_list UserChanList; + +/** Shorthand for an iterator into a UserChanList + */ +typedef UserChanList::iterator UCListIter; + +/** List of channels to consider when building the neighbor list of a user + */ +typedef std::vector IncludeChanList; -#ifndef WIN32 -/** User hash (POSIX systems with GCC) +/** A cached text file stored with its contents as lines */ -typedef nspace::hash_map, irc::StrHashComp> user_hash; -/** Channel hash (POSIX systems with GCC) +typedef std::vector file_cache; + +/** A configuration key and value pair */ -typedef nspace::hash_map, irc::StrHashComp> chan_hash; -#else -/** User hash (windows systems with visual studio) +typedef std::pair KeyVal; + +/** The entire configuration */ -typedef nspace::hash_map > > user_hash; -/** Channel hash (windows systems with visual studio) +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 > > chan_hash; -#endif +typedef TR1NS::unordered_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; -/** Server name cache +/** A set of strings. */ -typedef std::vector servernamelist; +typedef std::vector string_list; -/** A cached text file stored line by line. +/** Contains an ident and host split into two strings */ -typedef std::deque file_cache; +typedef std::pair IdentHostPair; -#endif +/** 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;