efl/src/lib/ecore_con/efl_net_control_access_poin...

464 lines
17 KiB
Plaintext

enum Efl.Net.Control.Access_Point_State {
[[Provides the access point state.
@since 1.19
]]
idle, [[Nothing is happening with this access point]]
association, [[The access point is trying to associate itself. This is the first state after a connection attempt.]]
configuration, [[The access point is configuring itself, such as DHCP.]]
local, [[The access point is connected but the internet connection hasn't been validated.]]
online, [[The access point is connected and the internet connection has been validated.]]
disconnect, [[The access point is disconnecting.]]
failure, [[The connection attempt failed, @Efl.Net.Control.Access_Point.error will provide more details]]
}
enum Efl.Net.Control.Access_Point_Error {
[[The reason for the connection error.
@since 1.19
]]
none, [[All OK, no errors]]
out_of_range, [[Wireless device is out of range.]]
pin_missing, [[PIN was required and is missing.]]
dhcp_failed, [[DHCP failed to provide configuration.]]
connect_failed, [[Could not connect to access point.]]
login_failed, [[Login or authentication information was incorrect, agent_request_input event may be emitted.]]
}
enum Efl.Net.Control.Access_Point_Security {
[[Bitwise-able securities supported by an access point.
@since 1.19
]]
unknow = 0, [[Unknown]]
none = (1 << 0), [[Open access, no security]]
wep = (1 << 1), [[WEP]]
psk = (1 << 2), [[PSK (Pre Shared Key), such as WPA or RSN]]
ieee802_1x = (1 << 3), [[IEEE 802.1X]]
}
enum Efl.Net.Control.Access_Point_Ipv4_Method {
[[The method used to configure IPv4
@since 1.19
]]
off, [[IPv4 is disabled.]]
dhcp, [[IPv4 is configured using DHCP.]]
manual, [[IPv4 is manually set using address, netmask and gateway]]
unset, [[Only to be used with @Efl.Net.Control.Access_Point.configuration_ipv4]]
}
enum Efl.Net.Control.Access_Point_Ipv6_Method {
[[The method used to configure IPv6
@since 1.19
]]
off, [[IPv6 is disabled.]]
fixed, [[IPv6 is fixed by operator and cannot be changed.]]
manual, [[IPv6 is manually set using address, netmask and gateway.]]
auto_privacy_none, [[IPv6 is set using dhcp or using a tunnel6to4. No privacy extensions should be used.]]
auto_privacy_public, [[IPv6 is set using dhcp or using a tunnel6to4, privacy extensions are used and the system prefers a public IP address over temporary addresses.]]
auto_privacy_temporary, [[IPv6 is set using dhcp or using a tunnel6to4, privacy extensions are used and the system prefers a temporary IP address over public addresses.]]
tunnel6to4, [[IPv6 was configured using a 6-to-4 tunnel. This cannot be set by the user, which is set to "auto" instead]]
unset, [[Only to be used with @Efl.Net.Control.Access_Point.configuration_ipv6]]
}
enum Efl.Net.Control.Access_Point_Proxy_Method {
[[The method used to configure Proxies.
@since 1.19
]]
off, [[Direct connection to the internet, no proxy used.]]
auto, [[Proxy is autoconfigured using Proxy-Auto-Configuration (PAC) using given URL.]]
manual, [[Proxy is configured manually using servers and excludes.]]
unset, [[Only to be used with @Efl.Net.Control.Access_Point.configuration_proxy.]]
}
class @beta Efl.Net.Control.Access_Point extends Efl.Loop_Consumer {
[[An access point for network connectivity.
The @Efl.Net.Control.Manager is composed of multiple technologies, each
create access points to allow configuration and connection.
An application requiring only a network connection can just
use a @Efl.Net.Session instead.
@since 1.19
]]
events {
changed: void; [[Called when some properties were changed.]]
}
methods {
connect {
[[Connects to this access point.
This connection will happen asynchronously in the
background, with results being delivered by events in
the access point object, such as the "changed".
Successful connections will remember the device and set
it to auto-connect using the property @.auto_connect.
See @.forget, @.remembered, @.auto_connect and
@.disconnect
The future may fail with non-fatal errors such as
EINPROGRESS (the connection was already ongoing) and
EALREADY (the connection was already established).
]]
return: future<void> @owned; [[Future for asynchronous connect]]
}
disconnect {
[[Disconnects from this access point.
When disconnected previously connected access points
won't be forgotten. The configuration and other details
such as priority and passphrase will be available for
future re-connection with a call to @.connect. If you
need to disconnect and forget all access point
information, use @.forget instead.
]]
}
forget {
[[Disconnects and forgets about this access point.
Successful @.connect will always remember the access
point for future re-connections. This method overrides
this by disconnecting and forgetting the access
point and its configuration, which will set
@.remembered to $false.
]]
}
@property state {
[[The current state of the access point.
Whenever the state changes, "changed" will be emitted.
]]
get { }
values {
state: Efl.Net.Control.Access_Point_State; [[Access point state]]
}
}
@property error {
[[If the access point is in error state, this states the error.]]
get { }
values {
error: Efl.Net.Control.Access_Point_Error; [[Access point error]]
}
}
@property ssid {
[[The user-friendly access point name.
For hidden WiFi networks, this is empty.
]]
get { }
values {
name: string; [[Access point name]]
}
}
@property priority {
[[The access point priority in the current access point listing.
This property is dynamic and reflects the index of the
access point in the current access points list. As
access points may come and go, the value may change at
any time and send notifications via the "changed" event.
If set, then it will reorder priorities, moving all other
services at equal or higher priority up. To move as the
first (most priority), then use 0. To move as the last
priority, use UINT32_MAX or the last known priority + 1.
Note: Only stored access points may be reordered
among themselves. Those that are not remembered will
always come last in a random order defined by the backend.
]]
get { }
set { }
values {
priority: uint; [[Access point priority in listing]]
}
}
@property technology {
[[The technology that generated this access point]]
get { }
values {
technology: Efl.Net.Control.Technology; [[Access point technology]]
}
}
@property strength {
[[Signal strength percentage in 0-100]]
get { }
values {
strength: uint8; [[Access point signal strength]]
}
}
@property roaming {
[[If it's a cellular access point and it's on roaming.]]
get { }
values {
roaming: bool; [[$true if the access point is cellular and uses roaming, $false otherwise]]
}
}
@property auto_connect {
[[Whenever to auto-connect to this access point if no other is connected.
By default successfully connected access points are
remembered and set to auto-connect. This behavior can be
changed with this property.
An access point is only connected automatically if there
are no other connected and if it is not on roaming.
]]
get { }
set { }
values {
auto_connect: bool; [[$true when auto-connect is set for this access point, $false otherwise]]
}
}
@property remembered {
[[Successfully connected access points are remembered.
To forget about this access point, call @.forget.
]]
get { }
values {
remembered: bool; [[$true if this access point will be remembered, $false otherwise]]
}
}
@property immutable {
[[Immutable access points are those defined in configuration files and its properties can't be changed using API.]]
get { }
values {
immutable: bool; [[$true is this access point is immutable, $false otherwise]]
}
}
@property security {
[[Security options such as WEP, WPS, PSK or none (open).]]
get { }
values {
security: Efl.Net.Control.Access_Point_Security; [[Bitwise OR of security supported by this access point]]
}
}
@property name_servers {
[[DNS (Domain Name Servers) in use for this access point.
These are the actual values used. Configure them using
@.configuration_name_servers. This may generate changes
to this property, triggering the "changed"
event.
]]
get { }
values {
name_servers: iterator<string> @owned; [[Iterator to DNS server]]
}
}
@property time_servers {
[[NTP (Time Server) in use for this access point.
These are the actual values used. Configure them using
@.configuration_name_servers. This may generate changes
to this property, triggering the "changed"
event.
]]
get { }
values {
time_servers: iterator<string> @owned; [[Iterator to time server]]
}
}
@property domains {
[[Searches domains in use for this access point.
These are the actual values used. Configure them using
@.configuration_name_servers. This may generate changes
to this property, triggering the "changed"
event.
]]
get { }
values {
domains: iterator<string> @owned; [[Iterator to search domains]]
}
}
@property ipv4 {
[[IPv4 in use for this access point.
These are the actual values used. Configure them using
@.configuration_name_servers. This may generate changes
to this property, triggering the "changed"
event.
]]
get { }
values {
method: Efl.Net.Control.Access_Point_Ipv4_Method; [[IPv4 method]]
address: string; [[IPv4 address]]
netmask: string; [[IPv4 netmask]]
gateway: string; [[IPv4 gateway]]
}
}
@property ipv6 {
[[IPv6 in use for this access point.
These are the actual values used. Configure them using
@.configuration_name_servers. This may generate changes
to this property, triggering the "changed"
event.
]]
get { }
values {
method: Efl.Net.Control.Access_Point_Ipv6_Method; [[IPv6 method]]
address: string; [[IPv6 address]]
prefix_length: uint8; [[IPv6 prefix length]]
netmask: string; [[IPv6 netmask]]
gateway: string; [[IPv6 gateway]]
}
}
@property proxy {
[[Proxy in use for this access point.
These are the actual values used. Configure them using
@.configuration_name_servers. This may generate changes
to this property, triggering the "changed"
event.
]]
get { }
values {
method: Efl.Net.Control.Access_Point_Proxy_Method; [[Proxy method]]
url: string; [[If @Efl.Net.Control.Access_Point_Proxy_Method.auto, then states the URL to use for proxy auto-configuration]]
servers: iterator<string> @owned; [[If @Efl.Net.Control.Access_Point_Proxy_Method.manual, then states the URI with proxy servers to use, like "http://proxy.domain.com:911"]]
excludes: iterator<string> @owned; [[If @Efl.Net.Control.Access_Point_Proxy_Method.manual, then states the hosts or patterns to exclude from proxy access, such as "localhost", ".domain.com", or "10.0.0.0..."]]
}
}
@property configuration_name_servers {
[[DNS (Domain Name Servers) configured by user for this access point.
These are user configured values, which will be
applied by the backend system and in turn may result in
"changed" event to notify of @.name_servers property
with the actual value in use, which may differ from
this.
]]
set { }
get { }
values {
name_servers: iterator<string> @owned; [[Iterator to user DNS server]]
}
}
@property configuration_time_servers {
[[NTP (Time Server) configured by user for this access point.
These are user configured values, which will be
applied by the backend system and in turn may result in
"changed" event to notify of @.name_servers property
with the actual value in use, which may differ from
this.
]]
set { }
get { }
values {
time_servers: iterator<string> @owned; [[Iterator to user time server]]
}
}
@property configuration_domains {
[[Searches domains configured by user for this access point.
These are user configured values, which will be
applied by the backend system and in turn may result in
"changed" event to notify of @.domains property
with the actual value in use, which may differ from
this.
]]
set { }
get { }
values {
domains: iterator<string> @owned; [[Iterator to user search domains]]
}
}
@property configuration_ipv4 {
[[IPv4 configured by user for this access point.
These are user configured values, which will be
applied by the backend system and in turn may result in
"changed" event to notify of @.ipv4 property
with the actual value in use, which may differ from
this.
]]
set { }
get { }
values {
method: Efl.Net.Control.Access_Point_Ipv4_Method; [[IPv4 method]]
address: string; [[IPv4 address]]
netmask: string; [[IPv4 netmask]]
gateway: string; [[IPv4 gateway]]
}
}
@property configuration_ipv6 {
[[IPv6 configured by user for this access point.
These are user configured values, which will be
applied by the backend system and in turn may result in
"changed" event to notify of @.ipv6 property
with the actual value in use, which may differ from
this.
]]
set { }
get { }
values {
method: Efl.Net.Control.Access_Point_Ipv6_Method; [[IPv6 method]]
address: string; [[IPv6 address]]
prefix_length: uint8; [[IPv6 prefix length]]
netmask: string; [[IPv6 netmask]]
gateway: string; [[IPv6 gateway]]
}
}
@property configuration_proxy {
[[Proxy configured by user for this access point.
These are user configured values, which will be
applied by the backend system and in turn may result in
"changed" event to notify of @.proxy property
with the actual value in use, which may differ from
this.
]]
set { }
get { }
values {
method: Efl.Net.Control.Access_Point_Proxy_Method; [[Proxy method]]
url: string; [[If @Efl.Net.Control.Access_Point_Proxy_Method.auto, then states the URL to use for proxy auto-configuration]]
servers: iterator<string> @owned; [[If @Efl.Net.Control.Access_Point_Proxy_Method.manual, then states the URI with proxy servers to use, like "http://proxy.domain.com:911"]]
excludes: iterator<string> @owned; [[If @Efl.Net.Control.Access_Point_Proxy_Method.manual, then states the hosts or patterns to exclude from proxy access, such as "localhost", ".domain.com", or "10.0.0.0..."]]
}
}
}
implements {
Efl.Object.destructor;
}
}