efl.ecore.Poller Class

class efl.ecore.Poller(int interval, func, pol_type=0, *args, **kargs)

Bases: efl.eo.Eo

Ecore poller provides infrastructure for the creation of pollers. Pollers are, in essence, callbacks that share a single timer per type. Because not all pollers need to be called at the same frequency the user may specify the frequency in ticks(each expiration of the shared timer is called a tick, in ecore poller parlance) for each added poller. Ecore pollers should only be used when the poller doesn’t have specific requirements on the exact times to poll.

This architecture means that the main loop is only woken up once to handle all pollers of that type, this will save power as the CPU has more of a chance to go into a low power state the longer it is asleep for, so this should be used in situations where power usage is a concern.

For now only 1 core poller type is supported: ECORE_POLLER_CORE, the default interval for ECORE_POLLER_CORE is 0.125(or 1/8th) second.

The interval must be between 1 and 32768 inclusive, and must be a power of 2 (i.e. 1, 2, 4, 8, 16, … 16384, 32768). The exact tick in which func will be called is undefined, as only the interval between calls can be defined. Ecore will endeavor to keep pollers synchronized and to call as many in 1 wakeup event as possible. If interval is not a power of two, the closest power of 2 greater than interval will be used.

When the poller func is called, it must return a value of either ECORE_CALLBACK_RENEW(or True) or ECORE_CALLBACK_CANCEL(or False). If it returns 1, it will be called again at the next tick, or if it returns 0 it will be deleted automatically making any references/handles for it invalid.

Example:

def poller_cb():
    print("Poller")
    return True

ecore.Poller(4, poller_cb)

New in version 1.8.

Parameters
  • interval (int) – The poll interval

  • func (callable) – The function to call at every interval

  • pol_type (Ecore_Poll_Type) – The ticker type to attach the poller to. Must be ECORE_POLLER_CORE

  • *args – All the remaining arguments will be passed back in the callback function.

  • **kwargs – All the remaining keyword arguments will be passed back in the callback function.

Expected func signature:

func(*args, **kargs): bool
delete()

Stop callback emission and free internal resources.

interval

The interval (in ticks) between each call of the poller

Type

int

interval_get()
interval_set(t)
is_deleted()

Check if the object has been deleted thus leaving the object shallow.

Returns

True if the object has been deleted yet, False otherwise.

Return type

bool