X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Ftypedefs.h;h=8a7b591590b6a3949ef657b01e124eb16e603b27;hb=635cb9d65f6d7f6758ae8ed874da00c8d94b6e39;hp=5caebf0f12276c1c433643b57628bdbd5e135225;hpb=b3e3b1f14e12b4b0a395ef8e2a4848f132e2c22b;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/typedefs.h b/include/typedefs.h index 5caebf0f1..8a7b59159 100644 --- a/include/typedefs.h +++ b/include/typedefs.h @@ -1,41 +1,144 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * Copyright (C) 2013, 2016, 2018, 2020 Sadie Powell + * Copyright (C) 2012-2014, 2016, 2018 Attila Molnar + * Copyright (C) 2012 Robby + * Copyright (C) 2009-2010 Daniel De Graaf + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2005, 2010 Craig Edwards * - * 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__ -#ifndef WIN32 +#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; +class ModResult; + +namespace ClientProtocol +{ + class Event; + class EventProvider; + class Message; + class MessageTagEvent; + class MessageTagProvider; + class Serializer; + + typedef std::vector MessageList; + typedef std::vector ParamList; + typedef std::string SerializedMessage; + + struct MessageTagData + { + MessageTagProvider* tagprov; + std::string value; + void* provdata; + + MessageTagData(MessageTagProvider* prov, const std::string& val, void* data = NULL); + }; + + /** Map of message tag values and providers keyed by their name. + * Sorted in descending order to ensure tag names beginning with symbols (such as '+') come later when iterating + * the container than tags with a normal name. + */ + typedef insp::flat_map > TagMap; +} - #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 -#else +#include "hashcomp.h" +#include "base.h" - typedef nspace::hash_map > > user_hash; - typedef nspace::hash_map > > chan_hash; -#endif +typedef TR1NS::unordered_map user_hash; +typedef TR1NS::unordered_map chan_hash; -/** Server name cache +/** List of channels to consider when building the neighbor list of a user */ -typedef std::vector servernamelist; +typedef std::vector IncludeChanList; -/** A cached text file stored line by line. +/** A cached text file stored with its contents as lines */ -typedef std::deque file_cache; +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; -#endif +/** 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; + +/** An iterator in an XLineContainer + */ +typedef XLineContainer::iterator ContainerIter; + +/** An iterator in an XLineLookup + */ +typedef XLineLookup::iterator LookupIter; +namespace Stats +{ + class Context; +}