Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
BodyLockInterfaceLocking Class Referencefinal

Implementation that uses the body manager to lock the correct mutex for a body. More...

#include <BodyLockInterface.h>

Inheritance diagram for BodyLockInterfaceLocking:
BodyLockInterface NonCopyable

Public Member Functions

 BodyLockInterface (BodyManager &inBodyManager)
 Constructor.
Locking functions
virtual SharedMutexLockRead (const BodyID &inBodyID) const override
virtual void UnlockRead (SharedMutex *inMutex) const override
virtual SharedMutexLockWrite (const BodyID &inBodyID) const override
virtual void UnlockWrite (SharedMutex *inMutex) const override
Batch locking functions
virtual MutexMask GetMutexMask (const BodyID *inBodies, int inNumber) const override
virtual void LockRead (MutexMask inMutexMask) const override
virtual void UnlockRead (MutexMask inMutexMask) const override
virtual void LockWrite (MutexMask inMutexMask) const override
virtual void UnlockWrite (MutexMask inMutexMask) const override
Public Member Functions inherited from BodyLockInterface
 BodyLockInterface (BodyManager &inBodyManager)
 Constructor.
virtual ~BodyLockInterface ()=default
MutexMask GetAllBodiesMutexMask () const
 Get the mask needed to lock all bodies.
BodyTryGetBody (const BodyID &inBodyID) const
 Convert body ID to body.
Public Member Functions inherited from NonCopyable
 NonCopyable ()=default
 NonCopyable (const NonCopyable &)=delete
void operator= (const NonCopyable &)=delete

Additional Inherited Members

Public Types inherited from BodyLockInterface
using MutexMask = BodyManager::MutexMask
 Redefine MutexMask.
Protected Attributes inherited from BodyLockInterface
BodyManagermBodyManager

Detailed Description

Implementation that uses the body manager to lock the correct mutex for a body.

Member Function Documentation

◆ BodyLockInterface()

BodyLockInterface::BodyLockInterface ( BodyManager & inBodyManager)
inlineexplicit

Constructor.

◆ GetMutexMask()

virtual MutexMask BodyLockInterfaceLocking::GetMutexMask ( const BodyID * inBodies,
int inNumber ) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ LockRead() [1/2]

virtual SharedMutex * BodyLockInterfaceLocking::LockRead ( const BodyID & inBodyID) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ LockRead() [2/2]

virtual void BodyLockInterfaceLocking::LockRead ( MutexMask inMutexMask) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ LockWrite() [1/2]

virtual SharedMutex * BodyLockInterfaceLocking::LockWrite ( const BodyID & inBodyID) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ LockWrite() [2/2]

virtual void BodyLockInterfaceLocking::LockWrite ( MutexMask inMutexMask) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ UnlockRead() [1/2]

virtual void BodyLockInterfaceLocking::UnlockRead ( MutexMask inMutexMask) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ UnlockRead() [2/2]

virtual void BodyLockInterfaceLocking::UnlockRead ( SharedMutex * inMutex) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ UnlockWrite() [1/2]

virtual void BodyLockInterfaceLocking::UnlockWrite ( MutexMask inMutexMask) const
inlineoverridevirtual

Implements BodyLockInterface.

◆ UnlockWrite() [2/2]

virtual void BodyLockInterfaceLocking::UnlockWrite ( SharedMutex * inMutex) const
inlineoverridevirtual

Implements BodyLockInterface.


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