mirror of
https://github.com/matrix-construct/construct
synced 2024-09-26 18:38:52 +02:00
ircd:Ⓜ️ Order rooms.h below user.h; add alias interface for user's rooms.
This commit is contained in:
parent
e305938b08
commit
66e81327d0
3 changed files with 90 additions and 53 deletions
|
@ -59,8 +59,8 @@ namespace ircd
|
|||
#include "state.h"
|
||||
#include "vm.h"
|
||||
#include "room.h"
|
||||
#include "rooms.h"
|
||||
#include "user.h"
|
||||
#include "rooms.h"
|
||||
#include "node.h"
|
||||
#include "login.h"
|
||||
#include "register.h"
|
||||
|
|
|
@ -15,8 +15,15 @@
|
|||
///
|
||||
namespace ircd::m::rooms
|
||||
{
|
||||
// All rooms known to IRCd
|
||||
void for_each(const room::id::closure_bool &);
|
||||
void for_each(const room::id::closure &);
|
||||
void for_each(const room::closure_bool &);
|
||||
void for_each(const room::closure &);
|
||||
|
||||
// All rooms for a user (alias to interface in user::)
|
||||
void for_each(const user &, const string_view &membership, const user::member_closure_bool &);
|
||||
void for_each(const user &, const string_view &membership, const user::member_closure &);
|
||||
void for_each(const user &, const user::member_closure_bool &);
|
||||
void for_each(const user &, const user::member_closure &);
|
||||
}
|
||||
|
|
134
ircd/m/m.cc
134
ircd/m/m.cc
|
@ -895,6 +895,88 @@ ircd::m::node::room::room(const m::node &node)
|
|||
static_cast<m::room &>(*this) = room_id;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// m/rooms.h
|
||||
//
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const user &user,
|
||||
const user::member_closure &closure)
|
||||
{
|
||||
user.for_each(closure);
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const user &user,
|
||||
const user::member_closure_bool &closure)
|
||||
{
|
||||
user.for_each(closure);
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const user &user,
|
||||
const string_view &membership,
|
||||
const user::member_closure &closure)
|
||||
{
|
||||
user.for_each(membership, closure);
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const user &user,
|
||||
const string_view &membership,
|
||||
const user::member_closure_bool &closure)
|
||||
{
|
||||
user.for_each(membership, closure);
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::closure &closure)
|
||||
{
|
||||
for_each(room::closure_bool{[&closure]
|
||||
(const room &room)
|
||||
{
|
||||
closure(room);
|
||||
return true;
|
||||
}});
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::closure_bool &closure)
|
||||
{
|
||||
for_each(room::id::closure_bool{[&closure]
|
||||
(const room::id &room_id)
|
||||
{
|
||||
return closure(room_id);
|
||||
}});
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::id::closure &closure)
|
||||
{
|
||||
for_each(room::id::closure_bool{[&closure]
|
||||
(const room::id &room_id)
|
||||
{
|
||||
closure(room_id);
|
||||
return true;
|
||||
}});
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::id::closure_bool &closure)
|
||||
{
|
||||
const room::state state
|
||||
{
|
||||
my_room
|
||||
};
|
||||
|
||||
state.test("ircd.room", room::state::keys_bool{[&closure]
|
||||
(const string_view &key)
|
||||
{
|
||||
return !closure(key);
|
||||
}});
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// m/user.h
|
||||
|
@ -1304,58 +1386,6 @@ ircd::m::user::room::room(const m::user &user)
|
|||
static_cast<m::room &>(*this) = room_id;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// m/rooms.h
|
||||
//
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::closure &closure)
|
||||
{
|
||||
for_each(room::closure_bool{[&closure]
|
||||
(const room &room)
|
||||
{
|
||||
closure(room);
|
||||
return true;
|
||||
}});
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::closure_bool &closure)
|
||||
{
|
||||
for_each(room::id::closure_bool{[&closure]
|
||||
(const room::id &room_id)
|
||||
{
|
||||
return closure(room_id);
|
||||
}});
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::id::closure &closure)
|
||||
{
|
||||
for_each(room::id::closure_bool{[&closure]
|
||||
(const room::id &room_id)
|
||||
{
|
||||
closure(room_id);
|
||||
return true;
|
||||
}});
|
||||
}
|
||||
|
||||
void
|
||||
ircd::m::rooms::for_each(const room::id::closure_bool &closure)
|
||||
{
|
||||
const room::state state
|
||||
{
|
||||
my_room
|
||||
};
|
||||
|
||||
state.test("ircd.room", room::state::keys_bool{[&closure]
|
||||
(const string_view &key)
|
||||
{
|
||||
return !closure(key);
|
||||
}});
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// m/room.h
|
||||
|
|
Loading…
Reference in a new issue