Efl.Ui.Caching_Factory (class)


Efl UI Factory that provides object caching.

This factory handles caching of one type of object that must be an Efl.Gfx.Entity with an Efl.Ui.View interface defined. This factory will rely on its parent class Efl.Ui.Widget_Factory for creating the subset of class that match the Efl.Ui.Widget interface. The factory will automatically empties the cache when the application goes into pause.

Creating objects is costly and time consuming, keeping a few on hand for when you next will need them helps a lot. This is what this factory caching infrastructure provides. It will create the object from the class defined on it and set the parent and the model as needed for all created items. The View has to release the Item using the release function of the Factory interface for all of this to work properly.

The cache might decide to flush itself when the application event pause is triggered.


Efl.Ui.Widget_Factory (class)Efl.Loop_Consumer (class)Efl.Object (class)

Full hierarchy


finalize [Overridden from Efl.Object]

Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.
Efl_Object *efl_finalize(Eo *obj);

invalidate [Overridden from Efl.Object]

Implement this method to perform special actions when your object loses its parent, if you need to.
void efl_invalidate(Eo *obj);

item_class (get, set) [Overridden from Efl.Ui.Widget_Factory]

Define the class of the item returned by this factory.
const Efl_Class *efl_ui_widget_factory_item_class_get(const Eo *obj);
void efl_ui_widget_factory_item_class_set(Eo *obj, const Efl_Class *klass);

items_limit (get, set)

Define how many maximum number of items are waiting on standby in the cache.
unsigned int efl_ui_caching_factory_items_limit_get(const Eo *obj);
void efl_ui_caching_factory_items_limit_set(Eo *obj, unsigned int limit);

memory_limit (get, set)

Define the maximum size in Bytes that all the objects waiting on standby in the cache can take. They must provide the Efl.Cached.Item interface for an accurate accounting.
unsigned int efl_ui_caching_factory_memory_limit_get(const Eo *obj);
void efl_ui_caching_factory_memory_limit_set(Eo *obj, unsigned int limit);

property_bind [Overridden from Efl.Ui.Property_Bind]

bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.
Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);

release [Overridden from Efl.Ui.Factory]

Release a UI object and disconnect from models.
void efl_ui_factory_release(Eo *obj, Eina_Iterator *ui_views);

create protected [Overridden from Efl.Ui.Factory]

Create a UI object from the necessary properties in the specified model.
Eina_Future *efl_ui_factory_create(Eo *obj, Eina_Iterator *models);


future_rejected Creates a new future that is already rejected to a specified error using the Efl.Loop_Consumer.loop.get.
future_resolved Creates a new future that is already resolved to a value.
loop (get)
parent (get, set) The parent of an object.
promise_new Create a new promise with the scheduler coming from the loop provided by this object.
allow_parent_unref (get, set) Allow an object to be deleted by unref even if it has a parent.
children_iterator_new Get an iterator on all children.
comment (get, set) A human readable comment for the object.
composite_attach Make an object a composite object of another.
composite_detach Detach a composite object from another object.
composite_part_is Check if an object is part of a composite object.
debug_name_override Build a read-only name for this object used for debugging.
destructor Implement this method to provide deinitialization code for your object if you need it.
event_callback_forwarder_del Remove an event callback forwarder for a specified event and object.
event_callback_forwarder_priority_add Add an event callback forwarder that will make this object emit an event whenever another object (source) emits it. The event is said to be forwarded from source to this object.
event_callback_stop Stop the current callback call.
event_freeze Freeze events of this object.
event_freeze_count (get)
static event_global_freeze Globally freeze events for ALL EFL OBJECTS.
static event_global_freeze_count (get)
static event_global_thaw Globally thaw events for ALL EFL OBJECTS.
event_thaw Thaw events of object.
finalized (get)
invalidated (get)
invalidating (get)
name (get, set) The name of the object.
name_find Find a child object with the given name and return it.
provider_find Searches upwards in the object tree for a provider which knows the given class/interface.
provider_register Will register a manager of a specific class to be answered by Efl.Object.provider_find.
provider_unregister Will unregister a manager of a specific class that was previously registered and answered by Efl.Object.provider_find.
constructor Implement this method to provide optional initialization code for your object.
factory_bind bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input Efl.Ui.Factory need to be Efl.Ui.Property_Bind.property_bind at least once.
protected part_get Get a proxy object referring to a part of an object.



del Object is being deleted. See Efl.Object.destructor.
destruct Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.
invalidate Object is being invalidated and losing its parent. See Efl.Object.invalidate.
noref Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.
ownership,shared Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.
ownership,unique Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.
item,building Event triggered when an item has processed Efl.Object.finalize, but before all the factory are done building it. Note: if the Efl.Ui.Factory does keep a cache of object, this will be called when object are pulled out of the cache.
item,constructing Event triggered when an item is under construction (between the Efl.Object.constructor and Efl.Object.finalize call on the item). Note: If the Efl.Ui.Factory does keep a cache of objects, this won't be called when objects are pulled out of the cache.
item,created Event triggered when an item has been successfully created by the factory and is about to be used by an Efl.Ui.View.
item,releasing Event triggered when an item is being released by the Efl.Ui.Factory. It must be assumed that after this call, the object can be recycle to another Efl.Ui.View and there can be more than one call for the same item.
properties,changed Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.
property,bound Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.