libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
Loading...
Searching...
No Matches
Ship::ActionList Class Reference

Generic ordered container of Action instances. More...

#include <ActionList.h>

Inheritance diagram for Ship::ActionList:
[legend]
Collaboration diagram for Ship::ActionList:
[legend]

Protected Member Functions

void Added (std::shared_ptr< Action > action, const bool forced) override
 Starts the action after insertion.
 
void Removed (std::shared_ptr< Action > action, const bool forced) override
 Stops the action after removal.
 
- Protected Member Functions inherited from Ship::PartList< Action, std::shared_ptr< Action > >
std::enable_if< std::is_same< P, std::shared_ptr< Action > >::value, std::vector< P > & >::type GetList ()
 Direct access to the underlying vector for strong-storage lists.
 
std::enable_if< std::is_same< P, std::shared_ptr< Action > >::value, conststd::vector< P > & >::type GetList () const
 Direct const access to the underlying vector for strong-storage lists.
 
std::recursive_mutex & GetMutex () const
 Returns the internal recursive mutex used to guard list access.
 
virtual bool CanAdd (std::shared_ptr< Action > part)
 Permission hook called before adding a Part. Override to deny.
 
virtual bool CanRemove (std::shared_ptr< Action > part)
 Permission hook called before removing a Part. Override to deny.
 
virtual void Added (std::shared_ptr< Action > part, const bool forced)
 Notification hook called after a Part has been added.
 
virtual void Removed (std::shared_ptr< Action > part, const bool forced)
 Notification hook called after a Part has been removed.
 
- Protected Member Functions inherited from Ship::Part
virtual void OnAdded (bool forced)
 Called after this Part has been added to a PartList.
 
virtual void OnRemoved (bool forced)
 Called after this Part has been removed from a PartList.
 

Additional Inherited Members

- Public Member Functions inherited from Ship::PartList< Action, std::shared_ptr< Action > >
 PartList (const size_t initialAllocation=0)
 Constructs a PartList, optionally pre-allocating storage.
 
virtual ~PartList ()=default
 
bool Has (std::shared_ptr< Action > part) const
 Checks whether a specific Part is in the list.
 
bool Has () const
 Checks whether any Part of type T is in the list.
 
bool Has (const uint64_t id) const
 Checks whether a Part with the given ID is in the list.
 
bool Has () const
 Checks whether the list contains any Parts at all.
 
size_t GetCount () const
 Returns the number of currently live Parts in the list.
 
uint64_t GetMutationVersion () const
 Returns a monotonically increasing counter that increments on every add or remove.
 
std::shared_ptr< ActionGet (const uint64_t id) const
 Retrieves a Part by its unique ID.
 
std::shared_ptr< std::vector< std::shared_ptr< Action > > > Get () const
 Returns a snapshot (copy) of all currently live Parts in the list.
 
std::shared_ptr< std::vector< std::shared_ptr< T > > > Get () const
 Returns all Parts that can be dynamic_cast to type T.
 
std::shared_ptr< std::vector< std::shared_ptr< Action > > > Get (const std::vector< uint64_t > &ids) const
 Returns all Parts whose IDs appear in the given vector.
 
std::shared_ptr< T > GetFirst () const
 Returns the first Part that can be dynamic_cast to T.
 
ListReturnCode Add (std::shared_ptr< Action > part, const bool force=false)
 Adds a Part to the list if not already present.
 
ListReturnCode Add (const std::vector< std::shared_ptr< Action > > &parts, const bool force=false)
 Adds multiple Parts to the list.
 
ListReturnCode Remove (std::shared_ptr< Action > part, const bool force=false)
 Removes a specific Part from the list.
 
ListReturnCode Remove (const uint64_t id, const bool force=false)
 Removes a Part by its unique ID.
 
ListReturnCode Remove (const bool force=false)
 Removes all Parts from the list.
 
ListReturnCode Remove (const std::vector< std::shared_ptr< Action > > &parts, const bool force=false)
 Removes multiple Parts from the list.
 
ListReturnCode Remove (const bool force=false)
 Removes all Parts that can be dynamic_cast to type T.
 
ListReturnCode Remove (const std::vector< uint64_t > &ids, const bool force=false)
 Removes all Parts whose IDs appear in the given vector.
 
- Public Member Functions inherited from Ship::Part
 Part ()
 Constructs a Part and assigns it a unique ID.
 
 Part (std::shared_ptr< Context > context)
 Constructs a Part with an explicit Context reference and unique ID.
 
virtual ~Part ()=default
 
uint64_t GetId () const
 Returns the unique identifier for this Part.
 
bool operator== (const Part &other) const
 Compares two Parts for equality by their unique IDs.
 
std::shared_ptr< ContextGetContext () const
 Returns the Context this Part belongs to, or nullptr if unset.
 
void SetContext (std::shared_ptr< Context > ctx)
 Sets the Context this Part belongs to.
 

Detailed Description

Generic ordered container of Action instances.

ActionList provides start/stop lifecycle behavior for contained actions but does not perform any EventID indexing or filtering. Event-targeted lookup is implemented by EventActionList.

Member Function Documentation

◆ Added()

void Ship::ActionList::Added ( std::shared_ptr< Action action,
const bool  forced 
)
inlineoverrideprotected

Starts the action after insertion.

Parameters
actionAction that was added.
forcedWhether insertion bypassed permission checks.

◆ Removed()

void Ship::ActionList::Removed ( std::shared_ptr< Action action,
const bool  forced 
)
inlineoverrideprotected

Stops the action after removal.

Parameters
actionAction that was removed.
forcedWhether removal bypassed permission checks.

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