~~Title: Efl.Net.Session~~ ====== Efl.Net.Session (class) ====== ===== Description ===== %%Used by application to request network connectivity.%% %%This API is targeted at applications that need access to the network, specifying the allowed bearer technologies to connect to the internet, as well as whether local networking is enough or validated internet access is required.%% %%Some platforms may not implement the backend for this class. In this cases the system will report always %%[[:develop:api:efl:net:session:property:state|Efl.Net.Session.state]]%% "online" (%%[[:develop:api:efl:net:session_state|Efl.Net.Session_State.online]]%%) and other properties will be %%''NULL''%%, such as %%[[:develop:api:efl:net:session:property:network_name|Efl.Net.Session.network_name]]%%, %%[[:develop:api:efl:net:session:property:interface|Efl.Net.Session.interface]]%%, %%[[:develop:api:efl:net:session:property:ipv4|Efl.Net.Session.ipv4]]%% and %%[[:develop:api:efl:net:session:property:ipv6|Efl.Net.Session.ipv6]]%%; as well as %%[[:develop:api:efl:net:session:property:technology|Efl.Net.Session.technology]]%% is set to %%[[:develop:api:efl:net:session_technology|Efl.Net.Session_Technology.unknown]]%%. As such if you need to detect for an actual backend, check if the state is online but those properties are %%''NULL''%% or technology is unknown.%% %%the %%[[:develop:api:efl:net:session:method:connect|Efl.Net.Session.connect]]%% method is subject to backend policy. For instance, ConnMan uses https://github.com/aldebaran/connman/blob/master/doc/session-policy-format.txt%% {{page>:develop:api-include:efl:net:session:description&nouser&nolink&nodate}} ===== Inheritance ===== => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)// ++++ Full hierarchy | * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// * [[:develop:api:efl:object|Efl.Object]] //(class)// ++++ ===== Members ===== **[[:develop:api:efl:net:session:method:connect|connect]]**\\ > %%Asks the session to be connected.%% void efl_net_session_connect(Eo *obj, Eina_Bool online_required, Efl_Net_Session_Technology technologies_allowed); \\ **[[:develop:api:efl:net:session:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\ > %%Implement this method to provide optional initialization code for your object.%% Efl_Object *efl_constructor(Eo *obj); \\ **[[:develop:api:efl:net:session:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\ > %%Implement this method to provide deinitialization code for your object if you need it.%% void efl_destructor(Eo *obj); \\ **[[:develop:api:efl:net:session:method:disconnect|disconnect]]**\\ > %%Indicates this session doesn't need a connection anymore.%% void efl_net_session_disconnect(Eo *obj); \\ **[[:develop:api:efl:net:session:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|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); \\ **[[:develop:api:efl:net:session:property:interface|interface]]** //**(get)**//\\ > const char *efl_net_session_interface_get(const Eo *obj); \\ **[[:develop:api:efl:net:session:property:ipv4|ipv4]]** //**(get)**//\\ > void efl_net_session_ipv4_get(const Eo *obj, const char **address, const char **netmask, const char **gateway); \\ **[[:develop:api:efl:net:session:property:ipv6|ipv6]]** //**(get)**//\\ > void efl_net_session_ipv6_get(const Eo *obj, const char **address, uint8_t *prefix_length, const char **netmask, const char **gateway); \\ **[[:develop:api:efl:net:session:property:network_name|network_name]]** //**(get)**//\\ > const char *efl_net_session_network_name_get(const Eo *obj); \\ **[[:develop:api:efl:net:session:property:state|state]]** //**(get)**//\\ > Efl_Net_Session_State efl_net_session_state_get(const Eo *obj); \\ **[[:develop:api:efl:net:session:property:technology|technology]]** //**(get)**//\\ > Efl_Net_Session_Technology efl_net_session_technology_get(const Eo *obj); \\ ==== Inherited ==== ^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^ | | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% | | | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% | | | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | | | | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% | | | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% | ^ [[:develop:api:efl:object|Efl.Object]] ^^^ | | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% | | | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% | | | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% | | | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% | | | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% | | | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% | | | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% | | | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% | | | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|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.%% | | | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% | | | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% | | | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | | | ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% | | ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | | | ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% | | | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% | | | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | | | | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% | | | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | | | | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | | | | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% | | | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% | | | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% | | | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% | | | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% | ===== Events ===== **[[:develop:api:efl:net:session:event:changed|changed]]**\\ > %%Called when some properties were changed.%% EFL_NET_SESSION_EVENT_CHANGED(void) \\ ==== Inherited ==== ^ [[:develop:api:efl:object|Efl.Object]] ^^^ | | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% | | | **[[:develop:api:efl:object:event:destruct|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.%% | | | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% | | | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% | | | **[[:develop:api:efl:object:event:ownership_shared|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.%% | | | **[[:develop:api:efl:object:event:ownership_unique|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.%% |