InspIRCd  2.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 std::map< reference< ExtensionItem >, void * > ExtensibleStore

Public Member Functions

const ExtensibleStore & GetExtList () const
virtual CullResult cull ()
void doUnhookExtensions (const std::vector< reference< ExtensionItem > > &toRemove)


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.

◆ 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: