From: Seonah Moon Date: Mon, 30 Aug 2021 01:54:44 +0000 (+0900) Subject: Add API headers for TV rootstrap X-Git-Tag: accepted/tizen/unified/20210831.143852^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F27%2F263227%2F1;p=platform%2Fcore%2Fapi%2Fconnection.git Add API headers for TV rootstrap Change-Id: I93c2abe2be1935ae04a81846f5ccac648246025c --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 331953c..05cbe34 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,13 @@ INSTALL( PATTERN "${INC_DIR}/*.h" ) +# For TV rootstrap +INSTALL( + DIRECTORY ${INC_DIR}/tv/ DESTINATION include/tv/network + FILES_MATCHING + PATTERN "${INC_DIR}/tv/*.h" + ) + SET(PC_NAME ${fw_name}) SET(PC_REQUIRED ${pc_dependents}) SET(PC_LDFLAGS -l${fw_name}) diff --git a/include/tv/connection_profile.h b/include/tv/connection_profile.h new file mode 100755 index 0000000..5f71429 --- /dev/null +++ b/include/tv/connection_profile.h @@ -0,0 +1,1332 @@ +/* + * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __TIZEN_NETWORK_CONNECTION_PROFILE_H__ +#define __TIZEN_NETWORK_CONNECTION_PROFILE_H__ + + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * @file connection_profile.h + */ + + +/** +* @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE +* @{ +*/ + + +/** + * @brief Enumeration for security type of Wi-Fi. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + CONNECTION_WIFI_SECURITY_TYPE_NONE = 0, /**< Security disabled */ + CONNECTION_WIFI_SECURITY_TYPE_WEP = 1, /**< WEP */ + CONNECTION_WIFI_SECURITY_TYPE_WPA_PSK = 2, /**< WPA-PSK */ + CONNECTION_WIFI_SECURITY_TYPE_WPA2_PSK = 3, /**< WPA2-PSK */ + CONNECTION_WIFI_SECURITY_TYPE_EAP = 4, /**< EAP */ + CONNECTION_WIFI_SECURITY_TYPE_SAE = 5, /**< WPA3 */ +} connection_wifi_security_type_e; + + +/** + * @brief Enumeration for encryption modes. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + CONNECTION_WIFI_ENCRYPTION_TYPE_NONE = 0, /**< Encryption disabled */ + CONNECTION_WIFI_ENCRYPTION_TYPE_WEP = 1, /**< WEP */ + CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP = 2, /**< TKIP */ + CONNECTION_WIFI_ENCRYPTION_TYPE_AES = 3, /**< AES */ + CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED = 4, /**< TKIP and AES are both supported */ +} connection_wifi_encryption_type_e; + + +/** +* @} +*/ + + +/** +* @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE +* @{ +*/ + + +/** + * @brief Enumeration for cellular service type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN = 0, /**< Unknown */ + CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET = 1, /**< Internet */ + CONNECTION_CELLULAR_SERVICE_TYPE_MMS = 2, /**< MMS */ + CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET = 3, /**< Prepaid Internet */ + CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS = 4, /**< Prepaid MMS */ + CONNECTION_CELLULAR_SERVICE_TYPE_TETHERING = 5, /**< Tethering */ + CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION = 6, /**< Specific application */ +} connection_cellular_service_type_e; + + +/** + * @brief Enumeration for cellular pdn type. + * @since_tizen 3.0 + * @remarks Use #CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPV6 instead of + * CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPv6. + */ +typedef enum { + CONNECTION_CELLULAR_PDN_TYPE_UNKNOWN = 0, /**< Unknown */ + CONNECTION_CELLULAR_PDN_TYPE_IPV4 = 1, /**< IPv4 */ + CONNECTION_CELLULAR_PDN_TYPE_IPV6 = 2, /**< IPv6 */ + CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPv6 = 3, /**< IPv4 and IPv6 (Deprecated since 4.0) */ + CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPV6 = 4, /**< IPv4 and IPv6 (Since 4.0) */ +} connection_cellular_pdn_type_e; + + +/** + * @brief Enumeration for cellular authentication type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + CONNECTION_CELLULAR_AUTH_TYPE_NONE = 0, /**< No authentication */ + CONNECTION_CELLULAR_AUTH_TYPE_PAP = 1, /**< PAP authentication */ + CONNECTION_CELLULAR_AUTH_TYPE_CHAP = 2, /**< CHAP authentication */ +} connection_cellular_auth_type_e; + + +/** +* @} +*/ + + +/** +* @addtogroup CAPI_NETWORK_CONNECTION_PROFILE_MODULE +* @{ +*/ + + +/** + * @brief The profile handle. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef void* connection_profile_h; + + +/** + * @brief Enumeration for profile state type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + CONNECTION_PROFILE_STATE_DISCONNECTED = 0, /**< Disconnected state */ + CONNECTION_PROFILE_STATE_ASSOCIATION = 1, /**< Association state */ + CONNECTION_PROFILE_STATE_CONFIGURATION = 2, /**< Configuration state */ + CONNECTION_PROFILE_STATE_CONNECTED = 3, /**< Connected state */ +} connection_profile_state_e; + + +/** + * @brief Enumeration for address family. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + CONNECTION_ADDRESS_FAMILY_IPV4 = 0, /**< IPV4 Address type */ + CONNECTION_ADDRESS_FAMILY_IPV6 = 1, /**< IPV6 Address type */ +} connection_address_family_e; + + +/** + * @brief Enumeration for IP configuration type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + /** + * Not defined + */ + CONNECTION_IP_CONFIG_TYPE_NONE = 0, + + /** + * Manual IP configuration + */ + CONNECTION_IP_CONFIG_TYPE_STATIC = 1, + + /** + * Config IP using DHCP client (IPv4 Only) + */ + CONNECTION_IP_CONFIG_TYPE_DYNAMIC = 2, + + /** + * Config IP from Auto IP pool (169.254/16). Later with DHCP client, if available + */ + CONNECTION_IP_CONFIG_TYPE_AUTO = 3, + + /** + * Indicates an IP address that can not be modified (IPv4 Only) + */ + CONNECTION_IP_CONFIG_TYPE_FIXED = 4, + +} connection_ip_config_type_e; + + +/** + * @brief Enumeration for proxy method type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + /** + * Direct connection + */ + CONNECTION_PROXY_TYPE_DIRECT = 0, + + /** + * Auto configuration (use PAC file). If URL property is not set, + * DHCP/WPAD auto-discover will be tried + */ + CONNECTION_PROXY_TYPE_AUTO = 1, + + /** + * Manual configuration + */ + CONNECTION_PROXY_TYPE_MANUAL = 2, + +} connection_proxy_type_e; + +/** + * @brief Enumeration for DNS configuration type. + * @since_tizen 4.0 + */ +typedef enum { + CONNECTION_DNS_CONFIG_TYPE_NONE = 0, /**< Not defined */ + CONNECTION_DNS_CONFIG_TYPE_STATIC = 1, /**< Manual DNS configuration */ + CONNECTION_DNS_CONFIG_TYPE_DYNAMIC = 2, /**< Config DNS using DHCP client */ +} connection_dns_config_type_e; + +/** + * @brief Enumeration for network connection type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + CONNECTION_PROFILE_TYPE_CELLULAR = 0, /**< Cellular type */ + CONNECTION_PROFILE_TYPE_WIFI = 1, /**< Wi-Fi type */ + CONNECTION_PROFILE_TYPE_ETHERNET = 2, /**< Ethernet type */ + CONNECTION_PROFILE_TYPE_BT = 3, /**< Bluetooth type */ +} connection_profile_type_e; + +/** + * @brief Creates a profile handle. + * @details The profile name, which you get from connection_profile_get_name() + * will include the keyword you set. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @remarks You must release @a profile using connection_profile_destroy(). + * @param[in] type The type of profile \n + * #CONNECTION_PROFILE_TYPE_CELLULAR and #CONNECTION_PROFILE_TYPE_WIFI are supported + * @param[in] keyword The keyword included in profile name + * @param[out] profile The handle of the profile + * @return @c 0 on success, + * otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_profile_destroy() + * @see connection_profile_get_name() +*/ +int connection_profile_create(connection_profile_type_e type, + const char *keyword, connection_profile_h *profile); + + +/** + * @brief Destroys a profile handle. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[out] profile The handle to the profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @see connection_profile_create() +*/ +int connection_profile_destroy(connection_profile_h profile); + + +/** + * @brief Clones a profile handle. + * @since_tizen 2.3 + * @remarks You must release @a cloned_profile using connection_profile_destroy(). + * @param[out] cloned_profile The handle of the cloned profile + * @param[in] origin_profile The handle of the origin profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @see connection_profile_destroy() +*/ +int connection_profile_clone(connection_profile_h *cloned_profile, + connection_profile_h origin_profile); + + +/** + * @brief Gets the profile ID. + * @details The separate profiles can have the same name. + * So, you must use this function instead of connection_profile_get_name() + * if you want to get the unique identification. + * In case you create a profile, this value will be determined when you add the profile. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a profile_id using free(). + * @param[in] profile The profile handle + * @param[out] profile_id The ID of the profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @see connection_profile_get_name() + * @see connection_add_profile() +*/ +int connection_profile_get_id(connection_profile_h profile, char **profile_id); + + +/** + * @brief Gets the profile name. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a profile_name using free(). + * @param[in] profile The profile handle + * @param[out] profile_name The name of the profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @see connection_profile_get_id() +*/ +int connection_profile_get_name(connection_profile_h profile, char **profile_name); + + +/** + * @brief Gets the network type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] type The type of the profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_type(connection_profile_h profile, connection_profile_type_e *type); + + +/** + * @brief Gets the name of the network interface, e.g. eth0 and pdp0. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a interface_name using free(). + * @param[in] profile The profile handle + * @param[out] interface_name The name of the network interface + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory +*/ +int connection_profile_get_network_interface_name(connection_profile_h profile, + char **interface_name); + + +/** + * @brief Refreshes the profile information. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @remarks You should call this function in order to get the current information + * because the profile information can be changed. + * @param[in] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied +*/ +int connection_profile_refresh(connection_profile_h profile); + + +/** + * @brief Gets the network state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] state The state of the profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_state(connection_profile_h profile, + connection_profile_state_e *state); + +/** + * @brief Gets the IP config type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] type The type of the IP config + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_ip_config_type(connection_profile_h profile, + connection_address_family_e address_family, connection_ip_config_type_e *type); + + +/** + * @brief Gets the IP address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a ip_address using free(). + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] ip_address The IP address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_ip_address(connection_profile_h profile, + connection_address_family_e address_family, char **ip_address); + + +/** + * @brief Gets the Subnet Mask. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a subnet_mask using free(). + * This function is supported only for IPv4 address family. + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] subnet_mask The subnet mask + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_subnet_mask(connection_profile_h profile, + connection_address_family_e address_family, char **subnet_mask); + + +/** + * @brief Gets the Gateway address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a gateway_address using free(). + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] gateway_address The gateway address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_gateway_address(connection_profile_h profile, + connection_address_family_e address_family, char **gateway_address); + +/** + * @brief Gets the DHCP Server address. + * @since_tizen 4.0 + * @remarks You must release @a dhcp_server using free(). + * This function is supported only for IPv4 address family. + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] dhcp_server The DHCP Server address + * @return @c 0 on success, otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_dhcp_server_address(connection_profile_h profile, + connection_address_family_e address_family, char **dhcp_server); + +/** + * @brief Gets the DHCP lease duration. + * @since_tizen 4.0 + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] dhcp_lease_duration The DHCP lease duration in seconds + * @return @c 0 on success, otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_dhcp_lease_duration(connection_profile_h profile, + connection_address_family_e address_family, int *dhcp_lease_duration); + +/** + * @brief Gets the DNS address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks The allowance of the DNS address is @c 2. You must release @a dns_address using free(). + * @param[in] profile The profile handle + * @param[in] order The order of DNS address \n + * It starts from 1, which means first DNS address + * @param[in] address_family The address family + * @param[out] dns_address The DNS address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_dns_address(connection_profile_h profile, + int order, connection_address_family_e address_family, char **dns_address); + + +/** + * @brief Gets the Proxy type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] type The type of the proxy + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_proxy_type(connection_profile_h profile, + connection_proxy_type_e *type); + + +/** + * @brief Gets the Proxy address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a proxy_address using free(). + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] proxy_address The proxy address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_get_proxy_address(connection_profile_h profile, + connection_address_family_e address_family, char **proxy_address); + + +/** + * @brief Sets the IP config type. + * @details If you set IP config type to #CONNECTION_IP_CONFIG_TYPE_STATIC, + * then IP address, Gateway and Subnet mask will be set to the initial value "0.0.0.0". + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[in] type The type of the IP config + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed +*/ +int connection_profile_set_ip_config_type(connection_profile_h profile, + connection_address_family_e address_family, connection_ip_config_type_e type); + + +/** + * @brief Sets the IP address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a ip_address using free(). + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[in] ip_address The IP address \n + * If you set this value to @c NULL, then the existing value will be deleted + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @see connection_update_profile() +*/ +int connection_profile_set_ip_address(connection_profile_h profile, + connection_address_family_e address_family, const char *ip_address); + + +/** + * @brief Sets the Subnet Mask. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a subnet_mask using free(). + * This function is supported only for IPv4 address family. + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[in] subnet_mask The subnet mask \n + * If you set this value to @c NULL, then the existing value will be deleted + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @see connection_update_profile() +*/ +int connection_profile_set_subnet_mask(connection_profile_h profile, + connection_address_family_e address_family, const char *subnet_mask); + + +/** + * @brief Sets the Gateway address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a gateway_address using free(). + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[in] gateway_address The gateway address \n + * If you set this value to @c NULL, then the existing value will be deleted + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @see connection_update_profile() +*/ +int connection_profile_set_gateway_address(connection_profile_h profile, + connection_address_family_e address_family, const char *gateway_address); + + +/** + * @brief Sets the DNS address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks The allowance of the DNS address is @c 2. + * @remarks You must release @a dns_address using free(). + * @param[in] profile The profile handle + * @param[in] order The order of the DNS address \n + * It starts from @c 1, which means first DNS address + * @param[in] address_family The address family + * @param[in] dns_address The DNS address \n + * If you set this value to NULL then the existing value will be deleted + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @see connection_update_profile() +*/ +int connection_profile_set_dns_address(connection_profile_h profile, + int order, connection_address_family_e address_family, const char *dns_address); + + +/** + * @brief Sets the Proxy type. + * @details If you set the Proxy type to #CONNECTION_PROXY_TYPE_AUTO or + * #CONNECTION_PROXY_TYPE_MANUAL, then Proxy will be restored. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[in] type The type of the proxy + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @see connection_update_profile() +*/ +int connection_profile_set_proxy_type(connection_profile_h profile, + connection_proxy_type_e type); + + +/** + * @brief Sets the Proxy address. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a proxy_address using free(). + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[in] proxy_address The proxy address \n + * If you set this value to @c NULL, then the existing value will be deleted + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @see connection_update_profile() +*/ +int connection_profile_set_proxy_address(connection_profile_h profile, + connection_address_family_e address_family, const char *proxy_address); + + +/** + * @brief Called when the state of the profile is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] state The state + * @param[in] user_data The user data passed from the callback registration function + * @see connection_profile_set_state_changed_cb() + * @see connection_profile_unset_state_changed_cb() +*/ +typedef void(*connection_profile_state_changed_cb)(connection_profile_state_e state, + void *user_data); + + +/** + * @brief Sets the callback that is called when the state of profile is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @post connection_opened_cb() is invoked when the state of profile is changed. + * @see connection_profile_state_changed_cb() + * @see connection_profile_unset_state_changed_cb() +*/ +int connection_profile_set_state_changed_cb(connection_profile_h profile, + connection_profile_state_changed_cb callback, void *user_data); + + +/** + * @brief Unsets the callback that is called when the state of profile is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @see connection_profile_state_changed_cb() + * @see connection_profile_set_state_changed_cb() +*/ +int connection_profile_unset_state_changed_cb(connection_profile_h profile); + +/** + * @brief Gets the IPv6 network state. + * @since_tizen 4.0 + * @param[in] profile The profile handle + * @param[out] state The profile state + * @return 0 on success, otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_profile_get_ipv6_state(connection_profile_h profile, + connection_profile_state_e *state); + +/** + * @brief Sets the DNS config type. + * @since_tizen 4.0 + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[in] type The DNS config type + * @return 0 on success, otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_profile_set_dns_config_type(connection_profile_h profile, + connection_address_family_e address_family, connection_dns_config_type_e type); + +/** + * @brief Gets the DNS config type. + * @since_tizen 4.0 + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] type The DNS config type + * @return 0 on success, otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_profile_get_dns_config_type(connection_profile_h profile, + connection_address_family_e address_family, connection_dns_config_type_e *type); + +/** + * @brief Gets the network prefix length. + * @since_tizen 4.0 + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[out] prefix_len The network prefix length \n + * In case of IPv4, it means netmask length + * (also called a prefix, e.g. 8, 16, 24, 32) + * @return 0 on success, otherwise negative error value. + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_profile_get_prefix_length(connection_profile_h profile, + connection_address_family_e address_family, int *prefix_len); + +/** + * @brief Sets the network prefix length. + * @since_tizen 4.0 + * @param[in] profile The profile handle + * @param[in] address_family The address family + * @param[in] prefix_len The network prefix length + * In case of IPv4, it means netmask length + * (also called a prefix, e.g. 8, 16, 24, 32) + * @return 0 on success, otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_update_profile() + */ +int connection_profile_set_prefix_length(connection_profile_h profile, + connection_address_family_e address_family, int prefix_len); + +/** +* @} +*/ + + +/** +* @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE +* @{ +*/ + + +/** + * @brief Gets the ESSID (Extended Service Set Identifier). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a essid using free(). + * @param[in] profile The profile handle + * @param[out] essid The ESSID + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_wifi_essid(connection_profile_h profile, char **essid); + + +/** + * @brief Gets the BSSID (Basic Service Set Identifier). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a bssid using free(). + * @param[in] profile The profile handle + * @param[out] bssid The BSSID + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_wifi_bssid(connection_profile_h profile, char **bssid); + + +/** + * @brief Gets the RSSI. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] rssi The RSSI + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_wifi_rssi(connection_profile_h profile, int *rssi); + + +/** + * @brief Gets the frequency (MHz). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] frequency The frequency + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_wifi_frequency(connection_profile_h profile, int *frequency); + + +/** + * @brief Gets the max speed (Mbps). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] max_speed The max speed + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_wifi_max_speed(connection_profile_h profile, int *max_speed); + + +/** + * @brief Gets the security type of Wi-Fi. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] type The type of Wi-Fi security + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_wifi_security_type(connection_profile_h profile, + connection_wifi_security_type_e *type); + + +/** + * @brief Gets the encryption type of Wi-Fi. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] type The type of Wi-Fi security + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_wifi_encryption_type(connection_profile_h profile, + connection_wifi_encryption_type_e *type); + + +/** + * @brief Checks whether passphrase is required. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks This function is not valid if security type is #CONNECTION_WIFI_SECURITY_TYPE_EAP. + * @param[in] profile The profile handle + * @param[out] required @c true if a passphrase is required, + * otherwise @c false if a passphrase is not required + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_is_wifi_passphrase_required(connection_profile_h profile, + bool *required); + + +/** + * @brief Sets the passphrase of the Wi-Fi WPA. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a passphrase using free(). + * @param[in] profile The profile handle + * @param[in] passphrase The passphrase of Wi-Fi security + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_update_profile() +*/ +int connection_profile_set_wifi_passphrase(connection_profile_h profile, + const char *passphrase); + + +/** + * @brief Checks whether the WPS (Wi-Fi Protected Setup) is supported. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks If WPS is supported, you can connect the access point with WPS by wifi_connect_with_wps(). + * @param[in] profile The profile handle + * @param[out] supported @c true if WPS is supported, + * otherwise @c false if WPS is not supported + * @return @c 0 on success, + * otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_is_wifi_wps_supported(connection_profile_h profile, + bool *supported); + + +/** +* @} +*/ + + +/** +* @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE +* @{ +*/ + + +/** + * @brief Gets the service type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] type The type of the cellular service + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_cellular_service_type(connection_profile_h profile, + connection_cellular_service_type_e *type); + + +/** + * @brief Gets the APN (access point name). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a apn using free(). + * @param[in] profile The profile handle + * @param[out] apn The name of the APN + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_cellular_apn(connection_profile_h profile, char **apn); + + +/** + * @brief Gets the authentication information. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a user_name and @a password using free(). + * @param[in] profile The profile handle + * @param[out] type The type of the authentication + * @param[out] user_name The user name + * @param[out] password The password + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_cellular_auth_info(connection_profile_h profile, + connection_cellular_auth_type_e *type, char **user_name, char **password); + + +/** + * @brief Gets the home URL. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a home_url using free(). + * @param[in] profile The profile handle + * @param[out] home_url The home URL + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_cellular_home_url(connection_profile_h profile, + char **home_url); + + +/** + * @brief Gets the cellular pdn type. + * @since_tizen 3.0 + * @param[in] profile The profile handle + * @param[out] type The cellular pdn type + * @return @c 0 on success, + * otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_cellular_pdn_type(connection_profile_h profile, + connection_cellular_pdn_type_e *type); + + +/** + * @brief Gets the cellular roam pdn type. + * @since_tizen 3.0 + * @param[in] profile The profile handle + * @param[out] type The cellular pdn type + * @return @c 0 on success, + * otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_get_cellular_roam_pdn_type(connection_profile_h profile, + connection_cellular_pdn_type_e *type); + + +/** + * @brief Checks whether the connection is in roaming state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] is_roaming @c true if the cellular is roaming, + * otherwise @c false if it is not roaming + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_is_cellular_roaming(connection_profile_h profile, + bool *is_roaming); + + +/** + * @brief Checks whether the profile is hidden. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] is_hidden @c true if the profile is in hidden, + * otherwise @c false if the profile is not hidden + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_is_cellular_hidden(connection_profile_h profile, + bool *is_hidden); + + +/** + * @brief Checks whether the profile is editable. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] is_editable @c true if the profile is editable, + * otherwise @c false if the profile is not editable + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_is_cellular_editable(connection_profile_h profile, + bool *is_editable); + + +/** + * @brief Checks whether the profile is default. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[out] is_default @c true if the profile is default, + * otherwise @c false if the profile is not default + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_is_cellular_default(connection_profile_h profile, + bool *is_default); + + +/** + * @brief Sets the service type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile The profile handle + * @param[in] service_type The type of cellular service + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_update_profile() +*/ +int connection_profile_set_cellular_service_type(connection_profile_h profile, + connection_cellular_service_type_e service_type); + + +/** + * @brief Sets the APN (Access Point Name). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a apn using free(). + * @param[in] profile The profile handle + * @param[in] apn The name of APN + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_update_profile() +*/ +int connection_profile_set_cellular_apn(connection_profile_h profile, const char *apn); + + +/** + * @brief Sets the Authentication information. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a user_name using free(). + * @param[in] profile The profile handle + * @param[in] type The type of the authentication + * @param[in] user_name The user name + * @param[in] password The password + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_update_profile() +*/ +int connection_profile_set_cellular_auth_info(connection_profile_h profile, + connection_cellular_auth_type_e type, const char *user_name, const char *password); + + +/** + * @brief Sets the home URL. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a home_url using free(). + * @param[in] profile The profile handle + * @param[in] home_url The home URL + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_update_profile() +*/ +int connection_profile_set_cellular_home_url(connection_profile_h profile, + const char *home_url); + + +/** + * @brief Sets the cellular pdn type. + * @since_tizen 3.0 + * @param[in] profile The profile handle + * @param[in] type The cellular pdn type + * @return @c 0 on success, + * otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_set_cellular_pdn_type(connection_profile_h profile, + connection_cellular_pdn_type_e type); + + +/** + * @brief Sets the cellular roam pdn type. + * @since_tizen 3.0 + * @param[in] profile The profile handle + * @param[in] type The cellular pdn type + * @return @c 0 on success, + * otherwise negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported +*/ +int connection_profile_set_cellular_roam_pdn_type(connection_profile_h profile, + connection_cellular_pdn_type_e type); + + +/** +* @} +*/ + + +#ifdef __cplusplus +} + + +#endif + + +#endif /* __TIZEN_NETWORK_CONNECTION_PROFILE_H__ */ diff --git a/include/tv/net_connection.h b/include/tv/net_connection.h new file mode 100755 index 0000000..90ab481 --- /dev/null +++ b/include/tv/net_connection.h @@ -0,0 +1,1365 @@ +/* + * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __TIZEN_NETWORK_NET_CONNECTION_H__ +#define __TIZEN_NETWORK_NET_CONNECTION_H__ + + +#include + + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +/** + * @file net_connection.h + */ + + +/** + * @addtogroup CAPI_NETWORK_CONNECTION_MANAGER_MODULE + * @{ + */ + + +/** + * @brief The connection handle. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef void* connection_h; + + +/** + * @brief The profiles iterator handle. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef void* connection_profile_iterator_h; + + +/** + * @brief Enumeration for connection type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + */ +typedef enum { + CONNECTION_TYPE_DISCONNECTED = 0, /**< Disconnected */ + CONNECTION_TYPE_WIFI = 1, /**< Wi-Fi type */ + CONNECTION_TYPE_CELLULAR = 2, /**< Cellular type */ + CONNECTION_TYPE_ETHERNET = 3, /**< Ethernet type */ + CONNECTION_TYPE_BT = 4, /**< Bluetooth type */ + CONNECTION_TYPE_NET_PROXY, /**< Proxy type for Internet connection (Since 3.0) */ +} connection_type_e; + + +/** + * @brief Enumeration for cellular network state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + */ +typedef enum { + CONNECTION_CELLULAR_STATE_OUT_OF_SERVICE = 0, /**< Out of service */ + CONNECTION_CELLULAR_STATE_FLIGHT_MODE = 1, /**< Flight mode */ + CONNECTION_CELLULAR_STATE_ROAMING_OFF = 2, /**< Roaming is turned off */ + CONNECTION_CELLULAR_STATE_CALL_ONLY_AVAILABLE = 3, /**< Call is only available */ + CONNECTION_CELLULAR_STATE_AVAILABLE = 4, /**< Available but not connected yet */ + CONNECTION_CELLULAR_STATE_CONNECTED = 5, /**< Connected */ +} connection_cellular_state_e; + + +/** + * @brief Enumeration for Wi-Fi state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + */ +typedef enum { + CONNECTION_WIFI_STATE_DEACTIVATED = 0, /**< Wi-Fi is deactivated */ + CONNECTION_WIFI_STATE_DISCONNECTED = 1, /**< Disconnected */ + CONNECTION_WIFI_STATE_CONNECTED = 2, /**< Connected */ +} connection_wifi_state_e; + + +/** + * @brief Enumeration for ethernet state. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + */ +typedef enum { + CONNECTION_ETHERNET_STATE_DEACTIVATED = 0, /**< There is no Ethernet profile to open */ + CONNECTION_ETHERNET_STATE_DISCONNECTED = 1, /**< Disconnected */ + CONNECTION_ETHERNET_STATE_CONNECTED = 2, /**< Connected */ +} connection_ethernet_state_e; + + +/** + * @brief Enumeration for Bluetooth state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + */ +typedef enum { + CONNECTION_BT_STATE_DEACTIVATED = 0, /**< There is no Bluetooth profile to open */ + CONNECTION_BT_STATE_DISCONNECTED = 1, /**< Disconnected */ + CONNECTION_BT_STATE_CONNECTED = 2, /**< Connected */ +} connection_bt_state_e; + + +/** + * @brief Enumeration for connection iterator type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + */ +typedef enum { + CONNECTION_ITERATOR_TYPE_REGISTERED = 0, /**< The iterator of the registered profile */ + CONNECTION_ITERATOR_TYPE_CONNECTED = 1, /**< The iterator of the connected profile */ + CONNECTION_ITERATOR_TYPE_DEFAULT = 2, /**< The iterator of the default profile */ +} connection_iterator_type_e; + + +/** + * @brief Enumeration for reset profile type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif +*/ +typedef enum { + /** + * Initialized with the default profile defined by csc + */ + CONNECTION_RESET_DEFAULT_PROFILE = 0, + + /** + * Remove all profiles + */ + CONNECTION_RESET_CLEAR_PROFILE = 1, + +} connection_reset_option_e; + + +/** + * @brief Enumeration for the attached or detached state of ethernet cable. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + */ +typedef enum { + CONNECTION_ETHERNET_CABLE_DETACHED = 0, /**< Ethernet cable is detached */ + CONNECTION_ETHERNET_CABLE_ATTACHED = 1, /**< Ethernet cable is attached */ +} connection_ethernet_cable_state_e; + + +/** + * @brief Enumeration for connection errors. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + */ +typedef enum { + /** + * Successful + */ + CONNECTION_ERROR_NONE = TIZEN_ERROR_NONE, + + /** + * Invalid parameter + */ + CONNECTION_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, + + /** + * Out of memory error + */ + CONNECTION_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, + + /** + * Invalid operation + */ + CONNECTION_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, + + /** + * Address family not supported + */ + CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED = TIZEN_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED, + + /** + * Now inprogress + */ + CONNECTION_ERROR_NOW_IN_PROGRESS = TIZEN_ERROR_NOW_IN_PROGRESS, + + /** + * Permission denied + */ + CONNECTION_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, + + /** + * Not supported + */ + CONNECTION_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, + + /** + * Operation failed + */ + CONNECTION_ERROR_OPERATION_FAILED = TIZEN_ERROR_CONNECTION|0x0401, + + /** + * End of iteration + */ + CONNECTION_ERROR_ITERATOR_END = TIZEN_ERROR_CONNECTION|0x0402, + + /** + * There is no connection + */ + CONNECTION_ERROR_NO_CONNECTION = TIZEN_ERROR_CONNECTION|0x0403, + + /** + * Already exists + */ + CONNECTION_ERROR_ALREADY_EXISTS = TIZEN_ERROR_CONNECTION|0x0404, + + /** + * Operation is aborted + */ + CONNECTION_ERROR_OPERATION_ABORTED = TIZEN_ERROR_CONNECTION|0x0405, + + /** + * DHCP failed + */ + CONNECTION_ERROR_DHCP_FAILED = TIZEN_ERROR_CONNECTION|0x0406, + + /** + * Invalid key + */ + CONNECTION_ERROR_INVALID_KEY = TIZEN_ERROR_CONNECTION|0x0407, + + /** + * No reply + */ + CONNECTION_ERROR_NO_REPLY = TIZEN_ERROR_CONNECTION|0x0408, + + /** + * Already initialized (Since 5.0) + */ + CONNECTION_ERROR_ALREADY_INITIALIZED = TIZEN_ERROR_CONNECTION|0x0409, + + /** + * Not initialized (Since 5.0) + */ + CONNECTION_ERROR_NOT_INITIALIZED = TIZEN_ERROR_CONNECTION|0x040A, + +} connection_error_e; + +/** + * @} +*/ + + +/** + * @addtogroup CAPI_NETWORK_CONNECTION_STATISTICS_MODULE + * @{ +*/ + + +/** + * @brief Enumeration for statistics type. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + */ +typedef enum { + CONNECTION_STATISTICS_TYPE_LAST_RECEIVED_DATA = 0, /**< Last received data */ + CONNECTION_STATISTICS_TYPE_LAST_SENT_DATA = 1, /**< Last sent data */ + CONNECTION_STATISTICS_TYPE_TOTAL_RECEIVED_DATA = 2, /**< Total received data */ + CONNECTION_STATISTICS_TYPE_TOTAL_SENT_DATA = 3, /**< Total sent data */ +} connection_statistics_type_e; + + +/** + * @} +*/ + + +/** + * @addtogroup CAPI_NETWORK_CONNECTION_MANAGER_MODULE + * @{ +*/ + + +/** + * @brief Creates a handle for managing data connections. + * @details If you do not use this function and use other functions, + * you will get the #CONNECTION_ERROR_NOT_INITIALIZED error. + * If you put an invalid handle, you will get the #CONNECTION_ERROR_INVALID_PARAMETER error. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @remarks You must release @a connection using connection_destroy(). + * @param[out] connection The connection handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_ALREADY_INITIALIZED Already initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_destroy() + */ +int connection_create(connection_h* connection); + + +/** + * @brief Destroys the connection handle. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_create() + */ +int connection_destroy(connection_h connection); + + +/** + * @brief Called when the type of a connection is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] type The type of the current network connection + * @param[in] user_data The user data passed from the callback registration function + * @see connection_set_type_changed_cb() + * @see connection_unset_type_changed_cb() + */ +typedef void(*connection_type_changed_cb)(connection_type_e type, void* user_data); + + +/** + * @brief Called when the address is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks @a ipv4_address @a ipv6_address should not be freed. + * @a ipv4_address @a ipv6_address is available only in the callback. + * To use outside the callback, make a copy. + * @param[in] ipv4_address The IP address for IPv4 + * @param[in] ipv6_address The IP address for IPv6 + * @param[in] user_data The user data passed from the callback registration function + * @see connection_set_ip_address_changed_cb() + * @see connection_unset_ip_address_changed_cb() + * @see connection_set_proxy_address_changed_cb() + * @see connection_unset_proxy_address_changed_cb() + */ +typedef void(*connection_address_changed_cb)(const char* ipv4_address, + const char* ipv6_address, void* user_data); + + +/** + * @brief Called when connection_set_default_cellular_service_profile_async() finishes. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] result The result + * @param[in] user_data The user data passed from connection_open_profile() + * @pre connection_set_default_cellular_service_profile_async() will invoke this callback function. + * @see connection_set_default_cellular_service_profile_async() +*/ +typedef void(*connection_set_default_cb)(connection_error_e result, void* user_data); + +/** + * @brief Called with an IPv6 address. + * @since_tizen 4.0 + * @remarks If @a ipv6_address is needed outside the callback, a copy should be made. \n + * @a ipv6_address will be freed automatically after the execution of this callback. + * @param[in] ipv6_address The IPv6 address + * @param[in] user_data The user data passed from the foreach function + * @return @c true to continue with the next iteration of the loop, \n + * @c false to break out of the loop + * @pre connection_foreach_ipv6_address() will invoke this callback. + * @see connection_foreach_ipv6_address() + */ +typedef bool(*connection_ipv6_address_cb)(char *ipv6_address, void *user_data); + +/** + * @brief Gets the type of the current profile for data connection. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @param[out] type The type of the network + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_type(connection_h connection, connection_type_e* type); + + +/** + * @brief Gets the IP address of the current connection. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a ip_address using free(). + * @param[in] connection The connection handle + * @param[in] address_family The address family + * @param[out] ip_address The pointer to the IP address string + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_ip_address(connection_h connection, + connection_address_family_e address_family, char** ip_address); + + +/** + * @brief Gets the proxy address of the current connection. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks You must release @a proxy using free(). + * @param[in] connection The connection handle + * @param[in] address_family The address family + * @param[out] proxy The proxy address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_proxy(connection_h connection, + connection_address_family_e address_family, char** proxy); + + +/** + * @brief Gets the MAC address of the Wi-Fi or ethernet. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + * @remarks @a mac_addr must be released with free() by you. + * @param[in] connection The handle of the connection + * @param[in] type The type of current network connection + * @param[out] mac_addr The MAC address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_INVALID_OPERATION Invalid operation + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + */ +int connection_get_mac_address(connection_h connection, + connection_type_e type, char** mac_addr); + + +/** + * @brief Gets if the current connection is metered. + * @since_tizen 4.0 + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @param[in] connection The connection handle + * @param[out] is_metered The value indicating whether it is metered + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_is_metered_network(connection_h connection, bool* is_metered); + + +/** + * @brief Gets the state of cellular connection. + * @details The returned state is for the cellular connection state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @param[out] state The state of the cellular connection + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_cellular_state(connection_h connection, connection_cellular_state_e* state); + + +/** + * @brief Gets the state of the Wi-Fi. + * @details The returned state is for the Wi-Fi connection state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @param[in] connection The connection handle + * @param[out] state The state of Wi-Fi connection + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_wifi_state(connection_h connection, connection_wifi_state_e* state); + + +/** + * @brief Gets the state of the Ethernet. + * @details The returned state is for the Ethernet connection state. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @param[in] connection The connection handle + * @param[out] state The state of Ethernet connection + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_ethernet_state(connection_h connection, connection_ethernet_state_e* state); + +/** + * @brief Checks for ethernet cable is attached or not. + * @details The returned state is for the ethernet cable state. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @param[in] connection The handle of the connection + * @param[in] state The state of ethernet cable + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + */ +int connection_get_ethernet_cable_state(connection_h connection, + connection_ethernet_cable_state_e *state); + + +/** + * @deprecated Deprecated since 4.0. Use connection_ethernet_cable_state_changed_cb() instead. + * @brief Called when ethernet cable is plugged [in/out]. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + * @param[in] state The state of ethernet cable + * @param[in] user_data The user data passed to callback registration function + */ +typedef void(*connection_ethernet_cable_state_chaged_cb) + (connection_ethernet_cable_state_e state, void* user_data); + + +/** + * @deprecated Deprecated since 4.0. Use connection_set_ethernet_cable_state_changed_cb() instead. + * @brief Sets callback for ethernet cable is plugged [in/out] event. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + * @param[in] connection The connection handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_set_ethernet_cable_state_chaged_cb(connection_h connection, + connection_ethernet_cable_state_chaged_cb callback, void *user_data) TIZEN_DEPRECATED_API; + + +/** + * @deprecated Deprecated since 4.0. Use connection_unset_ethernet_cable_state_changed_cb() instead. + * @brief Unsets callback for ethernet cable is plugged [in/out] event. + * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif + * @param[in] connection The connection handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_unset_ethernet_cable_state_chaged_cb(connection_h connection) TIZEN_DEPRECATED_API; + +/** + * @brief Called when ethernet cable is plugged [in/out]. + * @since_tizen 4.0 + * @param[in] state The state of ethernet cable + * @param[in] user_data The user data passed to callback registration function + */ +typedef void(*connection_ethernet_cable_state_changed_cb)( + connection_ethernet_cable_state_e state, void* user_data); + + +/** + * @brief Sets callback for ethernet cable is plugged [in/out] event. + * @since_tizen 4.0 + * @param[in] connection The connection handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_set_ethernet_cable_state_changed_cb(connection_h connection, + connection_ethernet_cable_state_changed_cb callback, void *user_data); + + +/** + * @brief Unsets callback for ethernet cable is plugged [in/out] event. + * @since_tizen 4.0 + * @param[in] connection The connection handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_unset_ethernet_cable_state_changed_cb(connection_h connection); + + +/** + * @brief Gets the state of the Bluetooth. + * @details The returned state is for the Bluetooth connection state. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @param[in] connection The connection handle + * @param[out] state The state of the Bluetooth connection + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_bt_state(connection_h connection, connection_bt_state_e* state); + + +/** + * @brief Sets the callback that is called when the type of the current connection is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_set_type_changed_cb(connection_h connection, + connection_type_changed_cb callback, void* user_data); + + +/** + * @brief Unsets the callback that is called when the type of current connection is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_unset_type_changed_cb(connection_h connection); + + +/** + * @brief Sets the callback that is called when the IP address is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_set_ip_address_changed_cb(connection_h connection, + connection_address_changed_cb callback, void* user_data); + + +/** + * @brief Unsets the callback that is called when the IP address is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_unset_ip_address_changed_cb(connection_h connection); + + +/** + * @brief Sets the callback that is called when the proxy address is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_set_proxy_address_changed_cb(connection_h connection, + connection_address_changed_cb callback, void* user_data); + + +/** + * @brief Unsets the callback that is called when the proxy address is changed. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] connection The connection handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_unset_proxy_address_changed_cb(connection_h connection); + + +/** + * @brief Adds a new profile which is created by connection_profile_create(). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.profile + * @remarks You can only add a profile of the cellular type. + * @param[in] connection The connection handle + * @param[in] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_add_profile(connection_h connection, connection_profile_h profile); + + +/** + * @brief Removes an existing profile. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.profile \n + * %http://tizen.org/privilege/network.get + * @remarks This function needs both privileges. + * @param[in] connection The connection handle + * @param[in] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_remove_profile(connection_h connection, connection_profile_h profile); + + +/** + * @brief Updates an existing profile. + * @details When a profile is changed, these changes will be not applied to the + * Connection Manager immediately. + * When you call this function, your changes affect the Connection Manager + * and the existing profile is updated. + * In addition, the existing profile will be updated if you call connection_open_profile(). + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.profile \n + * %http://tizen.org/privilege/network.get + * @remarks This function needs both privileges. + * @param[in] connection The connection handle + * @param[in] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_open_profile() + */ +int connection_update_profile(connection_h connection, connection_profile_h profile); + + +/** + * @brief Gets a profiles iterator. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @remarks You must release @a profile_iterator using connection_destroy(). + * @param[in] connection The connection handle + * @param[in] type The type of the connection iterator + * @param[out] profile_iterator The iterator of profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_profile_iterator(connection_h connection, + connection_iterator_type_e type, connection_profile_iterator_h* profile_iterator); + + +/** + * @brief Moves the profile iterator to the next position and gets a profile handle. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile_iterator The iterator of profile + * @param[out] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ITERATOR_END End of iteration + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_profile_iterator_next(connection_profile_iterator_h profile_iterator, + connection_profile_h* profile); + + +/** + * @brief Checks whether the next element of a profile iterator exists or not. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @remarks The specific error code can be obtained using the get_last_result() method. + * Error codes are described in Exception section. + * @param[in] profile_iterator The iterator of profile + * @return @c true if next element exists, + * otherwise @c false if next element doesn't exist + * @exception #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @exception #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see get_last_result() + */ +bool connection_profile_iterator_has_next(connection_profile_iterator_h profile_iterator); + + +/** + * @brief Destroys a profiles iterator. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] profile_iterator The iterator of the profile + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_destroy_profile_iterator(connection_profile_iterator_h profile_iterator); + + +/** + * @brief Gets the name of the default profile. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @remarks You must release @a profile using connection_profile_destroy(). + * @param[in] connection The connection handle + * @param[out] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NO_CONNECTION There is no connection + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_current_profile(connection_h connection, connection_profile_h* profile); + + +/** + * @brief Gets the default profile which provides the given cellular service. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @remarks You must release @a profile using connection_profile_destroy(). + * @param[in] connection The connection handle + * @param[in] type The type of cellular service \n + * #CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION is not permitted + * @param[out] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_default_cellular_service_profile(connection_h connection, + connection_cellular_service_type_e type, connection_profile_h* profile); + + +/** + * @brief Sets the default profile which provides the given cellular service. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.profile \n + * %http://tizen.org/privilege/network.get + * @remarks This function needs both privileges. + * @param[in] connection The connection handle + * @param[in] type The type of cellular service \n + * Only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET and + * #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted + * @param[in] profile The profile handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_set_default_cellular_service_profile(connection_h connection, + connection_cellular_service_type_e type, connection_profile_h profile); + + +/** + * @brief Sets the default profile which provides the given cellular service, asynchronously. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.profile \n + * %http://tizen.org/privilege/network.get + * @remarks This function needs both privileges. + * @param[in] connection The connection handle + * @param[in] type The type of cellular service \n + * Only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET and + * #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted + * @param[in] profile The profile handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_set_default_cellular_service_profile_async(connection_h connection, + connection_cellular_service_type_e type, connection_profile_h profile, + connection_set_default_cb callback, void* user_data); + + +/** + * @brief Called after connection_open_profile() is finished. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] result The result + * @param[in] user_data The user data passed from connection_open_profile() + * @pre connection_open_profile() will invoke this callback function. + * @see connection_open_profile() +*/ +typedef void(*connection_opened_cb)(connection_error_e result, void* user_data); + + +/** + * @brief Called after connection_close_profile() is finished. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] result The result + * @param[in] user_data The user data passed from connection_close_profile() + * @pre connection_close_profile() will invoke this callback function. + * @see connection_close_profile() +*/ +typedef void(*connection_closed_cb)(connection_error_e result, void* user_data); + + +/** + * @brief Called after connection_reset_profile() is finished. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @param[in] result The result + * @param[in] user_data The user data passed from connection_reset_profile() + * @pre connection_reset_profile() will invoke this callback function. + * @see connection_reset_profile() +*/ +typedef void(*connection_reset_cb)(connection_error_e result, void* user_data); + + +/** + * @brief Opens a connection of profile, asynchronously. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.set \n + * %http://tizen.org/privilege/network.get + * @remarks This function needs both privileges. + * @param[in] connection The connection handle + * @param[in] profile The profile handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @post connection_opened_cb() will be invoked. + * @see connection_opened_cb() + * @see connection_close_profile() + * @see connection_profile_set_state_changed_cb() + * @see connection_profile_unset_state_changed_cb() + * @see connection_profile_state_changed_cb() + */ +int connection_open_profile(connection_h connection, connection_profile_h profile, + connection_opened_cb callback, void* user_data); + + +/** + * @brief Closes a connection of profile. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.set + * @param[in] connection The connection handle + * @param[in] profile The profile handle + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @post connection_closed_cb() will be invoked. + * @see connection_closed_cb() + * @see connection_open_profile() + * @see connection_profile_set_state_changed_cb() + * @see connection_profile_unset_state_changed_cb() + * @see connection_profile_state_changed_cb() + */ +int connection_close_profile(connection_h connection, connection_profile_h profile, + connection_closed_cb callback, void* user_data); + + +/** + * @brief Resets the cellular profile. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.profile \n + * %http://tizen.org/privilege/network.get + * @remarks This function needs both privileges. + * @param[in] connection The connection handle + * @param[in] type The type of reset + * @param[in] id The subscriber identity module ID to reset + * (The sim index starts from 0.) + * @param[in] callback The callback function to be called + * @param[in] user_data The user data passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @post connection_reset_cb() will be invoked. +*/ +int connection_reset_profile(connection_h connection, connection_reset_option_e type, + int id, connection_reset_cb callback, void *user_data); + + +/** + * @platform + * @deprecated Deprecated since 4.0. Use connection_add_route_entry() instead. + * @brief Adds a IPv4 route to the routing table. + * @details You can get the @a interface_name from + * connection_profile_get_network_interface_name() of opened profile. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel partner + * @privilege %http://tizen.org/privilege/network.route + * @remarks Since 6.0, the required privilege and level of this function has changed. + * @param[in] connection The connection handle + * @param[in] interface_name The name of network interface + * @param[in] host_address The IP address of the host + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ALREADY_EXISTS Already exists + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_profile_get_network_interface_name() + */ +int connection_add_route(connection_h connection, const char* interface_name, + const char* host_address) TIZEN_DEPRECATED_API; + + +/** + * @platform + * @deprecated Deprecated since 4.0. Use connection_remove_route_entry() instead. + * @brief Removes a IPv4 route from the routing table. + * @details You can get the @a interface_name from + * connection_profile_get_network_interface_name() of opened profile. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel partner + * @privilege %http://tizen.org/privilege/network.route + * @remarks Since 6.0, the required privilege and level of this function has changed. + * @param[in] connection The connection handle + * @param[in] interface_name The name of network interface + * @param[in] host_address The IP address of the host + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_profile_get_network_interface_name() + */ +int connection_remove_route(connection_h connection, const char* interface_name, + const char* host_address) TIZEN_DEPRECATED_API; + + +/** + * @platform + * @deprecated Deprecated since 4.0. Use connection_add_route_entry() instead. + * @brief Adds a IPv6 route to the routing table. + * @details You can get the @a interface_name from + * connection_profile_get_network_interface_name() of opened profile. + * @since_tizen 2.3.1 + * @privlevel partner + * @privilege %http://tizen.org/privilege/network.route + * @remarks Since 6.0, the required privilege and level of this function has changed. + * @param[in] connection The connection handle + * @param[in] interface_name The name of network interface + * @param[in] host_address The IP address of the host + * @param[in] gateway The gateway address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ALREADY_EXISTS Already exists + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_profile_get_network_interface_name() + */ +int connection_add_route_ipv6(connection_h connection, const char *interface_name, + const char *host_address, const char * gateway) TIZEN_DEPRECATED_API; + + +/** + * @platform + * @deprecated Deprecated since 4.0. Use connection_remove_route_entry() instead. + * @brief Removes a IPV6 route from the routing table. + * @details You can get the @a interface_name from + * connection_profile_get_network_interface_name() of opened profile. + * @since_tizen 2.3.1 + * @privlevel partner + * @privilege %http://tizen.org/privilege/network.route + * @remarks Since 6.0, the required privilege and level of this function has changed. + * @param[in] connection The connection handle + * @param[in] interface_name The name of network interface + * @param[in] host_address The IP address of the host + * @param[in] gateway The gateway address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_profile_get_network_interface_name() + */ +int connection_remove_route_ipv6(connection_h connection, const char *interface_name, + const char *host_address, const char * gateway) TIZEN_DEPRECATED_API; + +/** + * @platform + * @brief Adds a route to the routing table. + * @details You can get the @a interface_name from \n + * connection_profile_get_network_interface_name() of opened profile. + * @since_tizen 4.0 + * @privlevel partner + * @privilege %http://tizen.org/privilege/network.route + * @remarks Since 6.0, the required privilege and level of this function has changed. + * @param[in] connection The connection handle + * @param[in] address_family The address family + * @param[in] interface_name The name of network interface + * @param[in] host_address The IP address of the host (e.g., single IP address such as + * 163.152.10.2,192.168.1.2), group's IP address (e.g., 163.152.10.0, 192.168.0.0) + * is not allowed + * @param[in] gateway The gateway address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_ALREADY_EXISTS Already exists + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_profile_get_network_interface_name() + */ +int connection_add_route_entry(connection_h connection, + connection_address_family_e address_family, const char *interface_name, + const char *host_address, const char *gateway); + +/** + * @platform + * @brief Removes a route from the routing table. + * @details You can get the @a interface_name from \n + * connection_profile_get_network_interface_name() of opened profile. + * @since_tizen 4.0 + * @privlevel partner + * @privilege %http://tizen.org/privilege/network.route + * @remarks Since 6.0, the required privilege and level of this function has changed. + * @param[in] connection The connection handle + * @param[in] address_family The address family + * @param[in] interface_name The name of network interface + * @param[in] host_address The IP address of the host (e.g., single IP address such as + * 163.152.10.2,192.168.1.2), group's IP address (e.g., 163.152.10.0, 192.168.0.0) + * is not allowed + * @param[in] gateway The gateway address + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + * @see connection_profile_get_network_interface_name() + */ +int connection_remove_route_entry(connection_h connection, + connection_address_family_e address_family, const char *interface_name, + const char *host_address, const char *gateway); + +/** + * @brief Gets all IPv6 addresses assigned to the network interface. + * @since_tizen 4.0 + * @param[in] connection The connection handle + * @param[in] connection_type The connection type + * @param[in] callback The callback to be called for each IPv6 address + * @param[in] user_data The user data passed to the callback function + * @return 0 on success, otherwise negative error value. + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_foreach_ipv6_address(connection_h connection, connection_type_e connection_type, + connection_ipv6_address_cb callback, void *user_data); + +/** + * @} +*/ + + +/** + * @addtogroup CAPI_NETWORK_CONNECTION_STATISTICS_MODULE + * @{ +*/ + + +/** + * @brief Gets the statistics information. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.get + * @param[in] connection The connection handle + * @param[in] connection_type The type of connection \n + * Only #CONNECTION_TYPE_WIFI and #CONNECTION_TYPE_CELLULAR are supported + * @param[in] statistics_type The type of statistics + * @param[out] size The received data size of the last cellular packet data connection (bytes) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_get_statistics(connection_h connection, connection_type_e connection_type, + connection_statistics_type_e statistics_type, long long* size); + + +/** + * @brief Resets the statistics information. + * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif + * @privlevel public + * @privilege %http://tizen.org/privilege/network.set + * @param[in] connection The connection handle + * @param[in] connection_type The type of connection \n + * Only #CONNECTION_TYPE_WIFI and #CONNECTION_TYPE_CELLULAR are supported + * @param[in] statistics_type The type of statistics + * @return @c 0 on success, + * otherwise a negative error value + * @retval #CONNECTION_ERROR_NONE Successful + * @retval #CONNECTION_ERROR_NOT_INITIALIZED Not initialized + * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed + * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission denied + * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported + */ +int connection_reset_statistics(connection_h connection, connection_type_e connection_type, + connection_statistics_type_e statistics_type); +/** + * @} +*/ + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + +#endif /* __TIZEN_NETWORK_NET_CONNECTION_H__ */ diff --git a/packaging/capi-network-connection.spec b/packaging/capi-network-connection.spec index 5f50351..e458ba9 100755 --- a/packaging/capi-network-connection.spec +++ b/packaging/capi-network-connection.spec @@ -96,6 +96,7 @@ popd %files devel %{_includedir}/network/*.h +%{_includedir}/tv/network/*.h %{_libdir}/pkgconfig/*.pc %{_libdir}/libcapi-network-connection.so