- const char* GetAllPrefixChars() const;
-};
-
-template <typename T>
-class InviteBase
-{
- protected:
- /** List of pending Invitations
- */
- intrusive_list<Invitation, T> invites;
-
- public:
- /** Remove and destruct all pending invitations this user or channel has.
- * Must be called before the object is destroyed, also called when the TS of the channel is lowered.
- */
- void ClearInvites();
-
- friend class Invitation;
-};
-
-/**
- * The Invitation class contains all data about a pending invitation.
- * Invitation objects are referenced from the user and the channel they belong to.
- */
-class CoreExport Invitation : public intrusive_list_node<Invitation, Channel>, public intrusive_list_node<Invitation, LocalUser>
-{
- /** Constructs an Invitation, only called by Create()
- * @param c Channel the user is invited to
- * @param u User being invited
- * @param timeout Expiration time for this Invitation
- */
- Invitation(Channel* c, LocalUser* u, time_t timeout) : user(u), chan(c), expiry(timeout) {}
-
- public:
- /** User the invitation is for
- */
- LocalUser* const user;
-
- /** Channel where the user is invited to
- */
- Channel* const chan;