summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/channels.h17
-rw-r--r--include/users.h17
2 files changed, 11 insertions, 23 deletions
diff --git a/include/channels.h b/include/channels.h
index 5cbea5ecc..b8801ff07 100644
--- a/include/channels.h
+++ b/include/channels.h
@@ -20,18 +20,16 @@ typedef Anope::hash_map<Channel *> channel_map;
extern CoreExport channel_map ChannelList;
/* A user container, there is one of these per user per channel. */
-struct UserContainer : public Extensible
+struct ChanUserContainer : public Extensible
{
User *user;
+ Channel *chan;
/* Status the user has in the channel */
- ChannelStatus *status;
+ ChannelStatus status;
- UserContainer(User *u) : user(u) { }
- virtual ~UserContainer() { }
+ ChanUserContainer(User *u, Channel *c) : user(u), chan(c) { }
};
-typedef std::list<UserContainer *> CUserList;
-
enum ChannelFlag
{
/* ChanServ is currently holding the channel */
@@ -60,7 +58,8 @@ class CoreExport Channel : public Base, public Extensible, public Flags<ChannelF
time_t creation_time;
/* Users in the channel */
- CUserList users;
+ typedef std::list<ChanUserContainer *> ChanUserList;
+ ChanUserList users;
/* Current topic of the channel */
Anope::string topic;
@@ -107,7 +106,7 @@ class CoreExport Channel : public Base, public Extensible, public Flags<ChannelF
* @param u The user
* @return The UserContainer for the user
*/
- UserContainer* JoinUser(User *u);
+ ChanUserContainer* JoinUser(User *u);
/** Remove a user internally from the channel
* @param u The user
@@ -118,7 +117,7 @@ class CoreExport Channel : public Base, public Extensible, public Flags<ChannelF
* @param u The user
* @return A user container if found, else NULL
*/
- UserContainer *FindUser(const User *u) const;
+ ChanUserContainer *FindUser(const User *u) const;
/** Check if a user has a status on a channel
* @param u The user
diff --git a/include/users.h b/include/users.h
index ab7edeee3..87a18ed3f 100644
--- a/include/users.h
+++ b/include/users.h
@@ -29,18 +29,6 @@ extern CoreExport int OperCount;
extern CoreExport unsigned MaxUserCount;
extern CoreExport time_t MaxUserTime;
-/* One per channel per user. Channel and status */
-struct ChannelContainer
-{
- Channel *chan;
- ChannelStatus *status;
-
- ChannelContainer(Channel *c) : chan(c) { }
- virtual ~ChannelContainer() { }
-};
-
-typedef std::list<ChannelContainer *> UChannelList;
-
/* Online user and channel data. */
class CoreExport User : public virtual Base, public Extensible, public CommandReply
{
@@ -89,7 +77,8 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
bool super_admin;
/* Channels the user is in */
- UChannelList chans;
+ typedef std::list<ChanUserContainer *> ChanUserList;
+ ChanUserList chans;
/* Last time this user sent a memo command used */
time_t lastmemosend;
@@ -319,7 +308,7 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
* @param c The channel
* @return The channel container, or NULL
*/
- ChannelContainer *FindChannel(const Channel *c) const;
+ ChanUserContainer *FindChannel(const Channel *c) const;
/** Check if the user is protected from kicks and negative mode changes
* @return true or false