InspIRCd  3.0
typedefs.h
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  * Copyright (C) 2009 Daniel De Graaf <[email protected]>
5  * Copyright (C) 2005, 2008 Craig Edwards <[email protected]>
6  * Copyright (C) 2007 Dennis Friis <[email protected]>
7  *
8  * This file is part of InspIRCd. InspIRCd is free software: you can
9  * redistribute it and/or modify it under the terms of the GNU General Public
10  * License as published by the Free Software Foundation, version 2.
11  *
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15  * details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 
22 #pragma once
23 
24 class BanCacheManager;
25 class BufferedSocket;
26 class Channel;
27 class Command;
28 class ConfigStatus;
29 class ConfigTag;
30 class Extensible;
31 class FakeUser;
32 class InspIRCd;
33 class Invitation;
34 class IOHookProvider;
35 class LocalUser;
36 class Membership;
37 class Module;
38 class OperInfo;
39 class ProtocolServer;
40 class RemoteUser;
41 class Server;
42 class ServerConfig;
43 class ServerLimits;
44 class Thread;
45 class User;
46 class XLine;
47 class XLineManager;
48 class XLineFactory;
49 struct ConnectClass;
50 struct ModResult;
51 
52 namespace ClientProtocol
53 {
54  class Event;
55  class EventProvider;
56  class Message;
57  class MessageTagProvider;
58  class Serializer;
59 
60  typedef std::vector<Message*> MessageList;
61  typedef std::vector<std::string> ParamList;
62  typedef std::string SerializedMessage;
63 
65  {
66  MessageTagProvider* tagprov;
67  std::string value;
68  void* provdata;
69 
70  MessageTagData(MessageTagProvider* prov, const std::string& val, void* data = NULL);
71  };
72 
78 }
79 
80 #include "hashcomp.h"
81 #include "base.h"
82 
83 typedef TR1NS::unordered_map<std::string, User*, irc::insensitive, irc::StrHashComp> user_hash;
84 typedef TR1NS::unordered_map<std::string, Channel*, irc::insensitive, irc::StrHashComp> chan_hash;
85 
88 typedef std::vector<Membership*> IncludeChanList;
89 
92 typedef std::vector<std::string> file_cache;
93 
97 
100 typedef std::multimap<std::string, reference<ConfigTag>, irc::insensitive_swo> ConfigDataHash;
101 
103 typedef ConfigDataHash::const_iterator ConfigIter;
105 typedef std::pair<ConfigIter,ConfigIter> ConfigTagList;
106 
108 typedef std::map<std::string, file_cache> ConfigFileCache;
109 
111 typedef std::set<User*> CUList;
112 
115 typedef std::pair<std::string, std::string> IdentHostPair;
116 
119 typedef std::map<std::string, XLineFactory*> XLineFactMap;
120 
123 typedef std::map<std::string, XLine*, irc::insensitive_swo> XLineLookup;
124 
127 typedef std::map<std::string, XLineLookup > XLineContainer;
128 
131 typedef XLineContainer::iterator ContainerIter;
132 
135 typedef XLineLookup::iterator LookupIter;
136 
137 namespace Stats
138 {
139  class Context;
140 }
Definition: iohook.h:24
Definition: server.h:22
Definition: configreader.h:37
Definition: inspircd.h:180
Definition: hashcomp.h:106
Definition: extensible.h:90
Definition: configreader.h:172
Definition: users.h:224
Definition: typedefs.h:64
Definition: users.h:66
Definition: clientprotocol.h:523
Definition: ctables.h:221
Definition: flat_map.h:284
Definition: users.h:707
Definition: threadengine.h:33
Definition: membership.h:32
Definition: users.h:872
Definition: bancache.h:50
Definition: configreader.h:89
Definition: xline.h:367
Definition: modules.h:242
Definition: modules.h:65
Definition: users.h:880
Definition: xline.h:406
Definition: xline.h:32
Definition: configreader.h:493
Definition: inspsocket.h:367
Definition: protocol.h:27
Definition: configreader.h:208
Definition: channels.h:37