The Pedigree Project 0.1
Classes | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Ps2MouseCallbackRegistry Class Reference
+ Collaboration diagram for Ps2MouseCallbackRegistry:

Classes

struct  CallbackDispatch
 
struct  CallbackSlot
 
class  Registration
 

Public Types

using Handler = void(*)(void *, const void *, size_t)
 

Public Member Functions

MUST_USE_RESULT bool subscribe (Handler handler, void *parameter, Registration &registration)
 
void dispatch (const void *buffer, size_t length)
 

Private Member Functions

void clearSlot (CallbackSlot &slot)
 
bool unregister (CallbackSlot *slot, size_t generation, Registration *registration)
 
bool isCallbackContext (void *owner) const
 
void releaseCallback (CallbackSlot &slot, CallbackDispatch &dispatch)
 

Static Private Member Functions

static void * currentDispatchOwner ()
 
static bool unregisterThunk (void *owner, void *slot, size_t generation, Registration *registration)
 

Private Attributes

CallbackSlot m_Callbacks [MaxCallbacks]
 
Spinlock m_CallbackLock
 

Static Private Attributes

static constexpr size_t MaxCallbacks = 32
 

Detailed Description

Definition at line 17 of file Ps2MouseCallbackRegistry.h.

Member Typedef Documentation

◆ Handler

using Ps2MouseCallbackRegistry::Handler = void (*)(void*, const void*, size_t)

Definition at line 22 of file Ps2MouseCallbackRegistry.h.

Constructor & Destructor Documentation

◆ Ps2MouseCallbackRegistry()

Ps2MouseCallbackRegistry::Ps2MouseCallbackRegistry ( )

Definition at line 54 of file Ps2MouseCallbackRegistry.cc.

◆ ~Ps2MouseCallbackRegistry()

Ps2MouseCallbackRegistry::~Ps2MouseCallbackRegistry ( )

Definition at line 64 of file Ps2MouseCallbackRegistry.cc.

Member Function Documentation

◆ clearSlot()

void Ps2MouseCallbackRegistry::clearSlot ( CallbackSlot slot)
private

Definition at line 103 of file Ps2MouseCallbackRegistry.cc.

◆ currentDispatchOwner()

void * Ps2MouseCallbackRegistry::currentDispatchOwner ( )
staticprivate

Definition at line 91 of file Ps2MouseCallbackRegistry.cc.

◆ dispatch()

void Ps2MouseCallbackRegistry::dispatch ( const void *  buffer,
size_t  length 
)

Definition at line 263 of file Ps2MouseCallbackRegistry.cc.

◆ isCallbackContext()

bool Ps2MouseCallbackRegistry::isCallbackContext ( void *  owner) const
private

Definition at line 150 of file Ps2MouseCallbackRegistry.cc.

◆ releaseCallback()

void Ps2MouseCallbackRegistry::releaseCallback ( CallbackSlot slot,
CallbackDispatch dispatch 
)
private

Definition at line 241 of file Ps2MouseCallbackRegistry.cc.

◆ subscribe()

bool Ps2MouseCallbackRegistry::subscribe ( Handler  handler,
void *  parameter,
Registration registration 
)

Definition at line 117 of file Ps2MouseCallbackRegistry.cc.

◆ unregister()

bool Ps2MouseCallbackRegistry::unregister ( CallbackSlot slot,
size_t  generation,
Registration registration 
)
private

Definition at line 162 of file Ps2MouseCallbackRegistry.cc.

◆ unregisterThunk()

bool Ps2MouseCallbackRegistry::unregisterThunk ( void *  owner,
void *  slot,
size_t  generation,
Registration registration 
)
staticprivate

Definition at line 97 of file Ps2MouseCallbackRegistry.cc.

Member Data Documentation

◆ m_CallbackLock

Spinlock Ps2MouseCallbackRegistry::m_CallbackLock
private

Definition at line 119 of file Ps2MouseCallbackRegistry.h.

◆ m_Callbacks

CallbackSlot Ps2MouseCallbackRegistry::m_Callbacks[MaxCallbacks]
private

Definition at line 118 of file Ps2MouseCallbackRegistry.h.

◆ MaxCallbacks

constexpr size_t Ps2MouseCallbackRegistry::MaxCallbacks = 32
staticconstexprprivate

Definition at line 87 of file Ps2MouseCallbackRegistry.h.


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