Object Manager
The ObjectManager (binding for WpObjectManager
) provides a way to
collect a set of objects and be notified when objects that fulfill a certain
set of criteria are created or destroyed.
To start an object manager, you first need to declare interest in a certain
kind of object specifying a set of Interests
in the constructor and then you need to activate it by calling
ObjectManager.activate()
Upon activating an ObjectManager, any pre-existing objects that match the
specified interests will immediately become available to get through
ObjectManager.iterate()
and the WpObjectManager
“object-added”
signal will be emitted for all of them.
Constructors
- ObjectManager(interest_list)
Constructs a new object manager.
Combines
wp_object_manager_new()
andwp_object_manager_add_interest_full()
The argument needs to be a table that contains one or more Interest objects. The object manager will then contain all objects that match any one of the supplied interests.
Example:
streams_om = ObjectManager { -- match stream nodes Interest { type = "node", Constraint { "media.class", "matches", "Stream/*", type = "pw-global" }, }, -- and device nodes that are not associated with any routes Interest { type = "node", Constraint { "media.class", "matches", "Audio/*", type = "pw-global" }, Constraint { "device.routes", "equals", "0", type = "pw" }, }, Interest { type = "node", Constraint { "media.class", "matches", "Audio/*", type = "pw-global" }, Constraint { "device.routes", "is-absent", type = "pw" }, }, }
The above example will create an ObjectManager that matches all nodes with a “media.class” global property that starts with the string “Stream/” and additionally all those whose “media.class” starts with “Audio/” and they have either a “device.routes” property that equals zero or they don’t have a “device.routes” property at all.
- Parameters
interest_list (table) – a list of interests to objects
- Returns
a new object manager
- Return type
ObjectManager (
WpObjectManager
)
Methods
- ObjectManager.activate(self)
Activates the object manager. Binds
wp_core_install_object_manager()
.- Parameters
self – the object manager
- ObjectManager.get_n_objects(self)
- Parameters
self – the object manager
- Returns
the number of objects managed by the object manager
- Return type
integer
- ObjectManager.iterate(self, interest)
- ObjectManager.lookup(self, interest)