InspIRCd  3.0
Public Types | Public Member Functions | Friends | List of all members
Extensible Class Reference

#include <extensible.h>

Inheritance diagram for Extensible:
classbase Channel Membership User FakeUser LocalUser RemoteUser

Public Types

typedef insp::flat_map< reference< ExtensionItem >, void * > ExtensibleStore

Public Member Functions

const ExtensibleStoreGetExtList () const
virtual CullResult cull () CXX11_OVERRIDE
void doUnhookExtensions (const std::vector< reference< ExtensionItem > > &toRemove)
void FreeAllExtItems ()


class ExtensionItem

Detailed Description

class Extensible is the parent class of many classes such as User and Channel. class Extensible implements a system which allows modules to 'extend' the class by attaching data within a map associated with the object. In this way modules can store their own custom information within user objects, channel objects and server objects, without breaking other modules (this is more sensible than using a flags variable, and each module defining bits within the flag as 'theirs' as it is less prone to conflict and supports arbitary data storage).

Member Function Documentation

◆ cull()

CullResult Extensible::cull ( )

Called just prior to destruction via cull list.

Reimplemented from classbase.

Reimplemented in FakeUser, LocalUser, and User.

◆ FreeAllExtItems()

void Extensible::FreeAllExtItems ( )

Free all extension items attached to this Extensible

◆ GetExtList()

const ExtensibleStore& Extensible::GetExtList ( ) const

Get the extension items for iteraton (i.e. for metadata sync during netburst)

The documentation for this class was generated from the following files: