efl::model::base Struct Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files
- Examples

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Member Functions | Static Public Member Functions
efl::model::base Struct Reference

Class base. More...

## Public Member Functions
| base (Eo *eo)
| Eo Constructor. More...
| base (std::nullptr_t)
| nullptr_t Constructor. More...
| base (base const &other)
| Copy Constructor.
void | load () const
| Load emodel. More...
void | unload () const
| Unload emodel. More...
void | properties_load () const
| Properties emodel load. More...
void | children_load () const
| Children emodel load. More...
::efl::eo::concrete | child_add () const
| Add a new child. More...
Efl_Model_Load_Status | child_del (::efl::eo::concrete child_) const
| Remove a child. More...
Efl_Model_Load_Status | load_status_get () const
| Get a load emodel current status. More...
Efl_Model_Load_Status | properties_get (Eina_Array *const *properties_) const
| Get properties from model. More...
Efl_Model_Load_Status | property_get (::efl::eina::string_view property_, const Eina_Value **value_) const
| Retrieve the value of a given property name. More...
Efl_Model_Load_Status | property_set (::efl::eina::string_view property_, const Eina_Value *value_) const
| Set a property value of a given property name. More...
Efl_Model_Load_Status | children_slice_get (unsigned start_, unsigned count_, Eina_Accessor **children_accessor_) const
| Get children slice OR full range. More...
Efl_Model_Load_Status | children_count_get (unsigned *children_count_) const
| Get children count. More...
template<typename F >
::efl::eo::signal_connection | callback_child_added_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
| Event dispatched when new child is added.
template<typename T >
void | callback_child_added_call (T *info)
| Event dispatched when new child is added.
template<typename F >
::efl::eo::signal_connection | callback_child_removed_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
| Event dispatched when child is removed.
template<typename T >
void | callback_child_removed_call (T *info)
| Event dispatched when child is removed.
template<typename F >
::efl::eo::signal_connection | callback_children_count_changed_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
| Event dispatched when children count is finished.
template<typename T >
void | callback_children_count_changed_call (T *info)
| Event dispatched when children count is finished.
template<typename F >
::efl::eo::signal_connection | callback_load_status_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
| Event dispatch when load status changes.
template<typename T >
void | callback_load_status_call (T *info)
| Event dispatch when load status changes.
template<typename F >
::efl::eo::signal_connection | callback_properties_changed_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
| Event dispatched when properties list is available.
template<typename T >
void | callback_properties_changed_call (T *info)
| Event dispatched when properties list is available.
| base (::efl::eo::parent_type _p)
| Constructs a new efl::model::base object. More...
Public Member Functions inherited from efl::eo::concrete
| concrete (Eo *eo)
| Class constructor. More...
| concrete ()
| Default constructor. More...
| ~concrete ()
| Class destructor.
| concrete (concrete const &other)
| concrete (concrete &&other)
concrete & | operator= (concrete const &other)
| Assignment operator.
concrete & | operator= (concrete &&other)
Eo * | _eo_ptr () const
| Return a pointer to the EO Object stored in this instance. More...
Eo * | _release ()
| Releases the reference from this concrete object and return the pointer to the EO Object stored in this instance. More...
void | _reset (Eo *_ptr=nullptr)
| Reset the current pointer to reference a new Eo object.
int | ref_get () const
| Get the reference count of this object. More...
void | parent_set (concrete parent)
| Set the parent of this object. More...
eina::optional< concrete > | parent_get ()
| Get the parent of this object. More...
Eo_Dbg_Info | dbg_info_get ()
| Get debug information of this object. More...
| operator bool () const

## Static Public Member Functions
static Eo_Class const * | _eo_class ()

## Additional Inherited Members
Protected Attributes inherited from efl::eo::concrete
Eo * | _eo_raw
| The opaque EO Object.

## Detailed Description

Class base.

## Constructor & Destructor Documentation

efl::model::base::base | ( | ::efl::eo::parent_type | _p | ) |
| inlineexplicit

Constructs a new efl::model::base object.

Constructs a new efl::model::base object. If you want this object to be a child of another Eo object, use an efl::eo::parent expression, like the example.

Example:

efl::model::base my_base(efl::eo::parent = parent_object);

See also
  base(Eo* eo)

efl::model::base::base | ( | Eo * | eo | ) |
| inlineexplicit

Eo Constructor.

Constructs the object from an Eo* pointer stealing its ownership.

Parameters

  eo | The Eo object pointer.

efl::model::base::base | ( | std::nullptr_t |  | ) |
| inlineexplicit

nullptr_t Constructor.

Constructs an empty (null) object.

## Member Function Documentation

void efl::model::base::load | ( |  | ) | const

Load emodel.

By convention this means loading data from an external source and populating the models properties and children with it. For example in the case of file system backed model, this means opening the relevant files and reading the data from them(creating the properties and children from it). the model emit EFL_MODEL_EVENT_LOAD_STATUS after end with Efl_Model_Load_Status

Warning
  This convention should be followed, but no guarantees of behaviour by user defined types can be given.

Alternatively is possible to use properties_load to load only properties and children_load to load only children. If efl_model_load is called then calling properties_load and/or children_load is not necessary.

See also
  Efl_Model_Load_Status
  efl_model_properties_load
  efl_model_children_load
  efl_model_unload
  efl_model_load_status_get

Since
  1.14

void efl::model::base::unload | ( |  | ) | const

Unload emodel.

By convention this means releasing data received/read from an external source. For example of a database backed model this might mean releasing the iterator for the currently loaded data or deleting a temporary table. the model emit EFL_MODEL_EVENT_LOAD_STATUS after end with model load status

Warning
  This convention should be followed, but no guarantees of behaviour by user defined types can be given.

See also
  Efl_Model_Load_Status
  efl_model_load
  efl_model_load_status_get

Since
  1.14

void efl::model::base::properties_load | ( |  | ) | const

Properties emodel load.

By convention this means loading data from an external source and populating the models properties only. This method is a subset of efl_model_load, meaning that it won't load children, it is a hint. For loadind both properties and children use efl_model_load instead.

See also
  efl_model_load

Since
  1.14

void efl::model::base::children_load | ( |  | ) | const

Children emodel load.

By convention this means loading data from an external source and populating the models children only. This method is a subset of efl_model_load, meaning that it won't load properties. For loadind both properties and children use efl_model_load instead.

See also
  efl_model_load

Since
  1.14

::efl::eo::concrete efl::model::base::child_add | ( |  | ) | const

Add a new child.

Returns
  : `Emodel*` on success, `NULL` otherwise

Add a new child, possibly dummy, depending on the implementation, of a internal keeping. When the child is effectively added the event EFL_MODEL_EVENT_CHILD_ADD is then raised and the new child is kept along with other children.

See also
  EFL_MODEL_EVENT_CHILD_ADD
  load_status_get

Since
  1.14

Efl_Model_Load_Status efl::model::base::child_del | ( | ::efl::eo::concrete | child_ | ) | const

Remove a child.

Returns
  : `Efl_Model_Load_Status` on success, `EFL_MODEL_LOAD_STATUS_ERROR` otherwise.

Remove a child of a internal keeping. When the child is effectively removed the event EFL_MODEL_EVENT_CHILD_REMOVED is then raised to give a chance for listeners to perform any cleanup and/or update references.

See also
  EFL_MODEL_EVENT_CHILD_REMOVED

Since
  1.14

Parameters

  child | Child to be removed

Efl_Model_Load_Status efl::model::base::load_status_get | ( |  | ) | const

Get a load emodel current status.

Returns
  : `Efl_Model_Load_Status`

By convention this means get the current model status. Possible values are defined Efl_Model_Load_Status enumerator.

See also
  Efl_Model_Load_Status
  efl_model_load

Since
  1.14

Efl_Model_Load_Status efl::model::base::properties_get | ( | Eina_Array *const * | properties_ | ) | const

Get properties from model.

Returns
  : `Efl_Model_Load_Status`

properties_get is due to provide callers a way the fetch the current properties implemented/used by the model. The event EFL_MODEL_EVENT_PROPERTIES_CHANGE will be raised to notify listeners of any modifications in the properties.

See also
  EFL_MODEL_EVENT_PROPERTIES_CHANGE

Since
  1.14

Parameters

  properties | array of current properties

Efl_Model_Load_Status efl::model::base::property_get | ( | ::efl::eina::string_view | property_,
|  | const Eina_Value ** | value_
| ) |  | const

Retrieve the value of a given property name.

Returns
  : `Load` Status, on success, `EFL_MODEL_LOAD_STATUS_ERROR` otherwise

property_get will only be available when load status is equal to EFL_MODEL_LOAD_STATUS_LOADED.

At this point the caller is free to get values from properties. The event EFL_MODEL_EVENT_PROPERTIES_CHANGE may be raised to notify listeners of the property/value.

See also
  efl_model_properties_get
  EFL_MODEL_EVENT_PROPERTIES_CHANGE

Since
  1.14

Parameters

  value | New value

Efl_Model_Load_Status efl::model::base::property_set | ( | ::efl::eina::string_view | property_,
|  | const Eina_Value * | value_
| ) |  | const

Set a property value of a given property name.

Returns
  : `EINA_TRUE`, on success, `EINA_FALSE` in readonly property or error

The caller must ensure to call at least efl_model_prop_list before being able to see/set properties. This function sets a new property value into given property name. Once the operation is completed the concrete implementation should raise EFL_MODEL_EVENT_PROPERTIES_CHANGE event in order to notify listeners of the new value of the property.

If the model doesn't have the property then there are two possibilities, either raise an error or create the new property in model

See also
  efl_model_property_get
  EFL_MODEL_EVENT_PROPERTIES_CHANGE

Since
  1.14

Parameters

  value | New value

Efl_Model_Load_Status efl::model::base::children_slice_get | ( | unsigned | start_,
|  | unsigned | count_,
|  | Eina_Accessor ** | children_accessor_
| ) |  | const

Get children slice OR full range.

Returns
  : `Efl_Model_Load_Status`. See below for more info.

Before being able to get the children list the model status must be on loaded status (EFL_MODEL_LOAD_STATUS_LOADED). However there may be circunstancies where the model could be in a different state, in such cases it is advisable to simply return: its current state, which will be of course, different than `EFL_MODEL_LOAD_STATUS_LOADED_CHILDREN`. When children accessor is return:ed as NULL one should then test the current load status return:ed by in order to check against an empty list or real error.

children_slice_get behaves in two different ways, it may provide the slice if both `start` AND `count` are non-zero OR full range otherwise.

The return:ed Eina_Accessor must be freed when it is no longer needed and eo_unref() must be invoked for children if caller wants a copy.

Since 'slice' is a range, for example if we have 20 childs a slice could be the range from 3(start) to 4(count), see: child 0 [no] child 1 [no] child 2 [yes] child 3 [yes] child 4 [yes] child 5 [yes] child 6 [no] child 7 [no]

Optionally the user can call children_count_get to know the number of children so a valid range can be known in advance.

Below are examples of both usage types: slices and full ranges.

// Returns full list
eo_do(obj, efl_model_children_slice_get(0, 0, &children_accessor));
// Returns 5 items, counting from item #5
eo_do(obj, efl_model_children_slice_get(5, 5, &children_accessor));

See also
  efl_model_children_get
  efl_model_children_count_get
  efl_model_load
  efl_model_load_status_get

Since
  1.14

Parameters

  children_accessor |

Efl_Model_Load_Status efl::model::base::children_count_get | ( | unsigned * | children_count_ | ) | const

Get children count.

Returns
  : `EINA_TRUE`, on success, `EINA_FALSE` otherwise

When efl_model_load is completed efl_model_coildren_count_get can be use to get the number of children. children_count_get can also be used before calling children_slice_get so a valid range is known. Event EFL_MODEL_CHILDREN_COUNT_CHANGED is emitted when count is finished.

See also
  efl_model_children_get
  efl_model_children_slice_get
  efl_model_load
  efl_model_load_status_get

Since
  1.14

Parameters

  children_count |