X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Ftypedefs.h;h=9a015d4450b44ca8f2b4e02c867b3af6c83b0a2a;hb=384ef31bc01e4a1a2e59d082c9066002410ba54a;hp=cd8c820397a57a4cab330095c632def9a39e43c9;hpb=09dd16b981c38cbde7573398cb50ae1cf0531ade;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/typedefs.h b/include/typedefs.h index cd8c82039..9a015d445 100644 --- a/include/typedefs.h +++ b/include/typedefs.h @@ -1,24 +1,112 @@ -#ifndef __TYPEDEF_H__ -#define __TYPEDEF_H__ - -#include -#include "inspircd_config.h" -#include "hash_map.h" -#include "users.h" -#include "channels.h" +/* + * 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 . + */ + + +#pragma once + +class BanCacheManager; +class BufferedSocket; +class Channel; +class Command; +class ConfigStatus; +class ConfigTag; +class Extensible; +class FakeUser; +class InspIRCd; +class Invitation; +class IOHookProvider; +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 "inspstring.h" -#include "ctables.h" -#include "inspircd.h" -#include "modules.h" -#include "globals.h" +#include "base.h" + +typedef TR1NS::unordered_map user_hash; +typedef TR1NS::unordered_map chan_hash; + +/** List of channels to consider when building the neighbor list of a user + */ +typedef std::vector IncludeChanList; + +/** A cached text file stored with its contents as lines + */ +typedef std::vector file_cache; + +/** A mapping of configuration keys to their assigned values. + */ +typedef insp::flat_map ConfigItems; + +/** The entire configuration + */ +typedef std::multimap, irc::insensitive_swo> ConfigDataHash; + +/** Iterator of ConfigDataHash */ +typedef ConfigDataHash::const_iterator ConfigIter; +/** Iterator pair, used for tag-name ranges */ +typedef std::pair ConfigTagList; + +/** Files read by the configuration */ +typedef std::map ConfigFileCache; + +/** Generic user list, used for exceptions */ +typedef std::set CUList; + +/** 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; -typedef nspace::hash_map, irc::StrHashComp> user_hash; -typedef nspace::hash_map, irc::StrHashComp> chan_hash; +/** An iterator in an XLineContainer + */ +typedef XLineContainer::iterator ContainerIter; -typedef std::vector servernamelist; -typedef std::vector ExtModeList; -typedef ExtModeList::iterator ExtModeListIter; -typedef std::deque file_cache; +/** An interator in an XLineLookup + */ +typedef XLineLookup::iterator LookupIter; -#endif +namespace Stats +{ + class Context; +}