SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output/osp)
-## Disable build rpath
+## Disable build rpath
SET(CMAKE_SKIP_BUILD_RPATH TRUE)
IF(SBS OR OBS)
## Set Assembly Compiler
#SET(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
-
+
SET(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
ENABLE_LANGUAGE(ASM)
-
+
## LIBRARY PATH
LINK_DIRECTORIES (${LIBRARY_OUTPUT_PATH})
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(src/wifi)
-
INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp
FILES_MATCHING PATTERN "*.so*"
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
{
/**
* @namespace Tizen::Net
- * @brief This namespace contains the classes and interfaces for network account, connection, and addressing utilities.
- * @since 2.0
+ * @brief This namespace contains classes and interfaces for managing network accounts, connections, and addressing utilities.
+ * @since 2.0
*
* @remarks @b Header @b %file: @b \#include @b <FNet.h> @n
- * @b Library : @b osp-net @n
+ * @b Library: @b osp-net
*
- * The %Net namespace contains the different classes for the %Net namespace. @n
+ * The %Net namespace contains different classes for the %Net namespace.
*
- * This namespace helps to access the data communication capabilities of Tizen. It is responsible for managing connections and
- * accounts, and maintaining IP addresses and connections to the system through %Bluetooth, Hypertext Transfer Protocol (HTTP), Near Field
- * Communication (NFC), %Sockets, and Wi-Fi. It also provides methods for retrieving information about a specific host from the Internet Domain
- * Name %System (DNS).
+ * This namespace helps to access the data communication capabilities of %Tizen. It is responsible for managing connections and
+ * accounts, and maintaining IP addresses and connections to the system through %Bluetooth, Hypertext Transfer Protocol (HTTP), Near Field
+ * Communication (NFC), %Sockets, and Wi-Fi. It also provides methods for retrieving information about a specific host from the Internet Domain
+ * Name %System (DNS).
* @n
* For more information on the %Net namespace features, see <a href="../org.tizen.native.appprogramming/html/guide/net/net_namespace.htm">Net Guide</a>.
*
/**
* @class DhcpClientInfo
- * @brief This class represents a client information on the local Dynamic Host Configuration Protocol (DHCP) server.
+ * @brief This class represents the client information on the local Dynamic Host Configuration Protocol (DHCP) server.
*
* @since 2.0
*
- * The %DhcpClientInfo class provides functionality for getting information on the local DHCP server.
+ * The %DhcpClientInfo class provides the functionality for getting information on the local DHCP server.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/local_DHCP_server_access.htm">Local DHCP Server Access</a>.
*/
: public Tizen::Base::Object
{
public:
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~DhcpClientInfo(void);
public:
- /**
- * Gets the name of the DHCP client device.
- *
- * @since 2.0
- *
- * @return The name of the DHCP client device, @n
- * else a null string if the name is not set or not constructed
- */
+ /**
+ * Gets the name of a DHCP client device.
+ *
+ * @since 2.0
+ *
+ * @return The name of the DHCP client device, @n
+ * else a @c null string if the name is not set or constructed
+ */
Tizen::Base::String GetName(void) const;
- /**
- * Gets the IP address of the DHCP client device.
- *
- * @since 2.0
- *
- * @return The IpAddress pointer
- * @remarks This method returns a dynamically assigned IP address.
- */
+ /**
+ * Gets the IP address of a DHCP client device.
+ *
+ * @since 2.0
+ *
+ * @return The IpAddress pointer
+ * @remarks This method returns a dynamically assigned IP address.
+ */
const IpAddress* GetIpAddress(void) const;
- /**
- * Gets the MAC address of the DHCP client device.
- *
- * @since 2.0
- *
- * @return The MAC address in the form '00-00-00-00-00-00'
- * @remarks In case of the Wi-Fi Direct bearer type, the MAC address is virtual and is used only for the frame packetization. @n
- * This MAC address is different from the MAC address provided by the Wifi::WifiManager or the Wifi::WifiDirectDevice class.
- */
+ /**
+ * Gets the MAC address of a DHCP client device.
+ *
+ * @since 2.0
+ *
+ * @return The MAC address in the form '00-00-00-00-00-00'
+ * @remarks For the Wi-Fi Direct bearer type, the MAC address is virtual and is used only for frame packetization. @n
+ * This MAC address is different from the MAC address provided by the Wifi::WifiManager or Wifi::WifiDirectDevice class.
+ */
Tizen::Base::String GetMacAddress(void) const;
- /**
- * Compares the specified instance of %DhcpClientInfo with the calling instance.
- *
- * @since 2.0
- *
- * @return @c true if the values match, @n
- * else @c false
- * @param[in] rhs The other Tizen::Base::Object to compare
- * @see Tizen::Base::Object::Equals()
- */
+ /**
+ * Compares the specified instance of %DhcpClientInfo with the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the values match, @n
+ * else @c false
+ * @param[in] rhs The other Tizen::Base::Object to compare
+ * @see Tizen::Base::Object::Equals()
+ */
virtual bool Equals(const Tizen::Base::Object& rhs) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
private:
*
* @since 2.0
*
- * The %Dns class represents a request for information from a DNS server. A DNS request can be one of two types, represented by the GetHostByAddress()
- * and GetHostByName() methods. The %GetHostByAddress() method represents a request for the DNS information about a host, while the %GetHostByName()
- * method represents a request for the DNS host information for an IP address. Both requests can be made in an asynchronous mode.
+ * The %Dns class represents a request for information from a DNS server. A DNS request can be one of the two types, represented by the GetHostByAddress()
+ * and GetHostByName() methods. The %GetHostByAddress() method represents a request for the DNS information of a host, while the %GetHostByName()
+ * method represents a request for the DNS host information of an IP address. Both requests can be made in the asynchronous mode.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/domain_name_system_access.htm">Domain Name System Access</a>.
*
: public Tizen::Base::Object
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ */
Dns(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~Dns(void);
- /**
- * Initializes this instance of %Dns with the specified parameters.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] netConnection A NetConnection on which the DNS request executes
- * @param[in] listener A reference to IDnsEventListener
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c netConnection contains an invalid value.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
- * because the caller thread is a worker thread.
- */
+ /**
+ * Initializes this instance of %Dns with the specified parameters.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] netConnection The NetConnection on which the DNS request executes
+ * @param[in] listener A reference to IDnsEventListener
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c netConnection contains an invalid value.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
+ * because the caller thread is a worker thread.
+ */
result Construct(const NetConnection& netConnection, IDnsEventListener& listener);
- /**
- * Initializes this instance of %Dns with the specified @c listener.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] listener A reference to IDnsEventListener
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_CONNECTION The network connection is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
- * because the caller thread is a worker thread.
- */
+ /**
+ * Initializes this instance of %Dns with the specified @c listener.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] listener A reference to IDnsEventListener
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_CONNECTION The network connection is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
+ * because the caller thread is a worker thread.
+ */
result Construct(IDnsEventListener& listener);
public:
- /**
- * Requests a DNS lookup by host name. @n
- * The %GetHostByName() method is asynchronous.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/dns
- *
- * @return An error code
- * @param[in] hostName The DNS name of the host
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_CONNECTION The network connection is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
- * @exception E_CONNECTION_FAILED The network connection has failed.
- * @exception E_OPERATION_FAILED Requested but an error is received while waiting for the response.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Only one query is processed at a time in this instance.
- * Multiple queries may be discarded.
- */
+ /**
+ * Requests for a DNS lookup by the host name. @n
+ * The %GetHostByName() method is asynchronous.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/dns
+ *
+ * @return An error code
+ * @param[in] hostName The DNS name of the host
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_CONNECTION The network connection is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
+ * @exception E_CONNECTION_FAILED The network connection has failed.
+ * @exception E_OPERATION_FAILED An error has been received while waiting for the response.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks Only one query is processed at a time in this instance.
+ * Multiple queries may be discarded.
+ */
result GetHostByName(const Tizen::Base::String& hostName);
-
- /**
- * Requests a DNS lookup by IP address. @n
- * The %GetHostByAddress() method is asynchronous.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/dns
- *
- * @return An error code
- * @param[in] ipAddress An IP address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_CONNECTION The network connection is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
- * @exception E_CONNECTION_FAILED The network connection has failed.
- * @exception E_OPERATION_FAILED Requested but an error is received while waiting for the response.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Only one query is processed at a time in this instance.
- * Multiple queries may be discarded.
- */
+ /**
+ * Requests for a DNS lookup by the IP address. @n
+ * The %GetHostByAddress() method is asynchronous.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/dns
+ *
+ * @return An error code
+ * @param[in] ipAddress The IP address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_CONNECTION The network connection is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
+ * @exception E_CONNECTION_FAILED The network connection has failed.
+ * @exception E_OPERATION_FAILED An error has been received while waiting for the response.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks Only one query is processed at a time in this instance.
+ * Multiple queries may be discarded.
+ */
result GetHostByAddress(const IpAddress& ipAddress);
private:
{
/**
* @namespace Tizen::Net::Http
- * @brief This namespace contains the classes and interfaces for the HTTP 1.1 client programming.
+ * @brief This namespace contains classes and interfaces for HTTP 1.1 client programming.
* @since 2.0
*
* @remarks @b Header @b %file: @b \#include @b <FNet.h> @n
- * @b Library : @b osp-net
+ * @b Library: @b osp-net
*
- * The %Http namespace contains the fundamental classes and interfaces for the HTTP 1.1 client programming.
+ * The %Http namespace contains the fundamental classes and interfaces for HTTP 1.1 client programming.
*
* It provides the implementation of the HTTP data communication protocol. This namespace provides:
- * - A client interface for the internet applications using the HTTP protocol for communication with the HTTP servers on the Internet.
+ * - A client interface for internet applications using the HTTP protocol for communication with the HTTP servers on the Internet.
* - A HTTP management module that encapsulates a standard HTTP request-and-response transaction and provides access to the common HTTP headers.
* - Support for most HTTP 1.1 features, including pipelining and chunking.
*
* Using this namespace correctly, makes the application a conditional HTTP 1.1-compliant client, as defined in RFC 2616.
*
- * For more information on the HTTP namespace features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
+ * For more information on the %Http namespace features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
*
- * The following diagram illustrates the relationships between the classes belonging to the %Net namespace.
+ * The following diagram illustrates the relationships between the classes belonging to the %Http namespace.
* @image html net_http_using_the_apis_classdiagram.png
*
*
*
* @since 2.0
*
- * The %HttpAuthentication class encapsulates the HTTP authentication activity of the client over the duration of a single transaction.
+ * The %HttpAuthentication class encapsulates the HTTP authentication activity of a client for the duration of a single transaction.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
*
: public Tizen::Base::Object
{
public:
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
~HttpAuthentication(void);
- /**
- * Gets the realm value received.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @return The realm value
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the realm value received.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @return The realm value
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::String* GetRealmN(void) const;
- /**
- * Gets the authentication scheme received.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @return The authentication scheme, @n
- * else @c -1 if an error occurs
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the authentication scheme received.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @return The authentication scheme, @n
+ * else @c -1 if an error occurs
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetHttpAuthScheme GetAuthScheme(void) const;
- /**
- * Sets the credentials required for setting the "WWW-Authenticate" header in the HttpRequest class.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @return The new transaction pointer
- * @param[in] credentials The credentials
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_AUTHENTICATION The authentication has failed.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method is used to set the username and password for the given domain and the authentication
- * scheme on the reception of the IHttpTransactionEventListener::OnTransactionHeaderCompleted() callback.
- * The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Sets the credentials required for setting the "WWW-Authenticate" header in the HttpRequest class.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @return The new transaction pointer
+ * @param[in] credentials The credentials
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_AUTHENTICATION The authentication has failed.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - This method is used to set the username and password for a given domain and the authentication
+ * scheme on the reception of the IHttpTransactionEventListener::OnTransactionHeaderCompleted() callback.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ */
HttpTransaction* SetCredentials(HttpCredentials& credentials);
private:
class _HttpCookieImpl;
/**
* @class HttpCookie
- * @brief This class provides a %Http cookie.
+ * @brief This class provides an %Http cookie.
*
* @since 2.0
*
- * The %HttpCookie class provides a %Http cookie. The %HttpCookie instance encapsulates the cookie received by the server in a particular HttpResponse instance.
+ * The %HttpCookie class provides an Http cookie. The %HttpCookie instance encapsulates a cookie received by the server in a particular HttpResponse instance.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
*
{
public:
- /**
- * Gets the domain name of the cookie.
+ /**
+ * Gets the domain name of a cookie.
*
* @since 2.0
*
* @return The domain name of the cookie, @n
- * else an empty string if no domain name is received in the cookie
+ * else an empty string if no domain name is received in the cookie
*/
Tizen::Base::String GetDomain(void) const;
- /**
- * Gets the path name of the cookie.
+ /**
+ * Gets the path name of a cookie.
*
* @since 2.0
*
* @return The path name of the cookie, @n
- * else an empty string if no path name is received in the cookie
+ * else an empty string if no path name is received in the cookie
*/
Tizen::Base::String GetPath(void) const;
- /**
- * Gets the version of the cookie.
+ /**
+ * Gets the version of a cookie.
*
* @since 2.0
*
* @return The version of the cookie, @n
- * else an empty string if no version is received in the cookie
+ * else an empty string if no version is received in the cookie
*/
Tizen::Base::String GetVersion(void) const;
- /**
- * Gets the expiration date and time of the cookie.
+ /**
+ * Gets the expiration date and time of a cookie.
*
* @since 2.0
*
* @return The expiration date and time of the cookie, @n
- * else an empty string if no expiration date and time is received in the cookie
+ * else an empty string if no expiration date and time is received in the cookie
*/
Tizen::Base::String GetExpires(void) const;
- /**
- * Checks whether the cookie is secured.
+ /**
+ * Checks whether a cookie is secured.
*
* @since 2.0
*
* @return @c true if the cookie is secured, @n
- * else @c false
+ * else @c false
*/
bool IsSecure(void) const;
- /**
- * Gets the name of the cookie.
+ /**
+ * Gets the name of a cookie.
*
* @since 2.0
*
*/
Tizen::Base::String GetCookieName(void) const;
- /**
- * Gets the value of the cookie.
+ /**
+ * Gets the value of a cookie.
*
* @since 2.0
*
*/
Tizen::Base::String GetCookieValue(void) const;
- /**
- * Gets the comment URL of the cookie.
+ /**
+ * Gets the comment URL of a cookie.
*
* @since 2.0
*
* @return The comment URL of the cookie, @n
- * else an empty string if no comment URL is received in the cookie
+ * else an empty string if no comment URL is received in the cookie
*/
Tizen::Base::String GetCommentUrl(void) const;
- /**
- * Gets the comment on the cookie.
+ /**
+ * Gets the comment on a cookie.
*
* @since 2.0
*
*/
Tizen::Base::String GetComment(void) const;
- /**
- * Checks whether the 'HttpOnly' flag is set in the cookie.
+ /**
+ * Checks whether the 'HttpOnly' flag is set in a cookie.
*
* @since 2.0
*
*/
bool IsHttpOnly(void) const;
- /**
+ /**
* Gets the port list.
*
* @since 2.0
*/
Tizen::Base::String GetPorts(void) const;
- /**
- * Gets the maximum age of the cookie.
+ /**
+ * Gets the maximum age of a cookie.
*
* @since 2.0
*
* @return The maximum age of the cookie, @n
- * else @c -1 if no maximum age is received in the cookie
+ * else @c -1 if no maximum age is received in the cookie
*/
int GetMaxAge(void) const;
- /**
- * Checks whether the 'Discard' flag is set in the cookie.
+ /**
+ * Checks whether the 'Discard' flag is set in a cookie.
*
* @since 2.0
*
* @return @c true if the 'Discard' flag is set, @n
- * else @c false
+ * else @c false
*/
bool GetDiscard(void) const;
result GetCookies(const Tizen::Base::String& url, Tizen::Base::String& cookies) const;
/**
- * Removes all the cookies corresponding to the requested URL from the cookie storage.
+ * Removes all the cookies corresponding to the requested URL, from the cookie storage.
*
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
*
* @return An error code
* @param[in] url The requested URL
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*/
result RemoveCookies(const Tizen::Base::String& url);
/**
* Removes all the cookies from the cookie storage.
*
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
*
* @return An error code
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*/
- result RemoveAllCookies();
+ result RemoveAllCookies(void);
private:
/**
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @since 2.0
- */
+ /**
+ * This is the default constructor for this class.
+ *
+ * @since 2.0
+ */
HttpCredentials(void);
- /**
- * Initializes an instance of %HttpCredentials with the specified user name and password.
- *
- * @since 2.0
- *
- * @param[in] name The user name string
- * @param[in] password The password string
- */
+ /**
+ * Initializes an instance of %HttpCredentials with the specified user name and password.
+ *
+ * @since 2.0
+ *
+ * @param[in] name The user name string
+ * @param[in] password The password string
+ */
HttpCredentials(const Tizen::Base::String& name, const Tizen::Base::String& password);
- /**
+ /**
* Copying of objects using this copy constructor is allowed.
*
* @since 2.0
*
- * @param[in] rhs An instance of %HttpCredentials
+ * @param[in] rhs An instance of %HttpCredentials to copy
*/
HttpCredentials(const HttpCredentials& rhs);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpCredentials(void);
- /**
- * Copying of objects using this copy assignment operator is allowed.
- *
- * @since 2.0
- *
- * @param[in] rhs An instance of %HttpCredentials
- */
+ /**
+ * Copying of objects using this copy assignment operator is allowed.
+ *
+ * @since 2.0
+ *
+ * @param[in] rhs An instance of %HttpCredentials to copy
+ */
HttpCredentials& operator =(const HttpCredentials& rhs);
- /**
- * Sets the user name for the current instance of %HttpCredentials.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @param[in] name The user name string
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- */
+ /**
+ * Sets the user name for the current instance of %HttpCredentials.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @param[in] name The user name string
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ */
result SetName(const Tizen::Base::String& name);
- /**
- * Sets the password for the current instance of %HttpCredentials.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @param[in] password The password string
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- */
+ /**
+ * Sets the password for the current instance of %HttpCredentials.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @param[in] password The password string
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ */
result SetPassword(const Tizen::Base::String& password);
- /**
- * Gets the user name of the current instance of %HttpCredentials.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @return The user name
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the user name of the current instance of %HttpCredentials.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @return The user name
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::String GetName(void) const;
- /**
- * Gets the password of the current instance of %HttpCredentials.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @return The password
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the password of the current instance of %HttpCredentials.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @return The password
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::String GetPassword(void) const;
- /**
- * Compares the specified instance of %HttpCredentials with the calling instance.
- *
- * @since 2.0
- *
- * @return @c true if the values match, @n
- * else @c false
- * @param[in] rhs The other Tizen::Base::Object to compare
- * @see Tizen::Base::Object::Equals()
- */
+ /**
+ * Compares the specified instance of %HttpCredentials with the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the values match, @n
+ * else @c false
+ * @param[in] rhs The other Tizen::Base::Object to compare
+ * @see Tizen::Base::Object::Equals()
+ */
virtual bool Equals(const Tizen::Base::Object& rhs) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
private:
* @since 2.0
*
* The %HttpHeader class is a collection of header fields associated with an HTTP message. The header fields can be added, read, modified, and
- * removed. Also, each field can have multiple values. This class provides easy access to the header.
+ * removed. Also, each field can have multiple values. This class provides easy access to the header.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
*/
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @since 2.0
- *
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * This is the default constructor for this class.
+ *
+ * @since 2.0
+ *
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
HttpHeader(void);
- /**
- * Initializes an instance of %HttpHeader with the values of the specified instance.
- *
- * @since 2.0
- *
- * @param[in] pHeader An instance of %HttpHeader
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @remarks The parameter @c pHeader can be @c null.
- * The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Initializes an instance of %HttpHeader with the values of the specified instance.
+ *
+ * @since 2.0
+ *
+ * @param[in] pHeader An instance of %HttpHeader @n
+ * The value can be @c null.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
HttpHeader(const HttpHeader* pHeader);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpHeader(void);
public:
- /**
- * Adds a named field, which is a <@c fieldName, @c fieldValue> pair, to the current instance of %HttpHeader.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] fieldName A field name
- * @param[in] fieldValue A field value
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_OBJ_ALREADY_EXIST The specified @c fieldName already exists. @n
- * The <@c fieldName, @c fieldValue> pair already exists.
- * @remarks The field is created on the first instance when this method is used for a particular field name.
- * On subsequent calls, the same field is extended to have several parts, with a new part created to hold the supplied value.
- * If you need to submit a request in the chunked mode, you need to explicitly add the header field named
- * "Transfer-Encoding" with the value @c chunked. Otherwise, the non-chunked mode is used as the default value.
- * @see RemoveField()
- */
+ /**
+ * Adds a named field, which is a <@c fieldName, @c fieldValue> pair, to the current instance of %HttpHeader.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] fieldName The field name
+ * @param[in] fieldValue The field value
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OBJ_ALREADY_EXIST Either of the following conditions has occurred:
+ * - The specified @c fieldName already exists.
+ * - The <@c fieldName, @c fieldValue> pair already exists.
+ * @remarks
+ * - The field is created on the first instance when this method is used for a particular field name. @n
+ * On subsequent calls, the same field is extended to have several parts, with a new part created to hold the supplied value.
+ * - If you need to submit a request in the chunked mode, you need to explicitly add the header field named
+ * "Transfer-Encoding" with the value @c chunked. Otherwise, the non-chunked mode is used as the default value.
+ * @see RemoveField()
+ */
result AddField(const Tizen::Base::String& fieldName, const Tizen::Base::String& fieldValue);
- /**
- * Removes all the fields with the specified field name.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] fieldName The field name to remove
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
- * @exception E_OBJ_NOT_FOUND The specified @c fieldName is not found in the current instance of %HttpHeader. @n
- * The header field with the specified @c fieldName is not found.
- * @see AddField()
- */
+ /**
+ * Removes all the fields with the specified field name.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] fieldName The field name to remove
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
+ * @exception E_OBJ_NOT_FOUND Either of the following conditions has occurred:
+ * - The specified @c fieldName is not found in the current instance of %HttpHeader.
+ * - The header field with the specified @c fieldName is not found.
+ * @see AddField()
+ */
result RemoveField(const Tizen::Base::String& fieldName);
- /**
- * Removes only the specified <@c fieldName, @c fieldValue> pair from the current instance of %HttpHeader.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] fieldName The field name to remove
- * @param[in] fieldValue The field value to remove with the specified @c fieldName
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
- * @exception E_OBJ_NOT_FOUND The specified @c fieldName is not found in the current instance of %HttpHeader. @n
- * The header field with the specified field name and field value is not found.
- * @see AddField()
- */
+ /**
+ * Removes only the specified <@c fieldName, @c fieldValue> pair from the current instance of %HttpHeader.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] fieldName The field name to remove
+ * @param[in] fieldValue The field value to remove with the specified @c fieldName
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
+ * @exception E_OBJ_NOT_FOUND Either of the following conditions has occurred:
+ * - The specified @c fieldName is not found in the current instance of %HttpHeader.
+ * - The header field with the specified @c fieldName and @c fieldValue is not found.
+ * @see AddField()
+ */
result RemoveField(const Tizen::Base::String& fieldName, const Tizen::Base::String& fieldValue);
- /**
- * Removes all the fields of the current instance of %HttpHeader.
- *
- * @since 2.0
- */
+ /**
+ * Removes all the fields from the current instance of %HttpHeader.
+ *
+ * @since 2.0
+ */
void RemoveAll(void);
- /**
- * Gets a raw header string.
- *
- * @since 2.0
- *
- * @return A raw header string
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_HEADER This header object does not contain any header field.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets a raw header string.
+ *
+ * @since 2.0
+ *
+ * @return The raw header string
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_HEADER This header object does not contain any header field.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::String* GetRawHeaderN(void) const;
- /**
- * Gets a list of all the field names in the current instance of %HttpHeader.
- *
- * @since 2.0
- *
- * @return A list that contains all the field names as string values
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_HEADER This header object does not contain any header field.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the list of all the field names in the current instance of %HttpHeader.
+ *
+ * @since 2.0
+ *
+ * @return The list that contains all the field names as string values
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_HEADER This header object does not contain any header field.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::Collection::IList* GetFieldNamesN(void) const;
- /**
- * Gets the field values corresponding to the specified field name.
- *
- * @since 2.0
- *
- * @return An enumerator containing all the string values of the specified field name
- * @param[in] fieldName A field name
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
- * @exception E_OBJ_NOT_FOUND The specified @c fieldName is not found in the current instance of %HttpHeader. @n
- * The header field with the specified @c fieldName is not found.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the field values corresponding to the specified field name.
+ *
+ * @since 2.0
+ *
+ * @return The enumerator that contains all the string values of the specified field name
+ * @param[in] fieldName The field name
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c fieldName is an empty string.
+ * @exception E_OBJ_NOT_FOUND Either of the following conditions has occurred:
+ * - The specified @c fieldName is not found in the current instance of %HttpHeader.
+ * - The header field with the specified @c fieldName is not found.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::Collection::IEnumerator* GetFieldValuesN(const Tizen::Base::String& fieldName) const;
private:
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_INVALID_SESSION The session handle is invalid.
* @exception E_INVALID_TRANSACTION The transaction handle is invalid.
- * @exception E_OUT_OF_RANGE The size of the specified body is out of range.
+ * @exception E_OUT_OF_RANGE The size of the specified @c body is out of the valid range.
* @exception E_INVALID_STATE The current state of the instance prohibits the execution of the specified operation.
* @exception E_UNKNOWN An unknown error has occurred.
- * @remarks This method only considers the data between the position and the limit of the Tizen::Base::ByteBuffer as valid.
+ * @remarks This method only considers the data between the position and the limit of Tizen::Base::ByteBuffer as valid.
* The position and limit has to be set appropriately before invoking this method.
* @see ReadBodyN()
*/
/**
* Gets the header. @n
* The %GetHeader() method is used to access the headers associated with a transaction request or response.
- * The handle is obtained from either the HttpRequest or the HttpResponse objects associated with the transaction. Adding, modifying, or removing a
+ * The handle is obtained from either the HttpRequest or HttpResponse objects associated with the transaction. Adding, modifying, or removing a
* header field is done using this header handle.
*
* @since 2.0
*
- * @return The pointer to HttpHeader that is to modify, @n
+ * @return A pointer to HttpHeader to modify, @n
* else @c null if %HttpMessage is not constructed
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_HEADER The header is @c null.
virtual HttpHeader* GetHeader(void) const = 0;
/**
- * Gets the body of the message associated with HttpRequest or HttpResponse.
+ * Gets the body of a message associated with HttpRequest or HttpResponse.
*
* @since 2.0
*
* @return The message body
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid. @n
- * Invoke this method before receiving a response body.
+ * @exception E_INVALID_STATE The method invoked is invalid @n
+ * Invoke this method before receiving the response body.
* @exception E_EMPTY_BODY The requested body is empty.
- * @exception E_OUT_OF_RANGE The size of the message body is out of range.
+ * @exception E_OUT_OF_RANGE The size of the message body is out of the valid range.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_IO The method has failed to read the data.
* @exception E_UNKNOWN An unknown error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks Once this method is invoked, the returned message body is removed from the message body queue.
- * In other words, the message body queue does not hold all the bodies permanently.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Once this method is invoked, the returned message body is removed from the message body queue. @n
+ * In other words, the message body queue does not hold all the bodies permanently.
* @see WriteBody()
*/
virtual Tizen::Base::ByteBuffer* ReadBodyN(void) = 0;
* @if OSPDEPREC
* The constant for the default MIME type of the string part.
*
- * @brief <i> [Deprecated] </i>
+ * @brief <i> [Deprecated] </i>
* @deprecated This object is provided only for backward compatibility and will be deleted in the near future.
* Use HTTP_STRING_PART_DEFAULT_MIME_TYPE instead of this object.
* @since 2.0
* @if OSPDEPREC
* The constant for the default MIME type of the file part.
*
- * @brief <i> [Deprecated] </i>
+ * @brief <i> [Deprecated] </i>
* @deprecated This object is provided only for backward compatibility and will be deleted in the near future.
- * Use HTTP_FILE_PART_DEFAULT_MIME_TYPE instead of this object.
+ * Use HTTP_FILE_PART_DEFAULT_MIME_TYPE instead of this object.
* @since 2.0
* @endif
*/
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
*
- * The following example demonstrates how to use the %HttpMultipartEntity class to upload the content to the server.
+ * The following example demonstrates how to use the %HttpMultipartEntity class to upload content to the server.
*
* @code
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ */
HttpMultipartEntity(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpMultipartEntity(void);
- /**
- * Initializes this instance of %HttpMultipartEntity.
- *
- * @since 2.0
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Initializes this instance of %HttpMultipartEntity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result Construct(void);
- /**
- * Initializes this instance of %HttpMultipartEntity with the specified parameters.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] boundary The boundary of multipart/form-data
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Initializes this instance of %HttpMultipartEntity with the specified parameters.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] boundary The boundary of the multipart/form-data
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result Construct(const Tizen::Base::String& boundary);
private:
- /**
- * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %HttpMultipartEntity
- */
+ /**
+ * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
+ *
+ * @param[in] rhs An instance of %HttpMultipartEntity
+ */
HttpMultipartEntity(const HttpMultipartEntity& rhs);
- /**
- * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %HttpMultipartEntity
- */
+ /**
+ * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
+ *
+ * @param[in] rhs An instance of %HttpMultipartEntity
+ */
HttpMultipartEntity& operator =(const HttpMultipartEntity& rhs);
public:
- /**
- * Gets the length of the request content.
- *
- * @since 2.0
- *
- * @return The length of the content, @n
- * else @c -1 if the content length is unknown
- */
+ /**
+ * Gets the length of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The length of the content, @n
+ * else @c -1 if the content length is unknown
+ */
virtual long long GetContentLength(void) const;
- /**
- * Gets the type of the request content.
- *
- * @since 2.0
- *
- * @return The type of the content
- */
+ /**
+ * Gets the type of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The type of the content
+ */
virtual Tizen::Base::String GetContentType(void) const;
- /**
- * Adds the string part to %HttpMultipartEntity with the default MIME type and character set.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] name The name of the part
- * @param[in] text The text of the part @n
- * The value of @c text is encoded using the default character encoding standard ("ISO-8859-1").
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_ENCODING_RANGE The @c text contains code points that are outside the bounds specified by @c encoding.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The default MIME type is "text/plain".
- */
+ /**
+ * Adds the string part with the default MIME type and character set to %HttpMultipartEntity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] name The name of the part
+ * @param[in] text The text of the part @n
+ * The value of @c text is encoded using the default character encoding standard ("ISO-8859-1").
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_ENCODING_RANGE The specified @c text contains code points that are outside the bounds specified by @c encoding.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The default MIME type is "text/plain".
+ */
result AddStringPart(const Tizen::Base::String& name, const Tizen::Base::String& text);
- /**
- * Adds the string part to %HttpMultipartEntity.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] name The name of the part
- * @param[in] text The text of the part
- * @param[in] mimeType The MIME type of @c text
- * @param[in] charset The character set of @c text
- * @param[in] encoding An encoding scheme for the specified @c text
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_ENCODING_RANGE The @c text contains code points that are outside the bounds specified by @c encoding.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Adds the string part to %HttpMultipartEntity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] name The name of the part
+ * @param[in] text The text of the part
+ * @param[in] mimeType The MIME type of @c text
+ * @param[in] charset The character set of @c text
+ * @param[in] encoding The encoding scheme for the specified @c text
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_ENCODING_RANGE The specified @c text contains code points that are outside the bounds specified by @c encoding.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result AddStringPart(const Tizen::Base::String& name, const Tizen::Base::String& text, const Tizen::Base::String& mimeType, const Tizen::Base::String& charset, const Tizen::Text::Encoding& encoding);
- /**
- * Adds the file part to %HttpMultipartEntity with the default MIME type.
- *
- * @if OSPCOMPAT
- * @brief <i> [Compatibility] </i>
- * @endif
- * @since 2.0
- * @if OSPCOMPAT
- * @compatibility This method has compatibility issues with OSP compatible applications. @n
- * For more information, see @ref CompIoPathPage "here".
- * @endif
- *
- * @return An error code
- * @param[in] name The name of the part
- * @param[in] filePath The path of the file to upload
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_FILE_NOT_FOUND The specified file cannot be found or accessed.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The default MIME type is "application/octet-stream".
- */
+ /**
+ * Adds the file part with the default MIME type to %HttpMultipartEntity.
+ *
+ * @if OSPCOMPAT
+ * @brief <i> [Compatibility] </i>
+ * @endif
+ * @since 2.0
+ * @if OSPCOMPAT
+ * @compatibility This method has compatibility issues with OSP compatible applications. @n
+ * For more information, see @ref CompIoPathPage "here".
+ * @endif
+ *
+ * @return An error code
+ * @param[in] name The name of the part
+ * @param[in] filePath The path of the file to upload
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_FILE_NOT_FOUND The specified file cannot be found or accessed.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The default MIME type is "application/octet-stream".
+ */
result AddFilePart(const Tizen::Base::String& name, const Tizen::Base::String& filePath);
- /**
- * Adds the file part to %HttpMultipartEntity.
- *
- * @if OSPCOMPAT
- * @brief <i> [Compatibility] </i>
- * @endif
- * @since 2.0
- * @if OSPCOMPAT
- * @compatibility This method has compatibility issues with OSP compatible applications. @n
- * For more information, see @ref CompIoPathPage "here".
- * @endif
- *
- * @return An error code
- * @param[in] name The name of the part
- * @param[in] filePath The path of the file to upload
- * @param[in] fileName The file name of the part
- * @param[in] mimeType The MIME type of the content
- * @param[in] charset The character set of the content
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_FILE_NOT_FOUND The specified file cannot be found or accessed.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Adds the file part to %HttpMultipartEntity.
+ *
+ * @if OSPCOMPAT
+ * @brief <i> [Compatibility] </i>
+ * @endif
+ * @since 2.0
+ * @if OSPCOMPAT
+ * @compatibility This method has compatibility issues with OSP compatible applications. @n
+ * For more information, see @ref CompIoPathPage "here".
+ * @endif
+ *
+ * @return An error code
+ * @param[in] name The name of the part
+ * @param[in] filePath The path of the file to upload
+ * @param[in] fileName The file name of the part
+ * @param[in] mimeType The MIME type of the content
+ * @param[in] charset The character set of the content
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_FILE_NOT_FOUND The specified file cannot be found or accessed.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result AddFilePart(const Tizen::Base::String& name, const Tizen::Base::String& filePath, const Tizen::Base::String& fileName, const Tizen::Base::String& mimeType, const Tizen::Base::String& charset);
- /**
- * Adds the binary part to %HttpMultipartEntity with the default MIME type.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] name The name of the part
- * @param[in] fileName The file name of the part
- * @param[in] buffer The buffer of file to upload
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The default MIME-type is "application/octet-stream".
- */
+ /**
+ * Adds the binary part with the default MIME type to %HttpMultipartEntity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] name The name of the part
+ * @param[in] fileName The file name of the part
+ * @param[in] buffer The buffer of the file to upload
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The default MIME-type is "application/octet-stream".
+ */
result AddFilePartByBuffer(const Tizen::Base::String& name, const Tizen::Base::String& fileName, const Tizen::Base::ByteBuffer& buffer);
- /**
- * Adds the binary part to %HttpMultipartEntity.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] name The name of the part
- * @param[in] fileName The file name of the part
- * @param[in] buffer The buffer of the file to upload
- * @param[in] mimeType The MIME type of the content
- * @param[in] charset The character set of the content
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Adds the binary part to %HttpMultipartEntity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] name The name of the part
+ * @param[in] fileName The file name of the part
+ * @param[in] buffer The buffer of the file to upload
+ * @param[in] mimeType The MIME type of the content
+ * @param[in] charset The character set of the content
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result AddFilePartByBuffer(const Tizen::Base::String& name, const Tizen::Base::String& fileName, const Tizen::Base::ByteBuffer& buffer, const Tizen::Base::String& mimeType, const Tizen::Base::String& charset);
protected:
- /**
- * Checks whether the next data exists.
- *
- * @since 2.0
- *
- * @return @c true if the next data exists, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Checks whether the next data exists.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the next data exists, @n
+ * else @c false
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual bool HasNextData(void);
- /**
- * Gets the next data.
- *
- * @since 2.0
- *
- * @return The buffer to be read
- * @param[in] recommendedSize The recommended size of the data to send
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the next data.
+ *
+ * @since 2.0
+ *
+ * @return The buffer to read
+ * @param[in] recommendedSize The recommended size of the data to send
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual Tizen::Base::ByteBuffer* GetNextDataN(int recommendedSize);
private:
*
* @since 2.0
*
- * The %HttpRequest class represents an HTTP request message that stores a method (for example, HTTP GET), a URI, and the other message headers
+ * The %HttpRequest class represents an HTTP request message that stores a method (for example, HTTP GET), a URI, other message headers
* and the body supplied by the HttpMessage base class.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
{
public:
- /**
- * Sets an HTTP method of the request header. @n
- * The default method is @c NET_HTTP_METHOD_GET.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] method An HTTP method
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_STATE The corresponding transaction is already submitted.
- * @remarks The detailed descriptions of the HTTP methods are as follows: @n
- * 1) The OPTIONS method represents a request for information about the communication options available on the request/response chain
- * identified by the Request-URI. This method may include a message body to make more detailed queries. To do so, specify the Content-Length
- * (or Transfer-Encoding), and Content-Type header fields. However, if the server does not support this, the server may discard the body. @n
- * 2) The GET method retrieves whatever information is identified by the Request-URI. @n
- * 3) The HEAD method is identical to GET except that the server must not return a response message body. The GET and HEAD methods do
- * not include a message body. @n
- * 4) The POST method is used to request that the origin server accepts the entity enclosed in the request as a new subordinate of the
- * resource identified by the Request-URI. @n
- * 5) The PUT method requests that the enclosed entity be stored under the supplied Request-URI. @n
- * When you are using the POST or PUT methods, be sure to specify the Content-Length header field, which is the message body length. @n
- * 6) The DELETE method requests that the origin server deletes the resource identified by the Request-URI.
- * @see GetMethod()
- */
+ /**
+ * Sets the HTTP method of a request header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] method The HTTP method @n
+ * The default value is @c NET_HTTP_METHOD_GET.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_STATE The corresponding transaction is already submitted.
+ * @remarks The detailed descriptions of the HTTP methods are as follows: @n
+ * 1) The OPTIONS method represents a request for information about the communication options available on the request/response chain
+ * identified by the Request-URI. This method may include a message body to make more detailed queries. To do so, specify the Content-Length
+ * (or Transfer-Encoding), and Content-Type header fields. However, if the server does not support this, the server may discard the body. @n
+ * 2) The GET method retrieves whatever information is identified by the Request-URI. @n
+ * 3) The HEAD method is identical to GET except that the server must not return a response message body. The GET and HEAD methods do
+ * not include a message body. @n
+ * 4) The POST method is used to request that the origin server accepts the entity enclosed in the request as a new subordinate of the
+ * resource identified by the Request-URI. @n
+ * 5) The PUT method requests that the enclosed entity be stored under the supplied Request-URI. @n
+ * When the user is using the POST or PUT methods, be sure to specify the Content-Length header field, which is the message body length. @n
+ * 6) The DELETE method requests that the origin server deletes the resource identified by the Request-URI.
+ * @see GetMethod()
+ */
result SetMethod(NetHttpMethod method);
- /**
- * Sets a custom method of the request header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] method An HTTP method
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_STATE The corresponding transaction is already submitted.
- * @remarks This method can be used to user-defined methods as well as HTTP 1.1 methods like 'GET, PUT, POST, HEAD etc'.
- * @see GetCustomMethod()
- */
+ /**
+ * Sets the custom method of a request header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] method The HTTP method
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_STATE The corresponding transaction is already submitted.
+ * @remarks This method can be used for user-defined methods as well as HTTP 1.1 methods like 'GET, PUT, POST, HEAD and so on'.
+ * @see GetCustomMethod()
+ */
result SetCustomMethod(const Tizen::Base::String& method);
- /**
- * Sets an HTTP version of the request header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] version An HTTP version
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_STATE The corresponding transaction is already submitted.
- * @see GetVersion()
- */
+ /**
+ * Sets the HTTP version of a request header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] version The HTTP version
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_STATE The corresponding transaction is already submitted.
+ * @see GetVersion()
+ */
result SetVersion(HttpVersion version);
- /**
- * Sets a URI of the request header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] uri The raw URI @n
- * The URI must be a valid URI.
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c uri is invalid.
- * @exception E_INVALID_STATE The corresponding transaction is already submitted.
- * @remarks The URI must be encoded properly according to RFC 2396 before using this method.
- * The ending slash is a required part of a URL specifying a directory.
- * @see Tizen::Base::Utility::Uri
- * @see GetUri()
- */
+ /**
+ * Sets the URI of a request header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] uri The raw URI @n
+ * The URI must be a valid URI.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c uri is invalid.
+ * @exception E_INVALID_STATE The corresponding transaction is already submitted.
+ * @remarks
+ * - The URI must be encoded properly according to RFC 2396 before using this method.
+ * - The ending slash is a required part of the URL specifying a directory.
+ * @see Tizen::Base::Utility::Uri
+ * @see GetUri()
+ */
result SetUri(const Tizen::Base::String& uri);
- /**
- * Sets the request message body.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] body The message body data
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_SESSION The session handle is invalid.
- * @exception E_INVALID_TRANSACTION The transaction handle is invalid.
- * @exception E_OUT_OF_RANGE The submitted body size is out of range.
- * @exception E_INVALID_STATE Either of the following conditions has occurred: @n
- * - The corresponding transaction is already submitted. @n
- * - A chunked mode is not enabled.
- * @exception E_UNKNOWN An unknown error has occurred.
- * @remarks This method can be used in two different situations. @n
- * @li Before submitting the request: @n
- * In this case, this method can be called several times consecutively, and all the bodies are appended together in the message queue until
- * the HttpTransaction::Submit() method is called. Set the message body, when the POST or PUT method is used. @n
- * @li After receiving an ADDCHUNK event: @n
- * In this case, this method must be invoked only once at a time. The recommended chunk size is given in IHttpTransactionEventListener::OnTransactionReadyToWrite().
- * @see SetMethod()
- * @see NetHttpMethod
- */
+ /**
+ * Sets the request message body.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] body The message body data
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_SESSION The session handle is invalid.
+ * @exception E_INVALID_TRANSACTION The transaction handle is invalid.
+ * @exception E_OUT_OF_RANGE The submitted body size is out of the valid range.
+ * @exception E_INVALID_STATE Either of the following conditions has occurred:
+ * - The corresponding transaction is already submitted.
+ * - The chunked mode is not enabled.
+ * @exception E_UNKNOWN An unknown error has occurred.
+ * @remarks This method can be used in two different situations. @n
+ * @li Before submitting the request: @n
+ * In this case, this method can be called several times consecutively, and all the bodies are appended together in the message queue until
+ * the HttpTransaction::Submit() method is called. Set the message body, when the POST or PUT method is used. @n
+ * @li After receiving an ADDCHUNK event: @n
+ * In this case, this method must be invoked only once at a time. The recommended chunk size is given in IHttpTransactionEventListener::OnTransactionReadyToWrite().
+ * @see SetMethod()
+ * @see NetHttpMethod
+ */
virtual result WriteBody(const Tizen::Base::ByteBuffer& body);
- /**
- * Sets the request entity.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] entity An instance of IHttpEntity to send
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_SESSION The session handle is invalid.
- * @exception E_INVALID_TRANSACTION The transaction handle is invalid.
- * @exception E_OUT_OF_RANGE The body size is out of range.
- * @exception E_INVALID_STATE The WriteBody() method is already called.
- * @remarks The instance of IHttpEntity is used by the internal platform.
- * Do not delete or change the instance of %IHttpEntity before the IHttpTransactionEventListener::OnTransactionCompleted() or IHttpTransactionEventListener::OnTransactionAborted() method is called.
- */
+ /**
+ * Sets the request entity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] entity An instance of IHttpEntity to send
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_SESSION The session handle is invalid.
+ * @exception E_INVALID_TRANSACTION The transaction handle is invalid.
+ * @exception E_OUT_OF_RANGE The body size is out of the valid range.
+ * @exception E_INVALID_STATE The WriteBody() method is already called.
+ * @remarks The instance of IHttpEntity is used by the internal platform.
+ * Do not delete or change the instance of %IHttpEntity before the IHttpTransactionEventListener::OnTransactionCompleted() or IHttpTransactionEventListener::OnTransactionAborted() method is called.
+ */
result SetEntity(IHttpEntity& entity);
- /**
- * Gets the HttpHeader object of the HTTP request.
- *
- * @since 2.0
- *
- * @return The header object of the HTTP request, @n
- * else @c null if the header is not set properly
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_HEADER The header is @c null.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks This method is used to access the header associated with a transaction's request. The handle is obtained from the %HttpRequest object
- * associated with the transaction. Adding, modifying, or removing a header field is done using this header handle.
- */
+ /**
+ * Gets the HttpHeader object of an HTTP request.
+ *
+ * @since 2.0
+ *
+ * @return The header object of the HTTP request, @n
+ * else @c null if the header is not set properly
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_HEADER The header is @c null.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - This method is used to access the header associated with a transaction's request. The handle is obtained from the %HttpRequest object
+ * associated with the transaction. Adding, modifying, or removing a header field is done using this header handle.
+ */
virtual HttpHeader* GetHeader(void) const;
- /**
- * Sets the string to be sent in the cookie header field of %HttpRequest.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] cookieString The cookie string @n
- * For example, Cookie: cookie-name1=cookie-value1;cookie-name2=cookie-value2.
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid in this state.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- */
+ /**
+ * Sets the string to be sent in the cookie header field of %HttpRequest.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] cookieString The cookie string @n
+ * For example, Cookie: cookie-name1=cookie-value1;cookie-name2=cookie-value2.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid in this state.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ */
result SetCookie(const Tizen::Base::String& cookieString);
- /**
- * Gets the cookie header field of %HttpRequest.
- *
- * @since 2.0
- *
- * @return The cookie string
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The cookie is empty.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the cookie header field of %HttpRequest.
+ *
+ * @since 2.0
+ *
+ * @return The cookie string
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The cookie is empty.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::String GetCookie(void) const;
- /**
- * Sets the Accept-Encoding header field of %HttpRequest. @n
- * This header can be used to specify certain Content-Encoding which are acceptable for the response.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] encoding The accept encoding @n
- * Three encodings ("identity", "gzip", "deflate") are supported. @n
- * If @c encoding is a empty string, an Accept-Encoding header containing all supported encodings will be set.
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c encoding is invalid.
- * @exception E_INVALID_STATE The corresponding transaction is already submitted.
- * @see GetAcceptEncoding()
- */
+ /**
+ * Sets the Accept-Encoding header field of %HttpRequest. @n
+ * This header can be used to specify certain Content-Encodings which are acceptable for the response.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] encoding The acceptable encoding @n
+ * Three encodings ("identity", "gzip" and "deflate") are supported. @n
+ * If @c encoding is an empty string, an Accept-Encoding header containing all the supported encodings is set.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c encoding is invalid.
+ * @exception E_INVALID_STATE The corresponding transaction is already submitted.
+ * @see GetAcceptEncoding()
+ */
result SetAcceptEncoding(const Tizen::Base::String& encoding);
protected:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
- * @see Construct()
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ */
HttpRequest(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpRequest(void);
- /**
- * Initializes this instance of %HttpRequest with the specified parameters.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] httpTransaction The HTTP transaction
- * @param[in] pCommonHeader A header object that stores the common header
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is @c null.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Initializes this instance of %HttpRequest with the specified parameters.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] httpTransaction The HTTP transaction
+ * @param[in] pCommonHeader The header object that stores the common header
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is @c null.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result Construct(const HttpTransaction& httpTransaction, const HttpHeader* pCommonHeader);
- /**
- * Gets an HTTP method of the request header.
- *
- * @since 2.0
- *
- * @return HTTP method
- * @see SetMethod()
- */
+ /**
+ * Gets the HTTP method of a request header.
+ *
+ * @since 2.0
+ *
+ * @return The HTTP method
+ * @see SetMethod()
+ */
NetHttpMethod GetMethod(void) const;
- /**
- * Gets a custom method of the request header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[out] method The name of custom method
- * @exception E_SUCCESS The method is successful.
- * @see SetCustomMethod()
- */
+ /**
+ * Gets the custom method of a request header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[out] method The name of the custom method
+ * @exception E_SUCCESS The method is successful.
+ * @see SetCustomMethod()
+ */
result GetCustomMethod(Tizen::Base::String& method) const;
- /**
- * Gets an HTTP version of the request header.
- *
- * @since 2.0
- *
- * @return A version of HTTP
- * @see SetVersion()
- */
+ /**
+ * Gets the HTTP version of a request header.
+ *
+ * @since 2.0
+ *
+ * @return The HTTP version
+ * @see SetVersion()
+ */
HttpVersion GetVersion(void) const;
- /**
- * Gets a URI of the request header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[out] uri The raw URI
- * @exception E_SUCCESS The method is successful.
- * @see SetUri()
- */
+ /**
+ * Gets the URI of a request header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[out] uri The raw URI
+ * @exception E_SUCCESS The method is successful.
+ * @see SetUri()
+ */
result GetUri(Tizen::Base::String& uri) const;
- /**
- * Gets the message body associated with an HTTP Request.
- *
- * @since 2.0
- *
- * @return The response body object
- * @exception E_SUCCESS The method is successful.
- * @exception E_EMPTY_BODY The requested body is empty.
- * @exception E_OUT_OF_MEMORY The ByteBuffer size is smaller than the request body size.
- * @exception E_INVALID_STATE The method invoked is invalid in this state.
- * @exception E_OUT_OF_RANGE The @c data size exceeds the maximum range.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks Be sure to @c Flip() the @c body, which is Tizen::Base::ByteBuffer, before reading any data in the %Tizen::Base::ByteBuffer instance.
- */
+ /**
+ * Gets the message body associated with an HTTP Request.
+ *
+ * @since 2.0
+ *
+ * @return The response body object
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_EMPTY_BODY The requested body is empty.
+ * @exception E_OUT_OF_MEMORY The ByteBuffer size is smaller than the request body size.
+ * @exception E_INVALID_STATE The method invoked is invalid in this state.
+ * @exception E_OUT_OF_RANGE The @c data size exceeds the maximum range.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Be sure to Flip() the @c body, which is Tizen::Base::ByteBuffer, before reading any data in the %Tizen::Base::ByteBuffer instance.
+ */
virtual Tizen::Base::ByteBuffer* ReadBodyN(void);
- /**
- * Gets the Accept-Encoding header field of %HttpRequest.
- *
- * @since 2.0
- *
- * @return The accept encoding
- *
- * @see SetAcceptEncoding()
- */
+ /**
+ * Gets the Accept-Encoding header field of %HttpRequest.
+ *
+ * @since 2.0
+ *
+ * @return The accept encoding
+ *
+ * @see SetAcceptEncoding()
+ */
Tizen::Base::String GetAcceptEncoding(void) const;
private:
*
* @since 2.0
*
- * The %HttpResponse class represents a response message that stores a status code, the status text, and the server version information, as well as
+ * The %HttpResponse class represents a response message that stores the status code, status text, and server version information, as well as
* the message headers and body supplied by the HttpMessage base class.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_connectivity.htm">HTTP Guide</a>.
{
public:
- /**
- * @if OSPDEPREC
- * Gets the status code from the response header.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated. Instead of using this method, it is recommended to use the GetHttpStatusCode() method that returns the status code as an integer type.
- * @since 2.0
- *
- * @return The status code, @n
- * else @c -1 if an error occurs
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE Invoke this method before receiving a response header.
- * @exception E_INVALID_DATA The status code is not defined.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks The @c statusText gives a short textual description of the status code. It is placed after the status code on the first line of the
- * response. The specific error code can be accessed using the GetLastResult() method.
- * @see NetHttpStatusCode
- * @see SetStatusCode()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Gets the status code from a response header.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated. Instead of using this method, it is recommended to use the GetHttpStatusCode() method that returns the status code as an integer type.
+ * @since 2.0
+ *
+ * @return The status code, @n
+ * else @c -1 if an error occurs
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This method has been invoked before receiving the response header.
+ * @exception E_INVALID_DATA The status code is not defined.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ *
+ * @see SetStatusCode()
+ * @endif
+ */
NetHttpStatusCode GetStatusCode(void) const;
- /**
- * Gets the HTTP status code from the response header.
- *
- * @since 2.0
- *
- * @return The status code, @n
- * else @c -1 if an error occurs
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE Invoke this method before receiving a response header.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks The @c statusText gives a short textual description of the status code. It is placed after the status code on the first line of the
- * response.
- * @see SetHttpStatusCode()
- */
+ /**
+ * Gets the HTTP status code from a response header.
+ *
+ * @since 2.0
+ *
+ * @return The status code, @n
+ * else @c -1 if an error occurs
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This method has been invoked before receiving the response header.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ *
+ * @see SetHttpStatusCode()
+ */
int GetHttpStatusCode(void) const;
- /**
- * Gets a short textual description of the status code from the response header. @n
- * This description is placed after the status code on the first line of the response.
- *
- * @since 2.0
- *
- * @return The status description, @n
- * else an empty string when the status text is not defined
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE Invoke this method before receiving a response header.
- * @exception E_INVALID_DATA The status text is not defined.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetStatusText()
- */
+ /**
+ * Gets a short textual description of the status code from a response header. @n
+ * This description is placed after the status code on the first line of the response.
+ *
+ * @since 2.0
+ *
+ * @return The status description, @n
+ * else an empty string if the status text is not defined
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This method has been invoked before receiving the response header.
+ * @exception E_INVALID_DATA The status text is not defined.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetStatusText()
+ */
Tizen::Base::String GetStatusText(void) const;
- /**
- * Gets the version of the protocol used by the server from the response header.
- *
- * @since 2.0
- *
- * @return The protocol version, @n
- * else an empty string when the version is not defined
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE Invoke this method before receiving a response header.
- * @exception E_INVALID_DATA The version is not defined.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetVersion()
- */
+ /**
+ * Gets the version of the protocol used by the server from a response header.
+ *
+ * @since 2.0
+ *
+ * @return The protocol version, @n
+ * else an empty string when the version is not defined
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This method is invoked before receiving the response header.
+ * @exception E_INVALID_DATA The version is not defined.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetVersion()
+ */
Tizen::Base::String GetVersion(void) const;
- /**
- * Gets the HttpHeader object of a response header.
- *
- * @since 2.0
- *
- * @return The header object, @n
- * else @c null if the header is not received
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_HEADER The header is @c null.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the HttpHeader object of a response header.
+ *
+ * @since 2.0
+ *
+ * @return The header object, @n
+ * else @c null if the header is not received
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_HEADER The header is @c null.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual HttpHeader* GetHeader(void) const;
- /**
- * Gets the message body of the response.
- *
- * @since 2.0
- *
- * @return The response body object
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE Invoke this method before receiving a response body.
- * @exception E_EMPTY_BODY The requested body is empty.
- * @exception E_OUT_OF_RANGE The specified @c data size exceeds the maximum range.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_IO The method has failed to read the data.
- * @exception E_UNKNOWN An unknown error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks This method can be invoked several times until there is no more data.
- */
+ /**
+ * Gets the message body of a response.
+ *
+ * @since 2.0
+ *
+ * @return The response body object
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This method has been invoked before receiving the response body.
+ * @exception E_EMPTY_BODY The requested body is empty.
+ * @exception E_OUT_OF_RANGE The specified @c data size exceeds the maximum range.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_IO The method has failed to read the data.
+ * @exception E_UNKNOWN An unknown error has occurred.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - This method can be invoked several times until there is no more data.
+ */
virtual Tizen::Base::ByteBuffer* ReadBodyN(void);
- /**
- * Gets the list of cookies received in the response.
- *
- * @since 2.0
- *
- * @return A list containing HttpCookie instances, @n
- * else @c null if no cookie is received in the response
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid in this state.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the list of cookies received in a response.
+ *
+ * @since 2.0
+ *
+ * @return The list that contains HttpCookie instances, @n
+ * else @c null if no cookie is received in the response
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid in this state.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::Collection::IList* GetCookies(void) const;
protected:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize the instance.
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ *
+ * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize the instance.
+ */
HttpResponse(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpResponse(void);
- /**
- * Initializes this instance of %HttpResponse with the specified parameter.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] httpTransaction The HTTP transaction
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_ARG The specified input parameter is @c null.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Initializes this instance of %HttpResponse with the specified parameter.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] httpTransaction The HTTP transaction
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_ARG The specified input parameter is @c null.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result Construct(const HttpTransaction& httpTransaction);
protected:
- /**
- * @if OSPDEPREC
- * Sets the status code from the response header.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated. Instead of using this method, it is recommended to use the SetHttpStatusCode() method that sets
- * the status code as integer type.
- * @since 2.0
- *
- * @return An error code
- * @param[in] statusCode The status code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @remarks The @c statusCode element is a 3-digit integer result code of the attempt to understand and satisfy the request. The first digit of the
- * @c statusCode defines the class of response. The last two digits do not have any categorization role.
- * @see GetStatusCode()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Sets the status code of a response header.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated. Instead of using this method, it is recommended to use the SetHttpStatusCode() method that sets
+ * the status code as integer type.
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] statusCode The status code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @remarks The @c statusCode element is a 3-digit integer result code of an attempt to understand and satisfy a request. The first digit of the
+ * @c statusCode defines the class of a response. The last two digits do not have any categorization role.
+ * @see GetStatusCode()
+ * @endif
+ */
result SetStatusCode(NetHttpStatusCode statusCode);
- /**
- * Sets the status code from the response header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] statusCode The status code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @remarks The @c statusCode element is a 3-digit integer result code of the attempt to understand and satisfy the request. The first digit of the
- * @c statusCode defines the class of response. The last two digits do not have any categorization role.
- * @see GetHttpStatusCode()
- */
+ /**
+ * Sets the status code of a response header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] statusCode The status code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @remarks The @c statusCode element is a 3-digit integer result code of an attempt to understand and satisfy a request. The first digit of the
+ * @c statusCode defines the class of a response. The last two digits do not have any categorization role.
+ * @see GetHttpStatusCode()
+ */
result SetHttpStatusCode(int statusCode);
- /**
- * Sets the status text from the response header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] statusText The status description
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is @c null.
- * @remarks The @c statusText gives a short textual description of the status code. This description is placed after the status code on the first
- * line of the response.
- * @see GetStatusText()
- */
+ /**
+ * Sets the status text of a response header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] statusText The status description
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is @c null.
+ * @remarks The @c statusText gives a short textual description of the status code. This description is placed after the status code on the first
+ * line of the response.
+ * @see GetStatusText()
+ */
result SetStatusText(const Tizen::Base::String& statusText);
- /**
- * Sets the version of the protocol used by the server from the response header.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] httpVersion The protocol version
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is @c null.
- * @see GetVersion()
- */
+ /**
+ * Sets the version of a protocol used by the server from a response header.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] httpVersion The protocol version
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is @c null.
+ * @see GetVersion()
+ */
result SetVersion(const Tizen::Base::String& httpVersion);
- /**
- * Sets the response body.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] body The message body data
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_STATE The method invoked is invalid in this state.
- * @remarks This method can be invoked several times until there is no more data to write.
- */
+ /**
+ * Sets the response body.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] body The message body data
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_STATE The method invoked is invalid in this state.
+ * @remarks This method can be invoked several times until there is no more data to write.
+ */
virtual result WriteBody(const Tizen::Base::ByteBuffer& body);
- /**
- * Reads the data from the data communicated.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] headerLen The header length to read
- * @param[in] bodyLen The body length to read
- * @param[out] rcvHeaderLen The received header length
- * @param[out] rcvBodyLen The received body length
- * @exception E_SUCCESS The method is successful.
- * @exception E_IO The method has failed to read the data.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_SESSION The session handle is invalid.
- * @exception E_INVALID_TRANSACTION The transaction handle is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_OUT_OF_RANGE The read data exceeds the maximum range.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation. @n
- * The comparer has failed to compare keys.
- * @exception E_INVALID_HEADER An invalid header is received in response.
- */
+ /**
+ * Reads data from the data that is communicated.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] headerLen The header length to read
+ * @param[in] bodyLen The body length to read
+ * @param[out] rcvHeaderLen The received header length
+ * @param[out] rcvBodyLen The received body length
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_IO The method has failed to read the data.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_SESSION The session handle is invalid.
+ * @exception E_INVALID_TRANSACTION The transaction handle is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_OUT_OF_RANGE The read data exceeds the maximum range.
+ * @exception E_INVALID_OPERATION Either of the following conditions has occurred:
+ * - The current state of the instance prohibits the execution of the specified operation.
+ * - The comparer has failed to compare the keys.
+ * @exception E_INVALID_HEADER An invalid header is received in the response.
+ */
result Read(int headerLen, int bodyLen, int& rcvHeaderLen, int& rcvBodyLen);
- /**
- * Saves the cookie received in the response to %HttpResponse.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pHeader A response header
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid in this state.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @remarks Transaction events use this method to set the cookie received in the response.
- * @see GetCookies()
- */
+ /**
+ * Saves the cookie received in the response to %HttpResponse.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pHeader The response header
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid in this state.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @remarks Transaction events are used in this method to set the cookie received in the response.
+ * @see GetCookies()
+ */
result SetCookie(Tizen::Net::Http::HttpHeader* pHeader);
private:
*
* @since 2.0
*
- * The %HttpSession class represents an HTTP session. The session encapsulates the client's HTTP activity over the duration of the client's execution. It is a set of transactions using the same
+ * The %HttpSession class represents an HTTP session. The session encapsulates the client's HTTP activity for the duration of the client's execution. It is a set of transactions using the same
* connection settings (such as proxy). The client may use several sessions concurrently if desired.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_session.htm">HTTP Session</a>.
* @since 2.0
*
* @return An error code
- * @param[in] sessionMode The session mode to open the session
- * @param[in] pProxyAddr A proxy address @n
- * The specified @c pProxyAddr must be a valid URL. If @c pProxyAddr is @c null, %HttpSession uses the system
+ * @param[in] sessionMode The session mode to open the session
+ * @param[in] pProxyAddr The proxy address @n
+ * The specified @c pProxyAddr must be a valid URL @n
+ * If @c pProxyAddr is @c null, %HttpSession uses the system's
* default proxy address.
- * @param[in] hostAddr A host address @n
- * The specified @c hostAddr must be a valid URL. If session mode is NET_HTTP_SESSION_MODE_MULTIPLE_HOST,
- * @c hostAddr is ignored (In case of multiple host mode, @c hostAddr is set to HttpRequest::SetUri()).
+ * @param[in] hostAddr The host address @n
+ * The specified @c hostAddr must be a valid URL @n
+ * If the session mode is @c NET_HTTP_SESSION_MODE_MULTIPLE_HOST,
+ * @c hostAddr is ignored (In case of the multiple host mode, @c hostAddr is set to HttpRequest::SetUri()).
* @param[in] pCommonHeader An instance of HttpHeader @n
* This is a common header used in all the transactions included in this session.
* @param[in] flag Set to @c NET_HTTP_COOKIE_FLAG_ALWAYS_AUTOMATIC if the cookies must be handled automatically, @n
* else @c NET_HTTP_COOKIE_FLAG_ALWAYS_MANUAL if the cookies must be handled manually
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_INVALID_CONNECTION The net connection is invalid.
- * @exception E_MAX_EXCEEDED The number of currently opened sessions has exceeded the maximum limit.
- * @exception E_INVALID_PROXY The specified proxy address is invalid.
+ * @exception E_MAX_EXCEEDED The number of currently opened sessions has exceeded the maximum limit.
+ * @exception E_INVALID_PROXY The specified proxy address is invalid.
* @exception E_UNKNOWN An unknown error has occurred.
* @exception E_SYSTEM An internal error has occurred.
* @exception E_INVALID_ADDRESS The host address is invalid.
- * @remarks In the NORMAL and PIPELINING session modes, all the transactions within this sessions are submitted through the same connection. While
+ * @remarks In the NORMAL and PIPELINING session modes, all the transactions within these sessions are submitted through the same connection. While
* only one transaction is processed at a time in the Normal mode, multiple transactions can be pipelined in the Pipelining mode. In the
* normal mode, in order to submit the next transaction, the previous transaction must be complete.
*/
* @return An error code
* @param[in] netConnection A NetConnection instance
* @param[in] sessionMode The session mode to open the session
- * @param[in] pProxyAddr A proxy address @n
+ * @param[in] pProxyAddr The proxy address @n
* The specified @c pProxyAddr must be a valid URL. If @c pProxyAddr is @c null, %HttpSession uses the system
* default proxy address.
- * @param[in] hostAddr A host address @n
+ * @param[in] hostAddr The host address @n
* The specified @c hostAddr must be a valid URL.
* @param[in] pCommonHeader An instance of HttpHeader @n
* This is a common header used in all the transactions included in this session.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_INVALID_CONNECTION The specified @c netConnection is invalid.
- * @exception E_MAX_EXCEEDED Unable to setup new connection due to too many existing connections.
+ * @exception E_MAX_EXCEEDED Unable to setup a new connection due to too many existing connections.
* @exception E_INVALID_PROXY The specified @c pProxyAddr is invalid.
* @exception E_UNKNOWN An unknown error has occurred.
* @exception E_SYSTEM An internal error has occurred.
* @exception E_INVALID_ADDRESS The host address is invalid.
- * @remarks In the NORMAL and PIPELINING session mode, all the transactions within this session will be submitted through the same connection.
+ * @remarks In the NORMAL and PIPELINING session mode, all the transactions within this session are submitted through the same connection.
* While only one transaction is processed at a time in the Normal mode, multiple transactions can be pipelined in the Pipelining mode.
* In the normal mode, in order to submit the next transaction, the previous transaction must be complete.
*/
* @privlevel public
* @privilege %http://tizen.org/privilege/http
*
- * @return A pointer to a new HttpTransaction, @n
+ * @return A pointer to the new HttpTransaction, @n
* else @c null if an error occurs
* @exception E_SUCCESS The method is successful.
* @exception E_MAX_EXCEEDED The maximum number of transactions has been reached.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks The corresponding event listener must also be added in the same thread. A single transaction can be opened in a session at a time. After closing an open transaction, another
- * transaction can be opened.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - The corresponding event listener must also be added in the same thread.
+ * - A single transaction can be opened in a session at a time. After closing an open transaction, another
+ * transaction can be opened.
*/
HttpTransaction* OpenTransactionN(void);
* @privlevel public
* @privilege %http://tizen.org/privilege/http
*
- * @return The pointer to a new HttpTransaction, @n
+ * @return A pointer to the new HttpTransaction, @n
* else @c null if an error occurs
* @param[in] auth The authentication information
* @exception E_SUCCESS The method is successful.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks The corresponding event listener must also be added in the same thread. A single transaction at a time can be opened in a session. After closing an open transaction, another
- * transaction can be opened.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - The corresponding event listener must also be added in the same thread.
+ * - A single transaction at a time can be opened in a session. After closing an open transaction, another
+ * transaction can be opened.
*/
HttpTransaction* OpenTransactionN(const HttpAuthentication& auth);
* @return An error code
* @param[in] httpTransaction The HttpTransaction to cancel
* @exception E_SUCCESS The method is successful.
- * @exception E_OPERATION_CANCELED The specified transaction has already been canceled.
+ * @exception E_OPERATION_CANCELED The specified transaction has already been cancelled.
* @exception E_INVALID_STATE The method invoked is invalid.
* @exception E_INVALID_TRANSACTION The specified @c httpTransaction is invalid.
* @exception E_UNKNOWN An unknown error has occurred.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The canceled transaction is no longer considered active. Also, re-opening the transaction is not allowed.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks The cancelled transaction is no longer considered active. Also, re-opening the transaction is not allowed.
*/
result CancelTransaction(HttpTransaction& httpTransaction);
* @return An error code
* @param[in] httpTransaction The HttpTransaction to close
* @exception E_SUCCESS The method is successful.
- * @exception E_OBJ_NOT_FOUND The specified transaction is not found within the indicated range, or @n
- * The specified transaction is already deleted.
+ * @exception E_OBJ_NOT_FOUND Either of the following conditions has occurred:
+ * - The specified transaction is not found within the indicated range.
+ * - The specified transaction is already deleted.
* @exception E_INVALID_STATE The method invoked is invalid.
* @exception E_INVALID_ARG The specified input parameter is invalid.
* @exception E_INVALID_SESSION The session is invalid.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*/
result CloseTransaction(HttpTransaction& httpTransaction);
*
* @return An error code
* @exception E_SUCCESS The method is successful.
- * @exception E_OBJ_NOT_FOUND The specified transaction is not found within the indicated range, or @n
- * the specified transaction is already deleted.
+ * @exception E_OBJ_NOT_FOUND Either of the following conditions has occurred:
+ * - The specified transaction is not found within the indicated range.
+ * - The specified transaction is already deleted.
* @exception E_INVALID_SESSION The session is invalid.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*/
result CloseAllTransactions(void);
/**
- * Sets the value to redirect the HTTP request automatically (the value is @c false by default).
+ * Sets the value to redirect an HTTP request automatically (the value is @c false by default).
*
* @since 2.0
*
* @privlevel public
* @privilege %http://tizen.org/privilege/http
*
- * @return An integer value indicating the number of currently active transactions, @n
+ * @return The integer value that indicates the number of currently active transactions, @n
* else @c -1 if an error occurs
* @exception E_SUCCESS The method is successful.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks The transactions in the state between Submitted and Cancelled (or Closed) are considered to be active transactions.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - The transactions in the state between Submitted and Cancelled (or Closed) are considered to be active transactions.
*/
int GetActiveTransactionCount(void) const;
/**
- * Gets the maximum number of transactions, the current instance of %HttpSession can have.
+ * Gets the maximum number of transactions that the current instance of %HttpSession can have.
*
* @since 2.0
* @privlevel public
* @privilege %http://tizen.org/privilege/http
*
- * @return An integer value indicating the maximum number of transactions allowed @n
- * In NET_HTTP_SESSION_MODE_MULTIPLE_HOST mode, the return value is zero.
+ * @return The integer value that indicates the maximum number of transactions allowed @n
+ * In the ::NET_HTTP_SESSION_MODE_MULTIPLE_HOST mode, the return value is zero.
* @exception E_SUCCESS The method is successful.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks In NET_HTTP_SESSION_MODE_MULTIPLE_HOST mode, the platform does not limit the number of maximum HttpTransaction that %HttpSession can have. @n
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - In the ::NET_HTTP_SESSION_MODE_MULTIPLE_HOST mode, the platform does not limit the number of maximum HttpTransaction
+ * that %HttpSession can have.
*/
int GetMaxTransactionCount(void) const;
/**
- * Gets the pointer to HttpCookieStorageManager.
+ * Gets a pointer to HttpCookieStorageManager.
*
* @since 2.0
*
- * @return The pointer to HttpCookieStorageManager, @n
+ * @return A pointer to HttpCookieStorageManager, @n
* else @c null if an error occurs
*/
HttpCookieStorageManager* GetCookieStorageManager(void) const;
/**
* @class HttpStringEntity
- * @brief This class represents a http body for the text content.
+ * @brief This class represents the http body of the text content.
*
* @since 2.0
*
- * The %HttpStringEntity class represents a http body for the text content.
+ * The %HttpStringEntity class represents the http body of the text content.
*
- * The following example demonstrates how to use the %HttpStringEntity class to send the content for text to the server using this class.
+ * The following example demonstrates how to use the %HttpStringEntity class to send text content to the server.
*
* @code
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method
- * must be called explicitly to initialize this instance.
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ */
HttpStringEntity(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpStringEntity(void);
- /**
- * Initializes this instance of %HttpStringEntity with the default content type and character set.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] text The text of the body
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ENCODING_RANGE The specified @c text contains code points that are outside the bounds of the default encoding standard ("ISO-8859-1").
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The default content type is "text/plain" and default charset is "ISO-8859-1".
- */
+ /**
+ * Initializes this instance of %HttpStringEntity with the default content type and character set.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] text The text of the body
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ENCODING_RANGE The specified @c text contains code points that are outside the bounds of the default encoding standard ("ISO-8859-1").
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The default content type is "text/plain" and default character set is "ISO-8859-1".
+ */
result Construct(const Tizen::Base::String& text);
- /**
- * Initializes this instance of %HttpStringEntity with the specified parameters.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] text The text of the body
- * @param[in] contentType The content type of @c text
- * @param[in] charset The character set of @c text
- * @param[in] encoding An encoding scheme for the specified @c text
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_INVALID_ENCODING_RANGE The specified @c text contains code points that are outside the bounds of @c encoding.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Initializes this instance of %HttpStringEntity with the specified parameters.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] text The text of the body
+ * @param[in] contentType The content type of @c text
+ * @param[in] charset The character set of @c text
+ * @param[in] encoding The encoding scheme for the specified @c text
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_INVALID_ENCODING_RANGE The specified @c text contains code points that are outside the bounds of @c encoding.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result Construct(const Tizen::Base::String& text, const Tizen::Base::String& contentType, const Tizen::Base::String& charset, const Tizen::Text::Encoding& encoding);
HttpStringEntity& operator =(const HttpStringEntity& rhs);
public:
- /**
- * Gets the length of the request content.
- *
- * @since 2.0
- *
- * @return The length of the content, @n
- * else @c -1 if the content length is unknown
- */
+ /**
+ * Gets the length of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The length of the content, @n
+ * else @c -1 if the content length is unknown
+ */
virtual long long GetContentLength(void) const;
- /**
- * Gets the type of the request content.
- *
- * @since 2.0
- *
- * @return The type of the content
- */
+ /**
+ * Gets the type of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The type of the content
+ */
virtual Tizen::Base::String GetContentType(void) const;
protected:
- /**
- * Checks whether the next data exists.
- *
- * @since 2.0
- *
- * @return @c true if the next data exists, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Checks whether the next data exists.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the next data exists, @n
+ * else @c false
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual bool HasNextData(void);
- /**
- * Gets the next data.
- *
- * @since 2.0
- *
- * @return The buffer to be read
- * @param[in] recommendedSize The recommended size of the data to send
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the next data.
+ *
+ * @since 2.0
+ *
+ * @return The buffer to read
+ * @param[in] recommendedSize The recommended size of the data to send
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual Tizen::Base::ByteBuffer* GetNextDataN(int recommendedSize);
private:
{
public:
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpTransaction(void);
public:
- /**
- * Submits the HTTP request.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_ARG A specified input parameter is invalid. @n
- * At least one of Uri, Method, Header, and Body is invalid.
- * @exception E_INVALID_HEADER The header is @c null.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_OUT_OF_RANGE The submitted data is out of range.
- * @exception E_MAX_EXCEEDED The number of active transactions has exceeded the maximum limit.
- * @exception E_INVALID_PROXY The proxy server address is invalid.
- * @exception E_DNS The DNS query has failed.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
- * @exception E_EMPTY_BODY The body is empty in a POST method case.
- * @exception E_INVALID_SESSION The session is invalid.
- * @exception E_AUTHENTICATION The authentication has failed.
- * @exception E_UNKNOWN An unknown error has occurred.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The appropriate request header and body must be set using HttpRequest before using this method.
- * If the session is in a non-pipeline mode, be sure not to submit a transaction before the previous transaction is completed.
- * @see HttpHeader
- */
+ /**
+ * Submits an HTTP request.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_ARG A specified input parameter is invalid. @n
+ * At least one of Uri, Method, Header, and Body is invalid.
+ * @exception E_INVALID_HEADER The header is @c null.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_OUT_OF_RANGE The submitted data is out of the valid range.
+ * @exception E_MAX_EXCEEDED The number of active transactions has exceeded the maximum limit.
+ * @exception E_INVALID_PROXY The proxy server address is invalid.
+ * @exception E_DNS The DNS query has failed.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
+ * @exception E_EMPTY_BODY The body is empty in the POST method case.
+ * @exception E_INVALID_SESSION The session is invalid.
+ * @exception E_AUTHENTICATION The authentication has failed.
+ * @exception E_UNKNOWN An unknown error has occurred.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - The appropriate request header and body must be set using HttpRequest before using this method.
+ * - If the session is in the non-pipeline mode, be sure not to submit a transaction before the previous transaction is completed.
+ * @see HttpHeader
+ */
result Submit(void);
- /**
- * Gets the authentication information.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/http
- *
- * @return A pointer to HttpAuthentication
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the authentication information.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/http
+ *
+ * @return A pointer to HttpAuthentication
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
HttpAuthentication* OpenAuthenticationInfoN(void);
- /**
- * Gets a pointer to the HttpRequest related to the transaction. @n
- * Setting a request header, method, URI, and body can be done by using the @c pHttpRequest pointer.
- *
- * @since 2.0
- *
- * @return The HttpRequest object pointer, @n
- * else @c null in case of an invalid condition
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_INVALID_DATA The request is not valid.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see Tizen::Net::Http::HttpRequest
- */
+ /**
+ * Gets a pointer to the HttpRequest related to a transaction. @n
+ * Setting a request header, method, URI, and body can be done by using the %HttpRequest pointer.
+ *
+ * @since 2.0
+ *
+ * @return The HttpRequest object pointer, @n
+ * else @c null in case an invalid condition occurs
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_INVALID_DATA The request is not valid.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
HttpRequest* GetRequest(void) const;
- /**
- * Gets a pointer to the HttpResponse related to the transaction. @n
- * Getting a response header and body can be done by using the @c pHttpResponse pointer.
- *
- * @since 2.0
- *
- * @return The HttpResponse object pointer, @n
- * else @c null if the response is not received
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_INVALID_DATA The response is not received.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see HttpResponse
- */
+ /**
+ * Gets a pointer to the HttpResponse related to a transaction. @n
+ * Getting a response header and body can be done by using the %HttpResponse pointer.
+ *
+ * @since 2.0
+ *
+ * @return The HttpResponse object pointer, @n
+ * else @c null if the response is not received
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_INVALID_DATA The response is not received.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
HttpResponse* GetResponse(void) const;
- /**
- * Adds the IHttpTransactionEventListener instance. @n
- * The added listener can listen to events as they are fired.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] listener The IHttpTransactionEventListener instance
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_OBJ_ALREADY_EXIST The listener is already added.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
- * because the caller thread is a worker thread.
- */
+ /**
+ * Adds an IHttpTransactionEventListener instance. @n
+ * The added listener can listen to events as they are fired.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] listener An IHttpTransactionEventListener instance
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OBJ_ALREADY_EXIST The listener is already added.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
+ * because the caller thread is a worker thread.
+ */
result AddHttpTransactionListener(IHttpTransactionEventListener& listener);
- /**
- * Removes the IHttpTransactionEventListener instance.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] listener The IHttpTransactionEventListener instance
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_OBJ_NOT_FOUND The specified instance is not found within the indicated range, or
- * the listener is already removed.
- */
+ /**
+ * Removes an IHttpTransactionEventListener instance.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] listener An IHttpTransactionEventListener instance
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_OBJ_NOT_FOUND Either of the following conditions has occurred:
+ * - The specified instance is not found within the indicated range.
+ * - The listener is already removed.
+ */
result RemoveHttpTransactionListener(IHttpTransactionEventListener& listener);
- /**
- * Sets the IHttpProgressEventListener instance.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] listener The IHttpProgressEventListener instance
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- */
+ /**
+ * Sets an IHttpProgressEventListener instance.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] listener An IHttpProgressEventListener instance
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ */
result SetHttpProgressListener(IHttpProgressEventListener& listener);
- /**
- * Sets a user object to the instance of %HttpTransaction.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pUserData The user data to set
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- */
+ /**
+ * Sets a user object to the instance of %HttpTransaction.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pUserData The user data to set
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ */
result SetUserObject(const Tizen::Base::Object* pUserData);
- /**
- * Gets a user object that is set to the instance of %HttpTransaction.
- *
- * @since 2.0
- *
- * @return An error code
- */
+ /**
+ * Gets a user object that is set to the instance of %HttpTransaction.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ */
Tizen::Base::Object* GetUserObject(void) const;
- /**
- * Enables OnTransactionReadyToWrite.
- *
- * @since 2.0
- *
- * @return @c true if the OnTransactionReadyToWrite listener is active, @n
- * else @c false
- */
+ /**
+ * Enables OnTransactionReadyToWrite.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the OnTransactionReadyToWrite listener is active, @n
+ * else @c false
+ */
bool EnableTransactionReadyToWrite(void);
- /**
- * Resumes the transaction after the IHttpTransactionEventListener::OnTransactionCertVerificationRequiredN() event is invoked. @n
- * As described in the IHttpTransactionEventListener section, the above event occurs in case of the uncertified server certificate.
- *
- * @since 2.0
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The current state of the instance prohibits the execution of the specified operation.
- */
+ /**
+ * Resumes the transaction after the IHttpTransactionEventListener::OnTransactionCertVerificationRequiredN() event is invoked. @n
+ * As described in the IHttpTransactionEventListener section, the above event occurs in case of an uncertified server certificate.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The current state of the instance prohibits the execution of the specified operation.
+ */
result Resume(void);
- /**
- * Pauses the transaction after the IHttpTransactionEventListener::OnTransactionCertVerificationRequiredN() event is invoked. @n
- * As described in the IHttpTransactionEventListener section, the above event occurs in case of the uncertified server certificate.
- *
- * @since 2.0
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The current state of the instance prohibits the execution of the specified operation.
- */
+ /**
+ * Pauses the transaction after the IHttpTransactionEventListener::OnTransactionCertVerificationRequiredN() event is invoked. @n
+ * As described in the IHttpTransactionEventListener section, the above event occurs in case of an uncertified server certificate.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The current state of the instance prohibits the execution of the specified operation.
+ */
result Pause(void);
- /**
- * Sets a client certificate to connect the server.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] certificateId The selected client certificate to set
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- * @remarks Start the AppControl(L"tizen.certificatemanager") for getting the selected client certificate. @n
- * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_certmgr.htm">here</a>.
- */
+ /**
+ * Sets a client certificate to connect to the server.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] certificateId The selected client certificate to set
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_STATE This instance is in an invalid state.
+ * @remarks Start the AppControl(L"tizen.certificatemanager") for getting the selected client certificate. @n
+ * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_certmgr.htm">here</a>.
+ */
result SetClientCertificate(int certificateId);
- /**
- * Sets the timeout in seconds that is the timeout for waiting the transaction. @n
- * A timeout value of zero means an infinite timeout.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] timeout A timeout for transaction
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_STATE The transaction is already submitted, or
- * the transaction is already closed.
- */
+ /**
+ * Sets the timeout in seconds that is the timeout for waiting for a transaction. @n
+ * A timeout value of zero means an infinite timeout.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] timeout The timeout for the transaction
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_STATE Either of the following conditions has occurred:
+ * - The transaction is already submitted.
+ * - The transaction is already closed.
+ */
result SetTimeout(int timeout);
- /**
- * Sets the flag to verify server certificate. (By default, the flag is @c HTTP_CV_FLAG_AUTOMATIC.)
+ /**
+ * Sets the flag to verify a server certificate. (By default, the flag is @c HTTP_CV_FLAG_AUTOMATIC.)
*
* @since 2.1
*
/**
* @file FNetHttpHttpTypes.h
- * @brief This is the header file for defining the primitive types for the HTTP operations.
+ * @brief This is the header file for defining the primitive types of HTTP operations.
*
- * This header file contains the definition of the primitive types for the HTTP operations.
+ * This header file contains the definition of the primitive types of HTTP operations.
*/
#ifndef _FNET_HTTP_HTTP_TYPES_H_
/**
* @enum NetHttpSessionMode
*
- * Defines the HTTP session mode.
+ * Defines the HTTP session modes.
*
* @since 2.0
*/
/**
* @enum HttpVersion
*
- * Defines the HTTP version.
+ * Defines the HTTP versions.
*
* @since 2.0
*/
* @if OSPDEPREC
* @enum NetHttpStatusCode
*
- * Defines the HTTP status code.
+ * Defines the HTTP status codes.
*
- * @brief <i> [Deprecated] </i>
- * @deprecated This enum is deprecated. Instead of using this enum, it is recommended to use the HTTP_STATUS_XXX constants.
- * @since 2.0
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This enum is deprecated. Instead of using this enum, it is recommended to use the HTTP_STATUS_XXX constants.
+ * @since 2.0
* @endif
*/
enum NetHttpStatusCode
NET_HTTP_STATUS_UNAUTHORIZED = 401, /**< @if OSPDEPREC The status code: 401 Unauthorized @endif */
NET_HTTP_STATUS_PAYMENT_REQUIRED = 402, /**< @if OSPDEPREC The status code: 402 Payment Required @endif */
NET_HTTP_STATUS_FORBIDDEN = 403, /**< @if OSPDEPREC The status code: 403 Forbidden @endif */
- NET_HTTP_STATUS_NOT_FOUND = 404, /**<@if OSPDEPREC The status code: 404 Not Found @endif */
+ NET_HTTP_STATUS_NOT_FOUND = 404, /**< @if OSPDEPREC The status code: 404 Not Found @endif */
NET_HTTP_STATUS_METHOD_NOT_ALLOWED = 405, /**< @if OSPDEPREC The status code: 405 Method Not Allowed @endif */
NET_HTTP_STATUS_NOT_ACCEPTABLE = 406, /**< @if OSPDEPREC The status code: 406 Not Acceptable @endif */
NET_HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED = 407, /**< @if OSPDEPREC The status code: 407 Proxy Authentication Required @endif */
NET_HTTP_STATUS_REQUEST_TIME_OUT = 408, /**< @if OSPDEPREC The status code: 408 Request Timeout (not used) @endif */
- NET_HTTP_STATUS_CONFLICT = 409, /**<@if OSPDEPREC The status code: 409 Conflict @endif */
+ NET_HTTP_STATUS_CONFLICT = 409, /**< @if OSPDEPREC The status code: 409 Conflict @endif */
NET_HTTP_STATUS_GONE = 410, /**< @if OSPDEPREC The status code: 410 Gone @endif */
NET_HTTP_STATUS_LENGTH_REQUIRED = 411, /**< @if OSPDEPREC The status code: 411 Length Required @endif */
- NET_HTTP_STATUS_PRECONDITION_FAILED = 412, /**<@if OSPDEPREC The status code: 412 Precondition Failed @endif */
+ NET_HTTP_STATUS_PRECONDITION_FAILED = 412, /**< @if OSPDEPREC The status code: 412 Precondition Failed @endif */
NET_HTTP_STATUS_REQUEST_ENTITY_TOO_LARGE = 413, /**< @if OSPDEPREC The status code: 413 Request Entity Too Large (not used) @endif */
NET_HTTP_STATUS_REQUEST_URI_TOO_LARGE = 414, /**< @if OSPDEPREC The status code: 414 Request-URI Too Long (not used) @endif */
NET_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE = 415, /**< @if OSPDEPREC The status code: 415 Unsupported %Media Type @endif */
*/
enum NetHttpAuthScheme
{
- NET_HTTP_AUTH_NONE = 0, /**< The no authentication type */
+ NET_HTTP_AUTH_NONE = 0, /**< No authentication type */
NET_HTTP_AUTH_PROXY_BASIC = 1, /**< The authentication type is Proxy Basic Authentication */
NET_HTTP_AUTH_PROXY_MD5 = 2, /**< The authentication type is Proxy Digest Authentication */
NET_HTTP_AUTH_WWW_BASIC = 3, /**< The authentication Type is HTTP Basic Authentication */
/**
* @enum NetHttpCookieFlag
*
- * Defines the HTTP cookie mode.
+ * Defines the HTTP cookie modes.
*
* @since 2.0
*/
enum NetHttpCookieFlag
{
NET_HTTP_COOKIE_FLAG_NONE, /**< The mode is not defined */
- NET_HTTP_COOKIE_FLAG_ALWAYS_AUTOMATIC, /**< The cookie will be parsed and saved, and also attached to request automatically */
- NET_HTTP_COOKIE_FLAG_ALWAYS_MANUAL /**< The cookie will be handled by the user action with Tizen::Net::Http::HttpRequest::SetCookie() and Tizen::Net::Http::HttpCookieStorageManager::GetCookies() */
+ NET_HTTP_COOKIE_FLAG_ALWAYS_AUTOMATIC, /**< The cookie is parsed and saved, and also attached to the request automatically */
+ NET_HTTP_COOKIE_FLAG_ALWAYS_MANUAL /**< The cookie is handled by the user action with Tizen::Net::Http::HttpRequest::SetCookie() and Tizen::Net::Http::HttpCookieStorageManager::GetCookies() */
};
/**
* @enum NetHttpCertificateVerificationFlag
*
- * Defines the certificate verification mode.
+ * Defines the certificate verification modes.
*
* @since 2.1
*/
enum NetHttpCertificateVerificationFlag
{
- HTTP_CV_FLAG_AUTOMATIC, /**< The certificate is verified by the system @n If server certificate is invalid, the IHttpTransactionEventListener::OnTransactionCertVerificationRequiredN() listener is received. */
- HTTP_CV_FLAG_MANUAL, /**< The certificate verification is handled by user action when the IHttpTransactionEventListener::OnTransactionCertVerificationRequestedN() listener is received */
- HTTP_CV_FLAG_IGNORED, /**< The certificate verification is ignored */
+ HTTP_CV_FLAG_AUTOMATIC, /**< The certificate is verified by the system @n If the server certificate is invalid, the IHttpTransactionEventListener::OnTransactionCertVerificationRequiredN() listener is received */
+ HTTP_CV_FLAG_MANUAL, /**< The certificate verification is handled by user action when the IHttpTransactionEventListener::OnTransactionCertVerificationRequestedN() listener is received */
+ HTTP_CV_FLAG_IGNORED, /**< The certificate verification is ignored */
};
} } } //Tizen::Net::Http
/**
* @class HttpUrlEncodedEntity
- * @brief This class represents a http body for urlencoded pairs (name and value).
+ * @brief This class represents an http body for urlencoded pairs (name and value).
*
* @since 2.0
*
- * The %HttpUrlEncodedEntity class represents a http body for urlencoded pairs (name and value).
+ * The %HttpUrlEncodedEntity class represents an http body for urlencoded pairs (name and value).
*
- * The following example demonstrates how to use the %HttpUrlEncodedEntity class to send the content for urlencoded pairs to the server.
+ * The following example demonstrates how to use the %HttpUrlEncodedEntity class to send content for urlencoded pairs to the server.
*
* @code
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ *
+ * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
+ */
HttpUrlEncodedEntity(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpUrlEncodedEntity(void);
- /**
- * Initializes this instance of %HttpUrlEncodedEntity.
- *
- * @since 2.0
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The default content type is "application/x-www-form-urlencoded" and default charset is "ISO-8859-1".
- */
+ /**
+ * Initializes this instance of %HttpUrlEncodedEntity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The default content type is "application/x-www-form-urlencoded" and default character set is "ISO-8859-1".
+ */
result Construct(void);
- /**
- * Initializes this instance of %HttpUrlEncodedEntity with the specified parameters.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] charset The character set of the entity
- * @param[in] encoding An encoding scheme for parameters
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The default content type is "application/x-www-form-urlencoded".
- */
+ /**
+ * Initializes this instance of %HttpUrlEncodedEntity with the specified parameters.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] charset The character set of the entity
+ * @param[in] encoding The encoding scheme for the parameters
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The default content type is "application/x-www-form-urlencoded".
+ */
result Construct(const Tizen::Base::String& charset, const Tizen::Text::Encoding& encoding);
private:
- /**
- * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %HttpUrlEncodedEntity
- */
+ /**
+ * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
+ *
+ * @param[in] rhs An instance of %HttpUrlEncodedEntity
+ */
HttpUrlEncodedEntity(const HttpUrlEncodedEntity& rhs);
- /**
- * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %HttpUrlEncodedEntity
- */
+ /**
+ * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
+ *
+ * @param[in] rhs An instance of %HttpUrlEncodedEntity
+ */
HttpUrlEncodedEntity& operator =(const HttpUrlEncodedEntity& rhs);
public:
- /**
- * Gets the length of the request content.
- *
- * @since 2.0
- *
- * @return The length of the content, @n
- * else @c -1 if the content length is unknown
- */
+ /**
+ * Gets the length of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The length of the content, @n
+ * else @c -1 if the content length is unknown
+ */
virtual long long GetContentLength(void) const;
- /**
- * Gets the type of the request content.
- *
- * @since 2.0
- *
- * @return The type of the content
- */
+ /**
+ * Gets the type of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The type of the content
+ */
virtual Tizen::Base::String GetContentType(void) const;
- /**
- * Adds the form data (name and value pairs) to %HttpUrlEncodedEntity.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] name The name of the urlencoded entity
- * @param[in] value The value of the urlencoded entity
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_INVALID_ENCODING_RANGE The specified @c name or @c value contains code points that are outside the bounds of the specified @c encoding.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Adds the form data (name and value pairs) to %HttpUrlEncodedEntity.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] name The name of the urlencoded entity
+ * @param[in] value The value of the urlencoded entity
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_INVALID_ENCODING_RANGE The specified @c name or @c value contains code points that are outside the bounds of the specified @c encoding.
+ * @exception E_SYSTEM A system error has occurred.
+ */
result AddParameter(const Tizen::Base::String& name, const Tizen::Base::String& value);
protected:
- /**
- * Checks whether the next data exists.
- *
- * @since 2.0
- *
- * @return @c true if the next data exists, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Checks whether the next data exists.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the next data exists, @n
+ * else @c false
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual bool HasNextData(void);
- /**
- * Gets the next data.
- *
- * @since 2.0
- *
- * @return The buffer to be read
- * @param[in] recommendedSize The recommended size of the data to send
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the next data.
+ *
+ * @since 2.0
+ *
+ * @return The buffer to read
+ * @param[in] recommendedSize The recommended size of the data to send
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual Tizen::Base::ByteBuffer* GetNextDataN(int recommendedSize);
private:
/**
* @class HttpXmlDomEntity
- * @brief This class represents a http body for the xml content.
+ * @brief This class represents an http body for XML content.
*
* @since 2.0
*
- * The %HttpXmlDomEntity class represents a http body for the xml content. @n
+ * The %HttpXmlDomEntity class represents an http body for XML content. @n
*
- * The following example demonstrates how to use the %HttpXmlDomEntity class to send the xml content to the server.
+ * The following example demonstrates how to use the %HttpXmlDomEntity class to send XML content to the server.
*
* @code
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ *
+ * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
+ */
HttpXmlDomEntity(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~HttpXmlDomEntity(void);
- /**
- * Initializes this instance of %HttpXmlDomEntity with the specified parameters.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] xmlDocument The DOM instance of the xml content
- * @param[in] encodingScheme The encoding scheme for the document
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ENCODING_RANGE The document contains code points that are outside the bounds specified by @c encodingScheme.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The default content type is "text/xml".
- */
+ /**
+ * Initializes this instance of %HttpXmlDomEntity with the specified parameters.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] xmlDocument A DOM instance of the XML content
+ * @param[in] encodingScheme The encoding scheme for the document
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ENCODING_RANGE The document contains code points that are outside the bounds specified by @c encodingScheme.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The default content type is "text/xml".
+ */
result Construct(const xmlDoc& xmlDocument, const Tizen::Base::String& encodingScheme = L"UTF-8");
private:
- /**
- * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %HttpXmlDomEntity
- */
+ /**
+ * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
+ *
+ * @param[in] rhs An instance of %HttpXmlDomEntity
+ */
HttpXmlDomEntity(const HttpXmlDomEntity& rhs);
- /**
- * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %HttpXmlDomEntity
- */
+ /**
+ * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
+ *
+ * @param[in] rhs An instance of %HttpXmlDomEntity
+ */
HttpXmlDomEntity& operator =(const HttpXmlDomEntity& rhs);
public:
- /**
- * Gets the length of the request content.
- *
- * @since 2.0
- *
- * @return The length of the content, @n
- * else @c -1 if the content length is unknown
- */
+ /**
+ * Gets the length of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The length of the content, @n
+ * else @c -1 if the content length is unknown
+ */
virtual long long GetContentLength(void) const;
- /**
- * Gets the type of the request content.
- *
- * @since 2.0
- *
- * @return The type of the content
- */
+ /**
+ * Gets the type of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The type of the content
+ */
virtual Tizen::Base::String GetContentType(void) const;
protected:
- /**
- * Checks whether the next data exists.
- *
- * @since 2.0
- *
- * @return @c true if the next data exists, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Checks whether the next data exists.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the next data exists, @n
+ * else @c false
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual bool HasNextData(void);
- /**
- * Gets the next data.
- *
- * @since 2.0
- *
- * @return The buffer to be read
- * @param[in] recommendedSize The recommended size of the data to send
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the next data.
+ *
+ * @since 2.0
+ *
+ * @return The buffer to read
+ * @param[in] recommendedSize The recommended size of the data to send
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual Tizen::Base::ByteBuffer* GetNextDataN(int recommendedSize);
private:
class _HttpRequestImpl;
/**
* @interface IHttpEntity
- * @brief This interface provides common functions for the HTTP entity.
+ * @brief This interface provides the common functions for an HTTP entity.
*
* @since 2.0
*
- * The %IHttpEntity interface represents the HTTP entity for the data exchanged between the client and the server.
+ * The %IHttpEntity interface represents the HTTP entity for the data exchanged between a client and a server.
*/
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~IHttpEntity(void) {}
public:
- /**
- * Gets the length of the request content.
- *
- * @since 2.0
- *
- * @return The length of the content, @n
- * else @c -1 if the content length is unknown
- */
+ /**
+ * Gets the length of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The length of the content, @n
+ * else @c -1 if the content length is unknown
+ */
virtual long long GetContentLength(void) const = 0;
- /**
- * Gets the type of the request content.
- *
- * @since 2.0
- *
- * @return The type of the content
- */
+ /**
+ * Gets the type of the request content.
+ *
+ * @since 2.0
+ *
+ * @return The type of the content
+ */
virtual Tizen::Base::String GetContentType(void) const = 0;
protected:
- /**
- * Checks whether the next data exists.
- *
- * @since 2.0
- *
- * @return @c true if the next data exists, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Checks whether the next data exists.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the next data exists, @n
+ * else @c false
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual bool HasNextData(void) = 0;
- /**
- * Gets the next data.
- *
- * @since 2.0
- *
- * @return The buffer to be read
- * @param[in] recommendedSize The recommended size of the data to send
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_STATE The method invoked is invalid.
- * @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the next data.
+ *
+ * @since 2.0
+ *
+ * @return The buffer to read
+ * @param[in] recommendedSize The recommended size of the data to send
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_STATE The method invoked is invalid.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
virtual Tizen::Base::ByteBuffer* GetNextDataN(int recommendedSize) = 0;
protected:
class HttpTransaction;
/**
* @interface IHttpProgressEventListener
- * @brief This interface provides the listeners for the HTTP progress events.
+ * @brief This interface provides listeners for the HTTP progress events.
*
* @since 2.0
*
- * The %IHttpProgressEventListener interface is the listener for the HTTP progress events, when the HTTP message is uploaded or downloaded. In order to use this listener,
+ * The %IHttpProgressEventListener interface is the listener for the HTTP progress events, when an HTTP message is uploaded or downloaded. In order to use this listener,
* the listener must be set to the HttpTransaction instance using the HttpTransaction::SetHttpProgressListener() method.
*/
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
*
* @since 2.0
*/
virtual ~IHttpProgressEventListener(void) {}
public:
- /**
- * Called to notify when the content body of the request message is being uploaded.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] currentLength The current length of the uploaded data (in bytes)
- * @param[in] totalLength The total length of the data (in bytes) to upload
- * @remarks If the content length of the request message is not set, the value of @c totalLength is -1.
- */
+ /**
+ * Called to notify when the content body of a request message is being uploaded.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] currentLength The current length of the uploaded data (in bytes)
+ * @param[in] totalLength The total length of the data (in bytes) to upload
+ * @remarks If the content length of a request message is not set, the value of @c totalLength is @c -1.
+ */
virtual void OnHttpUploadInProgress(HttpSession& httpSession, HttpTransaction& httpTransaction, long long currentLength, long long totalLength) = 0;
- /**
- * Called to notify when the content body of the response message is being downloaded.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] currentLength The current length of the downloaded data (in bytes)
- * @param[in] totalLength The total length of the data (in bytes) to download
- * @remarks If the content length of the response message is not set, the value of @c totalLength is -1.
- */
+ /**
+ * Called to notify when the content body of a response message is being downloaded.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] currentLength The current length of the downloaded data (in bytes)
+ * @param[in] totalLength The total length of the data (in bytes) to download
+ * @remarks If the content length of a response message is not set, the value of @c totalLength is @c -1.
+ */
virtual void OnHttpDownloadInProgress(HttpSession& httpSession, HttpTransaction& httpTransaction, long long currentLength, long long totalLength) = 0;
protected:
* @remarks If a user-defined class is derived from multiple classes including this interface, a compile error for using an ambiguous base class can occur. @n
* In this case, type casting is required to declare an explicit base class for the user-defined class.
*
- * The %IHttpTransactionEventListener interface provides listeners for the HTTP transaction events. To use this listener, you must add it to the HttpTransaction instance
+ * The %IHttpTransactionEventListener interface provides listeners for the HTTP transaction events. To use this listener, the user must add it to the HttpTransaction instance
* through the AddListener() method. If an HTTP transaction event is generated, a method of this class is called.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/http_transaction.htm">HTTP Transaction</a>.
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~IHttpTransactionEventListener(void) {}
public:
- /**
- * Called to notify when the content body of the response has been received.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] availableBodyLen The length of the available body of the %Http transaction
- * @see HttpResponse::ReadBodyN()
- */
+ /**
+ * Called to notify when the content body of a response has been received.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] availableBodyLen The length of the available body of the %Http transaction
+ * @see HttpResponse::ReadBodyN()
+ */
virtual void OnTransactionReadyToRead(HttpSession& httpSession, HttpTransaction& httpTransaction, int availableBodyLen) = 0;
- /**
- * Called to notify when the process of transaction has been aborted.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] r The cause of the error
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_IO The method has failed to read the data.
- * @exception E_TIMEOUT An attempt to connect to the server has timed out.
- * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
- * @exception E_HOST_UNREACHABLE The network cannot be reached from this host at this time.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_UNKNOWN An unknown error has occurred.
- * @exception E_NOT_RESPONDING There is no response.
- * @exception E_INVALID_CONTENT The content is invalid.
- * @exception E_CONNECTION_RESET The network connection has been reset.
- * @exception E_HTTP_USER The HTTP user is canceled.
- * @exception E_NO_CERTIFICATE The client certificate is required to connect to the server.
- * @exception E_UNSUPPORTED_SERVICE The service is not allowed.
- * @exception E_USER_AGENT_NOT_ALLOWED The user agent is not allowed.
- * @exception E_RESOURCE_UNAVAILABLE The network resource is unavailable.
- * @remarks If the E_NO_CERTIFICATE exception is thrown, start the AppControl(L"tizen.certificatemanager") for getting the selected client certificate. @n
- * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_certmgr.htm">here</a>.
- */
+ /**
+ * Called to notify when the process of a transaction has been aborted.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] r The cause of the error
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_IO The method has failed to read the data.
+ * @exception E_TIMEOUT An attempt to connect to the server has timed out.
+ * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
+ * @exception E_HOST_UNREACHABLE The network cannot be reached from this host at this time.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_UNKNOWN An unknown error has occurred.
+ * @exception E_NOT_RESPONDING There is no response.
+ * @exception E_INVALID_CONTENT The content is invalid.
+ * @exception E_CONNECTION_RESET The network connection has been reset.
+ * @exception E_HTTP_USER The HTTP user is cancelled.
+ * @exception E_NO_CERTIFICATE The client certificate is required to connect to the server.
+ * @exception E_UNSUPPORTED_SERVICE The service is not allowed.
+ * @exception E_USER_AGENT_NOT_ALLOWED The user agent is not allowed.
+ * @exception E_RESOURCE_UNAVAILABLE The network resource is unavailable.
+ * @remarks If the @c E_NO_CERTIFICATE exception is thrown, start the AppControl(L"tizen.certificatemanager") for getting the selected client certificate. @n
+ * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_certmgr.htm">here</a>.
+ */
virtual void OnTransactionAborted(HttpSession& httpSession, HttpTransaction& httpTransaction, result r) = 0;
- /**
- * Called to add chunks to the request.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] recommendedChunkSize The length of the chunked %Http transaction
- * @remarks To enable this listener, HttpTransaction::EnableTransactionReadyToWrite() must be called.
- * @see HttpRequest::WriteBody()
- */
+ /**
+ * Called to add chunks to a request.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] recommendedChunkSize The length of the chunked %Http transaction
+ * @remarks To enable this listener, HttpTransaction::EnableTransactionReadyToWrite() must be called.
+ * @see HttpRequest::WriteBody()
+ */
virtual void OnTransactionReadyToWrite(HttpSession& httpSession, HttpTransaction& httpTransaction, int recommendedChunkSize) = 0;
- /**
- * Called to notify when the header of response has been received.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] headerLen The length of the %Http transaction's header
- * @param[in] bAuthRequired Set to @c true if the transaction requires authentication, @n
- * else @c false
- * @see HttpResponse::GetHeader()
- */
+ /**
+ * Called to notify when the header of a response has been received.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] headerLen The length of the %Http transaction's header
+ * @param[in] bAuthRequired Set to @c true if the transaction requires authentication, @n
+ * else @c false
+ * @see HttpResponse::GetHeader()
+ */
virtual void OnTransactionHeaderCompleted(HttpSession& httpSession, HttpTransaction& httpTransaction, int headerLen, bool bAuthRequired) = 0;
- /**
- * Called to notify when the process of transaction has been completed.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @see HttpResponse::GetHeader()
- * @see HttpResponse::ReadBodyN()
- */
+ /**
+ * Called to notify when the process of a transaction has completed.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @see HttpResponse::GetHeader()
+ * @see HttpResponse::ReadBodyN()
+ */
virtual void OnTransactionCompleted(HttpSession& httpSession, HttpTransaction& httpTransaction) = 0;
- /**
- * Called to accept input from the user on whether to resume or pause the transaction in case the certificate is not verified. @n
- * The certificate for the server has been issued by an authority that is not reliable by the %Tizen device. @n
- * This may mean that the server has generated its own security credentials, which %Tizen device cannot rely on for identity information, or an attacker may be trying to intercept your communications. @n
- * You should not proceed if this callback method has never been called in this current URI.
- *
- * @since 2.0
- *
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] pCert The certificate information
- * @see HttpTransaction::Resume()
- * @see HttpTransaction::Pause()
- */
+ /**
+ * Called to accept the input from a user on whether to resume or pause a transaction in case the certificate is not verified. @n
+ * The certificate for the server has been issued by an authority that is not reliable by the %Tizen device. @n
+ * This may mean that the server has generated its own security credentials, which %Tizen device cannot rely on for identity information,
+ * or an attacker may be trying to intercept your ommunications. @n
+ * You should not proceed if this callback method has never been called in this current URI.
+ *
+ * @since 2.0
+ *
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] pCert The certificate information
+ * @see HttpTransaction::Resume()
+ * @see HttpTransaction::Pause()
+ */
virtual void OnTransactionCertVerificationRequiredN(HttpSession& httpSession, HttpTransaction& httpTransaction, Tizen::Base::String* pCert) = 0;
- /**
- * Called to notify when the server certificate verification has been requested.
- *
- * @since 2.1
- *
- * @return The result for certificate verification
- * @param[in] httpSession The session information of the %Http transaction event
- * @param[in] httpTransaction The transaction information of the %Http transaction event
- * @param[in] pCertList The server certificate chain @n A Tizen::Base::Collection::IList whose element is of the type Tizen::Security::Cert::X509Certificate *.
- *
- * @remarks Do not delete the instance of @c httpSession or @c httpTransaction in this listener before the IHttpTransactionEventListener::OnTransactionCompleted() or IHttpTransactionEventListener::OnTransactionAborted() method is called.
- * @see HttpTransaction::SetServerCertificateVerification()
- */
+ /**
+ * Called to notify when a server certificate verification has been requested.
+ *
+ * @since 2.1
+ *
+ * @return The result of the certificate verification
+ * @param[in] httpSession The session information of the %Http transaction event
+ * @param[in] httpTransaction The transaction information of the %Http transaction event
+ * @param[in] pCertList The server certificate chain @n
+ * A Tizen::Base::Collection::IList instance whose element is of type Tizen::Security::Cert::X509Certificate *.
+ *
+ * @remarks Do not delete the instance of @c httpSession or @c httpTransaction in this listener before the IHttpTransactionEventListener::OnTransactionCompleted() or IHttpTransactionEventListener::OnTransactionAborted() method is called.
+ * @see HttpTransaction::SetServerCertificateVerification()
+ */
virtual bool OnTransactionCertVerificationRequestedN(HttpSession& httpSession, HttpTransaction& httpTransaction, Tizen::Base::Collection::IList* pCertList)
{
std::unique_ptr<Tizen::Base::Collection::IList> upCertList(pCertList);
*
* @since 2.0
*
- * The %IDnsEventListener interface provides methods for creating notifications about different types of DNS events. These events are only sent
+ * The %IDnsEventListener interface provides methods for creating notifications for different types of DNS events. These events are only sent
* out if a listener is added to the DNS object in the Construct() method. When a DNS event is generated, one of these methods is called. The
* methods of this interface may be overridden and used in any application that uses DNS.
*
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~IDnsEventListener(void) {}
public:
- /**
- * Called to notify the result of the Dns request.
- *
- * @since 2.0
- *
- * @param[in] pIpHostEntry The information on the dns event
- * @param[in] r The cause of the error
- * @exception E_SUCCESS The method is successful.
- * @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_INVALID_SERVER The requested server is invalid.
- * @exception E_INVALID_DOMAIN The requested domain of the server is invalid.
- * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_TIMEOUT An attempt to connect to the server has timed out.
- * @exception E_NOT_RESPONDING There is no response.
- * @exception E_DNS_NOT_FOUND The DNS lookup has failed.
- * @remarks Always check the error code before accessing the result. @n
- * If @c r is not @c E_SUCCESS, @c ipHostEntry may not exist.
- */
+ /**
+ * Called to notify the result of a Dns request.
+ *
+ * @since 2.0
+ *
+ * @param[in] pIpHostEntry The information of the dns event
+ * @param[in] r The cause of the error
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_IN_PROGRESS A previous request is in progress.
+ * @exception E_INVALID_SERVER The requested server is invalid.
+ * @exception E_INVALID_DOMAIN The requested domain of the server is invalid.
+ * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_TIMEOUT An attempt to connect to the server has timed out.
+ * @exception E_NOT_RESPONDING There is no response.
+ * @exception E_DNS_NOT_FOUND The DNS lookup has failed.
+ * @remarks Always check the error code before accessing the result. @n
+ * If @c r is not @c E_SUCCESS, @c ipHostEntry may not exist.
+ */
virtual void OnDnsResolutionCompletedN(IpHostEntry* pIpHostEntry, result r) = 0;
}; // IDnsEventListener
class DhcpClientInfo;
/**
* @interface ILocalDhcpServerEventListener
- * @brief This interface defines the listeners for the local DHCP server events.
+ * @brief This interface defines listeners for local DHCP server events.
*
* @since 2.0
*
- * The %ILocalDhcpServerEventListener interface provides methods for creating notifications about the different kinds of DHCP server events.
+ * The %ILocalDhcpServerEventListener interface provides methods for creating notifications for different kinds of DHCP server events.
* These events are only sent out when %ILocalDhcpServerEventListener is added to a LocalDhcpServer instance, by invoking the
* SetLocalDhcpServerEventListener() method. When a %LocalDhcpServer event is generated, one of these methods is called. The methods of this
* interface may be overridden and used in any application that uses the local DHCP server.
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /** This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /** This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~ILocalDhcpServerEventListener(void) {}
public:
- /**
- * Called to notify the application that the client network connection on the local DHCP server has been connected.
- *
- * @since 2.0
- *
- * @param[in] localDhcpServer The requested local DHCP server
- * @param[in] dhcpClientInfo The connected client information on the local DHCP server event
- */
+ /**
+ * Called to notify an application that the client network connection on the local DHCP server has been connected.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDhcpServer The requested local DHCP server
+ * @param[in] dhcpClientInfo The connected client information on the local DHCP server event
+ */
virtual void OnDhcpClientConnectedN(LocalDhcpServer& localDhcpServer, DhcpClientInfo& dhcpClientInfo) = 0;
- /**
- * Called to notify the application that the client network connection on the local DHCP server has been disconnected.
- *
- * @since 2.0
- *
- * @param[in] localDhcpServer The requested local DHCP server
- * @param[in] dhcpClientInfo The disconnected client information on the local DHCP server event
- */
+ /**
+ * Called to notify an application that the client network connection on the local DHCP server has been disconnected.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDhcpServer The requested local DHCP server
+ * @param[in] dhcpClientInfo The disconnected client information on the local DHCP server event
+ */
virtual void OnDhcpClientDisconnectedN(LocalDhcpServer& localDhcpServer, DhcpClientInfo& dhcpClientInfo) = 0;
protected:
*
* @since 2.0
*
- * The %IManagedNetConnectionEventListener interface specifies the methods used to create the notifications about the different kinds of network
+ * The %IManagedNetConnectionEventListener interface specifies the methods used to create notifications for different kinds of network
* connection events. These events are sent only when %IManagedNetConnectionEventListener is added to the ManagedNetConnection instance, and
* this is done by invoking the ManagedNetConnection::SetManagedNetConnectionEventListener() method. A method of this interface is called when a network connection
* event is generated.
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /** This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /** This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~IManagedNetConnectionEventListener(void) {}
public:
- /**
- * Called to notify that the bearer has been changed. @n
- * An application can send or receive the data through the Socket or HTTP methods and can obtain the information related to the changed bearer.
- *
- * @since 2.0
- *
- * @param[in] managedNetConnection The network connection managed by the system
- */
+ /**
+ * Called to notify that the bearer has been changed. @n
+ * An application can send or receive data through the Socket or HTTP methods and can obtain information related to the changed bearer.
+ *
+ * @since 2.0
+ *
+ * @param[in] managedNetConnection The network connection managed by the system
+ */
virtual void OnManagedNetConnectionBearerChanged(ManagedNetConnection& managedNetConnection) = 0;
- /**
- * Called to notify the application that the network connection has been opened and connected. @n
- * An application can then send or receive the data.
- *
- * @since 2.0
- *
- * @param[in] managedNetConnection The network connection managed by the system
- */
+ /**
+ * Called to notify an application that the network connection has been opened and connected. @n
+ * An application can then send or receive data.
+ *
+ * @since 2.0
+ *
+ * @param[in] managedNetConnection The network connection managed by the system
+ */
virtual void OnManagedNetConnectionStarted(ManagedNetConnection& managedNetConnection) = 0;
- /**
- * Called to notify that the network connection has been closed and disconnected.
- *
- * @since 2.0
- *
- * @param[in] managedNetConnection The network connection managed by the system
- * @param[in] reason A reason code for the error
- * @exception NET_CONNECTION_STOPPED_REASON_RESOURCE_RELEASED The network connection managed by the system has stopped because network resources have been released.
- * @exception NET_CONNECTION_STOPPED_REASON_NETWORK_FAILED The network has failed.
- * @exception NET_CONNECTION_STOPPED_REASON_DEVICE_OFFLINE The device is in the offline mode.
- * @exception NET_CONNECTION_STOPPED_REASON_SERVICE_UNAVAILABLE The device is out of the coverage area or in the emergency mode.
- * @exception NET_CONNECTION_STOPPED_REASON_RESOURCE_UNAVAILABLE The network resource is unavailable.
- * @exception NET_CONNECTION_STOPPED_REASON_SYSTEM A system error has occurred.
- */
+ /**
+ * Called to notify that the network connection has been closed and disconnected.
+ *
+ * @since 2.0
+ *
+ * @param[in] managedNetConnection The network connection managed by the system
+ * @param[in] reason The reason code for the error
+ * @exception NET_CONNECTION_STOPPED_REASON_RESOURCE_RELEASED The network connection managed by the system has stopped because the network resources have been released.
+ * @exception NET_CONNECTION_STOPPED_REASON_NETWORK_FAILED The network has failed.
+ * @exception NET_CONNECTION_STOPPED_REASON_DEVICE_OFFLINE The device is in the offline mode.
+ * @exception NET_CONNECTION_STOPPED_REASON_SERVICE_UNAVAILABLE The device is either out of the coverage area or in the emergency mode.
+ * @exception NET_CONNECTION_STOPPED_REASON_RESOURCE_UNAVAILABLE The network resource is unavailable.
+ * @exception NET_CONNECTION_STOPPED_REASON_SYSTEM A system error has occurred.
+ */
virtual void OnManagedNetConnectionStopped(ManagedNetConnection& managedNetConnection, NetConnectionStoppedReason reason) = 0;
- /**
- * Called to notify the application that the connection status has been changed or is in an unstable or suspended state. @n
- * Thus an application may neither send nor receive data through the Socket or Http until the network connection is resumed.
- *
- * @since 2.0
- *
- * @param[in] managedNetConnection The network connection managed by the system
- */
+ /**
+ * Called to notify an application that the connection status has been changed or is in the unstable or suspended state. @n
+ * Thus an application may neither send nor receive data through the Socket or Http until the network connection is resumed.
+ *
+ * @since 2.0
+ *
+ * @param[in] managedNetConnection The network connection managed by the system
+ */
virtual void OnManagedNetConnectionSuspended(ManagedNetConnection& managedNetConnection) = 0;
- /**
- * Called to notify the application that the network has recovered from a suspended state. @n
- * Thus an application can send or receive data through the Socket or Http from now on.
- *
- * @since 2.0
- *
- * @param[in] managedNetConnection The network connection managed by the system
- */
+ /**
+ * Called to notify an application that the network has recovered from the suspended state. @n
+ * Thus an application can send or receive data through the Socket or Http from now on.
+ *
+ * @since 2.0
+ *
+ * @param[in] managedNetConnection The network connection managed by the system
+ */
virtual void OnManagedNetConnectionResumed(ManagedNetConnection& managedNetConnection) = 0;
protected:
/**
* @interface INetConnectionEventListener
- * @brief This interface implements the listeners for the network connection events.
+ * @brief This interface implements listeners for network connection events.
*
* @since 2.0
*
- * The %INetConnectionEventListener interface specifies the methods for creating the notifications about the different kinds of network
+ * The %INetConnectionEventListener interface specifies methods for creating notifications for different kinds of network
* connection events. These events are only sent when %INetConnectionEventListener is added to a NetConnection instance, by invoking the
* NetConnection::AddNetConnectionListener() method. When a network connection event is generated, a method of this class is called.
*
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~INetConnectionEventListener(void) {}
public:
- /**
- * Called to notify the application that the network connection has been opened and connected. @n
- * An application can send or receive the data.
- *
- * @since 2.0
- *
- * @param[in] netConnection The network connection
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_TIMEOUT An attempt to connect to the server has timed out.
- * @exception E_DEVICE_BUSY The device cannot be approached because of other operations.
- * @exception E_DEVICE_UNAVAILABLE The operation has failed due to a missing SIM card.
- * @exception E_NETWORK_UNAVAILABLE The operation has failed because the device is in the offline mode.
- * @exception E_SERVICE_UNAVAILABLE The operation has failed because the device is out of the coverage area or in the emergency mode.
- * @exception E_RESOURCE_UNAVAILABLE The network resource is unavailable.
- * @exception E_AUTHENTICATION The authentication has failed.
- * @exception E_UNSUPPORTED_OPERATION This operation is not supported.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_NETWORK_FAILED Requested but an error is received from the network.
- * @exception E_INVALID_SIM_STATE The network has marked SIM as invalid for the CS and/or PS domain.
- * @exception E_FDN_MODE The FDN is enabled and the number is not listed in the FDN list.
- * @exception E_DHCP The DHCP operation has failed on WLAN.
- * @exception E_LINK A link failure has occurred on WLAN.
- */
+ /**
+ * Called to notify an application that the network connection has been opened and connected. @n
+ * An application can send or receive data.
+ *
+ * @since 2.0
+ *
+ * @param[in] netConnection The network connection
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_TIMEOUT An attempt to connect to the server has timed out.
+ * @exception E_DEVICE_BUSY The device cannot be approached because of other operations.
+ * @exception E_DEVICE_UNAVAILABLE The operation has failed due to a missing SIM card.
+ * @exception E_NETWORK_UNAVAILABLE The operation has failed because the device is in the offline mode.
+ * @exception E_SERVICE_UNAVAILABLE The operation has failed because the device is either out of the coverage area or in the emergency mode.
+ * @exception E_RESOURCE_UNAVAILABLE The network resource is unavailable.
+ * @exception E_AUTHENTICATION The authentication has failed.
+ * @exception E_UNSUPPORTED_OPERATION This operation is not supported.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_NETWORK_FAILED An error has been received from the network.
+ * @exception E_INVALID_SIM_STATE The network has marked the SIM as invalid for the CS and/or PS domain.
+ * @exception E_FDN_MODE The FDN is enabled and the number is not listed in the FDN list.
+ * @exception E_DHCP The DHCP operation has failed on WLAN.
+ * @exception E_LINK A link failure has occurred on WLAN.
+ */
virtual void OnNetConnectionStarted(NetConnection& netConnection, result r) = 0;
- /**
- * Called to notify the application that the network connection has been closed and disconnected.
- *
- * @since 2.0
- *
- * @param[in] netConnection The network connection
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_NETWORK_UNAVAILABLE The operation has failed because the device is in the offline mode.
- * @exception E_SERVICE_UNAVAILABLE The operation has failed because the device is out of the coverage area or in the emergency mode.
- * @exception E_RESOURCE_UNAVAILABLE The network resource is unavailable.
- * @exception E_UNSUPPORTED_OPERATION This operation is not supported.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_NETWORK_FAILED Requested but an error is received from the network.
- * @exception E_INVALID_SIM_STATE The network has marked SIM as invalid for the CS and/or PS domain.
- * @exception E_FDN_MODE The FDN is enabled and the number is not listed in the FDN list.
- * @exception E_DHCP The DHCP operation has failed on WLAN.
- * @exception E_LINK A link failure has occurred on WLAN.
- * @remarks This notification does not imply that the network is stopped permanently and cannot be used.
- * The network can be restarted using NetConnection::Start().
- * The NetConnection::Close() method is used to disconnect the connection
- * from the remote server or gateway permanently.
- */
+ /**
+ * Called to notify an application that the network connection has been closed and disconnected.
+ *
+ * @since 2.0
+ *
+ * @param[in] netConnection The network connection
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_NETWORK_UNAVAILABLE The operation has failed because the device is in the offline mode.
+ * @exception E_SERVICE_UNAVAILABLE The operation has failed because the device is either out of the coverage area or in the emergency mode.
+ * @exception E_RESOURCE_UNAVAILABLE The network resource is unavailable.
+ * @exception E_UNSUPPORTED_OPERATION This operation is not supported.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_NETWORK_FAILED An error has been received from the network.
+ * @exception E_INVALID_SIM_STATE The network has marked the SIM as invalid for the CS and/or PS domain.
+ * @exception E_FDN_MODE The FDN is enabled and the number is not listed in the FDN list.
+ * @exception E_DHCP The DHCP operation has failed on WLAN.
+ * @exception E_LINK A link failure has occurred on WLAN.
+ * @remarks This notification does not imply that the network is stopped permanently and cannot be used.
+ * The network can be restarted using NetConnection::Start(). @n
+ * The NetConnection::Close() method is used to disconnect the connection
+ * from the remote server or gateway permanently.
+ */
virtual void OnNetConnectionStopped(NetConnection& netConnection, result r) = 0;
- /**
- * Called to notify the application that the connection status has changed or is in an unstable or suspended state. @n
- * Thus, an application may neither send nor receive data through Socket or Http until the network connection is resumed.
- *
- * @since 2.0
- *
- * @param[in] netConnection The network connection
- *
- */
+ /**
+ * Called to notify an application that the connection status has changed or is in the unstable or suspended state. @n
+ * Thus, an application may neither send nor receive data through Socket or Http until the network connection is resumed.
+ *
+ * @since 2.0
+ *
+ * @param[in] netConnection The network connection
+ *
+ */
virtual void OnNetConnectionSuspended(NetConnection& netConnection) = 0;
- /**
- * Called to notify the application that the network has recovered from a suspended state. @n
- * Thus, an application can send or receive data through Socket or Http from now on.
- *
- * @since 2.0
- *
- * @param[in] netConnection The network connection
- */
+ /**
+ * Called to notify an application that the network has recovered from the suspended state. @n
+ * Thus, an application can send or receive data through Socket or Http from now on.
+ *
+ * @since 2.0
+ *
+ * @param[in] netConnection The network connection
+ */
virtual void OnNetConnectionResumed(NetConnection& netConnection) = 0;
protected:
*
* @since 2.0
*
- * The %Ip4Address class specifies the IPv4 address.
+ * The %Ip4Address class specifies an IPv4 address.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/net_namespace.htm">Net Guide</a>. @n
*
: public IpAddress
{
public:
- /**
- * Initializes this instance of %Ip4Address with the address specified as a string.
- *
- * @since 2.0
- *
- * @param[in] ipAddr The IP Address as a string @n
- * This string represents the IP address in dot-decimal notation (for example, 165.213.173.7) .
- * @exception E_SUCCESS The instance is created successfully.
- * @exception E_INVALID_ARG The specified @c ipAddr is invalid.
- * @remarks The GetLastResult() method is used to check whether the %Ip4Address instance is created successfully.
- */
+ /**
+ * Initializes this instance of %Ip4Address with the address specified as a string.
+ *
+ * @since 2.0
+ *
+ * @param[in] ipAddr The IP Address as a string @n
+ * This string represents the IP address in dot-decimal notation (for example, 165.213.173.7) .
+ * @exception E_SUCCESS The instance is created successfully.
+ * @exception E_INVALID_ARG The specified @c ipAddr is invalid.
+ * @remarks The GetLastResult() method is used to check whether the %Ip4Address instance is created successfully.
+ */
Ip4Address(const Tizen::Base::String& ipAddr);
- /**
- * Initializes this instance of %Ip4Address with the address specified as an integer.
- *
- * @since 2.0
- *
- * @param[in] ipAddr A unsigned @c long number containing the raw IP address @n
- * This is a 32-bit unsigned number. It should be in host byte order.
- * @exception E_SUCCESS The instance is created successfully.
- * @exception E_INVALID_ARG The specified @c ipAddr is invalid.
- * @remarks The GetLastResult() method is used to check whether the %Ip4Address instance is created successfully.
- * @see IpAddress::NetworkToHostOrder()
- * @see IpAddress::HostToNetworkOrder()
- */
+ /**
+ * Initializes this instance of %Ip4Address with the address specified as an integer.
+ *
+ * @since 2.0
+ *
+ * @param[in] ipAddr The unsigned @c long number that contains the raw IP address @n
+ * This is a 32-bit unsigned number @n
+ * It should be in the host byte order.
+ * @exception E_SUCCESS The instance is created successfully.
+ * @exception E_INVALID_ARG The specified @c ipAddr is invalid.
+ * @remarks The GetLastResult() method is used to check whether the %Ip4Address instance is created successfully.
+ * @see IpAddress::NetworkToHostOrder()
+ * @see IpAddress::HostToNetworkOrder()
+ */
Ip4Address(unsigned long ipAddr);
- /**
- * Copying of objects using this copy constructor is allowed.
- *
- * @since 2.0
- *
- * @param[in] rhs An instance of %Ip4Address
- * @remarks The GetLastResult() method is used to check whether the %Ip4Address instance is created successfully.
- */
+ /**
+ * Copying of objects using this copy constructor is allowed.
+ *
+ * @since 2.0
+ *
+ * @param[in] rhs An instance of %Ip4Address to copy
+ * @remarks The GetLastResult() method is used to check whether the %Ip4Address instance is created successfully.
+ */
Ip4Address(const Ip4Address& rhs);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~Ip4Address(void);
public:
- /**
- * Gets the address family to which the %Ip4Address belongs.
- *
- * @since 2.0
- *
- * @return NET_AF_IPV4
- */
+ /**
+ * Gets the address family to which %Ip4Address belongs.
+ *
+ * @since 2.0
+ *
+ * @return NET_AF_IPV4
+ */
NetAddressFamily GetNetAddressFamily(void) const;
- /**
- * Gets the raw IP address.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[out] ipAddr A Tizen::Base::ByteBuffer object containing the raw IP address
- * @exception E_SUCCESS The method is successful.
- * @exception E_OVERFLOW The length of the remaining bytes of @c ipAddr is less than @c 4.
- * @remarks This method returns the raw IP address of the %Ip4Address object. The result is in host byte order. This method writes the raw address
- * in the buffer parameter, starting from the current position. After the operation, the position of the buffer is incremented by the number
- * of bytes successfully written even if the operation fails. The new position cannot be larger than the original limit.
- */
+ /**
+ * Gets the raw IP address.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[out] ipAddr A Tizen::Base::ByteBuffer object that contains the raw IP address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OVERFLOW The length of the remaining bytes of @c ipAddr is less than @c 4.
+ * @remarks This method returns the raw IP address of the %Ip4Address object. The result is in the host byte order. This method writes the raw address
+ * in the buffer parameter, starting from the current position. After the operation, the position of the buffer is incremented by the number
+ * of bytes successfully written even if the operation fails. The new position cannot be larger than the original limit.
+ */
result GetAddress(Tizen::Base::ByteBuffer& ipAddr) const;
- /**
- * Gets the raw IP address as an integer. @n
- * The result is in host byte order.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[out] ipAddr An unsigned @c long integer containing the raw IP address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- * @see IpAddress::NetworkToHostOrder()
- * @see IpAddress::HostToNetworkOrder()
- */
+ /**
+ * Gets the raw IP address as an integer. @n
+ * The result is in the host byte order.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[out] ipAddr The unsigned @c long integer that contains the raw IP address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance is in an invalid state.
+ * @see IpAddress::NetworkToHostOrder()
+ * @see IpAddress::HostToNetworkOrder()
+ */
result GetAddress(unsigned long& ipAddr) const;
- /**
- * Gets the IP address of the endpoint in textual presentation. @n
- * An endpoint consists of an IP address and a port.
- *
- * @since 2.0
- *
- * @return The %Ip4Address, @n
- * else a null string if the address is not set
- * @remarks %Ip4Address is in the standard dot-decimal notation.
- */
+ /**
+ * Gets the IP address of an endpoint in the textual presentation. @n
+ * An endpoint consists of an IP address and a port.
+ *
+ * @since 2.0
+ *
+ * @return The %Ip4Address, @n
+ * else a null string if the address is not set
+ * @remarks %Ip4Address is in the standard dot-decimal notation.
+ */
Tizen::Base::String ToString(void) const;
- /**
- * Creates and returns a copy of this instance.
- *
- * @since 2.0
- *
- * @return The copy of this instance
- * @remarks The GetLastResult() method is used to check whether the %IpAddress instance is copied successfully.
- */
+ /**
+ * Creates and returns a copy of this instance.
+ *
+ * @since 2.0
+ *
+ * @return A copy of this instance
+ * @remarks The GetLastResult() method is used to check whether the %IpAddress instance is copied successfully.
+ */
virtual IpAddress* CloneN(void) const;
- /**
- * Copying of objects using this copy assignment operator is allowed.
- *
- * @since 2.0
- *
- * @return The reference of this instance
- * @param[in] rhs An instance of %Ip4Address
- */
+ /**
+ * Copying of objects using this copy assignment operator is allowed.
+ *
+ * @since 2.0
+ *
+ * @return A reference to this instance
+ * @param[in] rhs An instance of %Ip4Address to copy
+ */
Ip4Address& operator =(const Ip4Address& rhs);
- /**
- * Compares the specified instance of %Ip4Address with the calling instance.
- *
- * @since 2.0
- *
- * @return @c true if the values match, @n
- * else @c false
- * @param[in] rhs The other Tizen::Base::Object to compare
- * @see Tizen::Base::Object::Equals()
- */
+ /**
+ * Compares the specified instance of %Ip4Address with the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the values match, @n
+ * else @c false
+ * @param[in] rhs The other Tizen::Base::Object to compare
+ * @see Tizen::Base::Object::Equals()
+ */
virtual bool Equals(const Tizen::Base::Object& rhs) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
private:
class _IpAddressImpl;
/**
* @class IpAddress
- * @brief This abstract class encapsulates an Internet Protocol (IP) address and the methods to manipulate it.
+ * @brief This abstract class encapsulates an Internet Protocol (IP) address and provides methods to manipulate it.
*
* @since 2.0
*
* The %IpAddress class contains the address of a computer on an IP network. Different computers use different conventions for ordering the bytes
* within multi-byte integer values. Some computers put the most significant byte first (known as big-endian order) and others put the
* least-significant byte first (known as little-endian order). To work with the computers that use different byte ordering, all integer values sent
- * over the network are sent in network byte order. This class provides methods to change the order. An endpoint includes an IP address
+ * over the network are sent in the network byte order. This class provides methods to change the order. An endpoint includes an IP address
* and a port.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/net_namespace.htm">Net Guide</a>.
: public Tizen::Base::Object
{
public:
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~IpAddress(void);
- /**
- * Converts the specified unsigned short address from the host byte order to the network byte order.
- *
- * @since 2.0
- *
- * @return The address as an unsigned @c short value, in the network @c byte order
- * @param[in] host The IP address to convert, expressed in host @c byte order
- *
- * @see NetworkToHostOrder()
- */
+ /**
+ * Converts the specified unsigned short address from the host byte order to the network byte order.
+ *
+ * @since 2.0
+ *
+ * @return The address as an unsigned @c short value, in the network @c byte order
+ * @param[in] host The IP address to convert, expressed in the host @c byte order
+ *
+ * @see NetworkToHostOrder()
+ */
static unsigned short HostToNetworkOrder(unsigned short host);
- /**
- * Converts the specified unsigned long address from the host byte order to the network byte order.
- *
- * @since 2.0
- *
- * @return The address as an unsigned @c long value, in the network @c byte order
- * @param[in] host The IP address to convert, expressed in the host @c byte order
- *
- * @see NetworkToHostOrder()
- */
+ /**
+ * Converts the specified unsigned long address from the host byte order to the network byte order.
+ *
+ * @since 2.0
+ *
+ * @return The address as an unsigned @c long value, in the network @c byte order
+ * @param[in] host The IP address to convert, expressed in the host @c byte order
+ *
+ * @see NetworkToHostOrder()
+ */
static unsigned long HostToNetworkOrder(unsigned long host);
- /**
- * Converts the specified short integer address from network byte order to host byte order.
- *
- * @since 2.0
- *
- * @return The address as an unsigned @c short value, in the host @c byte order
- * @param[in] network The IP address to convert, expressed in the network @c byte order
- *
- * @see HostToNetworkOrder()
- */
+ /**
+ * Converts the specified short integer address from network byte order to the host byte order.
+ *
+ * @since 2.0
+ *
+ * @return The address as an unsigned @c short value, in the host @c byte order
+ * @param[in] network The IP address to convert, expressed in the network @c byte order
+ *
+ * @see HostToNetworkOrder()
+ */
static unsigned short NetworkToHostOrder(unsigned short network);
- /**
- * Converts the specified unsigned long address from the network byte order to the host byte order.
- *
- * @since 2.0
- *
- * @return The address as an unsigned @c long value, in the host @c byte order
- * @param[in] network The IP address to convert, expressed in the network @c byte order
- *
- * @see HostToNetworkOrder()
+ /**
+ * Converts the specified unsigned long address from the network byte order to the host byte order.
+ *
+ * @since 2.0
+ *
+ * @return The address as an unsigned @c long value, in the host @c byte order
+ * @param[in] network The IP address to convert, expressed in the network @c byte order
+ *
+ * @see HostToNetworkOrder()
*/
static unsigned long NetworkToHostOrder(unsigned long network);
- /**
- * Gets the address family to which the %IpAddress belongs.
- *
- * @since 2.0
- *
- * @return The address family
- */
+ /**
+ * Gets the address family to which the %IpAddress belongs.
+ *
+ * @since 2.0
+ *
+ * @return The address family
+ */
virtual NetAddressFamily GetNetAddressFamily(void) const = 0;
- /**
- * Gets the raw IP address of the endpoint. @n
- * An endpoint includes an IP address and a port.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[out] ipAddr A Tizen::Base::ByteBuffer object for getting the raw IP address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c ipAddr is invalid.
- * @exception E_OVERFLOW This operation has caused the memory to overflow.
- * @remarks The result @c ipAddr is in the host @c byte order. This method writes the raw address into the buffer parameter, starting from the
- * current position of the buffer. After the operation, the position of the buffer is incremented by the number of bytes successfully written
- * even if the operation fails. The new position cannot be larger than the original limit.
- */
+ /**
+ * Gets the raw IP address of an endpoint. @n
+ * An endpoint includes an IP address and a port.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[out] ipAddr A Tizen::Base::ByteBuffer object for getting the raw IP address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c ipAddr is invalid.
+ * @exception E_OVERFLOW This operation has caused the memory to overflow.
+ * @remarks The result @c ipAddr is in the host @c byte order. This method writes the raw address into the buffer parameter, starting from the
+ * current position of the buffer. After the operation, the position of the buffer is incremented by the number of bytes successfully written
+ * even if the operation fails. The new position cannot be larger than the original limit.
+ */
virtual result GetAddress(Tizen::Base::ByteBuffer& ipAddr) const = 0;
- /**
- * Gets the IP address of the endpoint as a string. @n
- * An endpoint includes an IP address and a port.
- *
- * @since 2.0
- *
- * @return The IP address, @n
- * else a null string if the address is not set
- */
+ /**
+ * Gets the IP address of an endpoint as a string. @n
+ * An endpoint includes an IP address and a port.
+ *
+ * @since 2.0
+ *
+ * @return The IP address, @n
+ * else a null string if the address is not set
+ */
virtual Tizen::Base::String ToString(void) const = 0;
- /**
- * Creates and returns a copy of this instance.
- *
- * @since 2.0
- *
- * @return The copy of this instance
- * @remarks The GetLastResult() method is used to check whether the %IpAddress instance is copied successfully.
- */
+ /**
+ * Creates and returns a copy of this instance.
+ *
+ * @since 2.0
+ *
+ * @return A copy of this instance
+ * @remarks The GetLastResult() method is used to check whether the %IpAddress instance is copied successfully.
+ */
virtual IpAddress* CloneN(void) const = 0;
protected:
: public Tizen::Base::Object
{
public:
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~IpHostEntry(void);
public:
- /**
- * Gets the IP address list of a domain name.
- *
- * @since 2.0
- *
- * @return An IEnumerator whose element is of the type IpAddress*, @n
- * else @c null if the object is not constructed or addressList is not set
- */
+ /**
+ * Gets the IP address list of a domain name.
+ *
+ * @since 2.0
+ *
+ * @return An IEnumerator whose element is of type IpAddress*, @n
+ * else @c null if the object is not constructed or the addressList is not set
+ */
Tizen::Base::Collection::IList* GetAddressList(void) const;
- /**
- * Gets the alias list of a domain name.
- *
- * @since 2.0
- *
- * @return An IEnumerator whose element is of the type String*, @n
- * else @c null if the object is not constructed or aliasList is not set
- */
+ /**
+ * Gets the alias list of a domain name.
+ *
+ * @since 2.0
+ *
+ * @return An IEnumerator whose element is of type String*, @n
+ * else @c null if the object is not constructed or the aliasList is not set
+ */
Tizen::Base::Collection::IList* GetAliasList(void) const;
private:
: public Tizen::Base::Object
{
public:
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~LocalDhcpServer(void);
- /**
- * Gets a singleton instance of %LocalDhcpServer that it associated with the specified network connection.
- *
- * @since 2.0
- *
- * @return An instance of %LocalDhcpServer
- * @param[in] netConnection A run-time session where a local DHCP server used
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets a singleton instance of %LocalDhcpServer that it associated with the specified network connection.
+ *
+ * @since 2.0
+ *
+ * @return An instance of %LocalDhcpServer
+ * @param[in] netConnection The run-time session where the local DHCP server is used
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
static LocalDhcpServer* GetInstance(const NetConnection& netConnection);
public:
- /**
- * Sets a listener instance for the events about a local DHCP server.
- *
- * @since 2.0
- *
- * @param[in] pListener An instance of ILocalDhcpServerEventListener @n
- * If it is @c null, it will reset the event listener.
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance has not been constructed as yet.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
- * because the caller thread is a worker thread.
- */
+ /**
+ * Sets a listener instance for the events associated with the local DHCP server.
+ *
+ * @since 2.0
+ *
+ * @param[in] pListener An instance of ILocalDhcpServerEventListener @n
+ * If it is @c null, it resets the event listener.
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has not been constructed as yet.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
+ * because the caller thread is a worker thread.
+ */
result SetLocalDhcpServerEventListener(ILocalDhcpServerEventListener* pListener);
public:
- /**
- * Gets a list of all the client information on the local DHCP server.
- *
- * @since 2.0
- *
- * @return An IList containing indexes to the DhcpClientInfo on the local DHCP server
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks In case of an error or if there is no active connection for the local DHCP server, @c null is returned.
- * The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the list of all the client information on the local DHCP server.
+ *
+ * @since 2.0
+ *
+ * @return An Tizen::Base::Collection::IList that contains indices to DhcpClientInfo on the local DHCP server, @n
+ * else @c null if an error occurs or there is no active connection for the local DHCP server
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance is in an invalid state.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::Collection::IList* GetDhcpClientInfoListN(void) const;
private:
*\r
* @since 2.0\r
*\r
- * The %ManagedNetConnection class provides functionalities for accessing the information about the default connection for data communication \r
- * managed by the system. Once the connection is established, the applications can use sockets and HTTP interfaces.\r
+ * The %ManagedNetConnection class provides functionalities for accessing information on the default connection managed by the system \r
+ * for data communication. Once the connection is established, the applications can use sockets and HTTP interfaces.\r
*\r
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/default_network_connection.htm">Default Network Connection</a>.\r
*/\r
* @since 2.0\r
*\r
* @param[in] pListener An instance of IManagedNetConnectionEventListener @n\r
- * If this is @c null, it will reset the event listener.\r
+ * If this is @c null, it resets the event listener.\r
* @return An error code\r
* @exception E_SUCCESS The method is successful.\r
* @exception E_SYSTEM An internal error has occurred.\r
* @return A pointer to an instance of NetConnectionInfo specifying the information about this network connection\r
* @exception E_SUCCESS The method is successful.\r
* @exception E_INVALID_STATE The network connection is inactive.\r
- * @remarks This method requires a NetConnectionInfo instance reference.\r
- * %NetConnectionInfo is only available when the network connection managed by the system is active. In other states, this returns null.\r
- * The specific error code can be accessed using the GetLastResult() method.\r
+ * @remarks \r
+ * - This method requires a NetConnectionInfo instance reference. @n\r
+ * %NetConnectionInfo is only available when the network connection managed by the system is active. In other states, this returns @c null.\r
+ * - The specific error code can be accessed using the GetLastResult() method.\r
* @warning Do not delete the returned NetConnectionInfo instance. This instance is directly referencing the internal connectionInfo of \r
* %ManagedNetConnection.\r
*/\r
\r
private:\r
/**\r
- * This default constructor is intentionally declared as private so that only the platform can create an instance.\r
- *\r
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.\r
- * @see Construct\r
+ * This default constructor is intentionally declared as private so that only the platform can create an instance. @n\r
+ * After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.\r
*/\r
ManagedNetConnection(void);\r
\r
: public Tizen::Base::Object
{
public:
- /**
+ /**
* The object is not fully constructed after this constructor is called. @n
* For full construction, the Construct() method must be called right after calling this constructor.
*
* @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
*/
NetAccountInfo(void);
- /**
+ /**
* This destructor overrides Tizen::Base::Object::~Object().
*
* @since 2.0
*/
virtual ~NetAccountInfo(void);
- /**
- * Initializes this instance of %NetAccountInfo with the specified %NetAccountInfo instance. @n
- * Only the data part is cloned. Attributes such as NetAccountId and the connection status, which are linked with the registry are set to default values.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] netAccountInfo A %NetAccountInfo instance to initialize the calling instance
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c netAccountInfo is invalid.
- */
+ /**
+ * Initializes this instance of %NetAccountInfo with the specified %NetAccountInfo instance. @n
+ * Only the data part is cloned. Attributes such as NetAccountId and connection status, which are linked with the registry are set to default values.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] netAccountInfo A %NetAccountInfo instance to initialize the current instance
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c netAccountInfo is invalid.
+ */
result Construct(const NetAccountInfo& netAccountInfo);
- /**
- * Initializes this instance of %NetAccountInfo.
- *
- * @since 2.0
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- */
+ /**
+ * Initializes this instance of %NetAccountInfo.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ */
result Construct(void);
- /**
- * Gets an account ID.
- *
- * @since 2.0
- *
- * @return The account ID
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the account ID.
+ *
+ * @since 2.0
+ *
+ * @return The account ID
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetAccountId GetAccountId(void) const;
- /**
- * Gets the name of an account.
- *
- * @since 2.0
- *
- * @return The name of the account, @n
- * else a null string if the name is not set or not constructed
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetAccountName()
- */
+ /**
+ * Gets the name of an account.
+ *
+ * @since 2.0
+ *
+ * @return The name of the account, @n
+ * else a @c null string if the name is not set or constructed
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetAccountName()
+ */
Tizen::Base::String GetAccountName(void) const;
- /**
- * Sets the name of an account. @n
- * If this method fails, the state of this instance does not change.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] accountName The name of an account
- * @exception E_SUCCESS The method is successful.
- * @see GetAccountName()
- */
+ /**
+ * Sets the name of an account. @n
+ * If this method fails, the state of this instance does not change.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] accountName The name of the account
+ * @exception E_SUCCESS The method is successful.
+ * @see GetAccountName()
+ */
result SetAccountName(const Tizen::Base::String& accountName);
- /**
- * Gets the protocol type.
- *
- * @since 2.0
- *
- * @return The type of the protocol
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetProtocolType()
- */
+ /**
+ * Gets the protocol type.
+ *
+ * @since 2.0
+ *
+ * @return The type of the protocol
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetProtocolType()
+ */
NetProtocolType GetProtocolType(void) const;
- /**
- * Sets the protocol type.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] netProtocolType The type of the protocol
- * @exception E_SUCCESS The method is successful.
- * @remarks If this method fails, the state of this instance does not change.
- * @see GetProtocolType()
- */
+ /**
+ * Sets the protocol type.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] netProtocolType The type of the protocol
+ * @exception E_SUCCESS The method is successful.
+ * @remarks If this method fails, the state of this instance does not change.
+ * @see GetProtocolType()
+ */
result SetProtocolType(NetProtocolType netProtocolType);
- /**
- * Gets an Access Point Name.
- *
- * @since 2.0
- *
- * @return The Access Point Name, @n
- * else a null string if the name is not set or the instance is not constructed
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetAccessPointName()
- */
+ /**
+ * Gets the Access Point Name.
+ *
+ * @since 2.0
+ *
+ * @return The Access Point Name, @n
+ * else a @c null string if the name is not set or the instance is not constructed
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetAccessPointName()
+ */
Tizen::Base::String GetAccessPointName(void) const;
- /**
- * Sets the name of the access point. @n
- * If this method fails, the state of this instance does not change.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] accessPointName The Access Point Name
- * @exception E_SUCCESS The method is successful.
- * @see GetAccessPointName()
- */
+ /**
+ * Sets the name of an access point. @n
+ * If this method fails, the state of this instance does not change.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] accessPointName The Access Point Name
+ * @exception E_SUCCESS The method is successful.
+ * @see GetAccessPointName()
+ */
result SetAccessPointName(const Tizen::Base::String& accessPointName);
- /**
- * Gets the setting for the local address scheme. @n
- * This scheme can be dynamic or static.
- *
- * @since 2.0
- *
- * @return The address scheme
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetLocalAddress()
- * @see GetLocalAddress()
- */
+ /**
+ * Gets the setting for the local address scheme. @n
+ * This scheme can be dynamic or static.
+ *
+ * @since 2.0
+ *
+ * @return The address scheme
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetLocalAddress()
+ * @see GetLocalAddress()
+ */
NetAddressScheme GetLocalAddressScheme(void) const;
- /**
- * Gets the local address.
- *
- * @since 2.0
- *
- * @return The local address, @n
- * else @c null if an error occurs or the dynamic address scheme is being used
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION This operation is not allowed in the dynamic address scheme.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetLocalAddress()
- */
+ /**
+ * Gets the local address.
+ *
+ * @since 2.0
+ *
+ * @return The local address, @n
+ * else @c null if an error occurs or the dynamic address scheme is being used
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION This operation is not allowed in the dynamic address scheme.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetLocalAddress()
+ */
const IpAddress* GetLocalAddress(void) const;
- /**
- * Enables or disables the use of a static local IP address.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] localAddrScheme An indicator specifying whether to use a static local IP address
- * @param[in] pLocalAddress The local IP address @n
- * If @c localAddrScheme is set to @c NET_ADDRESS_SCHEME_STATIC, the local IP address assigned is static.
- * If @c localAddrScheme is set to @c NET_ADDRESS_SCHEME_DYNAMIC or @c NET_ADDRESS_SCHEME_NONE, this parameter is ignored.
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @see GetLocalAddress()
- */
+ /**
+ * Enables or disables the use of a static local IP address.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] localAddrScheme The indicator that specifies whether to use a static local IP address
+ * @param[in] pLocalAddress The local IP address @n
+ * If @c localAddrScheme is set to @c NET_ADDRESS_SCHEME_STATIC, the local IP address assigned is static @n
+ * If @c localAddrScheme is set to @c NET_ADDRESS_SCHEME_DYNAMIC or @c NET_ADDRESS_SCHEME_NONE, this parameter is ignored.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @see GetLocalAddress()
+ */
result SetLocalAddress(NetAddressScheme localAddrScheme, const IpAddress* pLocalAddress);
- /**
- * Gets the setting for the DNS address scheme.
- *
- * @since 2.0
- *
- * @return The address scheme for the DNS
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see GetPrimaryDnsAddress()
- * @see GetSecondaryDnsAddress()
- * @see SetDnsAddress()
- */
+ /**
+ * Gets the setting for the DNS address scheme.
+ *
+ * @since 2.0
+ *
+ * @return The address scheme for the DNS
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see GetPrimaryDnsAddress()
+ * @see GetSecondaryDnsAddress()
+ * @see SetDnsAddress()
+ */
NetAddressScheme GetDnsAddressScheme(void) const;
- /**
- * Gets the setting for the primary DNS address.
- *
- * @since 2.0
- *
- * @return The IpAddress of primary DNS address, @n
- * else @c null if an error occurs or the dynamic address scheme is being used
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION This operation is not allowed in the dynamic address scheme.
- * @remarks
- * - When this instance is got by NetAccountManager::GetNetAccountInfoN(),
- * - this method returns a statically assigned primary DNS address pointer if the DNS address scheme is NET_ADDRESS_SCHEME_STATIC
- * - this method returns @n null if the DNS address scheme is @c NET_ADDRESS_SCHEME_DYNAMIC @n
- * - The specific error code can be accessed using the GetLastResult() method.
- * @see GetSecondaryDnsAddress()
- */
+ /**
+ * Gets the setting for the primary DNS address.
+ *
+ * @since 2.0
+ *
+ * @return The IpAddress of the primary DNS address, @n
+ * else @c null if an error occurs or the dynamic address scheme is being used
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION This operation is not allowed in the dynamic address scheme.
+ * @remarks
+ * - When this instance is obtained by NetAccountManager::GetNetAccountInfoN(),
+ * - this method returns a statically assigned primary DNS address pointer if the DNS address scheme is ::NET_ADDRESS_SCHEME_STATIC.
+ * - this method returns @c null if the DNS address scheme is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * @see GetSecondaryDnsAddress()
+ */
const IpAddress* GetPrimaryDnsAddress(void) const;
- /**
- * Gets the setting for the secondary DNS address.
- *
- * @since 2.0
- *
- * @return The secondary DNS IP address, @n
- * else @c null if an error occurs or the dynamic address scheme is being used
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION This operation is not allowed in the dynamic address scheme.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetDnsAddress()
- */
+ /**
+ * Gets the setting for the secondary DNS address.
+ *
+ * @since 2.0
+ *
+ * @return The IpAddress of the secondary DNS address, @n
+ * else @c null if an error occurs or the dynamic address scheme is being used
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION This operation is not allowed in the dynamic address scheme.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetDnsAddress()
+ */
const IpAddress* GetSecondaryDnsAddress(void) const;
- /**
- * Enables or disables the use of a static DNS address with the specified IpAddress objects. @n
- * If @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_DYNAMIC, both @c primaryDnsAddress and @c secondaryDnsAddress are ignored. @n
- * If @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_STATIC, @c primaryDnsAddress must be a valid IpAddress.
- * However, @c pSecondaryDnsAddress can be @c null.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] dnsAddrScheme An indicator specifying whether or not to use a static DNS address
- * @param[in] pPrimaryDnsAddress The statically assigned primary DNS address if @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_STATIC
- * @param[in] pSecondaryDnsAddress The statically assigned secondary DNS address if @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_STATIC
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @see GetPrimaryDnsAddress()
- * @see GetSecondaryDnsAddress()
- */
+ /**
+ * Enables or disables the use of a static DNS address with the specified IpAddress objects. @n
+ * If @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_DYNAMIC, both @c primaryDnsAddress and @c secondaryDnsAddress are ignored. @n
+ * If @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_STATIC, @c primaryDnsAddress must be a valid %IpAddress.
+ * However, @c pSecondaryDnsAddress can be @c null.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] dnsAddrScheme The indicator that specifies whether or not to use a static DNS address
+ * @param[in] pPrimaryDnsAddress The statically assigned primary DNS address if @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_STATIC
+ * @param[in] pSecondaryDnsAddress The statically assigned secondary DNS address if @c dnsAddrScheme is @c NET_ADDRESS_SCHEME_STATIC
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @see GetPrimaryDnsAddress()
+ * @see GetSecondaryDnsAddress()
+ */
result SetDnsAddress(NetAddressScheme dnsAddrScheme, const IpAddress* pPrimaryDnsAddress, const IpAddress* pSecondaryDnsAddress);
- /**
- * Gets the proxy address of the network accounts.
- *
- * @since 2.0
- *
- * @return The proxy address, @n
- * else @c null if an error occurs or the address is not set
- * @exception E_SUCCESS The method is successful.
- * @exception E_UNSUPPORTED_FORMAT The specified address format is not supported.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the proxy address of the network accounts.
+ *
+ * @since 2.0
+ *
+ * @return The proxy address, @n
+ * else @c null if an error occurs or the address is not set
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_UNSUPPORTED_FORMAT The specified address format is not supported.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
const NetEndPoint* GetProxyAddress(void) const;
- /**
- * Sets the proxy address of the network accounts.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pProxyEndPoint A pointer to a NetEndPoint instance containing the IP address and port
- * @exception E_SUCCESS The method is successful.
- */
+ /**
+ * Sets the proxy address of the network accounts.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pProxyEndPoint A pointer to NetEndPoint that contains the IP address and port
+ * @exception E_SUCCESS The method is successful.
+ */
result SetProxyAddress(const NetEndPoint* pProxyEndPoint);
- /**
- * Gets the authentication configuration of network accounts. @n
- * The user is not provided with read access to the credential information present in the registry if the network account information is extracted from
- * the registry using @ref NetAccountManager::GetNetAccountInfoN().
- *
- * @since 2.0
- *
- * @return An error code
- * @param[out] authenticationType The type of the authentication used
- * @param[out] id The ID
- * @param[out] password The password
- * @exception E_SUCCESS The method is successful.
- * @exception E_ILLEGAL_ACCESS The user is not provided with read access to the credential information present in the registry, if the network
- * account information is extracted from the registry using NetAccountManager::GetNetAccountInfoN().
- * @remarks If this method fails, the state of this instance does not change.
- * @see SetAuthenticationInfo()
- *
- */
+ /**
+ * Gets the authentication configuration of the network accounts. @n
+ * The user is not provided with read access to the credential information present in the registry if the network account information is extracted from
+ * the registry using NetAccountManager::GetNetAccountInfoN().
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[out] authenticationType The type of authentication used
+ * @param[out] id The ID
+ * @param[out] password The password
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_ILLEGAL_ACCESS The user is not provided with read access to the credential information present in the registry, if the network
+ * account information is extracted from the registry using NetAccountManager::GetNetAccountInfoN().
+ * @remarks If this method fails, the state of this instance does not change.
+ * @see SetAuthenticationInfo()
+ *
+ */
result GetAuthenticationInfo(NetNapAuthType& authenticationType, Tizen::Base::String& id, Tizen::Base::String& password) const;
- /**
- * Sets the authentication configuration of the network accounts.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] authenticationType The type of the authentication used
- * @param[in] id The ID
- * @param[in] password The password
- * @exception E_SUCCESS The method is successful.
- * @remarks If this method fails, the state of this instance does not change.
- * @see GetAuthenticationInfo()
- *
- */
+ /**
+ * Sets the authentication configuration of the network accounts.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] authenticationType The type of the authentication used
+ * @param[in] id The ID
+ * @param[in] password The password
+ * @exception E_SUCCESS The method is successful.
+ * @remarks If this method fails, the state of this instance does not change.
+ * @see GetAuthenticationInfo()
+ *
+ */
result SetAuthenticationInfo(NetNapAuthType authenticationType, const Tizen::Base::String& id, const Tizen::Base::String& password);
- /**
- * Gets the operational bearer type of this account.
- *
- * @since 2.0
- *
- * @return The operational bearer type
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the operational bearer type of this account.
+ *
+ * @since 2.0
+ *
+ * @return The operational bearer type
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetBearerType GetBearerType(void) const;
- /**
- * Gets the current URL of a home page.
- *
- * @since 2.0
- *
- * @return The current URL of a home page
- * @see SetHomeUrl()
- */
+ /**
+ * Gets the current URL of a home page.
+ *
+ * @since 2.0
+ *
+ * @return The current URL of the home page
+ * @see SetHomeUrl()
+ */
Tizen::Base::String GetHomeUrl(void) const;
- /**
- * Sets a URL as a home page.
- *
- * @since 2.0
- *
- * @param[in] homeUrl The URL to set as a home page
- * @see GetHomeUrl()
- */
+ /**
+ * Sets a URL as the home page.
+ *
+ * @since 2.0
+ *
+ * @param[in] homeUrl The URL to set as the home page
+ * @see GetHomeUrl()
+ */
void SetHomeUrl(const Tizen::Base::String& homeUrl);
- /**
- * Gets the maximum length of the user name.
- *
- * @since 2.0
- *
- * @return The maximum length of the user name
- */
+ /**
+ * Gets the maximum length of a user name.
+ *
+ * @since 2.0
+ *
+ * @return The maximum length of the user name
+ */
int GetMaximumLengthOfId(void) const;
- /**
- * Gets the maximum length of the password.
- *
- * @since 2.0
- *
- * @return The maximum length of the password
- */
+ /**
+ * Gets the maximum length of a password.
+ *
+ * @since 2.0
+ *
+ * @return The maximum length of the password
+ */
int GetMaximumLengthOfPassword(void) const;
- /**
- * Gets the maximum length of the account name.
- *
- * @since 2.0
- *
- * @return The maximum length of the account name
- */
+ /**
+ * Gets the maximum length of an account name.
+ *
+ * @since 2.0
+ *
+ * @return The maximum length of the account name
+ */
int GetMaximumLengthOfAccountName(void) const;
- /**
- * Gets a value that indicates whether the network account is read-only. @n
- * If it returns @c true, this account is read-only; so any change to this account is not permitted. @n
- * When it returns @c false, modification is possible.
- *
- * @since 2.0
- *
- * @return @c true if this account is read only, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the value that indicates whether the network account is read-only. @n
+ * If it returns @c true, this account is read-only; so any change to this account is not permitted. @n
+ * When it returns @c false, modification is possible.
+ *
+ * @since 2.0
+ *
+ * @return @c true if this account is read only, @n
+ * else @c false
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
bool IsReadOnly(void) const;
- /**
- * Compares the specified instance of %NetAccountInfo with the calling instance.
- *
- * @since 2.0
- *
- * @return @c true if the values match, @n
- * else @c false
- * @param[in] rhs The other Tizen::Base::Object to compare
- * @see Tizen::Base::Object::Equals()
- */
+ /**
+ * Compares the specified instance of %NetAccountInfo with the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the values match, @n
+ * else @c false
+ * @param[in] rhs The other Tizen::Base::Object to compare
+ * @see Tizen::Base::Object::Equals()
+ */
virtual bool Equals(const Tizen::Base::Object& rhs) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
private:
*
* @since 2.0
*
- * The %NetAccountManager class provides methods for creating, deleting, and administering components that can be used for configuring the
- * network accounts. These accounts can then be used for connecting to the network.
+ * The %NetAccountManager class provides methods for creating, deleting, and administering components that can be used for configuring
+ * network accounts. These accounts can then be used for connecting to a network.
*
* For more information on the class features, see
* <a href="../org.tizen.native.appprogramming/html/guide/net/network_accounts.htm">Network Accounts</a>.
: public Tizen::Base::Object
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ */
NetAccountManager(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~NetAccountManager(void);
- /**
- * Initializes this instance of %NetAccountManager.
- *
- * @since 2.0
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM An internal initialization procedure has failed.
- */
+ /**
+ * Initializes this instance of %NetAccountManager.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM An internal initialization procedure has failed.
+ */
result Construct(void);
public:
- /**
- * Creates a new network account.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.account
- * @feature %http://tizen.org/feature/network.telephony
- *
- * @return The @c NetAccountId assigned by the creation of a new network account, @n
- * else @c INVALID_HANDLE if an error occurs
- * @param[in,out] netAccountInfo A NetAccountInfo instance containing network information to create an account
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_MAX_EXCEEDED The registry is full. @n Cannot create a new network account.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks
- * - This method creates a new network account and returns a @c NetAccountId value that can be used in method calls later to operate on the
- * account. If @c INVALID_HANDLE is returned, the specific error code can be accessed using the GetLastResult() method. A Wi-Fi account
- * cannot be created using %NetAccountManager.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- * @see GetNetAccountInfoN()
- * @see UpdateNetAccount()
- * @see DeleteNetAccount()
- */
+ /**
+ * Creates a new network account.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.account
+ * @feature %http://tizen.org/feature/network.telephony
+ *
+ * @return The NetAccountId assigned by the creation of a new network account, @n
+ * else @c INVALID_HANDLE if an error occurs
+ * @param[in,out] netAccountInfo A NetAccountInfo instance that contains the network information to create the account
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_MAX_EXCEEDED The registry is full so a new network account cannot be created.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks
+ * - This method creates a new network account and returns a NetAccountId value that can be used in method calls later to operate on the
+ * account.
+ * - A Wi-Fi account cannot be created using %NetAccountManager.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * @see GetNetAccountInfoN()
+ * @see UpdateNetAccount()
+ * @see DeleteNetAccount()
+ */
NetAccountId CreateNetAccount(NetAccountInfo& netAccountInfo);
- /**
- * Deletes a network account from the registry. @n
- * If the account is read-only or in service, the deletion fails. The Wi-Fi accounts cannot be deleted by %NetAccountManager.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.account
- *
- * @return An error code
- * @param[in] netAccountId A NetAccountId instance containing valid account information
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ACCOUNT The specified network account is invalid.
- * @exception E_INVALID_OPERATION This operation is not allowed on this network account instance.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @remarks If the network account is created by another application, this method fails.
- * This method must use a warning pop-up to notify the user.
- * @see CreateNetAccount()
- * @see GetNetAccountInfoN()
- * @see UpdateNetAccount()
- */
+ /**
+ * Deletes a network account from the registry. @n
+ * If the account is read-only or in service, the deletion fails. Wi-Fi accounts cannot be deleted by %NetAccountManager.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.account
+ *
+ * @return An error code
+ * @param[in] netAccountId A NetAccountId instance that contains valid account information
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ACCOUNT The specified network account is invalid.
+ * @exception E_INVALID_OPERATION This operation is not allowed on this network account instance.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @remarks
+ * - If the network account is created by another application, this method fails.
+ * - This method must use a warning pop-up to notify the user.
+ * @see CreateNetAccount()
+ * @see GetNetAccountInfoN()
+ * @see UpdateNetAccount()
+ */
result DeleteNetAccount(NetAccountId netAccountId);
- /**
- * Updates an existing network account.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.account
- * @feature %http://tizen.org/feature/network.telephony
- *
- * @return An error code
- * @param[in] netAccountInfo A NetAccountInfo instance containing network information to update an account
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_ACCOUNT The input is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_INVALID_OPERATION This operation is not allowed on this network account instance.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks
- * - This method fails if the network account is read-only, in service, or created by another application.
- * A Wi-Fi account cannot be updated using %NetAccountManager.
- * This method must use a warning pop-up to notify the user.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- * @see CreateNetAccount()
- * @see GetNetAccountInfoN()
- * @see UpdateNetAccount()
- * @see DeleteNetAccount()
- */
+ /**
+ * Updates an existing network account.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.account
+ * @feature %http://tizen.org/feature/network.telephony
+ *
+ * @return An error code
+ * @param[in] netAccountInfo A NetAccountInfo instance that contains the network information to update the account
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_ACCOUNT The specified account ID is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_INVALID_OPERATION This operation is not allowed on this network account instance.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks
+ * - This method fails if the network account is read-only, in service, or created by another application.
+ * - A Wi-Fi account cannot be updated using %NetAccountManager.
+ * - This method must use a warning pop-up to notify the user.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * @see CreateNetAccount()
+ * @see GetNetAccountInfoN()
+ * @see UpdateNetAccount()
+ * @see DeleteNetAccount()
+ */
result UpdateNetAccount(const NetAccountInfo& netAccountInfo);
- /**
- * Updates an existing system network account.
- *
- * @since 2.0
- *
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/networkmanager
- * @feature %http://tizen.org/feature/network.telephony for the NET_BEARER_PS value and @n
- * %http://tizen.org/feature/network.telephony.mms for the NET_BEARER_MMS value of @c netAccountInfo.GetBearerType()
- *
- * @return An error code
- * @param[in] netAccountInfo A NetAccountInfo instance containing network information to update an account
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_ACCOUNT The input account ID is invalid.
- * @exception E_OPERATION_FAILED This request operation has failed due to an internal error.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- * @see GetNetAccountInfoN()
- * @see UpdateNetAccount()
- */
+ /**
+ * Updates an existing system network account.
+ *
+ * @since 2.0
+ *
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/networkmanager
+ * @feature %http://tizen.org/feature/network.telephony for the ::NET_BEARER_PS value and @n
+ * %http://tizen.org/feature/network.telephony.mms for the ::NET_BEARER_MMS value of @c netAccountInfo.GetBearerType()
+ *
+ * @return An error code
+ * @param[in] netAccountInfo A NetAccountInfo instance that contains the network information to update the account
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_ACCOUNT The specified account ID is invalid.
+ * @exception E_OPERATION_FAILED This request operation has failed due to an internal error.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * @see GetNetAccountInfoN()
+ * @see UpdateNetAccount()
+ */
result UpdateSystemNetAccount(const NetAccountInfo& netAccountInfo);
- /**
- * Gets the information on a network account.
- *
- * @since 2.0
- *
- * @return A NetAccountInfo instance containing account information
- * @param[in] netAccountId The account ID whose information is required
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ACCOUNT The specified network account is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_INVALID_OPERATION This operation is not allowed on this network account instance.
- * @exception E_INVALID_PROXY The proxy address is invalid.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks This method returns:
- * - the NetAccountInfo instance for a PS account (NET_BEARER_PS) @n
- * - the WifiNetAccountInfo instance for a WLAN account (NET_BEARER_WIFI) in the %NetAccountInfo type @n
- * The Wi-Fi account info contains the default %NetAccountInfo and additional Wi-Fi specific information. @n
- * To determine the type of instance returned, use the GetBearerType() method.
- * The instance can then be cast down to %WifiNetAccountInfo and used in a NET_BEARER_WIFI case. If the
- * application gets the last result by E_INVALID_PROXY, it must use a warning pop-up to notify the user.
- * @see CreateNetAccount()
- * @see UpdateNetAccount()
- * @see DeleteNetAccount()
- */
+ /**
+ * Gets the information of a network account.
+ *
+ * @since 2.0
+ *
+ * @return A NetAccountInfo instance that contains the account information
+ * @param[in] netAccountId The account ID whose information is required
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ACCOUNT The specified network account is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_INVALID_OPERATION This operation is not allowed on this network account instance.
+ * @exception E_INVALID_PROXY The proxy address is invalid.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - This method returns:
+ * - the NetAccountInfo instance for a PS account (::NET_BEARER_PS)
+ * - the WifiNetAccountInfo instance for a WLAN account (::NET_BEARER_WIFI) in the NetAccountInfo type @n
+ * The Wi-Fi account information contains the default %NetAccountInfo and additional Wi-Fi specific information. @n
+ * To determine the type of instance returned, use the GetBearerType() method. @n
+ * The instance can then be cast down to %WifiNetAccountInfo and used in a @c NET_BEARER_WIFI case. @n
+ * If the application gets the last result by @c E_INVALID_PROXY, it must use a warning pop-up to notify the user.
+ * @see CreateNetAccount()
+ * @see UpdateNetAccount()
+ * @see DeleteNetAccount()
+ */
NetAccountInfo* GetNetAccountInfoN(NetAccountId netAccountId) const;
- /**
- * Gets a list of all the accounts in the registry.
- *
- * @since 2.0
- *
- * @return A Tizen::Base::Collection::IList with NetAccoundIds, which are in the registry
- * @exception E_SUCCESS The method is successful.
- * @exception E_OBJ_NOT_FOUND The NetAccountInfo is not found in the registry.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the list of all the accounts in the registry.
+ *
+ * @since 2.0
+ *
+ * @return A Tizen::Base::Collection::IList with NetAccoundIds, which are in the registry
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OBJ_NOT_FOUND The NetAccountInfo is not found in the registry.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::Collection::IListT <NetAccountId>* GetNetAccountIdsN(void) const;
- /**
- * Gets a list of names of all the registered accounts.
- *
- * @since 2.0
- *
- * @return A Tizen::Base::Collection::IList containing the indexes to the NetAccountInfos in the registry
- * @exception E_SUCCESS The method is successful.
- * @exception E_OBJ_NOT_FOUND The NetAccountInfo is not found in the registry.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred (baseband or system).
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the list of all the registered account names.
+ *
+ * @since 2.0
+ *
+ * @return A Tizen::Base::Collection::IList that contains the indices to the NetAccountInfos in the registry
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OBJ_NOT_FOUND The NetAccountInfo is not found in the registry.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred (baseband or system).
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::Collection::IList* GetNetAccountNamesN(void) const;
- /**
- * Gets a network account, which has the specified name.
- *
- * @since 2.0
- *
- * @return The NetAccountID with the specified name, @n
- * else @c INVALID_HANDLE in case of an error or if NetAccountInfo is not found
- * @param[in] netAccountName The network account name to search for
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c netAccountName is invalid or NetAccountInfo with this name does not exist.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the network account, which has the specified name.
+ *
+ * @since 2.0
+ *
+ * @return The NetAccountID with the specified name, @n
+ * else @c INVALID_HANDLE in case of an error or if NetAccountInfo is not found
+ * @param[in] netAccountName The network account name to search for
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG Either of the following conditions has occurred:
+ * - The specified @c netAccountName is invalid.
+ * - A NetAccountInfo with this name does not exist.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetAccountId GetNetAccountId(const Tizen::Base::String& netAccountName) const;
- /**
- * Gets a network account, which is set for the Tizen application on each bearer.
- *
- * @since 2.0
- *
- * @feature %http://tizen.org/feature/network.telephony for the NET_BEARER_PS value and @n
- * %http://tizen.org/feature/network.wifi for the NET_BEARER_WIFI value and @n
- * %http://tizen.org/feature/network.wifi,direct for the NET_BEARER_WIFI_DIRECT value and @n
- * %http://tizen.org/feature/usb.host for the NET_BEARER_USB value and @n
- * %http://tizen.org/feature/network.telephony.mms for the NET_BEARER_MMS value of @c netBearerType
- *
- * @return The network account, @n
- * else INVALID_HANDLE in case of an error or if NetAccountInfo is not found
- * @param[in] netBearerType The network account type of bearer
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM An internal error has occurred (baseband).
- * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks
- * - The specific error code can be accessed using the GetLastResult() method.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- */
+ /**
+ * Gets the network account, which is set for the Tizen application on each bearer.
+ *
+ * @since 2.0
+ *
+ * @feature %http://tizen.org/feature/network.telephony for the @c NET_BEARER_PS value and @n
+ * %http://tizen.org/feature/network.wifi for the @c NET_BEARER_WIFI value and @n
+ * %http://tizen.org/feature/network.wifi,direct for the @c NET_BEARER_WIFI_DIRECT value and @n
+ * %http://tizen.org/feature/usb.host for the @c NET_BEARER_USB value and @n
+ * %http://tizen.org/feature/network.telephony.mms for the @c NET_BEARER_MMS value of @c netBearerType
+ *
+ * @return The network account, @n
+ * else @c INVALID_HANDLE in case of an error or if NetAccountInfo is not found
+ * @param[in] netBearerType The network account type of the bearer
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM An internal error has occurred (baseband).
+ * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ */
NetAccountId GetNetAccountId(NetBearerType netBearerType = NET_BEARER_PS) const;
- /**
- * Gets a network account, which is set for the application like email, IM, and so on.
- *
- * @since 2.0
- *
- * @privlevel partner
- * @privilege %http://tizen.org/privilege/customnetaccount
- * @feature %http://tizen.org/feature/network.telephony for the L"Internet" value and @n
- * %http://tizen.org/feature/network.telephony.mms for the L"Mms" value of @c netProfileName
- *
- * @return The @c NetAccountID with the specified name, @n
- * else INVALID_HANDLE is returned in case of an error or if %NetAccountInfo is not found
- * @param[in] netProfileName The network profile name for an application such as email
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The @c netAccountName is invalid or %NetAccountInfo with this name does not exist.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks
- * - The specific error code can be accessed using the GetLastResult() method.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- */
+ /**
+ * Gets the network account, which is set for the application like email, IM, and so on.
+ *
+ * @since 2.0
+ *
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/customnetaccount
+ * @feature %http://tizen.org/feature/network.telephony for the L"Internet" value and @n
+ * %http://tizen.org/feature/network.telephony.mms for the L"Mms" value of @c netProfileName
+ *
+ * @return The NetAccountID with the specified name, @n
+ * else @c INVALID_HANDLE in case of an error or if NetAccountInfo is not found
+ * @param[in] netProfileName The network profile name for an application such as email
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG Either of the following conditions has occurred:
+ * - The specified @c netAccountName is invalid.
+ * - A NetAccountInfo with this name does not exist.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ */
NetAccountId GetAppNetAccountId(const Tizen::Base::String& netProfileName) const;
- /**
- * Sets the application-wise default account ID to the one specified by the input argument value.
- *
- * @since 2.0
- *
- * @privlevel partner
- * @privilege %http://tizen.org/privilege/customnetaccount
- *
- * @return An error code
- * @param[in] netAccountId The network account ID
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c netAccountId is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- */
+ /**
+ * Sets the application-wise default account ID to the specified input argument value.
+ *
+ * @since 2.0
+ *
+ * @privlevel partner
+ * @privilege %http://tizen.org/privilege/customnetaccount
+ *
+ * @return An error code
+ * @param[in] netAccountId The network account ID
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c netAccountId is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ */
result SetNetAccountId(NetAccountId netAccountId);
- /**
- * @if OSPDEPREC
- * Gets the preferred network.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
- * @since 2.0
- *
- * @return The preferred network, @n
- * else @c NET_WIFI_FIRST in case of an error or if the preferred network is not set
- * @exception E_SUCCESS The method is successful.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Gets the preferred network.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
+ * @since 2.0
+ *
+ * @return The preferred network, @n
+ * else @c NET_WIFI_FIRST in case of an error or if the preferred network is not set
+ * @exception E_SUCCESS The method is successful.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @endif
+ */
NetPreferenceType GetNetPreference(void) const;
- /**
- * @if OSPDEPREC
- * Sets the preferred network.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.connection
- * @feature %http://tizen.org/feature/network.wifi for the NET_WIFI_ONLY value and @n
- * %http://tizen.org/feature/network.telephony for the NET_PS_ONLY value of @c netPreference
- *
- * @return An error code
- * @param[in] netPreference The preferred network
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION This operation is not allowed.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks
- * - If this method is not used, the default connection works in the Wi-Fi first mode.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Sets the preferred network.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.connection
+ * @feature %http://tizen.org/feature/network.wifi for the @c NET_WIFI_ONLY value and @n
+ * %http://tizen.org/feature/network.telephony for the @c NET_PS_ONLY value of @c netPreference
+ *
+ * @return An error code
+ * @param[in] netPreference The preferred network
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION This operation is not allowed.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks
+ * - If this method is not used, the default connection works in the Wi-Fi first mode.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * @endif
+ */
result SetNetPreference(NetPreferenceType netPreference = NET_WIFI_FIRST);
private:
*
* @since 2.0
*
- * The %NetConnection class provides methods for managing the connections for data communication.
+ * The %NetConnection class provides methods for managing connections in data communication.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/managing_network_connections.htm">Managing Network Connections</a>.
*
: public Tizen::Base::Object
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ */
NetConnection(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~NetConnection(void);
- /**
- * Initializes this instance of %NetConnection with the specified parameter. @n
- * It automatically binds @c netAccountId with %NetConnection. This method registers an application for receiving the network connection events. @n
- * A network connection is based on a configured network account for starting the connection. In order to start the network connection, create a new
- * network account or obtain the information of an existing network account, and call the Start() method.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] netAccountId The index of the network account to which this %NetConnection is bound
- * @exception E_SUCCESS The method is successful.
- * @exception E_MAX_EXCEEDED Unable to setup a new connection due to too many existing connections.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_INVALID_PROXY The proxy address is invalid.
- * @remarks If the application gets the last result by @c E_INVALID_PROXY, it must use a warning pop-up to notify the user.
- */
+ /**
+ * Initializes this instance of %NetConnection with the specified parameter. @n
+ * It automatically binds @c netAccountId with %NetConnection. The %Construct() method registers an application for receiving network connection events. @n
+ * A network connection is based on a configured network account used for starting a connection. In order to start a network connection, create a new
+ * network account or obtain the information of an existing network account, and call the Start() method.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] netAccountId The index of the network account to which this %NetConnection is bound
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_MAX_EXCEEDED Unable to setup a new connection due to too many existing connections.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_INVALID_PROXY The proxy address is invalid.
+ * @remarks If the application gets the last result by @c E_INVALID_PROXY, it must use a warning pop-up to notify the user.
+ */
result Construct(NetAccountId netAccountId);
public:
- /**
- * Adds a listener to %NetConnection. @n
- * The added listener can listen to events when they are fired.
- *
- * @since 2.0
- *
- * @param[in] listener A reference to INetConnectionEventListener
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_OBJ_ALREADY_EXIST The listener is already added.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
- * because the caller thread is a worker thread.
- */
+ /**
+ * Adds a listener to %NetConnection. @n
+ * The added listener can listen to events when they are fired.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] listener A reference to INetConnectionEventListener
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OBJ_ALREADY_EXIST The listener is already added.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation, @n
+ * because the caller thread is a worker thread.
+ */
result AddNetConnectionListener(INetConnectionEventListener& listener);
- /**
- * Removes the specified INetConnectionEventListener instance.
- *
- * @since 2.0
- *
- * @param[in] listener A reference to INetConnectionEventListener
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @exception E_OBJ_NOT_FOUND The eventListener is not found.
- */
+ /**
+ * Removes the specified INetConnectionEventListener instance.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] listener A reference to INetConnectionEventListener
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @exception E_OBJ_NOT_FOUND The eventListener is not found.
+ */
result RemoveNetConnectionListener(INetConnectionEventListener& listener);
- /**
- * Starts the network connection.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.connection
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
- * @exception E_INVALID_CONNECTION The network connection is invalid.
- * @exception E_ILLEGAL_ACCESS Access is denied to the resources bound to this %NetConnection.
- * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
- * @exception E_SERVICE_LIMITED A connection is already active. Therefore, cannot setup a co-existing network connection.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks When the network is available, after calling this method, the INetConnectionEventListener::OnNetConnectionStarted() method of the registered
- * INetConnectionEventListener instance is called.
- * @see Stop()
- */
+ /**
+ * Starts the network connection.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.connection
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
+ * @exception E_INVALID_CONNECTION The network connection is invalid.
+ * @exception E_ILLEGAL_ACCESS The access is denied to the resources bound to this %NetConnection.
+ * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
+ * @exception E_SERVICE_LIMITED A connection is already active. Therefore, a co-existing network connection cannot be setup.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks When the network is available, after calling this method, the INetConnectionEventListener::OnNetConnectionStarted() method of the registered
+ * INetConnectionEventListener instance is called.
+ * @see Stop()
+ */
result Start(void);
- /**
- * Stops the network connection.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.connection
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @exception E_INVALID_CONNECTION The network connection is invalid.
- * @exception E_ILLEGAL_ACCESS Access is denied to the resources bound to this %NetConnection.
- * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method stops the network connection of an application. Additionally, it does not ensure immediate disconnection of the network
- * service (for example, 3G data service or Wi-Fi). The network service remains active till all the applications stop using the network
- * connection. Once stopped, the network connection can be restarted using the Start() method.
- * @see Start()
- * @see Close()
- */
+ /**
+ * Stops the network connection.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.connection
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @exception E_INVALID_CONNECTION The network connection is invalid.
+ * @exception E_ILLEGAL_ACCESS The access is denied to the resources bound to this %NetConnection.
+ * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks This method stops the network connection of an application. Additionally, it does not ensure immediate disconnection of the network
+ * service (for example, 3G data service or Wi-Fi). The network service remains active till all the applications stop using the network
+ * connection. Once stopped, the network connection can be restarted using the Start() method.
+ * @see Start()
+ * @see Close()
+ */
result Stop(void);
- /**
- * Closes the network connection. @n
- * All the resources associated with the network connection are freed. This is a forced operation. The Close() method disconnects the network connection
- * with a remote server or gateway.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.connection
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @exception E_INVALID_CONNECTION The network connection is invalid.
- * @exception E_ILLEGAL_ACCESS Access is denied to the resources bound to this %NetConnection.
- * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method stops the network connection of an application. Additionally, it does not ensure immediate disconnection of the network
- * service (for example, 3G data service or Wi-Fi). The network service remains active till all the applications stop using the network
- * connection.
- * @see Stop()
- */
+ /**
+ * Closes the network connection. @n
+ * All the resources associated with the network connection are freed. This is a forced operation. The %Close() method disconnects the network connection
+ * with a remote server or gateway.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.connection
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @exception E_INVALID_CONNECTION The network connection is invalid.
+ * @exception E_ILLEGAL_ACCESS The access is denied to the resources bound to this %NetConnection.
+ * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks This method stops the network connection of an application. Additionally, it does not ensure immediate disconnection of the network
+ * service (for example, 3G data service or Wi-Fi). The network service remains active till all the applications stop using the network
+ * connection.
+ * @see Stop()
+ */
result Close(void);
- /**
- * Gets the network account ID of this instance. @n
- * This ID is used to establish a network connection with a remote server or gateway.
- *
- * @since 2.0
- *
- * @return The NetAccountId of this %NetConnection which is bound at Construct(), @n
- * else @c INVALID_HANDLE if %NetConnection is invalid or not constructed
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the network account ID of this instance. @n
+ * This ID is used to establish a network connection with a remote server or gateway.
+ *
+ * @since 2.0
+ *
+ * @return The NetAccountId of this %NetConnection which is bound at Construct(), @n
+ * else @c INVALID_HANDLE if %NetConnection is invalid or not constructed
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetAccountId GetNetAccountId(void) const;
- /**
- * Gets the network connection information.
- *
- * @since 2.0
- *
- * @return A NetConnectionInfo instance specifying information on this network connection
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @exception E_INVALID_CONNECTION The network connection is invalid.
- * @exception E_ILLEGAL_ACCESS The access is denied.
- * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks
- * - The specific error code can be accessed using the GetLastResult() method.
- * - This method requires a NetConnectionInfo instance reference. The network connection information is only available when the network
- * connection is "Active". For other states, this method returns @c null.
- * @warning Do not delete the returned NetConnectionInfo instance. This instance directly references the internal connection information of
- * %NetConnection.
- */
+ /**
+ * Gets the network connection information.
+ *
+ * @since 2.0
+ *
+ * @return A NetConnectionInfo instance that specifies information on this network connection
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @exception E_INVALID_CONNECTION The network connection is invalid.
+ * @exception E_ILLEGAL_ACCESS The access is denied.
+ * @exception E_INVALID_CONTEXT The context information associated with the network connection account is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - This method requires a NetConnectionInfo instance reference. The network connection information is only available when the network
+ * connection is "Active". For other states, this method returns @c null.
+ * @warning Do not delete the returned NetConnectionInfo instance. This instance directly references the internal connection information of
+ * %NetConnection.
+ */
const NetConnectionInfo* GetNetConnectionInfo(void) const;
- /**
- * @if OSPDEPREC
- * Gets the connection information for the specified account.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
- * @since 2.0
- *
- * @return A NetConnectionInfo instance specifying information on this network connection, @n
- * else @c null in case of an error or if an active connection is not found
- * @param[in] netAccountId The network account
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Gets the connection information of the specified account.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
+ * @since 2.0
+ *
+ * @return A NetConnectionInfo instance that specifies information on this network connection, @n
+ * else @c null in case of an error or if an active connection is not found
+ * @param[in] netAccountId The network account
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @endif
+ */
static NetConnectionInfo* GetNetConnectionInfoN(NetAccountId netAccountId);
- /**
- * @if OSPDEPREC
- * Gets a list of all the connection information used by the system.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
- * @since 2.0
- *
- * @return A Tizen::Base::Collection::IList containing indexes to NetConnectionInfo in the network, @n
- * else @c null in case of an error or if an active connection is not found
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred (baseband or system).
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Gets the list of all the connection information used by the system.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because it is moved to the NetConnectionManager class.
+ * @since 2.0
+ *
+ * @return A Tizen::Base::Collection::IList that contains indices to NetConnectionInfo in the network, @n
+ * else @c null in case of an error or if an active connection is not found
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred (baseband or system).
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @endif
+ */
static Tizen::Base::Collection::IList* GetAllNetConnectionInfoN(void);
- /**
- * Gets the state of the network connection.
- *
- * @since 2.0
- *
- * @return The state of the network connection
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance may be closed.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the state of the network connection.
+ *
+ * @since 2.0
+ *
+ * @return The state of the network connection
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance has been closed.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetConnectionState GetConnectionState(void) const;
private:
{\r
public:\r
\r
- /**\r
- * This is the default constructor for this class.\r
- *\r
- * @since 2.0\r
- *\r
- * @remarks The GetLastResult() method is used to check whether the %NetConnectionInfo instance is created successfully.\r
- */\r
+ /**\r
+ * This is the default constructor for this class.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @remarks The GetLastResult() method is used to check whether the %NetConnectionInfo instance is created successfully.\r
+ */\r
NetConnectionInfo(void);\r
\r
- /**\r
- * This destructor overrides Tizen::Base::Object::~Object().\r
- *\r
- * @since 2.0\r
- */\r
+ /**\r
+ * This destructor overrides Tizen::Base::Object::~Object().\r
+ *\r
+ * @since 2.0\r
+ */\r
virtual ~NetConnectionInfo(void);\r
\r
- /** \r
- * Gets the operating bearer type of a mobile station.\r
- *\r
- * @since 2.0\r
- *\r
- * @return The operating bearer type of a specific network connection, @n\r
- * else @c NET_BEARER_NONE if this instance is invalid\r
- */\r
+ /** \r
+ * Gets the operating bearer type of a mobile station.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return The operating bearer type of a specific network connection, @n\r
+ * else @c NET_BEARER_NONE if this instance is invalid\r
+ */\r
NetBearerType GetBearerType(void) const;\r
\r
- /** \r
- * Gets the operation protocol of a mobile station.\r
- *\r
- * @since 2.0\r
- *\r
- * @return The protocol type of a specific network connection, @n\r
- * else @c NET_PROTO_TYPE_NONE if this instance is invalid\r
- */\r
+ /** \r
+ * Gets the operation protocol of a mobile station.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return The protocol type of a specific network connection, @n\r
+ * else @c NET_PROTO_TYPE_NONE if this instance is invalid\r
+ */\r
NetProtocolType GetProtocolType(void) const;\r
\r
- /** \r
- * Gets the Access Point Name.\r
- *\r
- * @since 2.0\r
- *\r
- * @return The Access Point Name as a string, @n\r
- * else a null string if the Access Point Name is empty or this instance is invalid\r
- */\r
+ /** \r
+ * Gets the Access Point Name.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return The Access Point Name as a string, @n\r
+ * else a @c null string if the Access Point Name is empty or this instance is invalid\r
+ */\r
Tizen::Base::String GetAccessPointName(void) const;\r
\r
- /** \r
- * Gets the local address scheme.\r
- *\r
- * @since 2.0\r
- *\r
- * @return The address scheme for the local address, @n\r
- * else @c NET_ADDRESS_SCHEME_NONE if this instance is invalid\r
- */\r
+ /** \r
+ * Gets the local address scheme.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return The address scheme for the local address, @n\r
+ * else @c NET_ADDRESS_SCHEME_NONE if this instance is invalid\r
+ */\r
NetAddressScheme GetLocalAddressScheme(void) const;\r
\r
- /** \r
- * Gets the local address information.\r
- *\r
- * @since 2.0\r
- *\r
- * @return A pointer to the IpAddress instance representing the local address in the calling instance\r
- * @remarks If GetLocalAddressScheme() is ::NET_ADDRESS_SCHEME_STATIC, this method returns the statically assigned local addresses. @n\r
- * If %GetLocalAddressScheme() is ::NET_ADDRESS_SCHEME_DYNAMIC, this method returns the dynamically assigned local addresses. @n\r
- * In any case, check whether the IpAddress pointer is @c null or not.\r
- */\r
+ /** \r
+ * Gets the local address information.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return A pointer to the IpAddress instance that represents the local address in the current instance\r
+ * @remarks If GetLocalAddressScheme() is ::NET_ADDRESS_SCHEME_STATIC, this method returns the statically assigned local addresses. @n\r
+ * If %GetLocalAddressScheme() is ::NET_ADDRESS_SCHEME_DYNAMIC, this method returns the dynamically assigned local addresses. @n\r
+ * In any case, check whether the IpAddress pointer is @c null or not.\r
+ */\r
const IpAddress* GetLocalAddress(void) const;\r
\r
- /** \r
- * Gets the setting for the DNS address scheme.\r
- *\r
- * @since 2.0\r
- *\r
- * @return The address scheme for the DNS address, @n\r
- * else @c NET_ADDRESS_SCHEME_NONE if this instance is invalid\r
- *\r
- */\r
+ /** \r
+ * Gets the setting for the DNS address scheme.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return The address scheme for the DNS address, @n\r
+ * else @c NET_ADDRESS_SCHEME_NONE if this instance is invalid\r
+ *\r
+ */\r
NetAddressScheme GetDnsAddressScheme(void) const;\r
\r
- /** \r
- * Gets the primary DNS address.\r
- *\r
- * @since 2.0\r
- *\r
- * @return A pointer to the IpAddress instance representing the primary DNS Address of the network connection\r
- * @remarks If GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_STATIC, this method returns the statically assigned local addresses. @n\r
- * If %GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_DYNAMIC, this method returns the dynamically assigned local addresses. @n\r
- * In any case, check whether the IpAddress pointer is @c null or not, because the DNS address field is not mandatory.\r
- */\r
+ /** \r
+ * Gets the primary DNS address.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return A pointer to the IpAddress instance that represents the primary DNS Address of the network connection\r
+ * @remarks If GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_STATIC, this method returns the statically assigned local addresses. @n\r
+ * If %GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_DYNAMIC, this method returns the dynamically assigned local addresses. @n\r
+ * In any case, check whether the IpAddress pointer is @c null or not, because the DNS address field is not mandatory.\r
+ */\r
const IpAddress* GetPrimaryDnsAddress(void) const;\r
\r
- /** \r
- * Gets the secondary DNS address.\r
- *\r
- * @since 2.0\r
- *\r
- * @return A pointer to the IpAddress instance representing the secondary DNS Address of the network connection\r
- * @remarks If GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_STATIC, this method returns the statically assigned local addresses. @n\r
- * If %GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_DYNAMIC, this method returns the dynamically assigned local addresses. @n\r
- * In any case, check whether the IpAddress pointer is @c null or not, because the DNS address field is not mandatory.\r
- */\r
+ /** \r
+ * Gets the secondary DNS address.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return A pointer to the IpAddress instance that represents the secondary DNS Address of the network connection\r
+ * @remarks If GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_STATIC, this method returns the statically assigned local addresses. @n\r
+ * If %GetDnsAddressScheme() is ::NET_ADDRESS_SCHEME_DYNAMIC, this method returns the dynamically assigned local addresses. @n\r
+ * In any case, check whether the IpAddress pointer is @c null or not, because the DNS address field is not mandatory.\r
+ */\r
const IpAddress* GetSecondaryDnsAddress(void) const;\r
\r
- /** \r
- * Gets the subnet mask address.\r
- *\r
- * @since 2.0\r
- *\r
- * @return A pointer to the IpAddress instance representing the subnet mask address of the network connection\r
- * @remarks In any case, check whether the IpAddress pointer is @c null or not, because the subnet mask address field is not mandatory.\r
- */\r
+ /** \r
+ * Gets the subnet mask address.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return A pointer to the IpAddress instance that represents the subnet mask address of the network connection\r
+ * @remarks In any case, check whether the IpAddress pointer is @c null or not, because the subnet mask address field is not mandatory.\r
+ */\r
const IpAddress* GetSubnetMaskAddress(void) const;\r
\r
- /** \r
- * Gets the default gateway address.\r
- *\r
- * @since 2.0\r
- *\r
- * @return A pointer to the IpAddress instance representing the default gateway address of the network connection\r
- * @remarks In any case, check whether the IpAddress pointer is @c null or not, because the gateway address field is not mandatory.\r
- */\r
+ /** \r
+ * Gets the default gateway address.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return A pointer to the IpAddress instance that represents the default gateway address of the network connection\r
+ * @remarks In any case, check whether the IpAddress pointer is @c null or not, because the gateway address field is not mandatory.\r
+ */\r
const IpAddress* GetDefaultGatewayAddress(void) const;\r
\r
- /**\r
- * Copying of objects using this copy constructor is allowed.\r
- *\r
- * @since 2.0\r
- *\r
- * @param[in] rhs An instance of %NetConnectionInfo\r
- * @remarks The GetLastResult() method is used to check whether the %NetConnectionInfo instance is created successfully.\r
- */\r
+ /**\r
+ * Copying of objects using this copy constructor is allowed.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @param[in] rhs An instance of %NetConnectionInfo to copy\r
+ * @remarks The GetLastResult() method is used to check whether the %NetConnectionInfo instance is created successfully.\r
+ */\r
NetConnectionInfo(const NetConnectionInfo& rhs);\r
\r
- /**\r
- * Copying of objects using this copy assignment operator is allowed.\r
- *\r
- * @since 2.0\r
- *\r
- * @return The reference of this instance\r
- * @param[in] rhs An instance of %NetConnectionInfo\r
- * @remarks The GetLastResult() method is used to check whether the %NetConnectionInfo instance is copied successfully.\r
- */\r
+ /**\r
+ * Copying of objects using this copy assignment operator is allowed.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return A reference to this instance\r
+ * @param[in] rhs An instance of %NetConnectionInfo to copy\r
+ * @remarks The GetLastResult() method is used to check whether the %NetConnectionInfo instance is copied successfully.\r
+ */\r
NetConnectionInfo& operator =(const NetConnectionInfo& rhs);\r
\r
- /**\r
- * Compares the specified instance of %NetConnectionInfo with the calling instance.\r
- *\r
- * @since 2.0\r
- *\r
- * @return @c true if the values match, @n\r
- * else @c false\r
- * @param[in] rhs The other Tizen::Base::Object to compare\r
- * @see Tizen::Base::Object::Equals()\r
- */\r
+ /**\r
+ * Compares the specified instance of %NetConnectionInfo with the current instance.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return @c true if the values match, @n\r
+ * else @c false\r
+ * @param[in] rhs The other Tizen::Base::Object to compare\r
+ * @see Tizen::Base::Object::Equals()\r
+ */\r
virtual bool Equals(const Tizen::Base::Object& rhs) const;\r
\r
- /**\r
- * Gets the hash value of the current instance.\r
- *\r
- * @since 2.0\r
- *\r
- * @return The hash value of the current instance\r
- */\r
+ /**\r
+ * Gets the hash value of the current instance.\r
+ *\r
+ * @since 2.0\r
+ *\r
+ * @return The hash value of the current instance\r
+ */\r
virtual int GetHashCode(void) const;\r
\r
private: \r
/**
* @class NetConnectionManager
- * @brief This class provides methods for managing the network connections.
+ * @brief This class provides methods for managing network connections.
*
* @since 2.0
*
- * The %NetConnectionManager class provides methods for creating and retrieving connections for data communication.
+ * The %NetConnectionManager class provides methods for creating and retrieving connections in data communication.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/managing_network_connections.htm">Managing Network Connections</a>.
*/
: public Tizen::Base::Object
{
public:
- /**
- * The object is not fully constructed after this constructor is called. @n
- * For full construction, the Construct() method must be called right after calling this constructor.
- *
- * @since 2.0
- */
+ /**
+ * The object is not fully constructed after this constructor is called. @n
+ * For full construction, the Construct() method must be called right after calling this constructor.
+ *
+ * @since 2.0
+ */
NetConnectionManager(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~NetConnectionManager(void);
- /**
- * Initializes this instance of %NetConnectionManager.
- *
- * @since 2.0
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM An internal error has occurred.
- */
+ /**
+ * Initializes this instance of %NetConnectionManager.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM An internal error has occurred.
+ */
result Construct(void);
public:
- /**
- * Creates a new network connection.
- *
- * @since 2.0
- *
- * @return A NetConnection instance containing the account information, @n
- * else @c null if an error occurs
- * @param[in] netAccountId The index of the network account to which this %NetConnection is bound
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
- * @exception E_MAX_EXCEEDED Unable to setup a new connection due to too many existing connections.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Creates a new network connection.
+ *
+ * @since 2.0
+ *
+ * @return A NetConnection instance that contains the account information, @n
+ * else @c null if an error occurs
+ * @param[in] netAccountId The index of the network account to which this NetConnection is bound
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
+ * @exception E_MAX_EXCEEDED Unable to setup a new connection due to too many existing connections.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetConnection* CreateNetConnectionN(NetAccountId netAccountId);
- /**
- * Gets an instance of the current connection that is managed by the system.
- *
- * @since 2.0
- *
- * @return A ManagedNetConnection instance containing the account information, @n
- * else @c null if an error occurs
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets an instance of the current connection that is managed by the system.
+ *
+ * @since 2.0
+ *
+ * @return A ManagedNetConnection instance that contains the account information, @n
+ * else @c null if an error occurs
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
ManagedNetConnection* GetManagedNetConnectionN(void) const;
- /**
- * Gets the preferred network.
- *
- * @since 2.0
- *
- * @return The preferred network, @n
- * else @c NET_WIFI_FIRST if there is an error or if the preferred network is not set
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the preferred network.
+ *
+ * @since 2.0
+ *
+ * @return The preferred network, @n
+ * else @c NET_WIFI_FIRST if an error occurs or the preferred network is not set
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
NetPreferenceType GetNetPreference(void) const;
- /**
- * Sets the preferred network.
- *
- * @since 2.0
- *
- * @privlevel public
- * @privilege %http://tizen.org/privilege/network.connection
- * @feature %http://tizen.org/feature/network.wifi for the @c NET_WIFI_ONLY value and @n
- * %http://tizen.org/feature/network.telephony for the @c NET_PS_ONLY value of @c netPreference
- *
- * @return An error code
- * @param[in] netPreference The preferred network
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION This operation is not allowed.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks
- * - If this method is not used, the default connection works in the Wi-Fi first mode.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- */
+ /**
+ * Sets the preferred network.
+ *
+ * @since 2.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/network.connection
+ * @feature %http://tizen.org/feature/network.wifi for the @c NET_WIFI_ONLY value and @n
+ * %http://tizen.org/feature/network.telephony for the @c NET_PS_ONLY value of @c netPreference
+ *
+ * @return An error code
+ * @param[in] netPreference The preferred network
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION This operation is not allowed.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks
+ * - If this method is not used, the default connection works in the Wi-Fi first mode.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ */
result SetNetPreference(NetPreferenceType netPreference);
public:
- /**
- * Gets the connection information that is related to a network account.
- *
- * @since 2.0
- *
- * @return A NetConnectionInfo instance specifying the information on this network connection, @n
- * else @c null if there is an error or if an active connection is not found
- * @param[in] netAccountId The network account ID
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the connection information that is related to a network account.
+ *
+ * @since 2.0
+ *
+ * @return A NetConnectionInfo instance that specifies the information of this network connection, @n
+ * else @c null if an error occurs or an active connection is not found
+ * @param[in] netAccountId The network account ID
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ACCOUNT The specified network account ID is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
static NetConnectionInfo* GetNetConnectionInfoN(NetAccountId netAccountId);
- /**
- * Gets a list of all the network connections information that is used by the system.
- *
- * @since 2.0
- *
- * @return A Tizen::Base::Collection::IList containing indexes to the active %NetConnectionInfo in the network, @n
- * else @c null if there is an error or if there is no active connection in the system
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM An internal error has occurred (baseband or system).
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the list of all the network connection information that is used by the system.
+ *
+ * @since 2.0
+ *
+ * @return A Tizen::Base::Collection::IList that contains indices to the active NetConnectionInfo in the network, @n
+ * else @c null if an error occurs or there is no active connection in the system
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM An internal error has occurred (baseband or system).
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
static Tizen::Base::Collection::IList* GetAllNetConnectionInfoN(void);
private:
/**
* @class NetEndPoint
- * @brief This class identifies the network address.
+ * @brief This class identifies a network address.
*
* @since 2.0
*
: public Tizen::Base::Object
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @since 2.0
- */
+ /**
+ * This is the default constructor for this class.
+ *
+ * @since 2.0
+ */
NetEndPoint(void);
- /**
- * Initializes this instance of %NetEndPoint with the specified address and port number.
- *
- * @since 2.0
- *
- * @param[in] ipAddress The IP address of the target endpoint
- * @param[in] port The port number
- * @exception E_SUCCESS The instance is initialized successfully.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @remarks The GetLastResult() method is used to check whether the %NetEndPoint instance is created successfully.
- */
+ /**
+ * Initializes this instance of %NetEndPoint with the specified address and port number.
+ *
+ * @since 2.0
+ *
+ * @param[in] ipAddress The IP address of the target endpoint
+ * @param[in] port The port number
+ * @exception E_SUCCESS The instance is initialized successfully.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @remarks The GetLastResult() method is used to check whether the %NetEndPoint instance is created successfully.
+ */
NetEndPoint(const IpAddress& ipAddress, unsigned short port);
- /**
- * Copying of objects using this copy constructor is allowed.
- *
- * @since 2.0
- *
- * @param[in] rhs An instance of %NetEndPoint
- * @exception E_SUCCESS The instance is initialized successfully.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @remarks The GetLastResult() method is used to check whether the %NetEndPoint instance is created successfully.
- */
+ /**
+ * Copying of objects using this copy constructor is allowed.
+ *
+ * @since 2.0
+ *
+ * @param[in] rhs An instance of %NetEndPoint to copy
+ * @exception E_SUCCESS The instance is initialized successfully.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @remarks The GetLastResult() method is used to check whether the %NetEndPoint instance is created successfully.
+ */
NetEndPoint(const NetEndPoint& rhs);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~NetEndPoint(void);
- /**
- * Gets the address family to which the calling %NetEndPoint instance belongs.
- *
- * @since 2.0
- *
- * @return The address family of the calling instance
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- */
+ /**
+ * Gets the address family to which the current %NetEndPoint instance belongs.
+ *
+ * @since 2.0
+ *
+ * @return The address family of the current instance
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance is in an invalid state.
+ */
NetAddressFamily GetNetAddressFamily(void) const;
- /**
- * Gets the port number of the endpoint.
- *
- * @since 2.0
- *
- * @return The port number of the endpoint
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- */
+ /**
+ * Gets the port number of the endpoint.
+ *
+ * @since 2.0
+ *
+ * @return The port number of the endpoint
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance is in an invalid state.
+ */
unsigned short GetPort(void) const;
- /**
- * Gets the IP address of the calling instance.
- *
- * @since 2.0
- *
- * @return The IP address of the endpoint, @n
- * else @c null if the address information is invalid
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- */
+ /**
+ * Gets the IP address of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The IP address of the endpoint, @n
+ * else @c null if the address information is invalid
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance is in an invalid state.
+ */
IpAddress* GetAddress(void) const;
- /**
- * Gets the current endpoint.
- *
- * @since 2.0
- *
- * @return The current endpoint, @n
- * else @c null string if an error occurs
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- * @remarks
- * - The string output of this method is formatted as follows: IPADDRESS:PORT. @n
- * IPADDRESS is a string representing a number expressed in the Internet Standard "." (dotted) notation (for example, 165.213.173.7). @n
- * PORT is a string representing a port number in host byte order. For example, 165.213.173.7:2000 is a possible string.
- * - The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Gets the current endpoint.
+ *
+ * @since 2.0
+ *
+ * @return The current endpoint, @n
+ * else a @c null string if an error occurs
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_STATE This instance is in an invalid state.
+ * @remarks
+ * - The string output of this method is formatted as follows: IPADDRESS:PORT. @n
+ * IPADDRESS is a string that represents a number expressed in the Internet Standard "." (dotted) notation (for example, 165.213.173.7). @n
+ * PORT is a string that represents a port number in the host byte order. For example, 165.213.173.7:2000 is a possible string.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ */
Tizen::Base::String GetNetEndPoint(void) const;
- /**
- * Copying of objects using this copy assignment operator is allowed.
- *
- * @since 2.0
- *
- * @return The reference of this instance
- * @param[in] rhs An instance of %NetEndPoint
- * @remarks The GetLastResult() method is used to check whether the %NetEndPoint instance is copied successfully.
- */
+ /**
+ * Copying of objects using this copy assignment operator is allowed.
+ *
+ * @since 2.0
+ *
+ * @return A reference to this instance
+ * @param[in] rhs An instance of %NetEndPoint to copy
+ * @remarks The GetLastResult() method is used to check whether the %NetEndPoint instance is copied successfully.
+ */
NetEndPoint& operator =(const NetEndPoint& rhs);
- /**
- * Compares the specified instance of %NetEndPoint with the calling instance.
- *
- * @since 2.0
- *
- * @return @c true if the values match, @n
- * else @c false
- * @param[in] rhs The other Tizen::Base::Object to compare
- * @see Tizen::Base::Object::Equals()
- */
+ /**
+ * Compares the specified instance of %NetEndPoint with the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the values match, @n
+ * else @c false
+ * @param[in] rhs The other Tizen::Base::Object to compare
+ * @see Tizen::Base::Object::Equals()
+ */
virtual bool Equals(const Tizen::Base::Object& rhs) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
private:
/**
* @class NetStatistics
- * @brief This class represents the statistical information of the data network.
+ * @brief This class represents the statistical information of a data network.
*
* @since 2.0
*
* @remarks The %NetStatistics class cannot be tested on the emulator.
*
- * The %NetStatistics class provides methods for getting the statistical information of the data network.
+ * The %NetStatistics class provides methods for getting the statistical information of a data network.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/network_statistics.htm">Network Statistics</a>.
*/
public:
/**
* Gets the statistical information. @n
- * This can consist of details such as the call duration, the sent and received size, and so on.
+ * This can consist of details such as the call duration, sent and received size, and so on.
*
* @since 2.0
*
*
* @return The number of bytes sent or received, @n
* else @c INVALID_HANDLE if an error occurs
- * @param[in] bearerType The bearer type of the data call operation @n
- * @c NET_BEARER_WIFI_DIRECT and @c NET_BEARER_USB and @c NET_BEARER_MMS are not supported.
- * @param[in] netStatType The type of statistical information to get
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @param[in] bearerType The bearer type of the data call operation @n
+ * @c NET_BEARER_WIFI_DIRECT, @c NET_BEARER_USB, and @c NET_BEARER_MMS are not supported.
+ * @param[in] netStatType The type of statistical information to get
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
* @remarks
- * - The specific error code can be accessed using the GetLastResult() method.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
*/
long long GetNetStatisticsInfo(NetBearerType bearerType, NetStatisticsInfoType netStatType) const;
* %http://tizen.org/feature/network.telephony for the @c NET_BEARER_PS value of @c bearerType
*
* @return An error code
- * @param[in] bearerType The bearer type (OperationMode) whose statistical information is reset @n
- * @c NET_BEARER_WIFI_DIRECT and @c NET_BEARER_USB and @c NET_BEARER_MMS are not supported.
- * @param[in] netStatType The type of statistical information to reset
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @param[in] bearerType The bearer type (OperationMode) whose statistical information is reset @n
+ * @c NET_BEARER_WIFI_DIRECT, @c NET_BEARER_USB, and @c NET_BEARER_MMS are not supported.
+ * @param[in] netStatType The type of statistical information to reset
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
* @remarks
- * - This method must use warning pop-up for user notification.
+ * - This method must use a warning pop-up for user notification.
* - Before calling this method, check whether the feature is supported by
* Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
* @see GetNetStatisticsInfo()
* %http://tizen.org/feature/network.telephony for the @c NET_BEARER_PS value of @c bearerType
*
* @return An error code
- * @param[in] bearerType The bearer type (OperationMode) whose statistical information would be reset @n
- * @c NET_BEARER_WIFI_DIRECT and @c NET_BEARER_USB and @c NET_BEARER_MMS are not supported.
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @param[in] bearerType The bearer type (OperationMode) whose statistical information is reset @n
+ * @c NET_BEARER_WIFI_DIRECT, @c NET_BEARER_USB, and @c NET_BEARER_MMS are not supported.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @exception E_UNSUPPORTED_OPERATION The target device does not support the required feature. @b Since: @b 2.1
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
* @remarks
- * - This method must use warning pop-up for user notification.
+ * - This method must use a warning pop-up for user notification.
* - Before calling this method, check whether the feature is supported by
* Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
* @see GetNetStatisticsInfo()
//
/**
-* @file FNetNetTypes.h
-* @brief This is the header file for defining the types for the Net namespace.
-*
-* This header file contains the definitions of the various types and enumerators for the NetConnection operations.
-*/
+ * @file FNetNetTypes.h
+ * @brief This is the header file for defining the types for the Net namespace.
+ *
+ * This header file contains the definitions of the various types and enumerators used in NetConnection operations.
+ */
#ifndef _FNET_NET_TYPES_H_
#define _FNET_NET_TYPES_H_
/**
* @enum NetConnectionState
*
- * Defines the state of the network connection.
+ * Defines the state of a network connection.
*
* @since 2.0
*/
NET_CONNECTION_STATE_STOPPED, /**< The network connection has been disconnected */
NET_CONNECTION_STATE_SUSPENDED, /**< The network connection has been suspended */
NET_CONNECTION_STATE_SUSPEND = 5, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
- NET_CONNECTION_STATE_RESUMED, /**< The network connection is established, and recovered from SUSPEND state - enable to send/receive packet data */
+ NET_CONNECTION_STATE_RESUMED, /**< The network connection is established, and recovered from the SUSPEND state - enable to send/receive packet data */
NET_CONNECTION_STATE_AVAILABLE, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
NET_CONNECTION_STATE_UNAVAILABLE, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
/**
* @enum NetConnectionStoppedReason
*
- * Defines the reason for stoppage of the network connection.
+ * Defines the reason for stopping a network connection.
*
* @since 2.0
*/
enum NetConnectionStoppedReason
{
- NET_CONNECTION_STOPPED_REASON_RESOURCE_RELEASED, /**< The network connection managed by system stopped because the network resources have been released */
+ NET_CONNECTION_STOPPED_REASON_RESOURCE_RELEASED, /**< The network connection managed by the system has stopped because the network resources have been released */
NET_CONNECTION_STOPPED_REASON_NETWORK_FAILED, /**< The network has failed */
- NET_CONNECTION_STOPPED_REASON_DEVICE_OFFLINE, /**< The operation has failed because the device is in offline mode */
- NET_CONNECTION_STOPPED_REASON_SERVICE_UNAVAILABLE, /**< The device is out of the coverage area or in an emergency mode */
+ NET_CONNECTION_STOPPED_REASON_DEVICE_OFFLINE, /**< The operation has failed because the device is in the offline mode */
+ NET_CONNECTION_STOPPED_REASON_SERVICE_UNAVAILABLE, /**< The device is out of the coverage area or in the emergency mode */
NET_CONNECTION_STOPPED_REASON_RESOURCE_UNAVAILABLE, /**< The network resource is unavailable */
NET_CONNECTION_STOPPED_REASON_SYSTEM /**< A system error has occurred */
};
enum NetProtocolType
{
NET_PROTO_TYPE_IPV4 = 1, /**< The IPV4 type */
- NET_PROTO_TYPE_PPP, /**< The PPP type */
- NET_PROTO_TYPE_IPV6, /**< The IPV6 type, currently NOT supported */
+ NET_PROTO_TYPE_PPP, /**< The PPP type */
+ NET_PROTO_TYPE_IPV6, /**< The IPV6 type, currently NOT supported */
NET_PROTO_TYPE_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. Network Protocol type not set
};
enum NetAddressFamily
{
- NET_AF_IPV4 = 1, /**< The default @n An IPv4 address [RFC791] is represented in decimal format with dots as delimiters. */
- NET_AF_IPV6, /**< An IPv6 address [RFC2373] is generally represented in hexadecimal numbers with colons as delimiters @n It can also be a combination of hexadecimal and decimal numbers with dots and colons as delimiters. */
- NET_AF_ALPHANUMERIC, /**< A generic alphanumeric address (as defined by alphanum in [RFC2396]) */
+ NET_AF_IPV4 = 1, /**< The default @n An IPv4 address [RFC791] is represented in the decimal format with dots as delimiters */
+ NET_AF_IPV6, /**< An IPv6 address [RFC2373] is generally represented in hexadecimal numbers with colons as delimiters @n It can also be a combination of hexadecimal and decimal numbers with dots and colons as delimiters */
+ NET_AF_ALPHANUMERIC, /**< A generic alphanumeric address (as defined by alphanum in [RFC2396]) */
NET_AF_APN, /**< A GPRS APN as defined in [GENFORM] */
NET_AF_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. Network Address Family not set
};
*/
enum NetStatisticsInfoType
{
- NET_STAT_SENT_SIZE = 2, /**< The size of the packet sent, since the time the network is last reactivated */
- NET_STAT_RCVD_SIZE = 3, /**< The size of the packet received, since the time the network is last reactivated */
+ NET_STAT_SENT_SIZE = 2, /**< The size of the packet sent, since the time the network is last reactivated */
+ NET_STAT_RCVD_SIZE = 3, /**< The size of the packet received, since the time the network is last reactivated */
NET_STAT_TOTAL_SENT_SIZE = 8, /**< The cumulated size of the packet sent since the last reset */
NET_STAT_TOTAL_RCVD_SIZE = 9, /**< The cumulated size of the packet received since the last reset */
- NET_STAT_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. Network Statistics Info Type not set
+ NET_STAT_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. Network Statistics Info Type not set
};
/**
*/
enum NetPreferenceType
{
- NET_WIFI_FIRST, /**< The preference type to follow preferred mode (Wi-Fi first) @n
- * This preference type works like NET_PS_ONLY on the Emulator. */
- NET_PS_ONLY, /**< The preference type to only operate services for the PS domain */
+ NET_WIFI_FIRST, /**< The preference type to follow the preferred mode (Wi-Fi first) @n
+ * This preference type works like @c NET_PS_ONLY on the Emulator */
+ NET_PS_ONLY, /**< The preference type to only operate services for the PS domain */
NET_CS_ONLY, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
- NET_WIFI_ONLY /**< The preference type to only operate services for Wi-Fi */
+ NET_WIFI_ONLY /**< The preference type to only operate services for Wi-Fi */
};
/**
enum NetBearerType
{
NET_BEARER_PS = 1, /**< The bearer type for the PS domain */
- NET_BEARER_CS, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
- NET_BEARER_WIFI, /**< The bearer type for Wi-Fi */
- NET_BEARER_WIFI_DIRECT, /**< The bearer type for Wi-Fi Direct @n
- * This bearer type cannot be tested on the Emulator. */
- NET_BEARER_USB, /**< The bearer type for USB NDIS mode @n
- * Can use this bearer type via USB Tethering mode. @n
- * This bearer type cannot be tested on the Emulator. */
- NET_BEARER_MMS, /**< The bearer type for MMS */
+ NET_BEARER_CS, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
+ NET_BEARER_WIFI, /**< The bearer type for Wi-Fi */
+ NET_BEARER_WIFI_DIRECT, /**< The bearer type for Wi-Fi Direct @n
+ * This bearer type cannot be tested on the Emulator */
+ NET_BEARER_USB, /**< The bearer type for the USB NDIS mode @n
+ * This bearer type can be used via USB Tethering mode @n
+ * This bearer type cannot be tested on the Emulator */
+ NET_BEARER_MMS, /**< The bearer type for MMS */
NET_BEARER_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. Network Bearer Type not set
};
/**
* @enum NetNapAuthType
*
- * Defines the authentication type of the network.
+ * Defines the authentication type of a network.
*
* @since 2.0
*
/**
* @enum NetProxyType
*
- * Defines the proxy type of the network.
+ * Defines the proxy type of a network.
*
* @since 2.0
*/
enum NetProxyType
{
- NET_PROXY_TYPE_NONE = 0, /**< No use of proxy */
+ NET_PROXY_TYPE_NONE = 0, /**< No proxy type */
NET_PROXY_TYPE_MANUAL /**< Manual configuration */
};
/**
-* @file FNetSockISecureSocketEventListener.h
-* @brief This is the header file for the %ISecureSocketEventListener interface.
-*
-* This header file contains the declarations of the %ISecureSocketEventListener interface.
-*/
+ * @file FNetSockISecureSocketEventListener.h
+ * @brief This is the header file for the %ISecureSocketEventListener interface.
+ *
+ * This header file contains the declarations of the %ISecureSocketEventListener interface.
+ */
#ifndef _FNET_SOCK_ISECURE_SOCKET_EVENT_LISTENER_H_
#define _FNET_SOCK_ISECURE_SOCKET_EVENT_LISTENER_H_
class SecureSocket;
/**
-* @interface ISecureSocketEventListener
-* @brief This interface contains an event listener for the applications, which issues secure socket requests.
-*
-* @since 2.0
-*
-* The %ISecureSocketEventListener interface specifies the methods used for creating the notifications about the different kinds of socket
-* events. These events are sent out when using a secure socket in a non-blocking mode. An event listener is added by calling the
-* SecureSocket::AddSecureSocketListener() method. One of these methods is called when a socket event is generated.
-*
-* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
-*/
+ * @interface ISecureSocketEventListener
+ * @brief This interface contains an event listener for applications that issue secure socket requests.
+ *
+ * @since 2.0
+ *
+ * The %ISecureSocketEventListener interface specifies the methods used for creating notifications for different kinds of socket
+ * events. These events are sent out when using a secure socket in the non-blocking mode. An event listener is added by calling the
+ * SecureSocket::AddSecureSocketListener() method. One of these methods is called when a socket event is generated.
+ *
+ * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
+ */
class _OSP_EXPORT_ ISecureSocketEventListener
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
*
* @since 2.0
*/
public:
- /**
+ /**
* Called to notify a connecting secure socket that its connection attempt has been completed successfully.
*
* @since 2.0
*/
virtual void OnSecureSocketConnected(SecureSocket& socket) = 0;
- /**
- * Called to notify the registered secure socket that the peer secure socket has been closed due to normal or forced termination of network. @n
- * It is also used to notify a connecting secure socket that its connection attempt has resulted in an error.
+ /**
+ * Called to notify a registered secure socket that the peer secure socket has been closed due to a normal or forced termination of the network. @n
+ * It is also used to notify a connecting secure socket that its connection attempt has failed due to an error.
*
* @since 2.0
*
*/
virtual void OnSecureSocketClosed(SecureSocket& socket, NetSocketClosedReason reason) = 0;
- /**
+ /**
* Called to notify a secure socket that the data is ready to be retrieved.
*
* @since 2.0
virtual void OnSecureSocketReadyToReceive(SecureSocket& socket) = 0;
- /**
+ /**
* Called to notify a secure socket that the data can be sent.
*
* @since 2.0
*/
virtual void OnSecureSocketReadyToSend(SecureSocket& socket) = 0;
- /**
+ /**
* Called to notify a secure socket that the verification of the server's certificate has failed. @n
- * Either of the following decisions can be taken after the verification fails: @n
+ * Either of the following decisions can be taken after the verification fails:
* - Continue with SSL handshaking without verification.
* - Close the secure socket.
*
*/
virtual void OnSecureSocketServCertFailed(SecureSocket& socket) = 0;
- /**
- * Called to notify a secure socket that it has received a new connection from a peer.
- *
- * @since 2.0
- *
- * @param[in] socket The SecureSocket instance
- */
+ /**
+ * Called to notify a secure socket that it has received a new connection from a peer.
+ *
+ * @since 2.0
+ *
+ * @param[in] socket The SecureSocket instance
+ */
virtual void OnSecureSocketAccept(SecureSocket& socket) {}
protected:
/**
-* @file FNetSockISocketEventListener.h
-* @brief This is the header file for the %ISocketEventListener interface.
-*
-* This header file contains the declarations of the %ISocketEventListener interface.
-*/
+ * @file FNetSockISocketEventListener.h
+ * @brief This is the header file for the %ISocketEventListener interface.
+ *
+ * This header file contains the declarations of the %ISocketEventListener interface.
+ */
#ifndef _FNET_SOCK_ISOCKET_EVENT_LISTENER_H_
#define _FNET_SOCK_ISOCKET_EVENT_LISTENER_H_
class Socket;
/**
-* @interface ISocketEventListener
-* @brief This interface contains a listener for the socket events.
-*
-* @since 2.0
-*
-* The %ISocketEventListener interface specifies methods used for creating notifications about the different kinds of socket events.
-* These events are only sent out when using the socket in a non-blocking mode. A listener is registered by calling the Socket::AddSocketListener()
-* method. One of these methods is called when a socket event is generated.
-*
-* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
-*
-* The following example demonstrates how to use the %ISocketEventListener interface.
-*
-* @code
+ * @interface ISocketEventListener
+ * @brief This interface contains a listener for socket events.
+ *
+ * @since 2.0
+ *
+ * The %ISocketEventListener interface specifies methods used for creating notifications for different kinds of socket events.
+ * These events are only sent out when using a socket is in the non-blocking mode. A listener is registered by calling the Socket::AddSocketListener()
+ * method. One of these methods is called when a socket event is generated.
+ *
+ * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
+ *
+ * The following example demonstrates how to use the %ISocketEventListener interface.
+ *
+ * @code
using namespace Tizen::Net::Sockets;
class TestListener
AppLog("OnReadyToSend\n");
}
};
-* @endcode
-*/
+ * @endcode
+ */
class _OSP_EXPORT_ ISocketEventListener
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~ISocketEventListener(void) {}
public:
- /**
+ /**
* Called to notify a connecting socket that its connection attempt has been completed successfully.
*
* @since 2.0
*/
virtual void OnSocketConnected(Socket& socket) = 0;
- /**
- * Called to notify the registered socket that the peer socket has been closed due to normal or forced termination of the network. @n
- * It is also used to notify a connecting socket that its connection attempt has resulted in an error.
+ /**
+ * Called to notify a registered socket that the peer socket has been closed due to a normal or forced termination of the network. @n
+ * It is also used to notify a connecting socket that its connection attempt has failed due to an error.
*
* @since 2.0
*
*/
virtual void OnSocketClosed(Socket& socket, NetSocketClosedReason reason) = 0;
- /**
+ /**
* Called to notify a socket that the data is ready to be retrieved.
*
* @since 2.0
*/
virtual void OnSocketReadyToReceive(Socket& socket) = 0;
- /**
+ /**
* Called to notify a socket that the data can be sent.
*
* @since 2.0
*/
virtual void OnSocketReadyToSend(Socket& socket) = 0;
- /**
+ /**
* Called to notify a socket that it has received a new connection from a peer.
*
* @since 2.0
/**
- * @file FNetSockSecureSocket.h
+ * @file FNetSockSecureSocket.h
* @brief This is the header file for the %SecureSocket class.
*
* This header file contains the declarations of the %SecureSocket class. @n
- * This class provides secured simple methods for sending and receiving the data over a network.
+ * This class provides secured simple methods for sending and receiving data over a network.
*/
#ifndef _FNET_SOCK_SECURE_SOCKET_H_
/**
* @enum NetSecureSocketSslVersion
*
- * Defines the secure socket version.
+ * Defines the secure socket versions.
*
* @since 2.0
*/
enum NetSecureSocketSslVersion
{
NET_SOCK_SSL_VERSION_SSLV3 = 0x0300, /**< The secure socket version is SSLv3 @n
- The value for SSLv3 is 0x0300. */
+ The value for SSLv3 is 0x0300 */
NET_SOCK_SSL_VERSION_TLSV1 = 0x0301, /**< The secure socket version is TLSv1 @n
- The value for TLSv1 is 0x0301. */
+ The value for TLSv1 is 0x0301 */
NET_SOCK_SSL_VERSION_NONE = 0x0000 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. SSL version not set
};
/**
* @enum NetSecureSocketSslCipherSuiteID
*
- * Defines the CipherSuite ID.
+ * Defines the CipherSuite IDs.
*
* @since 2.0
*/
{
//NET_SOCK_TLS_SSL_RSA_WITH_NULL_MD5 = 0x0001, /*< The CipherSuite ID is 0x0001 */
//NET_SOCK_TLS_SSL_RSA_WITH_NULL_SHA = 0x0002, /*< The CipherSuite ID is 0x0002 */
- //NET_SOCK_TLS_SSL_RSA_EXPORT_WITH_RC4_40_MD5 = 0x0003, /**< The CipherSuite ID is 0x0003 */
+ //NET_SOCK_TLS_SSL_RSA_EXPORT_WITH_RC4_40_MD5 = 0x0003, /*< The CipherSuite ID is 0x0003 */
NET_SOCK_TLS_SSL_RSA_WITH_RC4_128_MD5 = 0x0004, /**< The CipherSuite ID is 0x0004 */
NET_SOCK_TLS_SSL_RSA_WITH_RC4_128_SHA = 0x0005, /**< The CipherSuite ID is 0x0005 */
//NET_SOCK_TLS_SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 0x0006, /*< The CipherSuite ID is 0x0006 */
//TLS_SSL_ECMQV_ECDSA_WITH_AES_256_CBC_SHA = 0xFF54,
NET_SOCK_TLS_SSL_SYSTEM_DEFAULT_CIPHERSUITES = 0xFFFF, /**< If the user selects this ID, the %SecureSocket instance decides the cipher suite bundle itself @n
- * For the OAF SSL, the below cipher suites will be included in "ClientHello" message: @n
+ * For the OAF SSL, the below cipher suites are included in "ClientHello" message: @n
* NET_SOCK_TLS_SSL_RSA_WITH_RC4_128_MD5
* NET_SOCK_TLS_SSL_RSA_WITH_RC4_128_SHA
* NET_SOCK_TLS_SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
/**
* Initializes this instance of %SecureSocket with the specified parameters. @n
- * The secure socket is initialized in a non-blocking mode by default.
- * Use Ioctl() (with NET_SOCKET_FIONBIO) to use a %SecureSocket in the blocking mode.
+ * The secure socket is initialized in the non-blocking mode by default.
+ * Use %Ioctl() (with NET_SOCKET_FIONBIO) to use a %SecureSocket in the blocking mode.
*
* @since 2.0
* @privlevel public
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
- * @param[in] netConnection A run-time session where a %SecureSocket instance is used
- * @param[in] addressFamily A ::NetSocketAddressFamily value
+ * @param[in] netConnection The run-time session where a %SecureSocket instance is used
+ * @param[in] addressFamily The NetSocketAddressFamily value that
* @param[in] socketType The secure socket type @n
- * The value should be NET_SOCKET_TYPE_STREAM.
+ * The value should be @c NET_SOCKET_TYPE_STREAM.
* @param[in] protocol The protocol used by this secure socket @n
- * The value should be NET_SOCKET_PROTOCOL_SSL.
+ * The value should be @c NET_SOCKET_PROTOCOL_SSL.
* @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_MAX_EXCEEDED All sockets are in use.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
* @exception E_UNSUPPORTED_TYPE The secure socket type is not supported.
* @exception E_INVALID_CONNECTION The network connection is invalid.
* @exception E_FAILURE The method has failed due to an undefined error.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The @c netConnection parameter specifies a run-time network connection. @n
- * The @c addressFamily parameter specifies an address family. @n
- * The @c socketType parameter specifies the type of the secure socket. SSL only supports stream-based protocols. @n
- * The @c protocol parameter specifies the protocol used by the secure socket. SSL protocol is defined as NET_SOCKET_PROTOCOL_SSL. @n
- * The first parameter must be a valid run-time network connection. The three parameters are not independent. Some address families
- * restrict the protocols that can be used with them, and often the secure socket type is implicit in the protocol. If the combination
- * of the address family, socket type, and protocol type results in an invalid secure socket, this method returns an error. @n For each
- * secure socket used in the non-blocking mode, an event listener (ISecureSocketEventListener) should be registered and maintained.
- * so that it can receive asynchronous notifications of the secure socket events. AddSecureSocketListener() is used to
- * register an event listener. @n
- * If a secure socket in the blocking mode needs to be used, Ioctl() (with NET_SOCKET_FIONBIO) should be called after initializing the secure socket
- * through this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - @c netConnection specifies a run-time network connection. @n
+ * @c addressFamily specifies an address family. @n
+ * @c socketType specifies the type of the secure socket. SSL only supports stream-based protocols. @n
+ * @c protocol specifies the protocol used by the secure socket. SSL protocol is defined as @c NET_SOCKET_PROTOCOL_SSL. @n
+ * The first parameter must be a valid run-time network connection. The three parameters are not independent.
+ * Some address families restrict the protocols that can be used with them, and often the secure socket type is implicit in the protocol. If a combination
+ * of the address family, socket type, and protocol type results in an invalid secure socket, this method returns an error.
+ * - For each secure socket used in the non-blocking mode, an event listener (ISecureSocketEventListener) should be registered and maintained,
+ * so that it can receive asynchronous notifications of the secure socket events. AddSecureSocketListener() is used to
+ * register an event listener. @n
+ * If a secure socket in the blocking mode needs to be used, %Ioctl() (with @c NET_SOCKET_FIONBIO) should be called after initializing the secure socket
+ * through this method.
* @see Ioctl() for understanding the blocking/non-blocking mode
*/
result Construct(const Tizen::Net::NetConnection& netConnection, NetSocketAddressFamily addressFamily, NetSocketType socketType, NetSocketProtocol protocol);
/**
* Initializes this instance of %SecureSocket with the specified parameters. @n
- * The secure socket is initialized in a non-blocking mode by default.
- * Use Ioctl() (with NET_SOCKET_FIONBIO) to use a %SecureSocket in the blocking mode.
+ * The secure socket is initialized in the non-blocking mode by default.
+ * Use %Ioctl() (with @c NET_SOCKET_FIONBIO) to use a %SecureSocket in the blocking mode.
*
* @since 2.0
* @privlevel public
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
- * @param[in] addressFamily A ::NetSocketAddressFamily value
+ * @param[in] addressFamily The ::NetSocketAddressFamily value
* @param[in] socketType The secure socket type @n
- * The value should be NET_SOCKET_TYPE_STREAM.
+ * The value should be @c NET_SOCKET_TYPE_STREAM.
* @param[in] protocol The protocol used by this secure socket @n
- * The value should be NET_SOCKET_PROTOCOL_SSL.
+ * The value should be @c NET_SOCKET_PROTOCOL_SSL.
* @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_MAX_EXCEEDED All sockets are in use.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
* @exception E_UNSUPPORTED_TYPE The secure socket type is not supported.
* @exception E_INVALID_CONNECTION The network connection is invalid.
* @exception E_FAILURE The method has failed due to an undefined error.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The @c addressFamily parameter specifies an address family. @n
- * The @c socketType parameter specifies the type of the secure socket. SSL only supports stream-based protocols. @n
- * The @c protocol parameter specifies the protocol used by the secure socket. The SSL protocol is defined as NET_SOCKET_PROTOCOL_SSL. @n
- * The three parameters are not independent. Some address families restrict the protocols that can be used with them, and often the
- * secure socket type is implicit in the protocol. If the combination of the address family, socket type, and protocol type results in
- * an invalid secure socket, this method returns an error. @n
- * For each secure socket used in the non-blocking mode, an event listener
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - @c addressFamily specifies an address family. @n
+ * @c socketType specifies the type of the secure socket. SSL only supports stream-based protocols. @n
+ * @c protocol specifies the protocol used by the secure socket. The SSL protocol is defined as @c NET_SOCKET_PROTOCOL_SSL. @n
+ * The three parameters are not independent. Some address families restrict the protocols that can be used with them, and often the
+ * secure socket type is implicit in the protocol. If a combination of the address family, socket type, and protocol type results in
+ * an invalid secure socket, this method returns an error.
+ * - For each secure socket used in the non-blocking mode, an event listener
* (ISecureSocketEventListener) should be registered and maintained, so that it can receive asynchronous notifications of the secure socket
* events. AddSecureSocketListener() is used to register an event listener. @n
- * If a secure socket in the blocking mode needs to be used, Ioctl() (with NET_SOCKET_FIONBIO) should be called after initializing the secure socket
+ * If a secure socket in the blocking mode needs to be used, %Ioctl() (with @c NET_SOCKET_FIONBIO) should be called after initializing the secure socket
* through this method.
* @see Ioctl() for understanding the blocking/non-blocking mode
*/
* @exception E_INVALID_STATE The secure socket is not in a valid state.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
* @remarks If the %SecureSocket class is not initialized through one of the Construct() methods or this method is called more than once,
- * then this method returns E_INVALID_STATE.
+ * then this method returns @c E_INVALID_STATE.
*/
result Close(void);
/**
- * Establishes a connection to a remote host.
+ * Establishes a connection with a remote host.
*
* @if OSPCOMPAT
* @brief <i> [Compatibility] </i>
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
- * @param[in] remoteEndPoint An instance of NetEndPoint representing the remote device
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_SOCKET The secure socket is invalid.
- * @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_HOST_UNREACHABLE The network cannot be reached from this host at this time.
- * @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
- * @exception E_INVALID_CERTIFICATE The client certificate verification has failed on server.
- * @exception E_CERTIFICATE_VERIFICATION_FAILED The server certificate verification has failed.
- * @exception E_CONNECTION_FAILED The secure socket is not connected.
- * @exception E_TIMEOUT An attempt to connect to the server has timed out.
- * @exception E_ALREADY_CONNECTED The secure socket is already connected.
- * @exception E_UNSUPPORTED_FAMILY The address family is not supported.
- * @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- *
- * @remarks Starts connection to a remote peer including SSL handshaking.
- * After this method is called, ISecureSocketEventListener::OnSecureSocketConnected() is called. The data is sent to and received from the remote
- * device using Send() and Receive() respectively. If the Bind() method is not called before calling this
- * method, the underlying service provider assigns the local network address and port number.
+ * @param[in] remoteEndPoint An instance of NetEndPoint that represents the remote device
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_SOCKET The secure socket is invalid.
+ * @exception E_INVALID_STATE The secure socket is not in a valid state.
+ * @exception E_HOST_UNREACHABLE The network cannot be reached from this host at this time.
+ * @exception E_IN_PROGRESS A previous request is in progress.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_INVALID_CERTIFICATE The client certificate verification has failed on the server.
+ * @exception E_CERTIFICATE_VERIFICATION_FAILED The server certificate verification has failed.
+ * @exception E_CONNECTION_FAILED The secure socket is not connected.
+ * @exception E_TIMEOUT An attempt to connect to the server has timed out.
+ * @exception E_ALREADY_CONNECTED The secure socket is already connected.
+ * @exception E_UNSUPPORTED_FAMILY The address family is not supported.
+ * @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ *
+ * @remarks
+ * - Starts a connection with a remote peer including SSL handshaking. @n
+ * After this method is called, ISecureSocketEventListener::OnSecureSocketConnected() is called.
+ * - The data is sent to and received from the remote device using Send() and Receive() respectively.
+ * - If the Bind() method is not called before calling this method, the underlying service provider assigns the local network address and port number.
*/
result Connect(const Tizen::Net::NetEndPoint& remoteEndPoint);
* @page SecureSocketConnectPage Compatibility for Connect()
*
* @section SecureSocketConnectPageIssueSection Issues
- * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SYSTEM.
+ * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SYSTEM.
*
* @section SecureSocketConnectPageResolutionSection Resolutions
- * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SUCCESS instead of E_SYSTEM.
+ * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SUCCESS instead of @c E_SYSTEM.
*/
/**
- * Sends the data to a secure socket of the type NET_SOCKET_TYPE_STREAM.
+ * Sends data to a secure socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_CONNECTION_FAILED The secure socket is not connected.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method sends the data to the remote host specified in the Connect() method.
- * This method sends the data in the @c buffer parameter, starting from the current position of the buffer. After the operation,
- * the position of the buffer is incremented by the number of bytes successfully sent. The new position cannot be larger than the
- * original limit. This method can be used only for connection-oriented sockets.
- * In the blocking mode, if space is not available in the send queue, the secure socket blocks until space becomes available.
- * In the non-blocking mode, this method returns the error E_WOULD_BLOCK. This method may
- * complete successfully even if it sends less bytes than the number of bytes present in the buffer. The application
+ * @remarks
+ * - This method sends data to the remote host specified in the Connect() method.
+ * - This method sends data in @c buffer, starting from the current position of the buffer.@n
+ * After the operation, the position of the buffer is incremented by the number of bytes successfully sent. The new position cannot be larger than the
+ * original limit.
+ * - This method can be used only for connection-oriented sockets.
+ * - In the blocking mode, if space is not available in the send queue, the secure socket blocks until space becomes available.
+ * In the non-blocking mode, this method returns the error @c E_WOULD_BLOCK.
+ * - This method may complete successfully even if it sends less bytes than the number of bytes present in the buffer. The application
* should keep track of the number of bytes sent and retry the operation until the application sends the bytes in the
- * buffer. There is no guarantee that the data that is sent appears on the network immediately. To increase network efficiency, the
+ * buffer.
+ * - There is no guarantee that the data that is sent appears on the network immediately. To increase network efficiency, the
* underlying system may delay the transmission until a significant amount of outgoing data is collected. A successful completion of this
- * method means that the underlying system has had room to buffer the data for a network send. If it is important for the
- * application to send every byte to the remote host immediately, use SetSockOpt() (with NET_SOCKET_TCP_NODELAY) of the type
+ * method means that the underlying system has room to buffer the data sent for a network. If it is important for the
+ * application to send every byte to the remote host immediately, use SetSockOpt() (with ::NET_SOCKET_TCP_NODELAY) of type
* ::NetSocketOptName to enable no delay.
*/
result Send(Tizen::Base::ByteBuffer& buffer);
/**
- * Sends the data to a secure socket of the type NET_SOCKET_TYPE_STREAM.
+ * Sends data to a secure socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @return An error code
- * @param[in] pBuffer The pointer to the buffer containing the data to send
+ * @param[in] pBuffer A pointer to the buffer that contains the data to send
* @param[in] length The length of the data in the buffer
* @param[out] sentLength The length of the data sent successfully
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_CONNECTION_FAILED The secure socket is not connected.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method sends the data to the remote host specified in the Connect() method.
- * This method sends the data in the buffer of length @c length, starting from the current position of the buffer.
- * In the blocking mode, if space is not available in the send queue, the secure socket blocks until space becomes available.
- * In the non-blocking mode, this method returns the error E_WOULD_BLOCK.
- * This method may complete successfully even if it sends less bytes than the number of bytes
- * in the buffer. The application should keep track of the number of bytes sent
- * and retry the operation until the application sends the bytes in the buffer.
- * There is no guarantee that the data that is sent appears on the network immediately.
- * To increase the network efficiency, the underlying system may delay the transmission until a significant amount
- * of outgoing data is collected. A successful completion of this method means that the underlying
- * system has had room to buffer the data for a network send.
- * If it is important for the application to send every byte to the remote host immediately,
- * use SetSockOpt() (with NET_SOCKET_TCP_NODELAY) of the type ::NetSocketOptName to enable no delay.
+ * @remarks
+ * - This method sends data to a remote host specified in the Connect() method.
+ * - This method sends data in the buffer of length @c length, starting from the current position of the buffer.
+ * - In the blocking mode, if space is not available in the send queue, the secure socket blocks until space becomes available.
+ * In the non-blocking mode, this method returns the error @c E_WOULD_BLOCK.
+ * - This method may complete successfully even if it sends less bytes than the number of bytes
+ * in the buffer. The application should keep track of the number of bytes sent
+ * and retry the operation until the application sends the bytes in the buffer.
+ * - There is no guarantee that the data that is sent appears on the network immediately.
+ * To increase the network efficiency, the underlying system may delay the transmission until a significant amount
+ * of outgoing data is collected. A successful completion of this method means that the underlying
+ * system has room to buffer the data sent for a network. @n
+ * If it is important for the application to send every byte to the remote host immediately,
+ * use SetSockOpt() (with ::NET_SOCKET_TCP_NODELAY) of type ::NetSocketOptName to enable no delay.
*/
result Send(void* pBuffer, int length, int& sentLength);
/**
- * Receives the data from a secure socket of the type NET_SOCKET_TYPE_STREAM.
+ * Receives data from a secure socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
* @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method copies the data into the @c buffer parameter, starting from the current position of the buffer.
- * After the operation, the position of the buffer is incremented by the number of bytes successfully received.
- * The new position cannot be larger than the original limit. This method can be called from connection-oriented sockets only.
- * If there is no data at the secure socket in the blocking mode,
- * this method blocks until the data arrives. If the secure socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * @remarks
+ * - This method copies the data into @c buffer, starting from the current position of the buffer.
+ * After the operation, the position of the buffer is incremented by the number of bytes successfully received.
+ * The new position cannot be larger than the original limit.
+ * - This method can be called from connection-oriented sockets only.
+ * - If there is no data at the secure socket in the blocking mode,
+ * this method blocks until the data arrives. If the secure socket is in the non-blocking mode,
+ * the error @c E_WOULD_BLOCK is returned.
*
*/
result Receive(Tizen::Base::ByteBuffer& buffer) const;
/**
- * Receives the data from a secure socket of the type NET_SOCKET_TYPE_STREAM.
+ * Receives data from a secure socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @return An error code
- * @param[out] pBuffer The pointer to the buffer that is the storage location for the received data
+ * @param[out] pBuffer A pointer to the buffer that is the storage location for the received data
* @param[in] length The length of the data in the buffer
* @param[out] rcvdLength The length of the data that is received successfully
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
* @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method copies the data into the buffer of length @c length, starting from the current position of the buffer.
- * This method can be called from the connection-oriented sockets only.
- * If there is no data at the secure socket in the blocking mode,
- * this method blocks until the data arrives. If the secure socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * @remarks
+ * - This method copies the data into the buffer of length @c length, starting from the current position of the buffer.
+ * - This method can be called from the connection-oriented sockets only.
+ * - If there is no data at the secure socket in the blocking mode,
+ * this method blocks until the data arrives. If the secure socket is in the non-blocking mode,
+ * the error @c E_WOULD_BLOCK is returned.
*/
result Receive(void* pBuffer, int length, int& rcvdLength) const;
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_INVALID_ARG The specified input parameter is invalid.
* @exception E_ALREADY_BOUND The address is already in use.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Use this method if a specific local endpoint should be used.
- * This method can be used on both the connectionless and connection-oriented protocols.
- * For connection-oriented sockets, this method need not be called
- * before using the Connect() method, unless a specific local endpoint needs to be used.
- * This method must be called before the Listen() method.
+ * @exception E_USER_NOT_CONSENTED The user bhas blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - Use this method if a specific local endpoint should be used.
+ * - This method can be used on both the connectionless and connection-oriented protocols.
+ * For connection-oriented sockets, this method need not be called
+ * before using the Connect() method, unless a specific local endpoint needs to be used.
+ * - This method must be called before the Listen() method.
*/
result Bind(const Tizen::Net::NetEndPoint& localEndPoint);
/**
- * Places the secure socket in a listening state.
+ * Places the secure socket in the listening state.
*
* @since 2.0
+ * @pre Before calling this method, the Bind() method must be called.
* @privlevel public
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
* @param[in] backLog The maximum length of the pending connections queue
* @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
* @exception E_ALREADY_CONNECTED The secure socket is already connected.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method causes a connection-oriented socket to listen for
- * the incoming connection attempts. The @c backlog parameter specifies
- * the number of incoming connections that can be queued for acceptance.
- * The Bind() method must be called before calling this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks This method causes a connection-oriented socket to listen for
+ * incoming connection attempts. @c backLog specifies
+ * the number of incoming connections that can be queued for acceptance.
*/
result Listen(int backLog);
* as the listening secure socket.
*
* @since 2.0
+ * @pre Before calling this method, the Listen() method must be called first to listen for and queue the incoming connection requests.
* @privlevel public
* @privilege %http://tizen.org/privilege/socket
*
- * @return A new secure socket for a newly created connection with the same socket type, protocol type, and protocol family, @n
+ * @return The new secure socket for the newly created connection with the same socket type, protocol type, and protocol family, @n
* else @c null if an error occurs
- * @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking secure socket operation cannot be completed immediately.
- * @exception E_INVALID_CERTIFICATE The server certificate verification has failed on client.
- * @exception E_CERTIFICATE_VERIFICATION_FAILED The client certificate verification has failed.
- * @exception E_INVALID_SOCKET The secure socket is invalid.
- * @exception E_INVALID_STATE The secure socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION This operation is not supported for this socket.
- * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
- * @exception E_TIMEOUT An attempt to connect to the server has timed out.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Before calling this method, the Listen() method must be called first
- * to listen for and queue the incoming connection requests.
- * In the blocking mode, this method blocks until an incoming connection attempt
- * is queued. After accepting a connection, the original socket
- * continues queuing the incoming connection requests until it is closed.
- * Note that if no connection is pending in the queue and the secure socket is in the blocking mode,
- * this method blocks until a new connection arrives. If the secure socket is in the non-blocking mode,
- * the E_WOULD_BLOCK exception is thrown. The specific error code can be accessed using the GetLastResult() method.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_WOULD_BLOCK The non-blocking secure socket operation cannot be completed immediately.
+ * @exception E_INVALID_CERTIFICATE The server certificate verification has failed at the client's side.
+ * @exception E_CERTIFICATE_VERIFICATION_FAILED The client certificate verification has failed.
+ * @exception E_INVALID_SOCKET The secure socket is invalid.
+ * @exception E_INVALID_STATE The secure socket is not in a valid state.
+ * @exception E_UNSUPPORTED_OPTION This operation is not supported for this socket.
+ * @exception E_NETWORK_UNAVAILABLE The network is unavailable.
+ * @exception E_TIMEOUT An attempt to connect to the server has timed out.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - In the blocking mode, this method blocks until an incoming connection attempt is queued. After accepting a connection, the original socket
+ * continues queuing the incoming connection requests until it is closed. @n
+ * Note that if no connection is pending in the queue and the secure socket is in the blocking mode,
+ * this method blocks until a new connection arrives. If the secure socket is in the non-blocking mode, the @c E_WOULD_BLOCK exception is thrown.
+ * - The specific error code can be accessed using the GetLastResult() method.
*/
SecureSocket* AcceptN(void) const;
* @param[in,out] value The value of the IOCTL command
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method manipulates the underlying device parameters of the secure socket descriptors. @n@n
- * The NET_SOCKET_FIONBIO option is used for setting the non-blocking/blocking mode on a secure socket.
- * Set the value to zero for enabling the blocking mode, or to a non-zero value for enabling the non-blocking mode.
- * When a secure socket is created, by default, it operates in the non-blocking mode and the blocking mode is disabled.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks This method manipulates the underlying device parameters of the secure socket descriptors. @n
+ * The @c NET_SOCKET_FIONBIO option is used for setting the non-blocking/blocking mode on a secure socket. @n
+ * Set the value to zero for enabling the blocking mode, or to a non-zero value for enabling the non-blocking mode. @n
+ * When a secure socket is created, by default, it operates in the non-blocking mode and the blocking mode is disabled.
*
*/
result Ioctl(NetSocketIoctlCmd cmd, unsigned long& value) const;
/**
- * Sets the secure socket to the asynchronous mode by a specified message to the specified event handler when the secure socket events occur.
+ * Sets the secure socket to the asynchronous mode by the specified message to the specified event handler when the secure socket events occur.
*
* @since 2.0
*
* @since 2.0
*
* @return An error code
- * @param[in] optionLevel A ::NetSocketOptLevel value
- * @param[in] optionName A ::NetSocketOptName value
+ * @param[in] optionLevel The ::NetSocketOptLevel value
+ * @param[in] optionName The ::NetSocketOptName value
* @param[out] optionValue The integer to receive the option setting
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INIT_FAILED The secure socket is not initialized.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_CONNECTION_FAILED The secure socket is not connected.
* @exception E_SYSTEM A system error has occurred.
- * @remarks The secure socket options determine the behavior of the current secure socket.
- * Upon the successful completion of this method, the integer variable specified
- * by the @c optionValue parameter contains the value of the specified secure socket option.
- * For an option with a bool data type, a non-zero value is returned if the option is enabled. Otherwise,
- * a zero value is returned. For an option with an integer data type, the method returns the appropriate value.
- * The secure socket options are grouped by the level of protocol support.
- * Listed below are the various secure socket options that can be obtained using this overload. These options are
- * grouped by the appropriate NetSocketOptLevel.
- * If any of these options are to be obtained, use the appropriate %NetSocketOptLevel for the @c optionLevel parameter. The option that
- * is chosen, must be specified in the @c optionName parameter. To set the current value of some of the listed options, use the
- * SetSockOpt() method. @n@n
- * The NET_SOCKET_SOL_SOCKET options that can be set using this overloaded method are: @n
- * NET_SOCKET_SO_SSLVERSION: Gets the SSL version of the secure socket. @n
- * NET_SOCKET_SO_SSLCIPHERSUITEID: Gets the SSL cipher suite ID of the secure socket.
- * @see SetSockOpt()
+ * @remarks
+ * - The secure socket options determine the behavior of the current secure socket.
+ * - Upon successful completion of this method, the integer variable specified
+ * by @c optionValue contains the value of the specified secure socket option.
+ * For an option with a @c bool data type, a non-zero value is returned if the option is enabled. Otherwise,
+ * a zero value is returned.
+ * For an option with an integer data type, the method returns the appropriate value.
+ * - The secure socket options are grouped by the level of protocol support.
+ * Listed below are the various secure socket options that can be obtained using this overload. These options are
+ * grouped by the appropriate NetSocketOptLevel.
+ * If any of these options are to be obtained, use the appropriate %NetSocketOptLevel for @c optionLevel. The option that
+ * is chosen, must be specified in @c optionName. To set the current value of some of the listed options, use the
+ * SetSockOpt() method. @n@n
+ * @c The NET_SOCKET_SOL_SOCKET options that can be set using this overloaded method are: @n
+ * @c NET_SOCKET_SO_SSLVERSION: Gets the SSL version of the secure socket. @n
+ * @c NET_SOCKET_SO_SSLCIPHERSUITEID: Gets the SSL cipher suite ID of the secure socket.
*/
result GetSockOpt(NetSocketOptLevel optionLevel, NetSocketOptName optionName, int& optionValue) const;
* @since 2.0
*
* @return An error code
- * @param[in] optionLevel A ::NetSocketOptLevel value
- * @param[in] optionName A ::NetSocketOptName value
+ * @param[in] optionLevel The ::NetSocketOptLevel value
+ * @param[in] optionName The ::NetSocketOptName value
* @param[in] optionValue The option value
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The secure socket is invalid.
* @exception E_INIT_FAILED The secure socket is not initialized.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The secure socket is not in a valid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_CONNECTION_FAILED The secure socket is not connected.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method is used to change the value of the option specified by the @c optionName parameter.
- * The secure socket options determine the behavior of the current secure socket. For an option with a bool data type,
- * specify a non-zero value to enable the option, and a zero value to disable the option.
- * For an option with an integer data type, specify the appropriate value. The secure socket options are grouped
- * by the level of protocol support.
- * Listed below are the various secure socket options that can be set using this overload. These options are
- * grouped by the appropriate NetSocketOptLevel. If any of these options are to be set, use the appropriate %NetSocketOptLevel for the
- * @c optionLevel parameter. The chosen option must be specified in the @c optionName parameter.
- * To get the current value of some of the options listed, use the GetSockOpt() method. @n@n
- * NET_SOCKET_SO_SSLVERSION: To enable the SSL version of the secure socket. @n
- * NET_SOCKET_SO_SSLCIPHERSUITEID: To set the SSL cipher suite ID of the secure socket. @n
- * NET_SOCKET_SO_SSLCERTVERIFY: To disable server certificate verification on the secure client socket. @n
- * NET_SOCKET_SO_SSLCLIENTCERTVERIFY: To enable client certificate verification on the secure server socket. @n
- * NET_SOCKET_SO_SSLCERTID: To set the SSL certificate ID for the client authentication. Start the Application control (L"tizen.certificatemanager") for getting the selected client certificate. For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_certmgr.htm">here</a>. @n
+ * @remarks
+ * - This method is used to change the value of the option specified by @c optionName. @n
+ * The secure socket options determine the behavior of the current secure socket. For an option with a @c bool data type,
+ * specify a non-zero value to enable the option, and a zero value to disable the option.
+ * For an option with an integer data type, specify the appropriate value.
+ * - The secure socket options are grouped by the level of protocol support. @n
+ * Listed below are the various secure socket options that can be set using this overload. These options are
+ * grouped by the appropriate NetSocketOptLevel. @n If any of these options are to be set, use the appropriate %NetSocketOptLevel for
+ * @c optionLevel. The chosen option must be specified in @c optionName. @n@n
+ * @c NET_SOCKET_SO_SSLVERSION: To enable the SSL version of the secure socket. @n
+ * @c NET_SOCKET_SO_SSLCIPHERSUITEID: To set the SSL cipher suite ID of the secure socket. @n
+ * @c NET_SOCKET_SO_SSLCERTVERIFY: To disable server certificate verification on the secure client socket. @n
+ * @c NET_SOCKET_SO_SSLCLIENTCERTVERIFY: To enable client certificate verification on the secure server socket. @n
+ * @c NET_SOCKET_SO_SSLCERTID: To set the SSL certificate ID for the client authentication. Start the Application control (L"tizen.certificatemanager") for getting the selected client certificate. For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_certmgr.htm">here</a>. @n
+ * @see GetSockOpt()
*/
result SetSockOpt(NetSocketOptLevel optionLevel, NetSocketOptName optionName, int optionValue);
* @brief This is the header file for the %Socket class.
*
* This header file contains the declarations of the %Socket class. @n
-* This class is a base class that provides methods for sending and receiving the data over a network.
+* This class is a base class that provides methods for sending and receiving data over a network.
*/
#ifndef _FNET_SOCK_SOCKET_H_
/**
* @class Socket
-* @brief This class is the base class that provides simple methods for sending and receiving the data over a network.
+* @brief This class is a base class that provides simple methods for sending and receiving data over a network.
*
* @since 2.0
*
-* The %Socket class is the base class that provides simple methods for sending and receiving the data over a network.
+* The %Socket class is a base class that provides simple methods for sending and receiving data over a network.
*
* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
*/
/**
* Initializes this instance of %Socket with the specified parameters. @n
- * The socket is initialized in a non-blocking mode by default.
+ * The socket is initialized in the non-blocking mode by default.
* Use Ioctl() (with NET_SOCKET_FIONBIO) to use a %Socket in the blocking mode.
*
* @since 2.0
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
- * @param[in] netConnection A run-time session where a %Socket instance is used
- * @param[in] addressFamily A ::NetSocketAddressFamily value
- * @param[in] socketType A ::NetSocketType value
- * @param[in] protocol A ::NetSocketProtocol value
+ * @param[in] netConnection The run-time session where a %Socket instance is used
+ * @param[in] addressFamily The ::NetSocketAddressFamily value
+ * @param[in] socketType The ::NetSocketType value
+ * @param[in] protocol The ::NetSocketProtocol value
* @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_MAX_EXCEEDED All sockets are in use.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_MAX_EXCEEDED All sockets are in use.
* @exception E_UNSUPPORTED_OPTION This operation is not supported for this socket.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
- * @exception E_UNSUPPORTED_TYPE The socket type is not supported.
+ * @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
+ * @exception E_UNSUPPORTED_TYPE The socket type is not supported.
* @exception E_UNSUPPORTED_FAMILY The address family is not supported.
* @exception E_SYSTEM A system error has occurred.
* @exception E_INVALID_CONNECTION The network connection is invalid.
* @exception E_FAILURE The method has failed.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The @c netConnection parameter specifies a run-time network connection. @n
- * The @c addressFamily parameter specifies an address family. @n
- * The @c socketType parameter specifies the type of the socket. @n
- * The @c protocol parameter specifies the protocol used by the socket. @n
- * The first parameter must be a valid run-time network connection.
- * The three parameters (without @c netConnection) are not independent.
- * Some address families restrict the protocols that can be used with them,
- * and often the socket type is implicit in the protocol.
- * If the combination of the address family, socket type, and protocol type results in
- * an invalid socket, this method returns an error. @n
- * This method is used for a socket of the type NET_SOCKET_PROTOCOL_TCP, NET_SOCKET_PROTOCOL_UDP, or NET_SOCKET_PROTOCOL_SSL. @n
- * If the blocking mode is being used, and a method call is made which does not
- * complete immediately, the application blocks the execution until the requested operation is completed. @n@n
- * If the execution is to be continued even though the requested operation
- * is not complete, the non-blocking mode should be used, which is the default mode in this method. @n
- * For each socket used in the non-blocking mode, an event listener (ISocketEventListener) should be registered
- * and maintained, so that it can receive asynchronous notifications of the socket events. @n
- * To register the listener, AddSocketListener() should be used after calling this method. @n
- * If a socket in the blocking mode needs to be used, Ioctl() (with NET_SOCKET_FIONBIO) should be called after initializing the socket
- * through this method.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - @c netConnection specifies a run-time network connection. @n
+ * @c addressFamily specifies an address family. @n
+ * @c socketType specifies the type of the socket. @n
+ * @c protocol specifies the protocol used by the socket. @n
+ * The first parameter must be a valid run-time network connection.
+ * The three parameters (without @c netConnection) are not independent.
+ * Some address families restrict the protocols that can be used with them,
+ * and often the socket type is implicit in the protocol.
+ * If a combination of the address family, socket type, and protocol type results in
+ * an invalid socket, this method returns an error. @n
+ * - This method is used for a socket of type @c NET_SOCKET_PROTOCOL_TCP, @c NET_SOCKET_PROTOCOL_UDP, or @c NET_SOCKET_PROTOCOL_SSL.
+ * - If the blocking mode is being used, and a method call is made which does not
+ * complete immediately, the application blocks the execution until the requested operation is completed. @n
+ * If the execution is to be continued even though the requested operation
+ * is not complete, the non-blocking mode should be used, which is the default mode in this method. @n
+ * For each socket used in the non-blocking mode, an event listener (ISocketEventListener) should be registered
+ * and maintained, so that it can receive asynchronous notifications of the socket events. @n
+ * To register the listener, AddSocketListener() should be used after calling this method. @n
+ * If a socket in the blocking mode needs to be used, %Ioctl() (with @c NET_SOCKET_FIONBIO) should be called after initializing the socket
+ * through this method.
* @see Ioctl() for understanding the blocking/non-blocking mode
*/
result Construct(const NetConnection& netConnection, NetSocketAddressFamily addressFamily, NetSocketType socketType, NetSocketProtocol protocol);
/**
* Initializes this instance of %Socket with the specified parameters. @n
- * The socket is initialized in a non-blocking mode by default.
+ * The socket is initialized in the non-blocking mode by default.
* Use Ioctl() (with NET_SOCKET_FIONBIO) to use a %Socket in the blocking mode.
*
* @since 2.0
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
- * @param[in] addressFamily A ::NetSocketAddressFamily value
- * @param[in] socketType A ::NetSocketType value
- * @param[in] protocol A ::NetSocketProtocol value
+ * @param[in] addressFamily The ::NetSocketAddressFamily value
+ * @param[in] socketType The ::NetSocketType value
+ * @param[in] protocol The ::NetSocketProtocol value
* @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_MAX_EXCEEDED All sockets are in use.
* @exception E_UNSUPPORTED_OPTION This operation is not supported for this socket.
* @exception E_INVALID_CONNECTION The network connection is invalid.
* @exception E_FAILURE The method has failed.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The @c addressFamily parameter specifies an address family. @n
- * The @c socketType parameter specifies the type of the socket. @n
- * The @c protocol parameter specifies the protocol used by the socket. @n
- * The three parameters are not independent.
- * Some address families restrict the protocols that can be used with them,
- * and often the socket type is implicit in the protocol.
- * If the combination of the address family, socket type, and protocol type results in
- * an invalid socket, this method returns an error. @n
- * This method is used for a socket of the type NET_SOCKET_PROTOCOL_TCP, NET_SOCKET_PROTOCOL_UDP, or NET_SOCKET_PROTOCOL_SSL. @n
- * If the blocking mode is being used, and a method call is made which does not
- * complete immediately, the application blocks the execution
- * until the requested operation is completed. @n@n
- * If the execution is to be continued even though the requested operation
- * is not complete, the non-blocking mode should be used, which is the default mode in this method. @n
- * For each socket used in the non-blocking mode, an event listener (ISocketEventListener) should be registered
- * and maintained, so that it can receive asynchronous notifications of the socket events. @n
- * To register the listener, AddSocketListener() should be used after calling this method. @n
- * If a socket in the blocking mode needs to be used, Ioctl (with NET_SOCKET_FIONBIO) should be called after initializing the socket
- * through this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - @c addressFamily specifies an address family. @n
+ * @c socketType specifies the type of the socket. @n
+ * @c protocol specifies the protocol used by the socket. @n
+ * The three parameters are not independent.
+ * Some address families restrict the protocols that can be used with them,
+ * and often the socket type is implicit in the protocol. @n
+ * If a combination of the address family, socket type, and protocol type results in
+ * an invalid socket, this method returns an error. @n
+ * - This method is used for a socket of type @c NET_SOCKET_PROTOCOL_TCP, @c NET_SOCKET_PROTOCOL_UDP, or @c NET_SOCKET_PROTOCOL_SSL.
+ * - If the blocking mode is being used, and a method call is made which does not complete immediately, the application blocks the execution
+ * until the requested operation is completed. @n If the execution is to be continued even though the requested operation
+ * is not complete, the non-blocking mode should be used, which is the default mode in this method. @n
+ * For each socket used in the non-blocking mode, an event listener (ISocketEventListener) should be registered
+ * and maintained, so that it can receive asynchronous notifications of the socket events. @n
+ * To register the listener, AddSocketListener() should be used after calling this method. @n
+ * If a socket in the blocking mode needs to be used, Ioctl (with NET_SOCKET_FIONBIO) should be called after initializing the socket
+ * through this method.
* @see Ioctl() for understanding the blocking/non-blocking mode
*/
result Construct(NetSocketAddressFamily addressFamily, NetSocketType socketType, NetSocketProtocol protocol);
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
* @remarks If the %Socket class is not initialized through one of the Construct() methods, or this method is called more than once,
- * then this method returns E_INVALID_STATE.
+ * then this method returns @c E_INVALID_STATE.
*/
result Close(void);
/**
- * Establishes a connection to a remote host for a connection-oriented socket. @n
- * This socket is of the type NET_SOCKET_TYPE_STREAM.
+ * Establishes a connection with a remote host for a connection-oriented socket. @n
+ * This socket is of type ::NET_SOCKET_TYPE_STREAM.
*
* @if OSPCOMPAT
* @brief <i> [Compatibility] </i>
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
- * @param[in] remoteEndPoint An instance of NetEndPoint representing the remote device
+ * @param[in] remoteEndPoint An instance of NetEndPoint that represents the remote device
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
* @exception E_HOST_UNREACHABLE The network cannot be reached from this host at this time.
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_CONNECTION_FAILED The socket is not connected.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
* @exception E_ALREADY_CONNECTED The socket is already connected.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks If the socket is a connectionless socket (that is, of the type NET_SOCKET_TYPE_DATAGRAM), this method fails.
- * After this method is called, ISocketEventListener::OnSocketConnected() is called. the data can be sent to and received from the remote device using Send() and Receive() respectively.
- * If a connection-oriented protocol is used and Bind() is not called before calling this method, the underlying service provider
- * assigns the local network address and port number.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - If the socket is a connectionless socket (that is, of the type ::NET_SOCKET_TYPE_DATAGRAM), this method fails.
+ * - After this method is called, ISocketEventListener::OnSocketConnected() is called, the data can be sent to and received from the remote
+ * device using Send() and Receive() respectively.
+ * - If a connection-oriented protocol is used and Bind() is not called before calling this method, the underlying service provider
+ * assigns the local network address and port number.
*/
result Connect(const Tizen::Net::NetEndPoint& remoteEndPoint);
* @page SocketConnectPage Compatibility for Connect()
*
* @section SocketConnectPageIssueSection Issues
- * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SYSTEM.
+ * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SYSTEM.
*
* @section SocketConnectPageResolutionSection Resolutions
- * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SUCCESS instead of E_SYSTEM.
+ * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SUCCESS instead of @c E_SYSTEM.
*/
/**
- * Sends the data to a socket of the type ::NET_SOCKET_TYPE_STREAM.
+ * Sends data to a socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_CONNECTION_FAILED The socket is not connected.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method sends the data to the remote host specified in the Connect() or AcceptN() method.
- * This method sends the data in the @c buffer parameter, starting from the current position of the buffer.
+ * @remarks
+ * - This method sends data to the remote host specified in the Connect() or AcceptN() method.
+ * - This method sends data in @c buffer, starting from the current position of the buffer.
* After the operation, the position of the buffer is incremented by the number of bytes successfully sent.
* The new position cannot be larger than the original limit.
- * This method can be used only for connection-oriented sockets.
- * In the blocking mode, if space is not available in the send queue, the socket blocks until space becomes available.
- * In the non-blocking mode, this method returns the error E_WOULD_BLOCK.
- * This method may complete successfully even if it sends less than the number of bytes
+ * - This method can be used only for connection-oriented sockets.
+ * - In the blocking mode, if space is not available in the send queue, the socket blocks until space becomes available. @n
+ * In the non-blocking mode, this method returns the error @c E_WOULD_BLOCK.
+ * - This method may complete successfully even if it sends less than the number of bytes
* in the buffer. The application should keep track of the number of bytes sent
* and retry the operation until the application sends the bytes in the buffer.
- * There is no guarantee that the data that is sent appears on the network immediately.
+ * - There is no guarantee that the data that is sent appears on the network immediately.
* To increase network efficiency, the underlying system may delay transmission until a significant amount
* of outgoing data is collected. The successful completion of this method means that the underlying
- * system has had room to buffer the data for a network send.
- * If it is important for the application to send every byte to the remote host immediately,
- * use SetSockOpt() (with NET_SOCKET_TCP_NODELAY) of the type ::NetSocketOptName to enable no delay.
+ * system has room to buffer the data sent for a network.
+ * - If it is important for the application to send every byte to the remote host immediately,
+ * use SetSockOpt() (with ::NET_SOCKET_TCP_NODELAY) of type ::NetSocketOptName to enable no delay.
*/
result Send(Tizen::Base::ByteBuffer& buffer);
/**
- * Sends the data to a socket of the type NET_SOCKET_TYPE_STREAM.
+ * Sends data to a socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @return An error code
- * @param[in] pBuffer The pointer to the buffer containing the data to send
+ * @param[in] pBuffer A pointer to the buffer that contains the data to send
* @param[in] length The length of the data in the buffer
* @param[out] sentLength The length of the data that is sent successfully
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_CONNECTION_FAILED The socket is not connected.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method sends the data to the remote host specified in the Connect() or AcceptN() method.
- * This method sends the data in the buffer of length @c length, starting from the current position of the buffer.
- * This method can be used only for connection-oriented sockets.
- * In the blocking mode, if space is not available in the send queue, the socket blocks until space becomes available.
- * In the non-blocking mode, this method returns the error E_WOULD_BLOCK.
- * This method may complete successfully even if it sends less than the number of bytes
- * in the buffer. The application should keep track of the number of bytes sent
- * and retry the operation until the application sends the bytes in the buffer.
- * There is no guarantee that the data that is sent appears on the network immediately.
- * To increase the network efficiency, the underlying system may delay the transmission until a significant amount
- * of outgoing data is collected. The successful completion of this method means that the underlying
- * system has had room to buffer the data for a network send.
- * If it is important to send every byte to the remote host immediately,
- * use SetSockOpt() (with NET_SOCKET_TCP_NODELAY) of the type ::NetSocketOptName to enable no delay.
+ * @remarks
+ * - This method sends data to the remote host specified in the Connect() or AcceptN() method.
+ * - This method sends data in the buffer of length @c length, starting from the current position of the buffer.
+ * - This method can be used only for connection-oriented sockets.
+ * - In the blocking mode, if space is not available in the send queue, the socket blocks until space becomes available. @n
+ * In the non-blocking mode, this method returns the error @c E_WOULD_BLOCK.
+ * - This method may complete successfully even if it sends less than the number of bytes
+ * in the buffer. The application should keep track of the number of bytes sent
+ * and retry the operation until the application sends the bytes in the buffer.
+ * - There is no guarantee that the data that is sent appears on the network immediately.
+ * To increase the network efficiency, the underlying system may delay the transmission until a significant amount
+ * of outgoing data is collected. The successful completion of this method means that the underlying
+ * system has room to buffer the data sent for a network.
+ * - If it is important to send every byte to the remote host immediately,
+ * use SetSockOpt() (with ::NET_SOCKET_TCP_NODELAY) of the type ::NetSocketOptName to enable no delay.
*/
result Send(void* pBuffer, int length, int& sentLength);
/**
- * Sends the data to a socket of the type NET_SOCKET_TYPE_DATAGRAM.
+ * Sends data to a socket of type ::NET_SOCKET_TYPE_DATAGRAM.
*
* @if OSPCOMPAT
* @brief <i> [Compatibility] </i>
* @endif
*
* @return An error code
- * @param[in] buffer An instance of Tizen::Base::ByteBuffer containing the data to send
- * @param[in] remoteEndPoint An instance of NetEndPoint representing the destination for the data
+ * @param[in] buffer An instance of Tizen::Base::ByteBuffer that contains the data to send
+ * @param[in] remoteEndPoint An instance of NetEndPoint that represents the destination for the data
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_HOST_UNREACHABLE The network cannot be reached from this host at this time.
* @exception E_OUT_OF_RANGE The message length has exceeded the maximum limit of the socket.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method sends the data to the remote host specified by the @c remoteEndPoint parameter.
- * This method sends the data in the @c buffer parameter, starting from the current position of the buffer.
+ * @remarks
+ * - This method sends data to the remote host specified by @c remoteEndPoint.
+ * - This method sends data in @c buffer, starting from the current position of the buffer.
* After the operation, the position of the buffer is incremented by the number of bytes successfully sent.
* The new position cannot be larger than the original limit.
- * This method can be used only for connectionless sockets.
- * In the blocking mode, if space is not available in the send queue, the socket blocks
- * until space becomes available. If the socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * - This method can be used only for connectionless sockets.
+ * - In the blocking mode, if space is not available in the send queue, the socket blocks until space becomes available. @n
+ * If the socket is in the non-blocking mode, the error @c E_WOULD_BLOCK is returned.
*/
result SendTo(Tizen::Base::ByteBuffer& buffer, const Tizen::Net::NetEndPoint& remoteEndPoint);
* @page SocketSendToPage1 Compatibility for SendTo()
*
* @section SocketSendToPage1IssueSection Issues
- * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SYSTEM.
+ * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SYSTEM.
*
* @section SocketSendToPage1ResolutionSection Resolutions
- * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SUCCESS instead E_SYSTEM.
+ * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SUCCESS instead of @c E_SYSTEM.
*/
/**
- * Sends the data to a socket of the type NET_SOCKET_TYPE_DATAGRAM.
+ * Sends data to a socket of type ::NET_SOCKET_TYPE_DATAGRAM.
*
* @if OSPCOMPAT
* @brief <i> [Compatibility] </i>
* @since 2.0
* @if OSPCOMPAT
* @compatibility This method has compatibility issues with OSP compatible applications. @n
- * For more information, see @ref SocketSendToPage2 "here".
- * @endif
+ * For more information, see @ref SocketSendToPage2 "here".
+ * @endif
*
* @return An error code
- * @param[in] pBuffer The pointer to the buffer containing the data to send
+ * @param[in] pBuffer A pointer to the buffer that contains the data to send
* @param[in] length The length of the data in the buffer
- * @param[in] remoteEndPoint An instance of NetEndPoint representing the destination for the data
+ * @param[in] remoteEndPoint An instance of NetEndPoint that represents the destination for the data
* @param[out] sentLength The length of the data that is sent successfully
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_HOST_UNREACHABLE The network cannot be reached from this host at this time.
* @exception E_OUT_OF_RANGE The message length has exceeded the maximum limit of the socket.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method sends the data to the remote host specified by the @c remoteEndPoint parameter.
- * This method sends the data in the buffer. The length of the data is specified by @c length, starting from the current
- * position of the buffer.
- * This method can be used only for connectionless sockets.
- * In the blocking mode, if space is not available in the send queue, the socket blocks
- * until space becomes available. If the socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * @remarks
+ * - This method sends data to the remote host specified by @c remoteEndPoint.
+ * - This method sends data in the buffer. The length of the data is specified by @c length, starting from the current
+ * position of the buffer.
+ * - This method can be used only for connectionless sockets.
+ * - In the blocking mode, if space is not available in the send queue, the socket blocks until space becomes available. @n
+ * the socket is in the non-blocking mode, the error @c E_WOULD_BLOCK is returned.
*/
result SendTo(void* pBuffer, int length, const Tizen::Net::NetEndPoint& remoteEndPoint, int& sentLength);
* @page SocketSendToPage2 Compatibility for SendTo()
*
* @section SocketSendToPage2IssueSection Issues
- * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SYSTEM.
+ * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SYSTEM.
*
* @section SocketSendToPage2ResolutionSection Resolutions
- * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SUCCESS instead of @c E_SYSTEM.
+ * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SUCCESS instead of @c E_SYSTEM.
*/
/**
- * Receives the data from a socket of the type ::NET_SOCKET_TYPE_STREAM.
+ * Receives data from a socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method copies the data into the @c buffer parameter, starting from the current position of the buffer.
- * After the operation, the position of the buffer is incremented by the number of bytes successfully received.
- * The new position cannot be larger than the original limit.
- * This method can only be called from connection-oriented sockets.
- * If there is no data at the socket in the blocking mode,
- * this method blocks until the data arrives. If the socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * @remarks
+ * - This method copies data into @c buffer, starting from the current position of the buffer. @n
+ * After the operation, the position of the buffer is incremented by the number of bytes successfully received.
+ * The new position cannot be larger than the original limit.
+ * - This method can only be called from connection-oriented sockets.
+ * - If there is no data at the socket in the blocking mode, this method blocks until the data arrives. @n
+ * If the socket is in the non-blocking mode, the error @c E_WOULD_BLOCK is returned.
*/
result Receive(Tizen::Base::ByteBuffer& buffer) const;
/**
- * Receives the data from a socket of the type ::NET_SOCKET_TYPE_STREAM.
+ * Receives data from a socket of type ::NET_SOCKET_TYPE_STREAM.
*
* @since 2.0
*
* @return An error code
- * @param[out] pBuffer The pointer to the buffer that is the storage location for the received data
+ * @param[out] pBuffer A pointer to the buffer that is the storage location for the received data
* @param[in] length The length of the data in the buffer
* @param[out] rcvdLength The length of the data that is received successfully
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_TIMEOUT An attempt to connect to the server has timed out.
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method copies the data into the buffer. The length of the data is specified by @c length, starting from the current
- * position of the buffer.
- * This method can be called only from connection-oriented sockets.
- * If there is no data at the socket in the blocking mode,
- * this method blocks until the data arrives. If the socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * @remarks
+ * - This method copies the data into the buffer. The length of the data is specified by @c length, starting from the current
+ * position of the buffer.
+ * - This method can be called only from connection-oriented sockets.
+ * - If there is no data at the socket in the blocking mode, this method blocks until the data arrives. @n
+ * If the socket is in the non-blocking mode, the error @c E_WOULD_BLOCK is returned.
*/
result Receive(void* pBuffer, int length, int& rcvdLength) const;
/**
- * Receives the data from a socket of the type NET_SOCKET_TYPE_DATAGRAM.
+ * Receives data from a socket of type ::NET_SOCKET_TYPE_DATAGRAM.
*
* @if OSPCOMPAT
* @brief <i> [Compatibility] </i>
* @since 2.0
* @if OSPCOMPAT
* @compatibility This method has compatibility issues with OSP compatible applications. @n
- * For more information, see @ref SocketReceiveFromPage1 "here".
- * @endif
+ * For more information, see @ref SocketReceiveFromPage1 "here".
+ * @endif
*
* @return An error code
* @param[out] buffer An instance of Tizen::Base::ByteBuffer that is the storage location for the received data
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_OUT_OF_RANGE The message length exceeded the maximum limit.
+ * @exception E_OUT_OF_RANGE The message length has exceeded the maximum limit.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method copies the data into the specified buffer, starting from the current position of the buffer.
- * After the operation, the position of the buffer is incremented by the number of bytes successfully received.
- * The new position cannot be larger than the original limit.
- * The method returns the remote host endpoint from which the data is sent.
- * This method can only be called from connectionless sockets; that is,
- * this method is used only if connectionless datagrams are to be received
- * from an unknown host or multiple hosts.
- * This method reads the first enqueued datagram received
- * into the local network buffer. If the datagram received is larger
- * than the remaining bytes of the buffer, this method returns the error E_OUT_OF_RANGE.
- * If there is no data at the socket in the blocking mode,
- * this method blocks until the data arrives. If the socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * @remarks
+ * - This method copies data into the specified buffer, starting from the current position of the buffer.
+ * After the operation, the position of the buffer is incremented by the number of bytes successfully received.
+ * The new position cannot be larger than the original limit.
+ * - The method returns the remote host endpoint from which the data is sent.
+ * - This method can only be called from connectionless sockets; that is,
+ * this method is used only if connectionless datagrams are to be received
+ * from an unknown host or multiple hosts.
+ * - This method reads the first enqueued datagram received
+ * into the local network buffer. If the datagram received is larger
+ * than the remaining bytes of the buffer, this method returns the error @c E_OUT_OF_RANGE.
+ * - If there is no data at the socket in the blocking mode, this method blocks until the data arrives. @n
+ * If the socket is in the non-blocking mode, the error @c E_WOULD_BLOCK is returned.
*/
result ReceiveFrom(Tizen::Base::ByteBuffer& buffer, Tizen::Net::NetEndPoint& remoteEndPoint) const;
* @page SocketReceiveFromPage1 Compatibility for ReceiveFrom()
*
* @section SocketReceiveFromPage1IssueSection Issues
- * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SYSTEM.
+ * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SYSTEM.
*
* @section SocketReceiveFromPage1ResolutionSection Resolutions
- * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SUCCESS instead of E_SYSTEM.
+ * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SUCCESS instead of @c E_SYSTEM.
*/
/**
- * Receives the data from a socket of the type NET_SOCKET_TYPE_DATAGRAM.
+ * Receives data from a socket of type ::NET_SOCKET_TYPE_DATAGRAM.
*
* @if OSPCOMPAT
* @brief <i> [Compatibility] </i>
* @since 2.0
* @if OSPCOMPAT
* @compatibility This method has compatibility issues with OSP compatible applications. @n
- * For more information, see @ref SocketReceiveFromPage2 "here".
- * @endif
+ * For more information, see @ref SocketReceiveFromPage2 "here".
+ * @endif
*
* @return An error code
- * @param[out] pBuffer The pointer to the buffer that is the storage location for the received data
+ * @param[out] pBuffer A pointer to the buffer that is the storage location for the received data
* @param[in] length The length of the data in the buffer
* @param[out] remoteEndPoint The NetEndPoint of the remote server
* @param[out] rcvdLength The length of the data that is received successfully
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_OUT_OF_RANGE The message length exceeded the maximum limit.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_OUT_OF_RANGE The message length has exceeded the maximum limit.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method copies the data into the buffer. The length of the data is specified by @c length, starting from the current
- * position of the buffer.
- * The method returns the remote host endpoint from which the data is sent.
- * This method can only be called from connectionless sockets; that is,
- * this method is used only if connectionless datagrams are to be received
- * from an unknown host or multiple hosts.
- * This method reads the first enqueued datagram received
- * into the local network buffer. If the datagram received is larger
- * than the value of @c length parameter, this method will return an error E_OUT_OF_RANGE.
- * If there is no data at the socket in the blocking mode,
- * this method blocks until the data arrives. If the socket is in the non-blocking mode,
- * the error E_WOULD_BLOCK is returned.
+ * @remarks
+ * - This method copies the data into the buffer. The length of the data is specified by @c length, starting from the current position of the buffer.
+ * - The method returns the remote host endpoint from which the data is sent.
+ * - This method can only be called from connectionless sockets; that is,
+ * this method is used only if connectionless datagrams are to be received
+ * from an unknown host or multiple hosts.
+ * - This method reads the first enqueued datagram received
+ * into the local network buffer. If the datagram received is larger
+ * than the value of @c length, this method returns the error @c E_OUT_OF_RANGE.
+ * - If there is no data at the socket in the blocking mode, this method blocks until the data arrives. @n
+ * If the socket is in the non-blocking mode, the error @c E_WOULD_BLOCK is returned.
*/
result ReceiveFrom(void* pBuffer, int length, Tizen::Net::NetEndPoint& remoteEndPoint, int& rcvdLength) const;
* @page SocketReceiveFromPage2 Compatibility for ReceiveFrom()
*
* @section SocketReceiveFromPage2IssueSection Issues
- * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SYSTEM.
+ * Implementation of this method in %Tizen API versions prior to 2.1 has the following issue: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SYSTEM.
*
* @section SocketReceiveFromPage2ResolutionSection Resolutions
- * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
- * -# If the application provides a loopback address in NetEndPoint, it returns E_SUCCESS instead of E_SYSTEM.
+ * The issue mentioned above is resolved in %Tizen API version 2.1 as follows: @n
+ * -# If the application provides a loopback address in NetEndPoint, it returns @c E_SUCCESS instead of @c E_SYSTEM.
*/
/**
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_INVALID_ARG The specified input parameter is invalid.
* @exception E_ALREADY_BOUND The address is already in use.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Use this method if a specific local endpoint should be used.
- * This method can be used on both the connectionless and connection-oriented protocols.
- * For connection-oriented sockets, this method need not be called
- * before using the Connect() method, unless a specific local endpoint needs to be used.
- * This method must be called before the Listen() method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - Use this method if a specific local endpoint should be used.
+ * - This method can be used on both the connectionless and connection-oriented protocols.
+ * For connection-oriented sockets, this method need not be called
+ * before using the Connect() method, unless a specific local endpoint needs to be used.
+ * - This method must be called before the Listen() method.
*/
result Bind(const Tizen::Net::NetEndPoint& localEndPoint);
/**
- * Places the socket in a listening state.
+ * Places the socket in the listening state.
*
* @since 2.0
+ * @pre Before calling this method, the Bind() method must be called.
* @privlevel public
* @privilege %http://tizen.org/privilege/socket
*
* @return An error code
* @param[in] backLog The maximum length of the pending connections queue
* @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameter is not supported.
+ * @exception E_UNSUPPORTED_OPTION The specified input parameter is not supported.
* @exception E_UNSUPPORTED_PROTOCOL The protocol is not supported.
* @exception E_ALREADY_CONNECTED The socket is already connected.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method causes a connection-oriented socket to listen for
- * the incoming connection attempts. The @c backlog parameter specifies
- * the number of incoming connections that can be queued for acceptance.
- * The Bind() method must be called before calling this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks This method causes a connection-oriented socket to listen for
+ * the incoming connection attempts. @c backlog specifies
+ * the number of incoming connections that can be queued for acceptance.
*/
result Listen(int backLog);
/**
* Accepts an incoming connection. @n
- * This method extracts the first connection from the queue of pending connections, and
+ * The %AcceptN() method extracts the first connection from the queue of pending connections, and
* creates a new socket with the same socket type, protocol type, and protocol family
* as the listening socket.
*
* @since 2.0
+ * @pre Before calling this method, the Listen() method must be called first to listen for and queue the incoming connection requests.
* @privlevel public
* @privilege %http://tizen.org/privilege/socket
*
- * @return A new socket for a newly created connection with the same socket type, protocol type, and protocol family, @n
+ * @return The new socket for the newly created connection with the same socket type, protocol type, and protocol family, @n
* else @c null if an error occurs
* @exception E_SUCCESS The method is successful.
- * @exception E_WOULD_BLOCK A non-blocking socket operation cannot be completed immediately.
+ * @exception E_WOULD_BLOCK The non-blocking socket operation cannot be completed immediately.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
* @exception E_UNSUPPORTED_OPTION This operation is not supported for this socket.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Before calling this method, the Listen() method must be called first
- * to listen for and queue the incoming connection requests.
- * In the blocking mode, this method blocks until an incoming connection attempt
- * is queued. After accepting a connection, the original socket
- * continues queuing the incoming connection requests until it is closed.
- * Note that if no connection is pending in the queue and the socket is in the blocking mode,
- * this method blocks until a new connection arrives. If the socket is in the non-blocking mode,
- * the E_WOULD_BLOCK exception is thrown. The specific error code can be accessed using the GetLastResult() method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - In the blocking mode, this method blocks until an incoming connection attempt is queued. After accepting a connection, the original socket
+ * continues queuing the incoming connection requests until it is closed. @n
+ * Note that if no connection is pending in the queue and the socket is in the blocking mode,
+ * this method blocks until a new connection arrives. @n If the socket is in the non-blocking mode, the @c E_WOULD_BLOCK exception is thrown.
+ * - The specific error code can be accessed using the GetLastResult() method.
*/
Socket* AcceptN(void) const;
* @param[in,out] value The value of the IOCTL command
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method manipulates the underlying device parameters of the socket descriptors. @n@n
- * The NET_SOCKET_FIONBIO option is used for setting the non-blocking/blocking mode on a socket.
- * Set the value to zero for enabling the blocking mode, or to a non-zero value for enabling the non-blocking mode.
- * When a socket is created, by default, it operates in the non-blocking mode and the blocking mode is disabled. @n
- * The NET_SOCKET_FIONREAD option is used for getting the number of bytes that are immediately available for reading. @n
- * The NET_SOCKET_FIONWRITE option is used for getting the number of bytes that have not yet been
- * acknowledged by the other side of the connection. This option is not supported in this SDK. @n
- * The NET_SOCKET_SIOCATMARK option is used to determine if all out of band (OOB) data has been read.
- * Currently sockets do not support this option.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks This method manipulates the underlying device parameters of the socket descriptors.
+ * - The @c NET_SOCKET_FIONBIO option is used for setting the non-blocking/blocking mode on a socket.
+ * Set the value to zero for enabling the blocking mode, or to a non-zero value for enabling the non-blocking mode.
+ * When a socket is created, by default, it operates in the non-blocking mode and the blocking mode is disabled. @n
+ * - The @c NET_SOCKET_FIONREAD option is used for getting the number of bytes that are immediately available for reading. @n
+ * - The @c NET_SOCKET_FIONWRITE option is used for getting the number of bytes that have not yet been
+ * acknowledged by the other side of the connection. This option is not supported in this SDK. @n
+ * - The @c NET_SOCKET_SIOCATMARK option is used to determine if all out of band (OOB) data has been read.
+ * Currently sockets do not support this option.
*
*/
result Ioctl(NetSocketIoctlCmd cmd, unsigned long& value) const;
/**
- * Sets the socket to the asynchronous mode by a specified message to the specified event handler when the socket events occur.
+ * Sets the socket to the asynchronous mode by the specified message to the specified event handler when the socket events occur.
*
* @since 2.0
*
/**
* Gets the peer endpoint for this socket. @n
- * It returns a NetEndPoint containing the peer IP address and port number.
+ * It returns a NetEndPoint that contains the peer IP address and port number.
*
* @since 2.0
*
- * @return The peer endpoint for the calling %Socket instance, @n
+ * @return The peer endpoint for the current %Socket instance, @n
* else @c null if the socket is not connected to any peer
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_STATE The socket is not in a valid state.
/**
* Gets the local endpoint for this socket. @n
- * It returns a NetEndPoint containing the local IP address and port number.
+ * It returns a NetEndPoint that contains the local IP address and port number.
*
* @since 2.0
*
- * @return The local endpoint for the calling %Socket instance, @n
- * else @c null
+ * @return The local endpoint for the current %Socket instance, @n
+ * else @c null if it fails
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_STATE The socket is not in a valid state.
* @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks This NetEndPoint must be cast to a %NetEndPoint before retrieving any information.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - This NetEndPoint must be cast to a %NetEndPoint before retrieving any information.
*/
const NetEndPoint* GetLocalEndPoint(void);
* @since 2.0
*
* @return An error code
- * @param[in] optionLevel A ::NetSocketOptLevel value
- * @param[in] optionName A ::NetSocketOptName value
+ * @param[in] optionLevel The ::NetSocketOptLevel value
+ * @param[in] optionName The ::NetSocketOptName value
* @param[out] optionValue The integer to receive the option setting
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INIT_FAILED The socket is not initialized.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_CONNECTION_FAILED The socket is not connected.
* @exception E_SYSTEM A system error has occurred.
- * @remarks The socket options determine the behavior of the current socket.
- * Upon successful completion of this method,
- * @c optionValue parameter contains the value of the specified socket option.
- * For an option with a bool data type, a non-zero value is returned if the option is enabled. Otherwise,
+ * @remarks
+ * - The socket options determine the behavior of the current socket.
+ * - Upon successful completion of this method,
+ * @c optionValue contains the value of the specified socket option.
+ * For an option with a @c bool data type, a non-zero value is returned if the option is enabled. Otherwise,
* a zero value is returned. For an option with an integer data type, the method returns the appropriate value.
- * The socket options are grouped by the level of protocol support. @n@n
+ * - The socket options are grouped by the level of protocol support. @n@n
* Listed below are the various socket options that can be obtained using this overload. These options are
* grouped by the appropriate NetSocketOptLevel.
- * Use the appropriate %NetSocketOptLevel for the @c optionLevel parameter. The option that is chosen,
- * must be specified in the @c optionName parameter. To set the current value of some of
+ * Use the appropriate %NetSocketOptLevel for @c optionLevel. The option that is chosen,
+ * must be specified in @c optionName. To set the current value of some of
* the listed options, use the SetSockOpt() method. @n@n
* The OptionNames are categorized under their specific option levels. @n@n
* NET_SOCKET_IPPROTO_TCP @n
* NET_SOCKET_SO_SNDBUF: Buffer size for sends. @n
* NET_SOCKET_SO_SNDTIMEO: Sends a time-out. @n
* NET_SOCKET_SO_TYPE: Gets the socket type. @n
- * @see SetSockOpt()
*/
result GetSockOpt(NetSocketOptLevel optionLevel, NetSocketOptName optionName, int& optionValue) const;
/**
- * Gets the socket option status of SO_LINGER.
+ * Gets the socket option status of @c SO_LINGER.
*
* @since 2.0
*
* @return An error code
* @param[in] optionLevel The socket option level @n
- * The @c optionLevel is NET_SOCKET_SOL_SOCKET.
+ * The @c optionLevel is @c NET_SOCKET_SOL_SOCKET.
* @param[in] optionName The socket configuration option name @n
- * The @c optionName is NET_SOCKET_SO_LINGER.
- * @param[out] optionValue The instance of LingerOption that is to receive the option setting
+ * The @c optionName is @c NET_SOCKET_SO_LINGER.
+ * @param[out] optionValue The instance of LingerOption to receive the option setting
* @exception E_SUCCESS The method is successful.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INIT_FAILED The socket is not initialized.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @since 2.0
*
* @return An error code
- * @param[in] optionLevel A ::NetSocketOptLevel value
- * @param[in] optionName A ::NetSocketOptName value
+ * @param[in] optionLevel The ::NetSocketOptLevel value
+ * @param[in] optionName The ::NetSocketOptName value
* @param[in] optionValue The option value
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INIT_FAILED The socket is not initialized.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The socket is not in a valid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_CONNECTION_FAILED The socket is not connected.
* @exception E_SYSTEM A system error has occurred.
- * @remarks This method is used to change the value of the option specified by the @c optionName parameter.
- * The socket options determine the behavior of the current socket. For an option with a bool data type,
+ * @remarks
+ * - This method is used to change the value of the option specified by @c optionName.
+ * - The socket options determine the behavior of the current socket. For an option with a @c bool data type,
* specify a non-zero value to enable the option, and a zero value to disable the option.
* For an option with an integer data type, specify the appropriate value. The socket options are grouped
* by the level of protocol support. @n@n
* Listed below are the various socket options that can be set using this overload. These options are
* grouped by the appropriate NetSocketOptLevel. If any of these options are to be set,
- * use the appropriate %NetSocketOptLevel for the @c optionLevel parameter. The chosen option
- * must be specified in the @c optionName parameter. To get the current value of some of
+ * use the appropriate %NetSocketOptLevel for @c optionLevel. The chosen option
+ * must be specified in @c optionName. To get the current value of some of
* the options listed, use the GetSockOpt() method. @n@n
* The OptionNames are categorized under their specific option levels. @n@n
* NET_SOCKET_IPPROTO_TCP @n
result SetSockOpt(NetSocketOptLevel optionLevel, NetSocketOptName optionName, int optionValue);
/**
- * Enables or disables SO_LINGER with the specified linger time in seconds. @n
+ * Enables or disables @c SO_LINGER with the specified linger time in seconds. @n
* The maximum timeout value is platform-specific. This setting only affects socket close.
*
* @since 2.0
*
* @return An error code
* @param[in] optionLevel The socket option level @n
- * The @c optionLevel is NET_SOCKET_SOL_SOCKET.
+ * The @c optionLevel is @c NET_SOCKET_SOL_SOCKET.
* @param[in] optionName The socket configuration option name @n
- * The @c optionName is NET_SOCKET_SO_LINGER.
+ * The @c optionName is @c NET_SOCKET_SO_LINGER.
* @param[in] optionValue An instance of LingerOption that holds the option setting
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INIT_FAILED The socket is not initialized.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The socket is in an invalid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* Enables the adding or dropping of a membership for the specified multicast group. @n
* Multicast datagram packets are transmitted only to the multicast group members. @n
* A socket must join a multicast group before the data is received. @n
- * Do not call NET_SOCKET_SO_IP_ADD_MEMBERSHIP with the same group more than once on the same network interface.
+ * Do not call @c NET_SOCKET_IP_ADD_MEMBERSHIP with the same group more than once on the same network interface.
*
* @since 2.0
*
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INIT_FAILED The socket is not initialized.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_INVALID_STATE The socket is in an invalid state.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
/**
-* @file FNetSockSocketIpMulticastRequestOption.h
-* @brief This is the header file for the %IpMulticastRequestOption class.
-*
-* This header file contains the declarations of the %IpMulticastRequestOption class.
-*/
+ * @file FNetSockSocketIpMulticastRequestOption.h
+ * @brief This is the header file for the %IpMulticastRequestOption class.
+ *
+ * This header file contains the declarations of the %IpMulticastRequestOption class.
+ */
#ifndef _FNET_SOCK_SOCKET_IP_MULTICAST_REQUEST_OPTION_H_
#define _FNET_SOCK_SOCKET_IP_MULTICAST_REQUEST_OPTION_H_
class _IpMulticastRequestOptionImpl;
/**
-* @class IpMulticastRequestOption
-* @brief This class supports the multicasting in sockets for sending and receiving multicast datagram packets.
-* For multicasting, a socket must be of type NET_SOCKET_TYPE_DATAGRAM.
-*
-* @since 2.0
-*
-* The %IpMulticastRequestOption class supports the multicasting in sockets for sending and receiving multicast datagram packets.
-* For multicasting, a socket must be of type ::NET_SOCKET_TYPE_DATAGRAM.
-*
-* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
-*
-* @see Tizen::Net::Sockets::Socket::SetSockOpt(NetSocketOptLevel, NetSocketOptName, const IpMulticastRequestOption&)
-*
-* The following example demonstrates how to use the %IpMulticastRequestOption class with the multicast sender.
-*
-* @code
-* result res = E_SUCCESS;
-*
-* // Creates the socket.
-* Socket* pSocket = new Socket();
-* res = pSocket->Construct(NET_SOCKET_AF_IPV4, NET_SOCKET_TYPE_DATAGRAM, NET_SOCKET_PROTOCOL_UDP);
-*
-* // Adds the listener.
-* MySocketListener* pSockListener = new MySocketListener();
-* res = pSocket->AddSocketListener(*pSockListener);
-*
-* // Selects the async event(non-blocking mode).
-* res = pSocket->AsyncSelectByListener(NET_SOCKET_EVENT_WRITE);
-*
-* // Creates the multicast group end point to send the data.
-* Ip4Address multicastAddr("224.1.1.1"); // Multicast group address
-* unsigned short multicastPort = XXXX; // Multicast group port
-* NetEndPoint multicastEndPoint(multicastAddr, multicastPort);
-*
-* // Creates the data to send.
-* const char* pSendData = "Send";
-* Tizen::Base::ByteBuffer txBuffer;
-* txBuffer.Construct(strlen(pSendData) + 1);
-* txBuffer.SetArray((byte*)pSendData, 0, strlen(pSendData));
-* txBuffer.Flip();
-*
-* // Sends the data to the multicast group
-* res = ptSocket->SendTo(txBuffer, multicastEndPoint);
-* @endcode
-*
-* The following example demonstrates how to use the %IpMulticastRequestOption class with the multicast receiver.
-*
-* @code
-* result res = E_SUCCESS;
-*
-* // Creates the socket.
-* Socket* pSocket = new Socket();
-* res = pSocket->Construct(NET_SOCKET_AF_IPV4, NET_SOCKET_TYPE_DATAGRAM, NET_SOCKET_PROTOCOL_UDP);
-*
-* // Adds the listener.
-* MySocketListener* pSockListener = new MySocketListener();
-* res = pSocket->AddSocketListener(*pSockListener);
-*
-* // Selects the async event(non-blocking mode).
-* res = pSocket->AsyncSelectByListener(NET_SOCKET_EVENT_READ);
-*
-* // Binds the local interface end point to receive the data.
-* Ip4Address localAddr(NET_SOCKET_INADDR_ANY); // Any incoming interface
-* unsigned short localPort = XXXX; // Multicast group port
-* NetEndPoint localEndPoint(localAddr, localPort);
-* res = pSocket->Bind(localEndPoint);
-*
-* // Creates the multicast group end point.
-* Ip4Address multicastAddr("224.1.1.1"); // Multicast group address
-* unsigned short multicastPort = YYYY; // Any available port, which will not be used for other operations
-* NetEndPoint multicastEndPoint(multicastAddr, multicastPort);
-*
-* // Creates the local interface end point.
-* Ip4Address interfaceAddr(NET_SOCKET_INADDR_ANY); // Local interface address
-* unsigned short interfacePort = ZZZZ; // Any available port, which will not be used for other operations
-* NetEndPoint interfaceEndPoint(interfaceAddr, interfacePort);
-*
-* // Specifies the IpMulticastRequestOption.
-* IpMulticastRequestOption ipMreq(multicastEndPoint, interfaceEndPoint);
-*
-* // Joins the multicast group.
-* res = pSocket->SetSockOpt(NET_SOCKET_IPPROTO_IP, NET_SOCKET_IP_ADD_MEMBERSHIP, ipMreq);
-*
-* // Creates the buffer to receive the data.
-* Tizen::Base::ByteBuffer rxBuffer;
-* rxBuffer.Construct(MAX_BUFFER_SIZE);
-*
-* // Receives the data from the multicast group.
-* res = pSocket->ReceiveFrom(rxBuffer, localEndPoint);
-* @endcode
-*/
+ * @class IpMulticastRequestOption
+ * @brief This class supports multicasting in sockets for sending and receiving multicast datagram packets.
+ * For multicasting, a socket must be of type NET_SOCKET_TYPE_DATAGRAM.
+ *
+ * @since 2.0
+ *
+ * The %IpMulticastRequestOption class supports multicasting in sockets for sending and receiving multicast datagram packets.
+ * For multicasting, a socket must be of type ::NET_SOCKET_TYPE_DATAGRAM.
+ *
+ * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
+ *
+ * @see Tizen::Net::Sockets::Socket::SetSockOpt(NetSocketOptLevel, NetSocketOptName, const IpMulticastRequestOption&)
+ *
+ * The following example demonstrates how to use the %IpMulticastRequestOption class with the multicast sender.
+ *
+ * @code
+ * result res = E_SUCCESS;
+ *
+ * // Creates the socket.
+ * Socket* pSocket = new Socket();
+ * res = pSocket->Construct(NET_SOCKET_AF_IPV4, NET_SOCKET_TYPE_DATAGRAM, NET_SOCKET_PROTOCOL_UDP);
+ *
+ * // Adds the listener.
+ * MySocketListener* pSockListener = new MySocketListener();
+ * res = pSocket->AddSocketListener(*pSockListener);
+ *
+ * // Selects the async event(non-blocking mode).
+ * res = pSocket->AsyncSelectByListener(NET_SOCKET_EVENT_WRITE);
+ *
+ * // Creates the multicast group end point to send the data.
+ * Ip4Address multicastAddr("224.1.1.1"); // Multicast group address
+ * unsigned short multicastPort = XXXX; // Multicast group port
+ * NetEndPoint multicastEndPoint(multicastAddr, multicastPort);
+ *
+ * // Creates the data to send.
+ * const char* pSendData = "Send";
+ * Tizen::Base::ByteBuffer txBuffer;
+ * txBuffer.Construct(strlen(pSendData) + 1);
+ * txBuffer.SetArray((byte*)pSendData, 0, strlen(pSendData));
+ * txBuffer.Flip();
+ *
+ * // Sends the data to the multicast group
+ * res = ptSocket->SendTo(txBuffer, multicastEndPoint);
+ * @endcode
+ *
+ * The following example demonstrates how to use the %IpMulticastRequestOption class with the multicast receiver.
+ *
+ * @code
+ * result res = E_SUCCESS;
+ *
+ * // Creates the socket.
+ * Socket* pSocket = new Socket();
+ * res = pSocket->Construct(NET_SOCKET_AF_IPV4, NET_SOCKET_TYPE_DATAGRAM, NET_SOCKET_PROTOCOL_UDP);
+ *
+ * // Adds the listener.
+ * MySocketListener* pSockListener = new MySocketListener();
+ * res = pSocket->AddSocketListener(*pSockListener);
+ *
+ * // Selects the async event(non-blocking mode).
+ * res = pSocket->AsyncSelectByListener(NET_SOCKET_EVENT_READ);
+ *
+ * // Binds the local interface end point to receive the data.
+ * Ip4Address localAddr(NET_SOCKET_INADDR_ANY); // Any incoming interface
+ * unsigned short localPort = XXXX; // Multicast group port
+ * NetEndPoint localEndPoint(localAddr, localPort);
+ * res = pSocket->Bind(localEndPoint);
+ *
+ * // Creates the multicast group end point.
+ * Ip4Address multicastAddr("224.1.1.1"); // Multicast group address
+ * unsigned short multicastPort = YYYY; // Any available port, which will not be used for other operations
+ * NetEndPoint multicastEndPoint(multicastAddr, multicastPort);
+ *
+ * // Creates the local interface end point.
+ * Ip4Address interfaceAddr(NET_SOCKET_INADDR_ANY); // Local interface address
+ * unsigned short interfacePort = ZZZZ; // Any available port, which will not be used for other operations
+ * NetEndPoint interfaceEndPoint(interfaceAddr, interfacePort);
+ *
+ * // Specifies the IpMulticastRequestOption.
+ * IpMulticastRequestOption ipMreq(multicastEndPoint, interfaceEndPoint);
+ *
+ * // Joins the multicast group.
+ * res = pSocket->SetSockOpt(NET_SOCKET_IPPROTO_IP, NET_SOCKET_IP_ADD_MEMBERSHIP, ipMreq);
+ *
+ * // Creates the buffer to receive the data.
+ * Tizen::Base::ByteBuffer rxBuffer;
+ * rxBuffer.Construct(MAX_BUFFER_SIZE);
+ *
+ * // Receives the data from the multicast group.
+ * res = pSocket->ReceiveFrom(rxBuffer, localEndPoint);
+ * @endcode
+ */
class _OSP_EXPORT_ IpMulticastRequestOption
: public Tizen::Base::Object
{
public:
- /**
- * Initializes this instance of %IpMulticastRequestOption with the specified parameters.
- *
- * @since 2.0
- *
- * @param[in] multicastAddress A NetEndPoint instance containing the IP address and port of the multicast group to join
- * @param[in] interfaceAddress A NetEndPoint instance containing the IP address and port of the network interface on which the datagram
- * packets will be received
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_SYSTEM An internal error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- */
+ /**
+ * Initializes this instance of %IpMulticastRequestOption with the specified parameters.
+ *
+ * @since 2.0
+ *
+ * @param[in] multicastAddress A NetEndPoint instance that contains the IP address and port of the multicast group to join
+ * @param[in] interfaceAddress A NetEndPoint instance that contains the IP address and port of the network interface on which the datagram
+ * packets are received
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG A specified input parameter is invalid.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
IpMulticastRequestOption(const NetEndPoint& multicastAddress, const NetEndPoint& interfaceAddress);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~IpMulticastRequestOption(void);
- /**
+ /**
* Copying of objects using this copy constructor is allowed.
*
* @since 2.0
*
- * @param[in] rhs An instance of %IpMulticastRequestOption
+ * @param[in] rhs An instance of %IpMulticastRequestOption to copy
*/
IpMulticastRequestOption(const IpMulticastRequestOption& rhs);
- /**
+ /**
* Copying of objects using this copy assignment operator is allowed.
*
* @since 2.0
*
* @return A reference to this instance
- * @param[in] rhs An instance of %IpMulticastRequestOption
+ * @param[in] rhs An instance of %IpMulticastRequestOption to copy
*/
IpMulticastRequestOption& operator =(const IpMulticastRequestOption& rhs);
public:
- /**
- * Sets the multicast group NetEndPoint instance with the specified instance.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] multicastAddress A NetEndPoint instance containing the IP address and port of the multicast group to join
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- */
+ /**
+ * Sets the multicast group NetEndPoint instance with the specified instance.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] multicastAddress A NetEndPoint instance that contains the IP address and port of the multicast group to join
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ */
result SetMulticastEndPoint(NetEndPoint& multicastAddress);
- /**
- * Sets the network interface NetEndPoint with the specified instance.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] interfaceAddress A NetEndPoint instance containing the address and port of the network interface on which the datagram
- * packets will be received
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- */
+ /**
+ * Sets the network interface NetEndPoint with the specified instance.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] interfaceAddress A NetEndPoint instance that contains the address and port of the network interface on which the datagram
+ * packets are received
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ */
result SetInterfaceEndPoint(NetEndPoint& interfaceAddress);
- /**
+ /**
* Gets the NetEndPoint of the multicast group.
*
* @since 2.0
*/
const NetEndPoint* GetMulticastEndPoint(void) const;
- /**
+ /**
* Gets the NetEndPoint of the network interface.
*
* @since 2.0
*/
const NetEndPoint* GetInterfaceEndPoint(void) const;
- /**
- * Compares the specified instance of %IpMulticastRequestOption with the calling instance.
- *
- * @since 2.0
- * @return @c true if the values match, @n
- * else @c false
- * @param[in] obj The other Tizen::Base::Object to compare
- * @see Tizen::Base::Object::Equals()
- */
+ /**
+ * Compares the specified instance of %IpMulticastRequestOption with the current instance.
+ *
+ * @since 2.0
+ * @return @c true if the values match, @n
+ * else @c false
+ * @param[in] obj The other Tizen::Base::Object to compare
+ * @see Tizen::Base::Object::Equals()
+ */
virtual bool Equals(const Tizen::Base::Object& obj) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
private:
/**
-* @file FNetSockSocketLingerOption.h
-* @brief This is the header file for the %LingerOption class.
-*
-* This header file contains the declarations of the %LingerOption class.
-*/
+ * @file FNetSockSocketLingerOption.h
+ * @brief This is the header file for the %LingerOption class.
+ *
+ * This header file contains the declarations of the %LingerOption class.
+ */
#ifndef _FNET_SOCK_SOCKET_LINGER_OPTION_H_
#define _FNET_SOCK_SOCKET_LINGER_OPTION_H_
class _LingerOptionImpl;
/**
-* @class LingerOption
-* @brief This class specifies whether a socket remains connected after the %Socket::Close() method is called.
-* It also specifies the amount of time for which it remains connected, if the data is not sent.
-*
-* @since 2.0
-*
-* The %LingerOption class specifies whether a socket remains connected after the Socket::Close() method is called.
-* It also specifies the amount of time for which it remains connected, if the data is not sent.
-*
-*For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
-*
-* @see Tizen::Net::Sockets::Socket::SetSockOpt(NetSocketOptLevel, NetSocketOptName, const LingerOption&)
-*
-* The following example demonstrates how to use the %LingerOption class.
-*
-* @code
-* using namespace Tizen::Base;
-* using namespace Tizen::Net::Sockets;
-*
-* void
-* MyClass::SomeMethod(void)
-* {
-* // Constructs a LingerOption object.
-* LingerOption socketLinger(true, 10);
-*
-* // Gets information on a LingerOption object.
-* if (socketLinger.IsEnabled())
-* {
-* ushort time = socketLinger.GetLingerTime();
-* }
-* }
-* @endcode
-*/
+ * @class LingerOption
+ * @brief This class specifies whether a socket remains connected after the %Socket::Close() method is called.
+ * It also specifies the amount of time for which it remains connected, if the data is not sent.
+ *
+ * @since 2.0
+ *
+ * The %LingerOption class specifies whether a socket remains connected after the Socket::Close() method is called.
+ * It also specifies the amount of time for which it remains connected, if the data is not sent.
+ *
+ * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
+ *
+ * @see Tizen::Net::Sockets::Socket::SetSockOpt(NetSocketOptLevel, NetSocketOptName, const LingerOption&)
+ *
+ * The following example demonstrates how to use the %LingerOption class.
+ *
+ * @code
+ * using namespace Tizen::Base;
+ * using namespace Tizen::Net::Sockets;
+ *
+ * void
+ * MyClass::SomeMethod(void)
+ * {
+ * // Constructs a LingerOption object.
+ * LingerOption socketLinger(true, 10);
+ *
+ * // Gets information on a LingerOption object.
+ * if (socketLinger.IsEnabled())
+ * {
+ * ushort time = socketLinger.GetLingerTime();
+ * }
+ * }
+ * @endcode
+ */
class _OSP_EXPORT_ LingerOption
: public Tizen::Base::Object
{
public:
- /**
- * Initializes this instance of %LingerOption class with the specified parameters.
+ /**
+ * Initializes this instance of LingerOption class with the specified parameters.
*
* @since 2.0
*
* @param[in] enable Set to @c true to remain connected after the Socket::Close() method is called, @n
* else @c false
* @param[in] seconds The number of seconds to remain connected after the Socket::Close() method is called
- * @remarks Data may still be available in the outgoing network buffer after the socket is closed.
- * If you want to specify the amount of time the socket attempts to transmit unsent data after being closed,
- * create a %LingerOption with the @c enable parameter set to @c true, and the @c seconds parameter set to the desired
- * amount of time. The @c seconds parameter is used to indicate how long the socket remains connected
- * before getting timed out. If the socket is not required to stay connected for any amount of time after being closed,
- * create a %LingerOption with the enabled parameter set to @c false. In this case, the socket closes immediately
- * and any unsent data is lost. Once created, pass the %LingerOption to the Socket::SetSoLinger() method.
+ * @remarks Data may still be available in the outgoing network buffer after the socket is closed. @n
+ * If the user wants to specify the amount of time the socket attempts to transmit unsent data after being closed,
+ * create a LingerOption with @c enable set to @c true, and @c seconds set to the desired
+ * amount of time. @n
+ * @c seconds is used to indicate how long the socket remains connected
+ * before getting timed out. If the socket is not required to stay connected for any amount of time after being closed,
+ * create a %LingerOption with @c enable set to @c false. In this case, the socket closes immediately
+ * and any unsent data is lost.
*
*/
LingerOption(bool enable, int seconds);
- /**
+ /**
* This destructor overrides Tizen::Base::Object::~Object().
*
* @since 2.0
*/
virtual ~LingerOption(void);
- /**
+ /**
* Copying of objects using this copy constructor is allowed.
*
* @since 2.0
*
- * @param[in] rhs An instance of %LingerOption
+ * @param[in] rhs An instance of %LingerOption to copy
*/
LingerOption(const LingerOption& rhs);
- /**
+ /**
* Copying of objects using this copy assignment operator is allowed.
*
* @since 2.0
*
* @return A reference to this instance
- * @param[in] rhs An instance of %LingerOption
+ * @param[in] rhs An instance of %LingerOption to copy
*/
LingerOption& operator =(const LingerOption& rhs);
- /**
- * Compares the specified instance of %LingerOption with the calling instance.
- *
- * @since 2.0
- *
- * @return @c true if the values match, @n
- * else @c false
- * @param[in] obj The other Tizen::Base::Object to compare
- * @see Tizen::Base::Object::Equals()
- */
+ /**
+ * Compares the specified instance of %LingerOption with the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the values match, @n
+ * else @c false
+ * @param[in] obj The other Tizen::Base::Object to compare
+ * @see Tizen::Base::Object::Equals()
+ */
virtual bool Equals(const Tizen::Base::Object& obj) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
public:
- /**
- * Sets a value indicating whether the socket should linger after being closed.
+ /**
+ * Sets a value that indicates whether the socket should linger after being closed.
*
* @since 2.0
*
*/
void SetEnabled(bool on);
- /**
+ /**
* Sets the linger time. @n
- * This is the amount of time to remain connected after calling the Socket::Close() method if data remains to be sent.
+ * This is the amount of time to remain connected after calling the Socket::Close() method if data is still left to be sent.
*
* @since 2.0
*
* @param[in] seconds The amount of time, in seconds, to remain connected after calling Socket::Close()
- * @remarks Use this method to determine how long a closed socket attempts transferring unsent data before getting timed out. The value can
- * also be set to the desired time-out period in seconds. If the Enabled property is set to @c true, and LingerTime is set to @c 0, the
- * socket attempts to send the data until there is no data left in the outgoing network buffer.
+ * @remarks - Use this method to determine how long a closed socket attempts transferring unsent data before getting timed out. The value can
+ * also be set to the desired time-out period in seconds.
+ * - If the Enabled property is set to @c true, and LingerTime is set to @c 0, the
+ * socket attempts to send the data until there is no data left in the outgoing network buffer.
* @see Socket::SetSockOpt()
*/
void SetLingerTime(int seconds);
- /**
+ /**
* Gets the linger time. @n
- * This is the amount of time to remain connected after calling the Socket::Close() method if data still remains to be sent.
+ * This is the amount of time to remain connected after calling the Socket::Close() method if data is still left to be sent.
*
* @since 2.0
*
*/
int GetLingerTime(void) const;
- /**
- * Checks whether the linger option is enabled.
- *
- * @since 2.0
- *
- * @return @c true if the socket lingers after Socket::Close() is called, @n
- * else @c false
- */
+ /**
+ * Checks whether the linger option is enabled.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the socket lingers after Socket::Close() is called, @n
+ * else @c false
+ */
bool IsEnabled(void) const;
private:
* @file FNetSockSocketTypes.h
* @brief This is the header file for the enumerators of the Socket namespace.
*
-* This header file contains the definitions of the enumerators for the Socket operations.
+* This header file contains the definitions of the enumerators used in Socket operations.
*/
#ifndef _FNET_SOCK_SOCKET_TYPES_H_
NET_SOCKET_EVENT_ACCEPT = 0x08, /**< The accept event */
NET_SOCKET_EVENT_CONNECT = 0x10, /**< The connect event */
NET_SOCKET_EVENT_SERVCERT_FAIL = 0x20, /**< The server's certificate failed event @n
- Only for %SecureSocket. */
- NET_SOCKET_EVENT_NONE = 0x00 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
+ Only for SecureSocket */
+ NET_SOCKET_EVENT_NONE = 0x00 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
/**
*/
enum NetSocketAddressFamily
{
- //NET_SOCKET_AF_LOCAL = 1, /*< The local socket for loopback*/
- NET_SOCKET_AF_IPV4 = 2, /**< An IP version 4 address family */
- //NET_SOCKET_AF_IPV6, /*< An IP version 6 address family */
- NET_SOCKET_AF_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
+ //NET_SOCKET_AF_LOCAL = 1, /*< The local socket for loopback */
+ NET_SOCKET_AF_IPV4 = 2, /**< An IP version 4 address family */
+ //NET_SOCKET_AF_IPV6, /*< An IP version 6 address family */
+ NET_SOCKET_AF_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
/**
* @enum NetSocketType
*
- * Defines a socket type.
+ * Defines the socket types.
*
* @since 2.0
*/
enum NetSocketType
{
NET_SOCKET_TYPE_STREAM = 1, /**< The stream socket */
- NET_SOCKET_TYPE_DATAGRAM, /**< The datagram socket */
+ NET_SOCKET_TYPE_DATAGRAM, /**< The datagram socket */
NET_SOCKET_TYPE_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
/**
* @enum NetSocketProtocol
*
- * Defines a protocol type.
+ * Defines the protocol types.
*
* @since 2.0
*/
enum NetSocketProtocol
{
NET_SOCKET_PROTOCOL_TCP = 1, /**< The TCP protocol */
- NET_SOCKET_PROTOCOL_UDP, /**< The UDP protocol */
- NET_SOCKET_PROTOCOL_SSL, /**< The SSL protocol */
+ NET_SOCKET_PROTOCOL_UDP, /**< The UDP protocol */
+ NET_SOCKET_PROTOCOL_SSL, /**< The SSL protocol */
NET_SOCKET_PROTOCOL_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
*/
enum NetSocketIoctlCmd
{
- NET_SOCKET_FIONBIO = 1, /**< The command to set the non-blocking/blocking mode on a socket */
+ NET_SOCKET_FIONBIO = 1, /**< The command to set the non-blocking/blocking mode of a socket */
NET_SOCKET_FIONREAD, /**< The command to determine the amount of data pending in the network input buffer */
NET_SOCKET_FIONWRITE, /**< The functionality is not supported in this SDK */
- NET_SOCKET_SIOCATMARK, /**< The command to determine whether all out-of-band data is read */
- NET_SOCKET_IOCTLCMD_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
+ NET_SOCKET_SIOCATMARK, /**< The command to determine whether all out-of-band data is read */
+ NET_SOCKET_IOCTLCMD_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
/**
*/
enum NetSocketOptLevel
{
- NET_SOCKET_IPPROTO_TCP = 1, /**< The socket options apply only to the TCP sockets */
+ NET_SOCKET_IPPROTO_TCP = 1, /**< The socket options apply only to the TCP sockets */
NET_SOCKET_IPPROTO_IP, /**< The socket options apply only to the IP sockets */
- NET_SOCKET_SOL_SOCKET, /**< The socket options apply to all the sockets */
- NET_SOCKET_OPTLEVEL_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
+ NET_SOCKET_SOL_SOCKET, /**< The socket options apply to all the sockets */
+ NET_SOCKET_OPTLEVEL_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
/**
*/
enum NetSocketOptName
{
- NET_SOCKET_TCP_NODELAY = 1, /**< The option name is Level: NET_SOCKET_IPPROTO_TCP - Set/Get is possible */
+ NET_SOCKET_TCP_NODELAY = 1, /**< The option name is Level: NET_SOCKET_IPPROTO_TCP - Set/Get is possible */
NET_SOCKET_TCP_MAXSEG, /**< The option name is Level: NET_SOCKET_IPPROTO_TCP - Set/Get is possible */
NET_SOCKET_IP_TTL, /**< The option name is Level: NET_SOCKET_IPPROTO_IP - Set/Get is possible */
NET_SOCKET_IP_TOS, /**< The option name is Level: NET_SOCKET_IPPROTO_IP - Set/Get is possible */
NET_SOCKET_SO_LINGER, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
NET_SOCKET_SO_OOBINLINE, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
NET_SOCKET_SO_RCVBUF, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
- NET_SOCKET_SO_RCVLOWAT, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible (Currently, not supported)
+ NET_SOCKET_SO_RCVLOWAT, // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application. The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible (Currently, not supported)
NET_SOCKET_SO_RCVTIMEO, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
NET_SOCKET_SO_REUSEADDR, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
NET_SOCKET_SO_SNDBUF, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
NET_SOCKET_SO_SSLVERSION, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
NET_SOCKET_SO_SSLCIPHERSUITEID, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Set/Get is possible */
NET_SOCKET_SO_SSLCERTVERIFY, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Only Set is possible */
- NET_SOCKET_SO_SSLCERTID, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Only Set is possible */
- NET_SOCKET_SO_SSLCLIENTCERTVERIFY, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Only Set is possible */
- NET_SOCKET_OPTNAME_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
+ NET_SOCKET_SO_SSLCERTID, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Only Set is possible */
+ NET_SOCKET_SO_SSLCLIENTCERTVERIFY, /**< The option name is Level: NET_SOCKET_SOL_SOCKET - Only Set is possible */
+ NET_SOCKET_OPTNAME_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
/**
* @enum NetSocketClosedReason
*
-* Defines a socket closed reason.
+* Defines the socket closed reasons.
*
* @since 2.0
*/
enum NetSocketClosedReason
{
- NET_SOCKET_CLOSED_REASON_NORMAL = 1, /**< A normal closed status by peer */
- NET_SOCKET_CLOSED_REASON_TIMEOUT, /**< The connection attempt failed due to timeout */
+ NET_SOCKET_CLOSED_REASON_NORMAL = 1, /**< A normal closed status by a peer */
+ NET_SOCKET_CLOSED_REASON_TIMEOUT, /**< The connection attempt failed due to a timeout */
NET_SOCKET_CLOSED_REASON_NETWORK_UNAVAILABLE, /**< The network is unavailable */
NET_SOCKET_CLOSED_REASON_SYSTEM, /**< An internal error has occurred */
- NET_SOCKET_CLOSED_REASON_NO_CERTIFICATE, /**< The reason is there is no client's SSL certificate */
- NET_SOCKET_CLOSED_REASON_BY_USER, /**< The connection closed by user */
- NET_SOCKET_CLOSED_REASON_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
+ NET_SOCKET_CLOSED_REASON_NO_CERTIFICATE, /**< There is no client SSL certificate */
+ NET_SOCKET_CLOSED_REASON_BY_USER, /**< The connection is closed by the user */
+ NET_SOCKET_CLOSED_REASON_NONE = 0 // This enum value is for internal use only. Using this enum value can cause behavioral, security-related, and consistency-related issues in the application.
};
} } } // Tizen::Net::Sockets
/**
-* @file FNetSockSocketUtility.h
-* @brief This is the header file for the %SocketUtility class.
-*
-* This header file contains the declarations of the %SocketUtility class. @n
-* This class provides utility methods for socket operations.
-*/
+ * @file FNetSockSocketUtility.h
+ * @brief This is the header file for the %SocketUtility class.
+ *
+ * This header file contains the declarations of the %SocketUtility class. @n
+ * This class provides utility methods for socket operations.
+ */
#ifndef _FNET_SOCK_SOCKET_UTILITY_H_
#define _FNET_SOCK_SOCKET_UTILITY_H_
class _SocketUtilityImpl;
/**
-* @class SocketUtility
-* @brief This class provides the utility methods for the %Socket class.
-*
-* @since 2.0
-*
-* The %SocketUtility class provides the utility methods for the Socket class.
-*
-* For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
-*/
+ * @class SocketUtility
+ * @brief This class provides utility methods for the %Socket class.
+ *
+ * @since 2.0
+ *
+ * The %SocketUtility class provides utility methods for the Socket class.
+ *
+ * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
+ */
class _OSP_EXPORT_ SocketUtility
: public Tizen::Base::Object
{
public:
- /**
+ /**
* The object is not fully constructed after this constructor is called. @n
* For full construction, the Construct() method must be called right after calling this constructor.
*
*/
SocketUtility(void);
- /**
+ /**
* This destructor overrides Tizen::Base::Object::~Object().
*
* @since 2.0
*/
virtual ~SocketUtility(void);
- /**
+ /**
* Initializes this instance of %SocketUtility.
*
* @since 2.0
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_STATE This instance is in an invalid state.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_SYSTEM Interface creation has failed.
+ * @exception E_SYSTEM The interface creation has failed.
*/
result Construct(void);
- /**
+ /**
* Determines the status of one or more sockets.
*
* @since 2.0
*
* @return An error code
* @param[in,out] pCheckRead A Tizen::Base::Collection::IList of Socket instances to check for readability
- * @param[in,out] pCheckWrite A Tizen::Base::Collection::IList of Socket instances to check for writability
- * @param[in,out] pCheckError A Tizen::Base::Collection::IList of Socket instances to check for errors
+ * @param[in,out] pCheckWrite A Tizen::Base::Collection::IList of Socket instances to check for writability
+ * @param[in,out] pCheckError A Tizen::Base::Collection::IList of Socket instances to check for errors
* @param[in] microSeconds The time to wait for a response, in microseconds
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_SOCKET The socket is invalid.
* @exception E_INVALID_STATE The socket is in an invalid state.
- * @exception E_UNSUPPORTED_OPTION The specified parameters are not supported.
+ * @exception E_UNSUPPORTED_OPTION A specified input parameter is not supported.
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_TIMEOUT The time limit has expired.
* @exception E_NETWORK_UNAVAILABLE The network is unavailable.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks This method determines the status of one or more
- * Socket instances. There must be at least one socket in an Tizen::Base::Collection::IList
- * before this method is used.
- * To check sockets for readability and writability use @c pCheckRead and @c pCheckWrite of type
- * %IList respectively by calling this method.
- * To detect error conditions, use @c pCheckError.
- * After calling this method, the %IList is filled with only those sockets that satisfy the conditions. @n
- * All the receive operations succeed without blocking in the following cases: @n
- * -# If the socket is in a listening state, the readability means that a call to Accept() succeeds without blocking.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks
+ * - There must be at least one socket in a Tizen::Base::Collection::IList before this method is used.
+ * - To check sockets for readability and writability use @c pCheckRead and @c pCheckWrite of type
+ * %Tizen::Base::Collection::IList respectively by calling this method.
+ * - To detect error conditions, use @c pCheckError.
+ * - After calling this method, the Tizen::Base::Collection::IList is filled with only those sockets that satisfy the conditions.
+ * - All the receive operations succeed without blocking in the following cases:
+ * -# If the socket is in the listening state, the readability means that a call to Accept() succeeds without blocking.
* -# If the connection on a socket is accepted, the readability means that the data is available for reading. @n
- * The readability can also indicate whether the remote socket has shutdown the connection. In this
- * case a call to SecureSocket::Receive() or Socket::Receive() returns immediately with @c 0 bytes.
- * If a non-blocking call to SecureSocket::Connect() or Socket::Connect() is made, the writability means that the connection is
- * successful and the @c pCheckError parameter identifies the sockets that are not
- * connected successfully. @n
- * If a connection has already been established, the writability means that all the send operations
+ * The readability can also indicate whether the remote socket has shutdown the connection. In this
+ * case a call to SecureSocket::Receive() or Socket::Receive() returns immediately with @c 0 bytes.
+ * - If a non-blocking call to SecureSocket::Connect() or Socket::Connect() is made, the writability means that the connection is
+ * successful and @c pCheckError identifies the sockets that are not connected successfully. @n
+ * If a connection has already been established, the writability means that all the send operations
* have succeeded without blocking.
*/
result Select(Tizen::Base::Collection::IList* pCheckRead, Tizen::Base::Collection::IList* pCheckWrite, Tizen::Base::Collection::IList* pCheckError, int microSeconds);
- /**
- * Converts the specified unsigned @c short integer from a host @c byte order to a network @c byte order.
+ /**
+ * Converts the specified unsigned @c short integer from the host @c byte order to the network @c byte order.
*
* @since 2.0
*
- * @return An unsigned @c short integer in network @c byte order
- * @param[in] hostShort An unsigned @c short integer in host @c byte order
+ * @return The unsigned @c short integer in the network @c byte order
+ * @param[in] hostShort The unsigned @c short integer in the host @c byte order
* @remarks The specific error code can be accessed using the GetLastResult() method.
* @see NtoHS()
*/
unsigned short HtoNS(unsigned short hostShort);
- /**
- * Converts the specified unsigned @c long integer from a host @c byte order to a network @c byte order.
+ /**
+ * Converts the specified unsigned @c long integer from the host @c byte order to the network @c byte order.
*
* @since 2.0
*
- * @return An unsigned @c long integer in network @c byte order
- * @param[in] hostLong An unsigned @c long integer in host @c byte order
+ * @return The unsigned @c long integer in the network @c byte order
+ * @param[in] hostLong The unsigned @c long integer in the host @c byte order
* @remarks The specific error code can be accessed using the GetLastResult() method.
* @see NtoHL()
*/
unsigned long HtoNL(unsigned long hostLong);
- /**
- * Converts the specified unsigned @c short integer from a network @c byte order to a host @c byte order.
+ /**
+ * Converts the specified unsigned @c short integer from the network @c byte order to the host @c byte order.
*
* @since 2.0
*
- * @return An unsigned @c short integer in host @c byte order
- * @param[in] netShort An unsigned @c short integer in network @c byte order
+ * @return The unsigned @c short integer in the host @c byte order
+ * @param[in] netShort The unsigned @c short integer in the network @c byte order
* @remarks The specific error code can be accessed using the GetLastResult() method.
* @see HtoNS()
*/
unsigned short NtoHS(unsigned short netShort);
- /**
- * Converts the specified unsigned @c long integer from a network @c byte order to a host @c byte order.
+ /**
+ * Converts the specified unsigned @c long integer from the network @c byte order to the host @c byte order.
*
* @since 2.0
*
- * @return An unsigned @c long integer in host @c byte order
- * @param[in] netLong An unsigned @c long integer in network @c byte order
+ * @return The unsigned @c long integer in the host @c byte order
+ * @param[in] netLong The unsigned @c long integer in the network @c byte order
* @remarks The specific error code can be accessed using the GetLastResult() method.
* @see HtoNL()
*/
/**
-* @file FNetSockets.h
-* @brief This is the header file for the %Sockets namespace.
-*
-* This header file contains the declarations and descriptions of the %Sockets namespace.
-*/
+ * @file FNetSockets.h
+ * @brief This is the header file for the %Sockets namespace.
+ *
+ * This header file contains the declarations and descriptions of the %Sockets namespace.
+ */
#ifndef _FNET_SOCKETS_H_
#define _FNET_SOCKETS_H_
namespace Tizen { namespace Net
{
/**
-* @namespace Tizen::Net::Sockets
-* @brief This namespace contains the classes and interfaces for Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) socket
-* programming.
-* @since 2.0
-*
-* @remarks @b Header @b %file: @b \#include @b <FNet.h> @n
-* @b Library : @b osp-net @n
-*
-* The %Tizen::Net::Sockets sub-namespace implements the socket data communication protocols by providing a rich set of methods for connecting,
-* sending, and receiving data over a network.
-*
-* For more information on the %Sockets namespace features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
-*
-* The following diagram illustrates the relationships between the classes belonging to the %Sockets namespace.
-* @image html net_socket_using_the_apis_classdiagram.png
-*
-* The following example demonstrates how to use a TCP client non-blocking socket.
-*
-* @code
-* result res = E_SUCCESS;
-*
-* // Creates the socket.
-* Socket* pClientSocket = new Socket();
-* res = pClientSocket->Construct(NET_SOCKET_AF_IPV4, NET_SOCKET_TYPE_STREAM, NET_SOCKET_PROTOCOL_TCP);
-*
-* // Adds listener.
-* MySocketClientListener* pSockClientListener = new MySocketClientListener();
-* res = pClientSocket->AddSocketListener(*pSockClientListener);
-*
-* // Selects asynchronous event (non-blocking mode).
-* res = pClientSocket->AsyncSelectByListener(NET_SOCKET_EVENT_CONNECT| NET_SOCKET_EVENT_CLOSE);
-*
-* // Creates peer endpoint.
-* Ip4Address peerAddr("XXX.XXX.XXX.XXX"); // Server socket address.
-* unsigned short peerPort = YYY; // Port
-* NetEndPoint* pPeerEndPoint = new NetEndPoint(peerAddr, peerPort);
-*
-* // Connects the socket.
-* res = pClientSocket->Connect(*pPeerEndPoint);
-* @endcode
-*/
+ * @namespace Tizen::Net::Sockets
+ * @brief This namespace contains classes and interfaces for Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) socket
+ * programming.
+ * @since 2.0
+ *
+ * @remarks @b Header @b %file: @b \#include @b <FNet.h> @n
+ * @b Library: @b osp-net
+ *
+ * The %Sockets namespace implements the socket data communication protocols by providing a rich set of methods for connecting,
+ * sending, and receiving data over a network.
+ *
+ * For more information on the %Sockets namespace features, see <a href="../org.tizen.native.appprogramming/html/guide/net/sockets.htm">Sockets Guide</a>.
+ *
+ * The following diagram illustrates the relationships between the classes belonging to the %Sockets namespace.
+ * @image html net_socket_using_the_apis_classdiagram.png
+ *
+ * The following example demonstrates how to use a TCP client non-blocking socket.
+ *
+ * @code
+ * result res = E_SUCCESS;
+ *
+ * // Creates the socket.
+ * Socket* pClientSocket = new Socket();
+ * res = pClientSocket->Construct(NET_SOCKET_AF_IPV4, NET_SOCKET_TYPE_STREAM, NET_SOCKET_PROTOCOL_TCP);
+ *
+ * // Adds listener.
+ * MySocketClientListener* pSockClientListener = new MySocketClientListener();
+ * res = pClientSocket->AddSocketListener(*pSockClientListener);
+ *
+ * // Selects asynchronous event (non-blocking mode).
+ * res = pClientSocket->AsyncSelectByListener(NET_SOCKET_EVENT_CONNECT| NET_SOCKET_EVENT_CLOSE);
+ *
+ * // Creates peer endpoint.
+ * Ip4Address peerAddr("XXX.XXX.XXX.XXX"); // Server socket address.
+ * unsigned short peerPort = YYY; // Port
+ * NetEndPoint* pPeerEndPoint = new NetEndPoint(peerAddr, peerPort);
+ *
+ * // Connects the socket.
+ * res = pClientSocket->Connect(*pPeerEndPoint);
+ * @endcode
+ */
namespace Sockets
{
} } } // Tizen::Net::Sockets
{
/**
- * @namespace Tizen::Net::Wifi
- * @brief This namespace contains the classes and interfaces for the Wi-Fi management and Wi-Fi Direct functionalities.
- * @since 2.0
- *
- * @remarks @b Header @b %file: @b \#include @b <FNet.h> @n
- * @b Library : @b osp-wifi @n
- *
- * The %Net::Wifi namespace contains the classes and interfaces for Wi-Fi management and Wi-Fi Direct functionalities. It
- * provides a rich set of methods to manage the Wi-Fi devices and accounts, and to communicate over a Wi-Fi channel.
- * Additionally, the Wi-Fi Direct functionalities are provided to manage the Wi-Fi Direct device, create a Wi-Fi Direct group,
- * scan Wi-Fi Direct devices, associate to a Wi-Fi Direct group owner, get the WifiDirectGroupOwner or the WifiDirectGroupClient
- * instance, and allow the listener to get the events related to Wi-Fi Direct device and group.
- *
- * This namespace provides the Wi-Fi and Wi-Fi Direct functionalities. The Wi-Fi related operations are provided by classes like
- * WifiManager and WifiSecurityInfo. The Wi-Fi Direct related operations are provided by classes like WifiDirectDevice.
- *
- * For more information on the %Wifi namespace features, see
- * <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_connectivity.htm">Wi-Fi Connectivity</a> and
- * <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_direct_connectivity.htm">Wi-Fi Direct Connectivity</a>.
- *
- * The following diagram illustrates the relationships between the Wi-Fi classes belonging to the %Wifi namespace.
- * @image html net_wi-fi_using_the_apis_classdiagram.png
- *
- * The following diagram illustrates the relationships between the Wi-Fi Direct classes belonging to the %Wifi namespace.
- * @image html net_wi-fi_direct_using_the_apis_classdiagram.png
- *
- */
+ * @namespace Tizen::Net::Wifi
+ * @brief This namespace contains classes and interfaces for Wi-Fi management and Wi-Fi Direct functionalities.
+ * @since 2.0
+ *
+ * @remarks @b Header @b %file: @b \#include @b <FNet.h> @n
+ * @b Library: @b osp-wifi
+ *
+ * The %Wifi namespace contains classes and interfaces for Wi-Fi management and Wi-Fi Direct functionalities. It
+ * provides a rich set of methods to manage Wi-Fi devices and accounts, and to communicate over a Wi-Fi channel.
+ * Additionally, Wi-Fi Direct functionalities are provided to manage a Wi-Fi Direct device, create a Wi-Fi Direct group,
+ * scan Wi-Fi Direct devices, associate to a Wi-Fi Direct group owner, get the WifiDirectGroupOwner or WifiDirectGroupClient
+ * instance, and allow the listener to get the events related to Wi-Fi Direct devices and groups.
+ *
+ * This namespace provides Wi-Fi and Wi-Fi Direct functionalities. Wi-Fi related operations are provided by classes like
+ * WifiManager and WifiSecurityInfo. Wi-Fi Direct related operations are provided by classes like WifiDirectDevice.
+ *
+ * For more information on the %Wifi namespace features, see
+ * <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_connectivity.htm">Wi-Fi Connectivity</a> and
+ * <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_direct_connectivity.htm">Wi-Fi Direct Connectivity</a>.
+ *
+ * The following diagram illustrates the relationships between the Wi-Fi classes belonging to the %Wifi namespace.
+ * @image html net_wi-fi_using_the_apis_classdiagram.png
+ *
+ * The following diagram illustrates the relationships between the Wi-Fi Direct classes belonging to the %Wifi namespace.
+ * @image html net_wi-fi_direct_using_the_apis_classdiagram.png
+ *
+ */
namespace Wifi
{
/**
* @interface IWifiDirectDeviceListener
- * @brief This interface implements listeners for the %WifiDirectDevice events.
+ * @brief This interface implements listeners for WifiDirectDevice events.
*
* @since 2.0
*
- * The %IWifiDirectDeviceListener interface represents a listener to get the Wi-Fi Direct device status or information.
+ * The %IWifiDirectDeviceListener interface represents a listener to get the Wi-Fi Direct device's status or information.
*
* For more information on the class features, see
* <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_direct_connectivity.htm">Wi-Fi Direct Connectivity</a>.
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way,
- * the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~IWifiDirectDeviceListener(void) {}
- /**
- * Called to notify the application that the local Wi-Fi Direct mode is enabled.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId The ID of the Wi-Fi Direct device
- * @param[in] r An error code
- * @exception E_SUCCESS The activation is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @see WifiDirectDevice::Activate()
- */
+ /**
+ * Called to notify an application that the local Wi-Fi Direct mode is enabled.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] r An error code
+ * @exception E_SUCCESS The activation is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @see WifiDirectDevice::Activate()
+ */
virtual void OnWifiDirectDeviceActivated(WifiDirectDeviceId localDeviceId, result r) = 0;
- /**
- * Called to notify the application that the local Wi-Fi Direct mode is disabled.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] r An error code
- * @exception E_SUCCESS The deactivation is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @see WifiDirectDevice::Deactivate()
- */
+ /**
+ * Called to notify an application that the local Wi-Fi Direct mode is disabled.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] r An error code
+ * @exception E_SUCCESS The deactivation is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @see WifiDirectDevice::Deactivate()
+ */
virtual void OnWifiDirectDeviceDeactivated(WifiDirectDeviceId localDeviceId, result r) = 0;
- /**
- * Called to notify the application when a Wi-Fi Direct connection is established with a remote device.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] remoteDeviceInfo The remote device
- * @param[in] r An error code
- *
- * @exception E_SUCCESS The Wi-Fi Direct group has been created successfully.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_OPERATION_CANCELED The operation has been cancelled explicitly.
- * @exception E_AUTHENTICATION The authentication has failed during the Wi-Fi connection process.
- * @exception E_NOT_RESPONDING The remote device is not responding.
- * @see WifiDirectDevice::Connect()
- * @see WifiDirectDevice::CancelConnect()
- */
+ /**
+ * Called to notify an application when a Wi-Fi Direct connection is established with a remote device.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] remoteDeviceInfo The remote device
+ * @param[in] r An error code
+ *
+ * @exception E_SUCCESS The Wi-Fi Direct group has been created successfully.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_OPERATION_CANCELED The operation has been cancelled explicitly.
+ * @exception E_AUTHENTICATION The authentication has failed during the Wi-Fi connection process.
+ * @exception E_NOT_RESPONDING The remote device is not responding.
+ * @see WifiDirectDevice::Connect()
+ * @see WifiDirectDevice::CancelConnect()
+ */
virtual void OnWifiDirectConnected(WifiDirectDeviceId localDeviceId, const WifiDirectDeviceInfo& remoteDeviceInfo,
result r) = 0;
- /**
- * Called to notify the application when the Wi-Fi Direct connection is disconnected with a peer device.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] peerMacAddress The mac address of the peer device
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @see WifiDirectDevice::Disconnect()
- */
+ /**
+ * Called to notify an application when a Wi-Fi Direct connection is disconnected from a peer device.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] peerMacAddress The mac address of the peer device
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @see WifiDirectDevice::Disconnect()
+ */
virtual void OnWifiDirectDisconnected(WifiDirectDeviceId localDeviceId, const Tizen::Base::String& peerMacAddress,
result r) = 0;
- /**
- * Called to notify the application when an autonomous group is created.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @see WifiDirectDevice::CreateAutonomousGroup()
- */
+ /**
+ * Called to notify an application when an autonomous group is created.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @see WifiDirectDevice::CreateAutonomousGroup()
+ */
virtual void OnWifiDirectAutonomousGroupCreated(WifiDirectDeviceId localDeviceId, result r) = 0;
- /**
- * Called to notify the application when a local device leaves the group.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @see WifiDirectDevice::LeaveGroup()
- */
+ /**
+ * Called to notify an application when a local device leaves the group.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @see WifiDirectDevice::LeaveGroup()
+ */
virtual void OnWifiDirectGroupLeft(WifiDirectDeviceId localDeviceId, result r) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application about the result and related information when a group is created or when a
- * request to create a group is cancelled.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because the Wi-Fi direct APIs have been revised to allow the use of APIs
- * with ease irrespective of the role (for example, group owner, group client, and so on). @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role and so it was necessary
- * to use these APIs. @n
- * Instead of using this method, use OnWifiDirectConnected() or OnWifiDirectAutonomousGroupCreated()
- * method.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] wifiDirectGroupInfo The WifiDirectGroupInfo instance set by the winning group owner after
- * negotiation
- * @param[in] wifiDirectGroupOwnerDeviceInfo The WifiDirectDeviceInfo instance of the group owner
- * @param[in] pWifiDirectMember The WifiDirectGroupMember instance that is casted to the instance of
- * WifiDirectGroupOwner or WifiDirectGroupClient as a result of negotiation
- * after the creation of a group
- * @param[in] r An error code
- * @exception E_SUCCESS The Wi-Fi Direct group creation is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_OPERATION_CANCELED The operation has been cancelled explicitly.
- * @exception E_AUTHENTICATION The authentication has failed during the Wi-Fi connection process.
- * @exception E_DHCP The DHCP operation has failed.
- * @exception E_NOT_RESPONDING The target is not responding.
- * @exception E_REJECTED The connection request has been rejected.
- * @exception E_REMOTE_DEVICE_NOT_FOUND The Wi-Fi Direct device has not been found.
- * @remarks If a device becomes a group client, then the WifiDirectGroupInfo::GetGroupOwnerIntent() and
- * WifiDirectGroupInfo::GetMaxNumberOfClients() methods will not contain valid information.
- * @see WifiDirectDevice::CreateGroup()
- * @see WifiDirectDevice::CancelGroupCreation()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application about the result and related information when a group is created or when a
+ * request to create a group is cancelled.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because the Wi-Fi direct APIs have been revised to allow the use of APIs
+ * with ease irrespective of the role (for example, group owner, group client, and so on). @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role and so it was necessary
+ * to use these APIs. @n
+ * Instead of using this method, use the OnWifiDirectConnected() or OnWifiDirectAutonomousGroupCreated()
+ * method.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] wifiDirectGroupInfo The WifiDirectGroupInfo instance set by the winning group owner after
+ * negotiation
+ * @param[in] wifiDirectGroupOwnerDeviceInfo The WifiDirectDeviceInfo instance of the group owner
+ * @param[in] pWifiDirectMember The WifiDirectGroupMember instance that is casted to the instance of
+ * WifiDirectGroupOwner or WifiDirectGroupClient as a result of negotiation
+ * after the creation of a group
+ * @param[in] r An error code
+ * @exception E_SUCCESS The Wi-Fi Direct group creation is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_OPERATION_CANCELED The operation has been cancelled explicitly.
+ * @exception E_AUTHENTICATION The authentication has failed during the Wi-Fi connection process.
+ * @exception E_DHCP The DHCP operation has failed.
+ * @exception E_NOT_RESPONDING The target is not responding.
+ * @exception E_REJECTED The connection request has been rejected.
+ * @exception E_REMOTE_DEVICE_NOT_FOUND The Wi-Fi Direct device has not been found.
+ * @remarks If a device becomes a group client, then the WifiDirectGroupInfo::GetGroupOwnerIntent() and
+ * WifiDirectGroupInfo::GetMaxNumberOfClients() methods will not contain valid information.
+ * @see WifiDirectDevice::CreateGroup()
+ * @see WifiDirectDevice::CancelGroupCreation()
+ * @endif
+ */
virtual void OnWifiDirectGroupCreatedN(WifiDirectDeviceId localDeviceId, const WifiDirectGroupInfo& wifiDirectGroupInfo,
const WifiDirectDeviceInfo& wifiDirectGroupOwnerDeviceInfo, WifiDirectGroupMember* pWifiDirectMember, result r)
{ delete pWifiDirectMember; }
- /**
- * Called to notify the application when the scan is completed.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] pWifiDirectDeviceInfoList The WifiDirectDeviceInfo information list representing the
- * Wi-Fi Direct devices discovered by scan
- * @param[in] r An error code
- * @exception E_SUCCESS The scan is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_OPERATION_CANCELED The operation has been cancelled explicitly.
- * @see WifiDirectDevice::Scan()
- * @see WifiDirectDevice::CancelScan()
- */
+ /**
+ * Called to notify an application when the scan is completed.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] pWifiDirectDeviceInfoList The WifiDirectDeviceInfo information list that represents the
+ * Wi-Fi Direct devices discovered by scan
+ * @param[in] r An error code
+ * @exception E_SUCCESS The scan is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_OPERATION_CANCELED The operation has been cancelled explicitly.
+ * @see WifiDirectDevice::Scan()
+ * @see WifiDirectDevice::CancelScan()
+ */
virtual void OnWifiDirectScanCompletedN(WifiDirectDeviceId localDeviceId,
Tizen::Base::Collection::IList* pWifiDirectDeviceInfoList, result r) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application when the connection to a Wi-Fi Direct group owner is completely established.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because the Wi-Fi direct APIs have been revised to allow the use of APIs
- * with ease irrespective of the role (for example, group owner, group client, and so on). @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role and so it was necessary
- * to use these APIs. @n
- * Instead of using this method, use OnWifiDirectConnected() method.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] wifiDirectGroupOwnerDeviceInfo The WifiDirectDeviceInfo of the connected Wi-Fi Direct group
- * owner
- * @param[in] r An error code
- * @exception E_SUCCESS The association is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_AUTHENTICATION The authentication has failed during the Wi-Fi connection process.
- * @exception E_DHCP The DHCP operation has failed.
- * @exception E_NOT_RESPONDING The target is not responding.
- * @exception E_REJECTED The connection request has been rejected.
- * @exception E_REMOTE_DEVICE_NOT_FOUND The Wi-Fi Direct device has not been found.
- * @see WifiDirectDevice::Associate()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application when the connection to a Wi-Fi Direct group owner is completely established.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because the Wi-Fi direct APIs have been revised to allow the use of APIs
+ * with ease irrespective of the role (for example, group owner, group client, and so on). @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role and so it was necessary
+ * to use these APIs. @n
+ * Instead of using this method, use OnWifiDirectConnected() method.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] wifiDirectGroupOwnerDeviceInfo The WifiDirectDeviceInfo of the connected Wi-Fi Direct group
+ * owner
+ * @param[in] r An error code
+ * @exception E_SUCCESS The association is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_AUTHENTICATION The authentication has failed during the Wi-Fi connection process.
+ * @exception E_DHCP The DHCP operation has failed.
+ * @exception E_NOT_RESPONDING The target is not responding.
+ * @exception E_REJECTED The connection request has been rejected.
+ * @exception E_REMOTE_DEVICE_NOT_FOUND The Wi-Fi Direct device has not been found.
+ * @see WifiDirectDevice::Associate()
+ * @endif
+ */
virtual void OnWifiDirectAssociationCompleted(WifiDirectDeviceId localDeviceId,
const WifiDirectDeviceInfo& wifiDirectGroupOwnerDeviceInfo, result r) {}
- /**
- * Called to notify the application when a remote device is found during the Wi-Fi Direct scan process.
- *
- * @since 2.1
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] remoteDeviceInfo The remote device that is found
- * @see WifiDirectDevice::Scan()
- */
+ /**
+ * Called to notify an application when a remote device is found during the Wi-Fi Direct scan process.
+ *
+ * @since 2.1
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] remoteDeviceInfo The remote device that is found
+ * @see WifiDirectDevice::Scan()
+ */
virtual void OnWifiDirectRemoteDeviceFound(WifiDirectDeviceId localDeviceId, const WifiDirectDeviceInfo& remoteDeviceInfo) {}
protected:
*
* @since 2.0
*
- * The %IWifiDirectGroupClientListener interface represents a listener that is used to obtain the Wi-Fi Direct client
+ * The %IWifiDirectGroupClientListener interface represents a listener that is used to obtain the Wi-Fi Direct client's
* status or information.
*
* For more information on the class features, see
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * @if OSPDEPREC
- * This polymorphic destructor should be overridden if required. This way,
- * the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this destructor is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * However, now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease
- * irrespective of the role.
- *
- * @since 2.0
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this destructor is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * However, now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease
+ * irrespective of the role.
+ *
+ * @since 2.0
+ * @endif
+ */
virtual ~IWifiDirectGroupClientListener(void) {}
- /**
- * @if OSPDEPREC
- * Called to notify the application when the connection to a Wi-Fi Direct group owner is terminated.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role. @n
- * As these APIs have now been integrated into the IWifiDirectDeviceListener interface, use
- * IWifiDirectDeviceListener::OnWifiDirectDisconnected() method instead.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] reason The reason to terminate this association
- * @param[in] r An error code
- * @exception E_SUCCESS The disassociation is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_NOT_RESPONDING The target is not responding.
- * @remarks
- * - When a device is disconnected by itself using WifiDirectGroupClient::Disassociate() method, this
- * event is invoked with Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_SELF_INITIATED. @n
- * - When a device is disconnected by a group owner using WifiDirectGroupOwner::Disconnect() method, due
- * to no range, or due to abrupt connection loss to the group owner, this event is invoked with
- * Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_DISCONNECTED.
- * @see WifiDirectGroupClient::Disassociate()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application when the connection to a Wi-Fi Direct group owner is terminated.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role. @n
+ * As these APIs have now been integrated into the IWifiDirectDeviceListener interface, use
+ * IWifiDirectDeviceListener::OnWifiDirectDisconnected() method instead.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] reason The reason to terminate this association
+ * @param[in] r An error code
+ * @exception E_SUCCESS The disassociation is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_NOT_RESPONDING The target is not responding.
+ * @remarks
+ * - When a device is disconnected by itself using WifiDirectGroupClient::Disassociate() method, this
+ * event is invoked with Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_SELF_INITIATED.
+ * - When a device is disconnected by a group owner using WifiDirectGroupOwner::Disconnect() method, due
+ * to no range, or abrupt connection loss to the group owner, this event is invoked with
+ * Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_DISCONNECTED.
+ * @endif
+ */
virtual void OnWifiDirectAssociationTerminated(WifiDirectDeviceId localDeviceId,
WifiDirectAssociationTerminationReason reason, result r) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application when the request to acquire the WifiDirectDeviceInfo from a Wi-Fi Direct group
- * owner is received.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role. @n
- * So the APIs have been integrated into the WifiDirectDevice class. Hence, use the
- * WifiDirectDevice::GetGroupOwnerInfoN() method instead.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] wifiDirectGroupOwnerDeviceInfo The WifiDirectDeviceInfo instance of the Wi-Fi Direct group owner
- * @param[in] r An error code
- * @exception E_SUCCESS The request for acquiring group owner information is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_ALREADY_BOUND The specified port number is already in use.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_NOT_RESPONDING The target is not responding.
- * @see WifiDirectGroupClient::RequestGroupOwnerInfo()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application when the request to acquire WifiDirectDeviceInfo from a Wi-Fi Direct group
+ * owner is received.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role. @n
+ * So the APIs have been integrated into the WifiDirectDevice class. Hence, use the
+ * WifiDirectDevice::GetGroupOwnerInfoN() method instead.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] wifiDirectGroupOwnerDeviceInfo The WifiDirectDeviceInfo instance of the Wi-Fi Direct group owner
+ * @param[in] r An error code
+ * @exception E_SUCCESS The request for acquiring group owner information is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_ALREADY_BOUND The specified port number is already in use.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_NOT_RESPONDING The target is not responding.
+ * @see WifiDirectGroupClient::RequestGroupOwnerInfo()
+ * @endif
+ */
virtual void OnWifiDirectGroupOwnerInfoReceived(WifiDirectDeviceId localDeviceId,
const WifiDirectDeviceInfo& wifiDirectGroupOwnerDeviceInfo, result r) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application that the WifiDirectDeviceInfo list of group members has been received.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * This is because the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease
- * irrespective of the role. @n
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] pWifiDirectDeviceInfoList The list of WifiDirectDeviceInfo, @n
- * else @c null if it fails
- * @param[in] r An error code
- * @exception E_SUCCESS The response has been received successfully.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_ALREADY_BOUND The specified port number is already in use.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_NOT_RESPONDING The group owner is not reachable.
- * @see WifiDirectGroupClient::RequestAllGroupMemberInfo()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application that the WifiDirectDeviceInfo list of group members has been received.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * This is because the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease
+ * irrespective of the role. @n
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] pWifiDirectDeviceInfoList The list of WifiDirectDeviceInfo, @n
+ * else @c null if it fails
+ * @param[in] r An error code
+ * @exception E_SUCCESS The response has been received successfully.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_ALREADY_BOUND The specified port number is already in use.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_NOT_RESPONDING The group owner is not reachable.
+ * @see WifiDirectGroupClient::RequestAllGroupMemberInfo()
+ * @endif
+ */
virtual void OnWifiDirectAllGroupMemberInfoReceivedN(WifiDirectDeviceId localDeviceId,
Tizen::Base::Collection::IList* pWifiDirectDeviceInfoList, result r) = 0;
/**
* @if OSPDEPREC
* @interface IWifiDirectGroupOwnerListener
- * @brief <i> [Deprecated] </i> This interface implements listeners for the WifiDirectGroupOwner events.
+ * @brief <i> [Deprecated] </i> This interface implements listeners for WifiDirectGroupOwner events.
* @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this interface is also deprecated. @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role(for example, group owner,
* group client, and so on) and so it was necessary to use these APIs. Now the Wi-Fi Direct APIs have been
* revised to allow the use of APIs with ease irrespective of the role. @n
* As the APIs have been integrated into the IWifiDirectDeviceListener interface. Hence, use the
- * IWifiDirectDeviceListener interface instead.
+ * %IWifiDirectDeviceListener interface instead.
*
* @since 2.0
*
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * @if OSPDEPREC
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this destructor is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. Now the Wi-Fi Direct
- * APIs have been revised to allow the use of APIs with ease irrespective of the role.
- *
- * @since 2.0
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this destructor is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. Now the Wi-Fi Direct
+ * APIs have been revised to allow the use of APIs with ease irrespective of the role.
+ *
+ * @since 2.0
+ * @endif
+ */
virtual ~IWifiDirectGroupOwnerListener(void) {}
- /**
- * @if OSPDEPREC
- * Called to notify the application that a successful association has occurred with a client.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role. @n
- * As the APIs have been integrated into the IWifiDirectDeviceListener interface, use the
- * IWifiDirectDeviceListener::OnWifiDirectConnected() method instead.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] wifiDirectClientInfo The WifiDirectDeviceInfo instance of an associated node
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application that a successful association has occurred with a client.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role. @n
+ * As the APIs have been integrated into the IWifiDirectDeviceListener interface, use the
+ * IWifiDirectDeviceListener::OnWifiDirectConnected() method instead.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] wifiDirectClientInfo The WifiDirectDeviceInfo instance of the associated node
+ * @endif
+ */
virtual void OnWifiDirectClientAssociated(WifiDirectDeviceId localDeviceId,
const WifiDirectDeviceInfo& wifiDirectClientInfo) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application that a disassociation has occurred with a client.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role. @n
- * As the APIs have been integrated into the IWifiDirectDeviceListener interface, use the
- * IWifiDirectDeviceListener::OnWifiDirectDisconnected() method instead.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] wifiDirectClientInfo The WifiDirectDeviceInfo instance of a disassociated node
- * @param[in] reason The reason of termination of an association
- * @remarks - When a client is disconnected by a group owner using WifiDirectGroupOwner::Disconnect, this event
- * is invoked with Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_SELF_INITIATED. @n
- * - When a client is disconnected by itself using WifiDirectGroupClient::Disassociate(), due to no
- * range, or due to abrupt connection loss to the group owner, this event is invoked with
- * Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_DISCONNECTED.
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application that a disassociation has occurred with a client.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role. @n
+ * As the APIs have been integrated into the IWifiDirectDeviceListener interface, use the
+ * IWifiDirectDeviceListener::OnWifiDirectDisconnected() method instead.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] wifiDirectClientInfo The WifiDirectDeviceInfo instance of the disassociated node
+ * @param[in] reason The reason of termination of the association
+ * @remarks - When a client is disconnected by a group owner using WifiDirectGroupOwner::Disconnect, this event
+ * is invoked with Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_SELF_INITIATED. @n
+ * - When a client is disconnected by itself using WifiDirectGroupClient::Disassociate(), due to no
+ * range, or abrupt connection loss to the group owner, this event is invoked with
+ * Wifi::WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_DISCONNECTED.
+ * @endif
+ */
virtual void OnWifiDirectClientDisassociated(WifiDirectDeviceId localDeviceId,
const WifiDirectDeviceInfo& wifiDirectClientInfo, WifiDirectAssociationTerminationReason reason) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application when the Wi-Fi Direct group is destroyed.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role. @n
- * As the APIs have been integrated into the IWifiDirectDeviceListener interface, use the
- * IWifiDirectDeviceListener::OnWifiDirectDisconnected() or
- * IWifiDirectDeviceListener::OnWifiDirectGroupLeft() method instead.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @see WifiDirectGroupOwner::DestroyGroup()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application when a Wi-Fi Direct group is destroyed.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role. @n
+ * As the APIs have been integrated into the IWifiDirectDeviceListener interface, use the
+ * IWifiDirectDeviceListener::OnWifiDirectDisconnected() or
+ * IWifiDirectDeviceListener::OnWifiDirectGroupLeft() method instead.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @see WifiDirectGroupOwner::DestroyGroup()
+ * @endif
+ */
virtual void OnWifiDirectGroupDestroyed(WifiDirectDeviceId localDeviceId, result r) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application that the group member information service has started.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] pNetConnection The network connection that started with the Wi-Fi Direct net account, @n
- * else @c null if the system fails to start the network connection @n
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_ALREADY_BOUND The specified port number is already in use.
- * @see WifiDirectGroupOwner::StartGroupMemberInfoService()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application that the group member information service has started.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] pNetConnection The network connection that started with the Wi-Fi Direct net account, @n
+ * else @c null if the system fails to start the network connection
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_ALREADY_BOUND The specified port number is already in use.
+ * @see WifiDirectGroupOwner::StartGroupMemberInfoService()
+ * @endif
+ */
virtual void OnWifiDirectGroupMemberInfoServiceStarted(WifiDirectDeviceId localDeviceId,
const Tizen::Net::NetConnection* pNetConnection, result r) = 0;
- /**
- * @if OSPDEPREC
- * Called to notify the application that the group member information service has stopped.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role.
- *
- * @since 2.0
- *
- * @param[in] localDeviceId An ID for a Wi-Fi Direct device
- * @param[in] r An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @see WifiDirectGroupOwner::StopGroupMemberInfoService()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Called to notify an application that the group member information service has stopped.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role.
+ *
+ * @since 2.0
+ *
+ * @param[in] localDeviceId The ID of the Wi-Fi Direct device
+ * @param[in] r An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @see WifiDirectGroupOwner::StopGroupMemberInfoService()
+ * @endif
+ */
virtual void OnWifiDirectGroupMemberInfoServiceStopped(WifiDirectDeviceId localDeviceId, result r) = 0;
protected:
{
/**
* @interface IWifiManagerEventListener
- * @brief This interface provides the listeners for %WifiManager events.
+ * @brief This interface provides listeners for %WifiManager events.
*
* @since 2.0
*
- * The %IWifiManagerEventListener interface specifies the methods used for creating notifications about the different
+ * The %IWifiManagerEventListener interface specifies the methods used for creating notifications for different
* kinds of WifiManager events. These events are only sent out when using %WifiManager. When a %WifiManager event is
* generated, a method of this class is called. Thus, if an application provides any functionality related to the
* %WifiManager events, override and use the methods of this interface. This interface specifies the methods used for
- * creating notifications about the different kinds of %WifiManager events.
+ * creating notifications for different kinds of %WifiManager events.
*
* For more information on the class features, see
* <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_connectivity.htm">Wi-Fi Connectivity</a>.
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * This polymorphic destructor should be overridden if required. This way,
- * the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~IWifiManagerEventListener(void) {}
- /**
- * Called to notify the application that the local Wi-Fi radio is activated.
- *
- * @since 2.0
- *
- * @param[in] r The error code that occurs during the activation
- * @exception E_SUCCESS The activation is successful.
- * @exception E_FAILURE The method has failed to activate.
- * @see WifiManager::Activate()
- */
+ /**
+ * Called to notify an application that the local Wi-Fi radio is activated.
+ *
+ * @since 2.0
+ *
+ * @param[in] r The error code that occurs during the activation
+ * @exception E_SUCCESS The activation is successful.
+ * @exception E_FAILURE The method has failed to activate.
+ * @see WifiManager::Activate()
+ */
virtual void OnWifiActivated(result r) = 0;
- /**
- * Called to notify the application that the local Wi-Fi radio is deactivated.
- *
- * @since 2.0
- *
- * @param[in] r The error code that occurs during the deactivation
- * @exception E_SUCCESS The deactivation is successful.
- * @exception E_FAILURE The method has failed to deactivate.
- * @see WifiManager::Deactivate()
- */
+ /**
+ * Called to notify an application that the local Wi-Fi radio is deactivated.
+ *
+ * @since 2.0
+ *
+ * @param[in] r The error code that occurs during the deactivation
+ * @exception E_SUCCESS The deactivation is successful.
+ * @exception E_FAILURE The method has failed to deactivate.
+ * @see WifiManager::Deactivate()
+ */
virtual void OnWifiDeactivated(result r) = 0;
- /**
- * Called to notify that the connection to an access point (only an infrastructure mode BSS) has been completely
- * established.
- *
- * @since 2.0
- *
- * @param[in] ssid The SSID of the connected BSS
- * @param[in] r The error code that occurs during the connection
- * @exception E_SUCCESS The connection is successful.
- * @exception E_FAILURE The method has failed to connect.
- * @exception E_AUTHENTICATION The authentication fails when Wi-Fi is connected.
- * @exception E_NOT_RESPONDING The target is not responding when Wi-Fi is connected.
- * @exception E_DHCP The DHCP fails in case of a dynamic IP.
- * @see WifiManager::Connect()
- */
+ /**
+ * Called to notify that the connection to an access point (only an infrastructure mode BSS) has been completely
+ * established.
+ *
+ * @since 2.0
+ *
+ * @param[in] ssid The SSID of the connected BSS
+ * @param[in] r The error code that occurs during the connection
+ * @exception E_SUCCESS The connection is successful.
+ * @exception E_FAILURE The method has failed to connect.
+ * @exception E_AUTHENTICATION The authentication failed when Wi-Fi is connected.
+ * @exception E_NOT_RESPONDING The target is not responding when Wi-Fi is connected.
+ * @exception E_DHCP The DHCP failed as the IP is a dynamic IP.
+ * @see WifiManager::Connect()
+ */
virtual void OnWifiConnected(const Tizen::Base::String& ssid, result r) = 0;
- /**
- * Called to notify that the connection to a BSS has been terminated.
- *
- * @since 2.0
- */
+ /**
+ * Called to notify that the connection to a BSS has been terminated.
+ *
+ * @since 2.0
+ */
virtual void OnWifiDisconnected(void) = 0;
- /**
- * Called to notify that the Received Signal Strength Indication (RSSI) from BSS has been changed.
- *
- * @since 2.0
- *
- * @param[in] rssi The updated RSSI value (dbm)
- */
+ /**
+ * Called to notify that the Received Signal Strength Indication (RSSI) from BSS has been changed.
+ *
+ * @since 2.0
+ *
+ * @param[in] rssi The updated RSSI value (dbm)
+ */
virtual void OnWifiRssiChanged(long rssi) = 0;
- /**
- * Called to notify that the scan to find the access points has been completed.
- *
- * @since 2.0
- *
- * @param[in] pWifiBssInfoList The list of WifiBssInfo information representing the access points discovered
- * by the scan
- * @param[in] r The error code that occurs during the scan
- * @exception E_SUCCESS The scan is successful.
- * @exception E_FAILURE The scan has failed.
- * @see WifiManager::Scan()
- */
+ /**
+ * Called to notify that the scan to find the access points has been completed.
+ *
+ * @since 2.0
+ *
+ * @param[in] pWifiBssInfoList The list of WifiBssInfo information that represents the access points discovered
+ * by the scan
+ * @param[in] r The error code that occurs during the scan
+ * @exception E_SUCCESS The scan is successful.
+ * @exception E_FAILURE The scan has failed.
+ * @see WifiManager::Scan()
+ */
virtual void OnWifiScanCompletedN(const Tizen::Base::Collection::IList* pWifiBssInfoList, result r) = 0;
protected:
{
/**
* @interface IWifiSystemMonitoringEventListener
- * @brief This interface provides the listeners for monitoring the Wi-Fi underlying system.
+ * @brief This interface provides listeners for monitoring the Wi-Fi underlying system.
*
* @since 2.0
*
- * The %IWifiSystemMonitoringEventListener interface specifies the methods used for creating notifications about the different
+ * The %IWifiSystemMonitoringEventListener interface specifies the methods used for creating notifications for different
* kinds of Wi-Fi system monitoring events. When a Wi-Fi system monitoring event is generated, one of these methods is called.
*/
class _OSP_EXPORT_ IWifiSystemMonitoringEventListener
: virtual public Tizen::Base::Runtime::IEventListener
{
public:
- /**
- * This polymorphic destructor should be overridden if required.
- * This way, the destructors of the derived classes are called when the destructor of this interface is called.
- *
- * @since 2.0
- */
+ /**
+ * This polymorphic destructor should be overridden if required. @n
+ * This way, the destructors of the derived classes are called when the destructor of this interface is called.
+ *
+ * @since 2.0
+ */
virtual ~IWifiSystemMonitoringEventListener(void) {}
- /**
- * Called to notify the application that the state of local Wi-Fi connection is changed.
- *
- * @since 2.0
- *
- * @param[in] state The state of the Wi-Fi current connection
- * @remarks When the local device is connected with a particular access point,
- * IWifiManagerEventListener::OnWifiConnected() as well as this method with
- * @c WIFI_CONN_STATE_CONNECTED are called. Therefore, be careful to manipulate only one of those
- * methods. So are the cases of IWifiManagerEventListener::OnWifiDisconnected() and this method with
- * @c WIFI_CONN_STATE_NOT_CONNECTED.
- */
+ /**
+ * Called to notify an application that the state of a local Wi-Fi connection is changed.
+ *
+ * @since 2.0
+ *
+ * @param[in] state The state of the Wi-Fi current connection
+ * @remarks When the local device is connected with a particular access point,
+ * IWifiManagerEventListener::OnWifiConnected() as well as this method with
+ * @c WIFI_CONN_STATE_CONNECTED are called. Therefore, be careful to manipulate only one of those
+ * methods. The same applies for IWifiManagerEventListener::OnWifiDisconnected() and this method with
+ * @c WIFI_CONN_STATE_NOT_CONNECTED.
+ */
virtual void OnWifiConnectionStateChanged(WifiConnectionState state) = 0;
- /**
- * Called to notify the application that the scan result of Wi-Fi system on background is updated.
- *
- * @since 2.0
- *
- * @remarks Call WifiManager::GetSystemScanResultN() for checking the content of this update.
- */
+ /**
+ * Called to notify an application that the scan result of the Wi-Fi system in the background is updated.
+ *
+ * @since 2.0
+ *
+ * @remarks Call WifiManager::GetSystemScanResultN() for checking the content of this update.
+ */
virtual void OnWifiSystemScanResultUpdated(void) = 0;
protected:
: public Tizen::Base::Object
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @since 2.0
- */
+ /**
+ * This is the default constructor for this class.
+ *
+ * @since 2.0
+ */
WifiBssInfo(void);
- /**
- * Copying of objects using this copy constructor is allowed.
- * @since 2.0
- *
- * @param[in] value An instance of %WifiBssInfo
- */
+ /**
+ * Copying of objects using this copy constructor is allowed.
+ * @since 2.0
+ *
+ * @param[in] value An instance of %WifiBssInfo to copy
+ */
WifiBssInfo(const WifiBssInfo& value);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~WifiBssInfo(void);
- /**
- * Gets the SSID of this BSS.
- *
- * @since 2.0
- *
- * @return The SSID
- */
+ /**
+ * Gets the SSID of this BSS.
+ *
+ * @since 2.0
+ *
+ * @return The SSID
+ */
Tizen::Base::String GetSsid(void) const;
- /**
- * Gets the ID of this BSS.
- *
- * @since 2.0
- *
- * @return The BSSID expressed as a 6 byte hexadecimal value delimited by dashes. @n
- * For example, "00-3D-47-EF-8A-03".
- */
+ /**
+ * Gets the ID of this BSS.
+ *
+ * @since 2.0
+ *
+ * @return The BSSID expressed as a 6 byte hexadecimal value delimited by dashes @n
+ * For example, "00-3D-47-EF-8A-03".
+ */
Tizen::Base::String GetBssId(void) const;
- /**
- * Gets the type of this BSS.
- *
- * @since 2.0
- *
- * @return The type of this BSS
- */
+ /**
+ * Gets the type of this BSS.
+ *
+ * @since 2.0
+ *
+ * @return The type of this BSS
+ */
WifiBssType GetBssType(void) const;
- /**
- * Gets the radio channel of this BSS.
- *
- * @since 2.0
- *
- * @return The radio channel of this BSS
- */
+ /**
+ * Gets the radio channel of this BSS.
+ *
+ * @since 2.0
+ *
+ * @return The radio channel of this BSS
+ */
WifiRadioChannel GetRadioChannel(void) const;
- /**
- * Gets the security information of this BSS.
- *
- * @since 2.0
- *
- * @return The authentication and encryption type of this BSS
- */
+ /**
+ * Gets the security information of this BSS.
+ *
+ * @since 2.0
+ *
+ * @return The authentication and encryption type of this BSS
+ */
const WifiSecurityInfo* GetSecurityInfo(void) const;
- /**
- * Gets the Received Signal Strength Indication (RSSI) value of the BSS at the time of scanning.
- *
- * @since 2.0
- *
- * @return The RSSI value in dBm
- */
+ /**
+ * Gets the Received Signal Strength Indication (RSSI) value of the BSS at the time of scanning.
+ *
+ * @since 2.0
+ *
+ * @return The RSSI value in dBm
+ */
long GetRssi(void) const;
- /**
- * Gets the data rate of this BSS.
- *
- * @since 2.0
- *
- * @return The data rate value (Mbps), @n
- * else @c -1.0 if the supported data rate is unknown
- */
+ /**
+ * Gets the data rate of this BSS.
+ *
+ * @since 2.0
+ *
+ * @return The data rate value (Mbps), @n
+ * else @c -1.0 if the supported data rate is unknown
+ */
float GetDataRate(void) const;
- /**
- * Sets the SSID.
- *
- * @since 2.0
- *
- * @param[in] ssid The SSID
- */
+ /**
+ * Sets the SSID.
+ *
+ * @since 2.0
+ *
+ * @param[in] ssid The SSID
+ */
void SetSsid(const Tizen::Base::String& ssid);
- /**
- * Checks whether an access point (BSS) is known or not. @n
- * The access point becomes a known BSS if it has been connected with this device.
- *
- * @since 2.0
- *
- * @return @c true if the access point is known, @n
- * else @c false
- * @see SetUnknown()
- */
+ /**
+ * Checks whether an access point (BSS) is known or not. @n
+ * The access point becomes a known BSS if it has been connected with this device.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the access point is known, @n
+ * else @c false
+ * @see SetUnknown()
+ */
bool IsKnown(void) const;
- /**
- * Sets the access point (BSS) unknown.
- *
- * @since 2.0
- *
- * @see IsKnown()
- */
+ /**
+ * Sets the access point (BSS) as unknown.
+ *
+ * @since 2.0
+ *
+ * @see IsKnown()
+ */
void SetUnknown(void);
- /**
- * Gets the local IP address scheme.
- *
- * @since 2.0
- *
- * @return The address scheme for the local IP address
- */
+ /**
+ * Gets the local IP address scheme.
+ *
+ * @since 2.0
+ *
+ * @return The address scheme of the local IP address
+ */
Tizen::Net::NetAddressScheme GetLocalAddressScheme(void) const;
- /**
- * Sets the local IP address scheme. @n
- * The %SetLocalAddressScheme() method allows determining whether to use static address or dynamic address.
- *
- * @since 2.0
- *
- * @param[in] scheme The address scheme for the local IP address
- */
+ /**
+ * Sets the local IP address scheme. @n
+ * The %SetLocalAddressScheme() method allows determining whether to use the static or dynamic address.
+ *
+ * @since 2.0
+ *
+ * @param[in] scheme The address scheme of the local IP address
+ */
void SetLocalAddressScheme(Tizen::Net::NetAddressScheme scheme);
- /**
- * Gets the local IP address in the static address scheme.
- *
- * @since 2.0
- *
- * @return The local address configured to this access point, @n
- * else @c null if an error occurs or there is no previously set address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetLocalAddress()
- */
+ /**
+ * Gets the local IP address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return The local address configured to this access point, @n
+ * else @c null if an error occurs or there is no previously set address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetLocalAddress()
+ */
const Tizen::Net::IpAddress* GetLocalAddress(void) const;
- /**
- * Sets the local IP address in the static address scheme.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pAddress The new address to assign
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation.
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The existing local address is unset when the input argument is @c null.
- * @see GetLocalAddress()
- */
+ /**
+ * Sets the local IP address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pAddress The new address to assign
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation.
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The existing local address is unset when the input argument is @c null.
+ * @see GetLocalAddress()
+ */
result SetLocalAddress(const Tizen::Net::IpAddress* pAddress);
- /**
- * Gets the subnet mask address in the static address scheme.
- *
- * @since 2.0
- *
- * @return The subnet mask address configured to this access point, @n
- * else @c null if an error occurs or there is no previously set address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetSubnetMaskAddress()
- */
+ /**
+ * Gets the subnet mask address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return The subnet mask address configured to this access point, @n
+ * else @c null if an error occurs or there is no previously set address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetSubnetMaskAddress()
+ */
const Tizen::Net::IpAddress* GetSubnetMaskAddress(void) const;
- /**
- * Sets the subnet mask address in the static address scheme.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pAddress The new address to assign
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The existing subnet mask address is unset when the input argument is @c null.
- * @see GetSubnetMaskAddress()
- */
+ /**
+ * Sets the subnet mask address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pAddress The new address to assign
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The existing subnet mask address is unset when the input argument is @c null.
+ * @see GetSubnetMaskAddress()
+ */
result SetSubnetMaskAddress(const Tizen::Net::IpAddress* pAddress);
- /**
- * Gets the default gateway address in the static address scheme.
- *
- * @since 2.0
- *
- * @return The default gateway address configured to this access point, @n
- * else @c null if an error occurs or there is no previously set address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetDefaultGatewayAddress()
- */
+ /**
+ * Gets the default gateway address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return The default gateway address configured to this access point, @n
+ * else @c null if an error occurs or there is no previously set address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetDefaultGatewayAddress()
+ */
const Tizen::Net::IpAddress* GetDefaultGatewayAddress(void) const;
- /**
- * Sets the default gateway address in the static address scheme.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pAddress The new address to assign
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The existing gateway address is unset when the input argument is @c null.
- * @see GetDefaultGatewayAddress()
- */
+ /**
+ * Sets the default gateway address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pAddress The new address to assign
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The existing gateway address is unset when the input argument is @c null.
+ * @see GetDefaultGatewayAddress()
+ */
result SetDefaultGatewayAddress(const Tizen::Net::IpAddress* pAddress);
- /**
- * Gets the primary DNS address in the static address scheme.
- *
- * @since 2.0
- *
- * @return The primary DNS address configured to this access point, @n
- * else @c null if an error occurs or there is no previously set address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetPrimaryDnsAddress()
- */
+ /**
+ * Gets the primary DNS address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return The primary DNS address configured to this access point, @n
+ * else @c null if an error occurs or there is no previously set address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetPrimaryDnsAddress()
+ */
const Tizen::Net::IpAddress* GetPrimaryDnsAddress(void) const;
- /**
- * Sets the primary DNS address in the static address scheme.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pAddress The new address to assign
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The existing primary DNS address is unset when the input argument is @c null.
- * @see GetPrimaryDnsAddress()
- */
+ /**
+ * Sets the primary DNS address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pAddress The new address to assign
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The existing primary DNS address is unset when the input argument is @c null.
+ * @see GetPrimaryDnsAddress()
+ */
result SetPrimaryDnsAddress(const Tizen::Net::IpAddress* pAddress);
- /**
- * Gets the secondary DNS address in the static address scheme.
- *
- * @since 2.0
- *
- * @return The secondary DNS address configured to this access point, @n
- * else @c null if an error occurs or there is no previously set address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetSecondaryDnsAddress()
- */
+ /**
+ * Gets the secondary DNS address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return The secondary DNS address configured to this access point, @n
+ * else @c null if an error occurs or there is no previously set address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetSecondaryDnsAddress()
+ */
const Tizen::Net::IpAddress* GetSecondaryDnsAddress(void) const;
- /**
- * Sets the secondary DNS address in the static address scheme.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] pAddress The new address to assign
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
- * @remarks The existing secondary DNS address is unset when the input argument is @c null.
- * @see GetSecondaryDnsAddress()
- */
+ /**
+ * Sets the secondary DNS address in the static address scheme.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] pAddress The new address to assign
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the address scheme for the IP address is ::NET_ADDRESS_SCHEME_DYNAMIC.
+ * @remarks The existing secondary DNS address is unset when the input argument is @c null.
+ * @see GetSecondaryDnsAddress()
+ */
result SetSecondaryDnsAddress(const Tizen::Net::IpAddress* pAddress);
- /**
- * Gets the proxy type.
- *
- * @since 2.0
- *
- * @return The proxy type
- * @see SetProxyType()
- */
+ /**
+ * Gets the proxy type.
+ *
+ * @since 2.0
+ *
+ * @return The proxy type
+ * @see SetProxyType()
+ */
Tizen::Net::NetProxyType GetProxyType(void) const;
- /**
- * Sets the proxy type.
- *
- * @since 2.0
- *
- * @param[in] type The proxy type
- * @see GetProxyType()
- */
+ /**
+ * Sets the proxy type.
+ *
+ * @since 2.0
+ *
+ * @param[in] type The proxy type
+ * @see GetProxyType()
+ */
void SetProxyType(Tizen::Net::NetProxyType type);
- /**
- * Gets the proxy address.
- *
- * @since 2.0
- *
- * @return The proxy address, @n
- * else an empty string if an error occurs or there is no previously set address
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the specified input type is @c NET_PROXY_TYPE_NONE.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @see SetProxyAddress()
- */
+ /**
+ * Gets the proxy address.
+ *
+ * @since 2.0
+ *
+ * @return The proxy address, @n
+ * else an empty string if an error occurs or there is no previously set address
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the specified input type is ::NET_PROXY_TYPE_NONE.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @see SetProxyAddress()
+ */
Tizen::Base::String GetProxyAddress(void) const;
- /**
- * Sets the proxy address.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] address The proxy address containing the IP address and port. @n
- * For example, 'proxy.example.com:3125' or '192.168.0.1:8080'.
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation.
- * For example, the specified input type is @c NET_PROXY_TYPE_NONE.
- * @remarks The existing proxy address is unset when the input argument is an empty string.
- * @see GetProxyAddress()
- */
+ /**
+ * Sets the proxy address.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] address The proxy address that contains the IP address and port @n
+ * For example, 'proxy.example.com:3125' or '192.168.0.1:8080'.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation.
+ * For example, the specified input type is ::NET_PROXY_TYPE_NONE.
+ * @remarks The existing proxy address is unset when the input argument is an empty string.
+ * @see GetProxyAddress()
+ */
result SetProxyAddress(const Tizen::Base::String& address);
- /**
- * Checks whether the specified instance of %WifiBssInfo equals the current instance.
- *
- * @since 2.0
- *
- * @return @c true if the specified instance equals the current instance, @n
- * else @c false
- * @param[in] obj An instance of %WifiBssInfo
- * @remarks The method returns @c false if the specified object is not %WifiBssInfo.
- */
+ /**
+ * Checks whether the specified instance of %WifiBssInfo equals the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the specified instance equals the current instance, @n
+ * else @c false
+ * @param[in] obj An instance of %WifiBssInfo
+ */
virtual bool Equals(const Tizen::Base::Object& obj) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
- /**
- * Assigns the value of the specified instance to the current instance of %WifiBssInfo.
- *
- * @since 2.0
- *
- * @return The reference of this instance
- * @param[in] rhs An instance of %WifiBssInfo
- */
+ /**
+ * Assigns the value of the specified instance to the current instance of %WifiBssInfo.
+ *
+ * @since 2.0
+ *
+ * @return A reference to this instance
+ * @param[in] rhs An instance of %WifiBssInfo
+ */
WifiBssInfo& operator=(const WifiBssInfo& rhs);
private:
/**
* @class WifiDirectDevice
- * @brief This class provides methods for the Wi-Fi Direct device.
+ * @brief This class provides methods for a Wi-Fi Direct device.
*
* @since 2.0
*
- * The %WifiDirectDevice class provides methods to manage the Wi-Fi Direct device, create a Wi-Fi Direct group,
+ * The %WifiDirectDevice class provides methods to manage a Wi-Fi Direct device, create a Wi-Fi Direct group,
* scan Wi-Fi Direct devices, associate a Wi-Fi Direct group owner, create a WifiDirectGroupMember instance,
* and allow the listener to get events related to a Wi-Fi Direct device and group.
*
* For more information on the class features, see
* <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_direct_connectivity.htm">Wi-Fi Direct Connectivity</a>.
+ *
+ * The following diagram illustrates the interactions between this class and the application.
+ * @image html net_wifi_directdevice_sequence_diagram.png
*/
class _OSP_EXPORT_ WifiDirectDevice
virtual ~WifiDirectDevice(void);
/**
- * Adds a listener for Wi-Fi Direct device.
+ * Adds a listener for a Wi-Fi Direct device.
*
* @since 2.0
*
/**
* @if OSPDEPREC
- * Adds a listener for the Wi-Fi Direct group owner.
+ * Adds a listener for a Wi-Fi Direct group owner.
*
* @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupOwner class is deprecated, therefore, this method also is deprecated. @n
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
* owner, group client, and so on) and so it was necessary to use these APIs. @n
* Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
/**
* @if OSPDEPREC
- * Adds a listener for the Wi-Fi Direct group client.
+ * Adds a listener for a Wi-Fi Direct group client.
*
* @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupClient class is deprecated, therefore, this method also is deprecated. @n
+ * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method also is deprecated. @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
* owner, group client, and so on) and so it was necessary to use these APIs. @n
* Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
result AddWifiDirectGroupClientListener(IWifiDirectGroupClientListener& listener);
/**
- * Removes a listener for the Wi-Fi Direct device.
+ * Removes a listener of a Wi-Fi Direct device.
*
* @since 2.0
*
/**
* @if OSPDEPREC
- * Removes a listener for the Wi-Fi Direct group owner.
+ * Removes a listener of a Wi-Fi Direct group owner.
*
* @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupOwner class is deprecated, therefore, this method also is deprecated. @n
+ * @deprecated The WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
* owner, group client, and so on) and so it was necessary to use these APIs. @n
* Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
/**
* @if OSPDEPREC
- * Removes a listener for the Wi-Fi Direct group client.
+ * Removes a listener of a Wi-Fi Direct group client.
*
* @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupClient class is deprecated, therefore, this method also is deprecated. @n
+ * @deprecated The WifiDirectGroupClient class is deprecated, therefore, this method also is deprecated. @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
* owner, group client, and so on) and so it was necessary to use these APIs. @n
* Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
result RemoveWifiDirectGroupClientListener(IWifiDirectGroupClientListener& listener);
/**
- * Activates the local Wi-Fi device by using the Wi-Fi Direct enabled.
+ * Activates a local Wi-Fi device by using the Wi-Fi Direct enabled.
*
* @since 2.0
* @privlevel public
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the Wi-Fi Direct device is already activated.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Some devices may not support to activate Wi-Fi Directâ„¢ during Wi-Fi on,
- * so deactivate Wi-Fi before activating Wi-Fi Directâ„¢ to make sure.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks Some devices may not support the activation of Wi-Fi Direct when Wi-Fi is on,
+ * so deactivate Wi-Fi before activating Wi-Fi Direct to make sure.
* @see IWifiDirectDeviceListener::OnWifiDirectDeviceActivated()
*/
result Activate(void);
/**
- * Checks whether the local device is activated.
+ * Checks whether a local device is activated.
*
* @since 2.0
*
bool IsActivated(void) const;
/**
- * Deactivates the local Wi-Fi device.
+ * Deactivates a local Wi-Fi device.
*
* @since 2.0
* @privlevel public
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the Wi-Fi Direct device is already deactivated.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*
* @see IWifiDirectDeviceListener::OnWifiDirectDeviceDeactivated()
*/
*
* @since 2.0
*
- * @return The Wi-Fi Direct group information if successful, @n
- * else @c null
+ * @return The Wi-Fi Direct group information, @n
+ * else @c null if it fails
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
*
* @since 2.0
*
- * @return The Wi-Fi Direct device information if successful, @n
- * else @c null
+ * @return The Wi-Fi Direct device information, @n
+ * else @c null if it fails
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @return The preferred configuration mode for WPS
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
- * @c WIFI_WPS_CONFIG_MODE_NONE will be returned in case of the E_SYSTEM exception.
+ * @remarks
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - @c WIFI_WPS_CONFIG_MODE_NONE is returned in case of the @c E_SYSTEM exception.
*/
WifiWpsConfigurationMode GetWpsConfigurationModePreference(void) const;
* @since 2.0
*
* @return An error code
- * @param[in] name The name for a local device
+ * @param[in] name The name of the local device
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
* @exception E_INVALID_ARG The specified device name is an empty string.
* - This method does not affect the system setting and the device name is only valid during the
* group lifetime.
* - When an application in the deactivated state calls this method, the peer devices detect the
- * device specified in the @c name parameter. For example, use this method before using Activate().
+ * device specified in @c name. For example, use this method before using Activate().
* - The specified device name is automatically truncated if its size is greater than @c 64 bytes.
*/
result SetLocalDeviceName(const Tizen::Base::String& name);
* - The preferred configuration mode of the system is the Push Button Configuration (PBC) method.
* - If the remote device does not support the specified configuration method, the common
* configuration method is selected between the two devices automatically. Therefore, this method
- * does not guarantee the use of specified WPS configuration method.
+ * does not guarantee the use of a specified WPS configuration method.
* - Before calling Connect() method, the user preferred WPS configuration mode should be specified
* using the SetWpsConfigurationModePreference() method.
*/
/**
* @if OSPDEPREC
- * Creates a Wi-Fi Direct group by negotiating with the specified Wi-Fi Direct device for the group owner.
+ * Creates a Wi-Fi Direct group by negotiating with the specified Wi-Fi Direct device for a group owner.
*
* @brief <i> [Deprecated] </i>
* @deprecated This method is deprecated because the Wi-Fi Direct APIs have been revised to allow the use of APIs
* @privilege %http://tizen.org/privilege/wifi.wifidirect.admin
*
* @return An error code
- * @param[in] pWifiDirectGroupInfo The pointer of a WiFiDirectGroupInfo
- * @param[in] pWifiDirectRemoteDeviceInfo The pointer of a WiFiDirectDeviceInfo
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_INVALID_ARG The specified @c pWifiDirectRemoteDeviceInfo contains an invalid argument.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the Wi-Fi Direct group is already created.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @param[in] pWifiDirectGroupInfo A pointer to WiFiDirectGroupInfo
+ * @param[in] pWifiDirectRemoteDeviceInfo A pointer to WiFiDirectDeviceInfo
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_IN_PROGRESS A previous request is in progress.
+ * @exception E_INVALID_ARG The specified @c pWifiDirectRemoteDeviceInfo contains an invalid argument.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the Wi-Fi Direct group is already created.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @remarks
* - It is not mandatory for this method to contain values in both the parameters.
* - If @c pWifiDirectGroupInfo is specified and the group is created with the specified group
* - If @c pWifiDirectRemoteDeviceInfo is not specified, the Wi-Fi Direct group is created with the
* first found device having the same local device name.
* - Use the SetLocalDeviceName() method to set the device name before activation.
- * - To obtain a list of Wi-Fi Direct devices which can be candidates for the
- * @c pWifiDirectRemoteDeviceInfo parameter, use the Scan() method prior using this method.
+ * - To obtain a list of Wi-Fi Direct devices which can be candidates for
+ * @c pWifiDirectRemoteDeviceInfo, use the Scan() method prior to using this method.
* - To connect a specified Wi-Fi Direct group owner directly, the Scan() and Associate() methods can
* be used.
* - Before this method is called, the event listeners should be added in order to ensure the
* completion of group creation and to process the request as a group owner or client.
- * - If the autonomous group owner mode is set to @c true in the specified @c pWifiDirectGroupInfo
- * parameter, @c pWifiDirectRemoteDeviceInfo should be set to @c null and
+ * - If the autonomous group owner mode is set to @c true in the specified @c pWifiDirectGroupInfo,
+ * @c pWifiDirectRemoteDeviceInfo should be set to @c null and
* IWifiDirectGroupClientListener would not be required.
* @see IWifiDirectDeviceListener::OnWifiDirectGroupCreatedN()
* @endif
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, when there is no group being created.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
* @see CreateGroup()
* @see IWifiDirectDeviceListener::OnWifiDirectGroupCreatedN()
* @endif
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the Wi-Fi Direct device is deactivated.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks Some devices may not support to scan Wi-Fi Directâ„¢ while the Wi-Fi connection to the AP is in progress or established.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks Some devices may not support the scanning of Wi-Fi Direct when a Wi-Fi connection to the AP is in progress or is established.
* @see IWifiDirectDeviceListener::OnWifiDirectScanCompletedN()
*/
result Scan(void);
/**
- * Cancels the Wi-Fi Direct previous scan operation.
+ * Cancels a previous Wi-Fi Direct scan operation.
*
* @since 2.0
* @privlevel public
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the scan operation is not in process.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
* @see IWifiDirectDeviceListener::OnWifiDirectScanCompletedN()
*/
result CancelScan(void);
*
* @return An error code
* @param[in] wifiDirectGroupOwnerDeviceInfo The WifiDirectDeviceInfo value of a group owner
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS A previous request or group creation is in progress.
- * @exception E_INVALID_ARG The specified @c wifiDirectGroupOwnerDeviceInfo contains an invalid argument.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the member type of a device is already a group owner or client.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @remarks If a connection is already established with other device, the previous connection should be disconnected
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_IN_PROGRESS A previous request or group creation is in progress.
+ * @exception E_INVALID_ARG The specified @c wifiDirectGroupOwnerDeviceInfo contains an invalid argument.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, the member type of a device is already a group owner or client.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @remarks If a connection is already established with another device, the previous connection should be disconnected
* before using this method.
* @see IWifiDirectDeviceListener::OnWifiDirectAssociationCompleted()
* @endif
/**
* @if OSPDEPREC
- * Gets the Wi-Fi Direct member instance.
+ * Gets a Wi-Fi Direct member instance.
*
* @brief <i> [Deprecated] </i>
* @deprecated This method is deprecated because the Wi-Fi Direct APIs have been revised to allow the use of APIs
*
* @since 2.0
*
- * @return The Wi-Fi Direct member instance if successful, @n
- * else @c null if the status of device is @c WIFI_DIRECT_GROUP_MEMBER_TYPE_NONE
+ * @return The Wi-Fi Direct member instance, @n
+ * else @c null if the status of the device is @c WIFI_DIRECT_GROUP_MEMBER_TYPE_NONE
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
WifiDirectGroupMember* GetWifiDirectMemberN(void) const;
/**
- * Checks whether the local Wi-Fi Direct device is currently discoverable.
+ * Checks whether a local Wi-Fi Direct device is currently discoverable.
*
* @since 2.0
*
bool IsDiscoverable(void) const;
/**
- * Connects to the Wi-Fi Direct connection with the specified peer device.
+ * Connects to a Wi-Fi Direct connection with the specified peer device.
*
* @since 2.0
* @privlevel public
* @privilege %http://tizen.org/privilege/wifi.wifidirect.admin
*
* @return An error code
- * @param[in] remoteDeviceInfo The remote peer device to connect.
+ * @param[in] remoteDeviceInfo The remote peer device to connect
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS The previous request is in progress.
+ * @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_INVALID_ARG The specified @c remoteDeviceInfo is invalid.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, the local device is already connected except in the case of group owner.
+ * For example, the local device is already connected except in the case of a group owner.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*
* @remarks
* - If the local device does not belong to a group owner or client, a group negotiation request is
result Connect(const WifiDirectDeviceInfo& remoteDeviceInfo);
/**
- * Cancels the request for Wi-Fi Direct connection.
+ * Cancels the request for a Wi-Fi Direct connection.
*
* @since 2.0
* @privlevel public
* @return An error code
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS The previous request is in progress.
+ * @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the local device is not connecting.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the local device is already deactivated or connected.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*
* @see IWifiDirectDeviceListener::OnWifiDirectAutonomousGroupCreated()
*
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the local device is already deactivated or connected.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*
* @remarks This method should be called before using Connect() to configure the group information.
*/
* @param[in] peerDeviceInfo The peer device to disconnect
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS The previous request is in progress.
+ * @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_INVALID_ARG The specified @c remoteDeviceInfo is invalid.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the local device is not connected.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*
* @see IWifiDirectDeviceListener::OnWifiDirectDisconnected()
*/
* @return An error code
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS The previous request is in progress.
+ * @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
* For example, the local device is not a group owner or client.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
*
- * @see IWifiDirectDeviceListener::OnWifiDirectGroupLeft()
- * @remarks If the local device belongs to a group owner, the group will be destroyed and the
+ * @remarks If the local device belongs to a group owner, the group is destroyed and the
* IWifiDirectDeviceListener::OnWifiDirectDisconnected() event method will not occur for each client
* connection.
+ * @see IWifiDirectDeviceListener::OnWifiDirectGroupLeft()
*/
result LeaveGroup(void);
/**
- * Gets information of the group owner of a Wi-Fi Direct group.
+ * Gets the information of the group owner of a Wi-Fi Direct group.
*
* @since 2.0
*
- * @return The Wi-Fi Direct group owner information if successful, @n
- * else null
+ * @return The Wi-Fi Direct group owner information, @n
+ * else null if it fails
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
WifiDirectDeviceInfo* GetGroupOwnerInfoN(void) const;
/**
- * Gets the list of the Wi-Fi Direct group clients.
+ * Gets the list of Wi-Fi Direct group clients.
*
* @since 2.0
*
- * @return A pointer to the list that contains the WifiDirectDeviceInfo instances of the group clients if
- * successful, @n
- * else @c null
+ * @return A pointer to the list that contains the WifiDirectDeviceInfo instances of the group clients, @n
+ * else @c null if it fails
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
private:
/**
- * This default constructor is intentionally declared as private so that only the platform can create an instance.
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly
- * to initialize this instance.
- * @see Construct()
+ * This default constructor is intentionally declared as private so that only the platform can create an instance. @n
+ * After creating an instance of this class, the Construct() method must be called explicitly to initialize this instance.
*/
WifiDirectDevice(void);
/**
* @class WifiDirectDeviceInfo
- * @brief This class provides methods for the Wi-Fi Direct device information.
+ * @brief This class provides methods for getting Wi-Fi Direct device information.
*
* @since 2.0
*
: public Tizen::Base::Object
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @since 2.0
- */
+ /**
+ * This is the default constructor for this class.
+ *
+ * @since 2.0
+ */
WifiDirectDeviceInfo(void);
- /**
- * Copying of objects using this copy constructor is allowed.
- *
- * @since 2.0
- *
- * @param[in] value An instance of %WifiDirectDeviceInfo
- */
+ /**
+ * Copying of objects using this copy constructor is allowed.
+ *
+ * @since 2.0
+ *
+ * @param[in] value An instance of %WifiDirectDeviceInfo to copy
+ */
WifiDirectDeviceInfo(const WifiDirectDeviceInfo& value);
- /**
- * Initializes this instance of %WifiDirectDeviceInfo with the specified device name
- * and the MAC address.
- *
- * @since 2.0
- *
- * @param[in] deviceName The device name @n
- * The length of @c deviceName must not exceed 64 characters.
- * @param[in] macAddr The MAC address @n
- * The value of @c macAddr must be in the form '00-00-00-00-00-00'.
- *
- */
+ /**
+ * Initializes this instance of %WifiDirectDeviceInfo with the specified device name
+ * and MAC address.
+ *
+ * @since 2.0
+ *
+ * @param[in] deviceName The device name @n
+ * The length of @c deviceName must not exceed @c 64 characters.
+ * @param[in] macAddr The MAC address @n
+ * The value of @c macAddr must be in the form '00-00-00-00-00-00'.
+ *
+ */
WifiDirectDeviceInfo(const Tizen::Base::String& deviceName, const Tizen::Base::String& macAddr);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~WifiDirectDeviceInfo(void);
- /**
- * Gets the ID of the device.
- *
- * @since 2.0
- *
- * @return The ID of the Wi-Fi Direct device
- * @remarks
- * - This value is only available for local device information query, such as
- * WifiDirectDeviceManager::GetAllDeviceInfoN() or WifiDirectDevice::GetLocalDeviceInfoN().
- * - When the value is not available, the return value is @c -1.
- */
+ /**
+ * Gets the ID of the device.
+ *
+ * @since 2.0
+ *
+ * @return The ID of the Wi-Fi Direct device, @n
+ * else @c -1 if the value is not available
+ * @remarks This value is only available for local device information queries, such as
+ * WifiDirectDeviceManager::GetAllDeviceInfoN() or WifiDirectDevice::GetLocalDeviceInfoN().
+ */
WifiDirectDeviceId GetDeviceId(void) const;
- /**
- * Gets the device name.
- *
- * @since 2.0
- *
- * @return The device name
- */
+ /**
+ * Gets the device name.
+ *
+ * @since 2.0
+ *
+ * @return The device name
+ */
Tizen::Base::String GetDeviceName(void) const;
- /**
- * Gets the MAC address of the device.
- *
- * @since 2.0
- *
- * @return The MAC address in the form '00-00-00-00-00-00'
- * @remarks This MAC address is different from the MAC address provided by the WifiManager or DhcpClientInfo
- * class. Especially, the MAC address which is provided in DhcpClientInfo is a virtual MAC address for
- * data communication during a Wi-Fi Direct group member.
- */
+ /**
+ * Gets the MAC address of the device.
+ *
+ * @since 2.0
+ *
+ * @return The MAC address in the form '00-00-00-00-00-00'
+ * @remarks This MAC address is different from the MAC address provided by the WifiManager or DhcpClientInfo
+ * class. Especially, the MAC address which is provided in %DhcpClientInfo is a virtual MAC address for
+ * data communication with a Wi-Fi Direct group member.
+ */
Tizen::Base::String GetMacAddress(void) const;
- /**
- * Gets the IP address of the device.
- *
- * @since 2.0
- *
- * @return An IpAddress pointer to the local address in the calling instance
- * @remarks The IP address is provided only using WifiDirectDevice::GetGroupOwnerInfoN(),
- * WifiDirectDevice::GetGroupClientInfoListN(), or WifiDirectDevice::GetLocalDeviceInfoN() after
- * becoming a group member.
- */
+ /**
+ * Gets the IP address of the device.
+ *
+ * @since 2.0
+ *
+ * @return An IpAddress pointer to the local address in the current instance
+ * @remarks The IP address is provided only using WifiDirectDevice::GetGroupOwnerInfoN(),
+ * WifiDirectDevice::GetGroupClientInfoListN(), or WifiDirectDevice::GetLocalDeviceInfoN() after
+ * becoming a group member.
+ */
const Tizen::Net::IpAddress* GetIpAddress(void) const;
- /**
- * Gets the SSID.
- *
- * @since 2.0
- *
- * @return The SSID
- * @remarks This method returns an empty string if the member type of a device is not a Wi-Fi Direct group
- * owner or client.
- */
+ /**
+ * Gets the SSID.
+ *
+ * @since 2.0
+ *
+ * @return The SSID
+ * @remarks This method returns an empty string if the member type of a device is not a Wi-Fi Direct group
+ * owner or client.
+ */
Tizen::Base::String GetSsid(void) const;
- /**
- * Gets the status of the device.
- *
- * @since 2.0
- *
- * @return The status of the Wi-Fi Direct device
- */
+ /**
+ * Gets the status of the device.
+ *
+ * @since 2.0
+ *
+ * @return The status of the Wi-Fi Direct device
+ */
WifiDirectDeviceStatus GetDeviceStatus(void) const;
- /**
- * Gets the member type of the Wi-Fi Direct device.
- *
- * @since 2.0
- *
- * @return The member type of the Wi-Fi Direct device
- */
+ /**
+ * Gets the member type of the Wi-Fi Direct device.
+ *
+ * @since 2.0
+ *
+ * @return The member type of the Wi-Fi Direct device
+ */
WifiDirectGroupMemberType GetGroupMemberType(void) const;
- /**
- * Gets the category of the Wi-Fi Direct device type.
- *
- * @since 2.0
- *
- * @return The category of the Wi-Fi Direct device type
- */
+ /**
+ * Gets the category of the Wi-Fi Direct device type.
+ *
+ * @since 2.0
+ *
+ * @return The category of the Wi-Fi Direct device type
+ */
WifiDirectDeviceTypeCategory GetDeviceTypeCategory(void) const;
- /**
- * Gets the list of supporting WPS configuration modes.
- *
- * @since 2.0
- *
- * @return The list of supporting WPS configuration modes
- * @remarks The result of this method is available only using WifiDirectDevice::Scan() or
- * WifiDirectDevice::GetLocalDeviceInfoN().
- */
+ /**
+ * Gets the list of supporting WPS configuration modes.
+ *
+ * @since 2.0
+ *
+ * @return The list of supporting WPS configuration modes
+ * @remarks The result of this method is available only using WifiDirectDevice::Scan() or
+ * WifiDirectDevice::GetLocalDeviceInfoN().
+ */
const Tizen::Base::Collection::IListT <WifiWpsConfigurationMode>* GetSupportedWpsConfigurationModeList(void) const;
- /**
- * Checks whether the specified instance of %WifiDirectDeviceInfo equals the current instance.
- *
- * @since 2.0
- *
- * @return @c true if the specified instance equals the current instance, @n
- * else @c false
- * @param[in] obj An instance of %WifiDirectDeviceInfo
- * @remarks This method returns @c false if the specified object is not %WifiDirectDeviceInfo.
- */
+ /**
+ * Checks whether the specified instance of %WifiDirectDeviceInfo equals the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the specified instance equals the current instance, @n
+ * else @c false
+ * @param[in] obj An instance of %WifiDirectDeviceInfo
+ * @remarks This method returns @c false if the specified object is not %WifiDirectDeviceInfo.
+ */
virtual bool Equals(const Tizen::Base::Object& obj) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
- /**
- * Assigns the value of the specified instance to the current instance of %WifiDirectDeviceInfo.
- *
- * @since 2.0
- *
- * @return A reference to this instance
- * @param[in] rhs An instance of %WifiDirectDeviceInfo
- */
+ /**
+ * Assigns the value of the specified instance to the current instance of %WifiDirectDeviceInfo.
+ *
+ * @since 2.0
+ *
+ * @return A reference to this instance
+ * @param[in] rhs An instance of %WifiDirectDeviceInfo
+ */
WifiDirectDeviceInfo& operator =(const WifiDirectDeviceInfo& rhs);
private :
/**
* @class WifiDirectDeviceManager
- * @brief This class provides methods for the Wi-Fi Direct device management.
+ * @brief This class provides methods for Wi-Fi Direct device management.
*
* @since 2.0
*
* The %WifiDirectDeviceManager class provides methods for creating a WifiDirectDevice instance and
- * managing the Wi-Fi Direct devices.
+ * managing Wi-Fi Direct devices.
*/
class _OSP_EXPORT_ WifiDirectDeviceManager
: public Tizen::Base::Object
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @since 2.0
- */
+ /**
+ * This is the default constructor for this class.
+ *
+ * @since 2.0
+ */
WifiDirectDeviceManager(void);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~WifiDirectDeviceManager(void);
- /**
- * Gets a list of all the devices and also their information provided by the system.
- *
- * @since 2.0
- *
- * @feature %http://tizen.org/feature/network.wifi.direct
- *
- * @return A Tizen::Base::Collection::IList containing WifiDirectDeviceInfo of local devices in the system if
- * successful, @n
- * else @c null
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_UNSUPPORTED_OPERATION The device does not support the Wi-Fi Direct feature. For more information, see
- * <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">
- * Application Filtering</a>.
- * @remarks
- * - Currently, a single WifiDirectDeviceInfo instance is returned because the concurrent mode is not supported.
- * - The specific error code can be accessed using the GetLastResult() method.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- */
+ /**
+ * Gets the list of all the devices and also their information provided by the system.
+ *
+ * @since 2.0
+ *
+ * @feature %http://tizen.org/feature/network.wifi.direct
+ *
+ * @return A Tizen::Base::Collection::IList that contains WifiDirectDeviceInfo of local devices in the system, @n
+ * else @c null if it fails
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_UNSUPPORTED_OPERATION The device does not support the Wi-Fi Direct feature. For more information, see
+ * <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">
+ * Application Filtering</a>.
+ * @remarks
+ * - Currently, a single WifiDirectDeviceInfo instance is returned because the concurrent mode is not supported.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ */
static Tizen::Base::Collection::IList* GetAllDeviceInfoN(void);
- /**
- * Gets an instance of WifiDirectDevice.
- *
- * @since 2.0
- *
- * @feature %http://tizen.org/feature/network.wifi.direct
- *
- * @return An instance of WifiDirectDevice if successful, @n
- * else @c null
- * @param[in] pLocalDeviceInfo A pointer to WifiDirectDeviceInfo
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM An internal error has occurred.
- * @exception E_INVALID_ARG The specified input parameter is invalid.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- * @exception E_UNSUPPORTED_OPERATION The device does not support the Wi-Fi Direct feature. For more information, see
- * <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">
- * Application Filtering</a>.
- * @remarks
- * - If the value of @c pLocalDeviceInfo is @c null, the WifiDirectDevice instance is created for the
- * system default device. Otherwise, the value of @c pLocalDeviceInfo should be one of the elements
- * obtained from WifiDirectDeviceManager::GetAllDeviceInfoN() to create a valid %WifiDirectDevice
- * instance.
- * - The specific error code can be accessed using the GetLastResult() method.
- * - Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
- */
+ /**
+ * Gets an instance of WifiDirectDevice.
+ *
+ * @since 2.0
+ *
+ * @feature %http://tizen.org/feature/network.wifi.direct
+ *
+ * @return An instance of WifiDirectDevice, @n
+ * else @c null if it fails
+ * @param[in] pLocalDeviceInfo A pointer to WifiDirectDeviceInfo
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM An internal error has occurred.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ * @exception E_UNSUPPORTED_OPERATION The device does not support the Wi-Fi Direct feature. For more information, see
+ * <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">
+ * Application Filtering</a>.
+ * @remarks
+ * - If the value of @c pLocalDeviceInfo is @c null, the WifiDirectDevice instance is created for the
+ * system default device. Otherwise, the value of @c pLocalDeviceInfo should be one of the elements
+ * obtained from WifiDirectDeviceManager::GetAllDeviceInfoN() to create a valid %WifiDirectDevice
+ * instance.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ * - Before calling this method, check whether the feature is supported by
+ * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ */
static WifiDirectDevice* GetWifiDirectDeviceN(const WifiDirectDeviceInfo* pLocalDeviceInfo = null);
private:
/**
* @if OSPDEPREC
* @class WifiDirectGroupClient
- * @brief <i> [Deprecated] </i> This class provides methods for the Wi-Fi Direct group client management.
+ * @brief <i> [Deprecated] </i> This class provides methods for Wi-Fi Direct group client management.
* @deprecated This method is deprecated because the Wi-Fi Direct APIs have been revised to allow the use of APIs
* with ease irrespective of the role (for example, group owner, group client, and so on). @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role and so it was necessary to
* use these APIs.@n
- * As the APIs have been integrated into WifiDirectDevice class, use WifiDirectDevice class instead.
+ * As the APIs have been integrated into WifiDirectDevice class, use %WifiDirectDevice class instead.
*
* @since 2.0
*
: public WifiDirectGroupMember
{
public:
- /**
- * @if OSPDEPREC
- * This is the destructor for this class.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the role.
- *
- * @since 2.0
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * This is the destructor for this class.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The %WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the role.
+ *
+ * @since 2.0
+ * @endif
+ */
virtual ~WifiDirectGroupClient(void);
- /**
- * @if OSPDEPREC
- * Closes the connection.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupClient class is deprecated. Therefore, this method is also deprecated, because
- * previously the Wi-Fi Direct APIs were provided centered on the role(e.g. group owner, group client).@n
- * So it was necessary to use APIs in accordance with the strict role; however, it has been revised to
- * allow using APIs with ease without discerning the role. @n
- * It is integrated into WifiDirectDevice class. Use the WifiDirectDevice::Disconnect() method.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/wifi.wifidirect.admin
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, when the member type of a device is not a Wi-Fi Direct group client.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @see IWifiDirectGroupClientListener::OnWifiDirectAssociationTerminated()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Closes the connection.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The %WifiDirectGroupClient class is deprecated. Therefore, this method is also deprecated, because
+ * previously the Wi-Fi Direct APIs were provided depending on the role(e.g. group owner, group client).@n
+ * So it was necessary to use APIs in accordance with the strict role; however, it has been revised to
+ * allow using APIs with ease without discerning the role. @n
+ * It is integrated into the WifiDirectDevice class. Use the WifiDirectDevice::Disconnect() method.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/wifi.wifidirect.admin
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_IN_PROGRESS A previous request is in progress.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, when the member type of a device is not a Wi-Fi Direct group client.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @see IWifiDirectGroupClientListener::OnWifiDirectAssociationTerminated()
+ * @endif
+ */
result Disassociate(void);
- /**
- * @if OSPDEPREC
- * Requests the WifiDirectDeviceInfo of the Wi-Fi Direct group owner.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated The %WifiDirectGroupClient class is deprecated. Therefore, this method is also deprecated, because
- * previously the Wi-Fi Direct APIs were provided centered on the role(e.g. group owner, group client) @n
- * so it was necessary to use APIs in accordance with the strict role; however, it has been revised to
- * allow using APIs with ease without discerning the role. @n
- * Instead of using this method, use the WifiDirectDevice::GetGroupOwnerInfoN() method.
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/wifi.wifidirect.read, %http://tizen.org/privilege/network.connection
- * and %http://tizen.org/privilege/socket @n
- * All the above privileges are required.
- *
- * @return An error code
- * @param[in] portNumber A port number to connect to the group member information service
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS The previous request for the group owner information is in progress.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, when the member type of a device is not a Wi-Fi Direct group client.
- * @exception E_OUT_OF_RANGE The specified port number is less than 1024 or greater than 65535.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- *
- * @remarks The port number used by the group owner must be specified if the group owner changes the port number
- * in WifiDirectGroupOwner::StartGroupMemberInfoService().
- * @see IWifiDirectGroupClientListener::OnWifiDirectGroupOwnerInfoReceived()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Requests the WifiDirectDeviceInfo of the Wi-Fi Direct group owner.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated The %WifiDirectGroupClient class is deprecated. Therefore, this method is also deprecated, because
+ * previously the Wi-Fi Direct APIs were provided depending on the role(e.g. group owner, group client) @n
+ * so it was necessary to use APIs in accordance with the strict role; however, it has been revised to
+ * allow using APIs with ease without discerning the role. @n
+ * Instead of using this method, use the WifiDirectDevice::GetGroupOwnerInfoN() method.
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/wifi.wifidirect.read, %http://tizen.org/privilege/network.connection
+ * and %http://tizen.org/privilege/socket @n
+ * All the above privileges are required.
+ *
+ * @return An error code
+ * @param[in] portNumber The port number to connect to the group member information service
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_IN_PROGRESS The previous request for the group owner information is in progress.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, when the member type of a device is not a Wi-Fi Direct group client.
+ * @exception E_OUT_OF_RANGE The specified port number is either less than @c 1024 or greater than @c 65535.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ *
+ * @remarks The port number used by the group owner must be specified if the group owner changes the port number
+ * in WifiDirectGroupOwner::StartGroupMemberInfoService().
+ * @see IWifiDirectGroupClientListener::OnWifiDirectGroupOwnerInfoReceived()
+ * @endif
+ */
result RequestGroupOwnerInfo(int portNumber = DEFAULT_PORT);
- /**
- * @if OSPDEPREC
- * Requests the WifiDirectDeviceInfo list of the Wi-Fi Direct group members.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated %WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
- * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
- * owner, group client, and so on) and so it was necessary to use these APIs. @n
- * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
- * role. @n
- *
- * @since 2.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/wifi.wifidirect.read, %http://tizen.org/privilege/network.connection
- * and %http://tizen.org/privilege/socket @n
- * All the above privileges are required.
- *
- * @return An error code
- * @param[in] portNumber A port number to connect to the group member information service
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS The previous request for the group owner information is in progress.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, when the member type of a device is not a Wi-Fi Direct group client.
- * @exception E_OUT_OF_RANGE The specified port number is less than 1024 or greater than 65535.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
- * @remarks The port number used by the group owner should be specified if the group owner changed the port
- * number in WifiDirectGroupOwner::StartGroupMemberInfoService().
- * @see IWifiDirectGroupClientListener::OnWifiDirectAllGroupMemberInfoReceivedN()
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Requests the WifiDirectDeviceInfo list of the Wi-Fi Direct group members.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated %WifiDirectGroupClient class is deprecated, therefore, this method is also deprecated. @n
+ * Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role (for example, group
+ * owner, group client, and so on) and so it was necessary to use these APIs. @n
+ * Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the
+ * role. @n
+ *
+ * @since 2.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/wifi.wifidirect.read, %http://tizen.org/privilege/network.connection
+ * and %http://tizen.org/privilege/socket @n
+ * All the above privileges are required.
+ *
+ * @return An error code
+ * @param[in] portNumber The port number to connect to the group member information service
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_IN_PROGRESS The previous request for the group owner information is in progress.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, when the member type of a device is not a Wi-Fi Direct group client.
+ * @exception E_OUT_OF_RANGE The specified port number is either less than @c 1024 or greater than @c 65535.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
+ * @remarks The port number used by the group owner should be specified if the group owner changed the port
+ * number in WifiDirectGroupOwner::StartGroupMemberInfoService().
+ * @see IWifiDirectGroupClientListener::OnWifiDirectAllGroupMemberInfoReceivedN()
+ * @endif
+ */
result RequestAllGroupMemberInfo(int portNumber = DEFAULT_PORT);
private:
/**
* @class WifiDirectGroupInfo
- * @brief This class provides methods for the Wi-Fi Direct group information.
+ * @brief This class provides methods for getting Wi-Fi Direct group information.
*
* @since 2.0
*
- * The %WifiDirectGroupInfo class provides methods to get or set the information for a Wi-Fi Direct group.
+ * The %WifiDirectGroupInfo class provides methods to get or set the information of a Wi-Fi Direct group.
*/
class _OSP_EXPORT_ WifiDirectGroupInfo
*
* @since 2.0
*
- * @param[in] value An instance of %WifiDirectGroupInfo
+ * @param[in] value An instance of %WifiDirectGroupInfo to copy
*/
WifiDirectGroupInfo(const WifiDirectGroupInfo& value);
*
* @since 2.0
*
- * @return An intent value
+ * @return The intent value
*/
int GetGroupOwnerIntent(void) const;
* @section CompWifiDirectGroupInfoGetSsidPageSolutionSection Resolutions
* This issue has been resolved in Tizen @n
* -# The method returns the SSID which has 'Direct-xy' as its prefix. The 'xy' is two ASCII
- * characters or digits thesystem generates randomly.
+ * characters or digits that the system generates randomly.
* @endif
*/
*
* @since 2.0
*
- * @param[in] mode Set to @c true if autonomous group owner mode is enabled, @n
+ * @param[in] mode Set to @c true if the autonomous group owner mode is enabled, @n
* else @c false
* @endif
*/
* @return An error code
* @param[in] intent The intent to become a group owner
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG Either the specified @c intent is less than @c 0, or exceeds
+ * @exception E_INVALID_ARG Either the specified @c intent is less than @c 0 or it exceeds
* Wifi::MAX_WIFI_DIRECT_GROUP_OWNER_INTENT.
* @remarks
* - A higher intent value means that the intent to become a group owner is higher.
* @return An error code
* @param[in] numberOfClient The maximum number of clients to associate
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG Either the specified @c numberOfClient is less than @c 0 or exceeds
+ * @exception E_INVALID_ARG Either the specified @c numberOfClient is less than @c 0 or it exceeds
* Wifi::MAX_WIFI_DIRECT_CONNECTED_CLIENTS.
*/
result SetMaxNumberOfClients(int numberOfClient);
/**
* @if OSPDEPREC
* @class WifiDirectGroupMember
- * @brief <i> [Deprecated] </i> This class provides methods for the Wi-Fi Direct group member.
+ * @brief <i> [Deprecated] </i> This class provides methods for a Wi-Fi Direct group member.
* @deprecated This method is deprecated because the Wi-Fi Direct APIs have been revised to allow the use of APIs with
* ease irrespective of the role (for example, group owner, group client, and so on). @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role and so it was necessary to
*
* @since 2.0
*
- * The %WifiDirectGroupMember class provides methods for the Wi-Fi Direct group member.
+ * The %WifiDirectGroupMember class provides methods for a Wi-Fi Direct group member.
* @endif
*/
/**
* @if OSPDEPREC
- * Gets the type of the Wi-Fi Direct group member.
+ * Gets the type of a Wi-Fi Direct group member.
*
* @brief <i> [Deprecated] </i>
* @deprecated This method is deprecated because the Wi-Fi Direct APIs have been revised to allow the use of APIs
*
* @since 2.0
*
- * @param[in] value An instance of %WifiDirectGroupMember
+ * @param[in] value An instance of %WifiDirectGroupMember to copy
*/
WifiDirectGroupMember(const WifiDirectGroupMember& value);
/**
* @if OSPDEPREC
* @class WifiDirectGroupOwner
- * @brief <i> [Deprecated] </i> This class provides methods for the Wi-Fi Direct group owner management.
+ * @brief <i> [Deprecated] </i> This class provides methods for Wi-Fi Direct group owner management.
* @deprecated This class is deprecated because the Wi-Fi Direct APIs have been revised to allow the use of APIs with
* ease irrespective of the role (for example, group owner, group client, and so on). @n
* Earlier, the Wi-Fi Direct APIs were strictly provided depending on the role and so it was necessary to
* use these APIs. @n
- * As the APIs have been integrated into the WifiDirectDevice class, use IWifiDirectDevice class instead.
+ * As the APIs have been integrated into the WifiDirectDevice class, use the %WifiDirectDevice class instead.
*
* @since 2.0
*
- * The %WifiDirectGroupOwner class provides methods to manage the Wi-Fi Direct group.
+ * The %WifiDirectGroupOwner class provides methods to manage a Wi-Fi Direct group.
* @endif
*/
*
* @return An error code
* @param[in] wifiDirectRemoteDeviceInfo The device information of a group client to disconnect
- * @exception E_SUCCESS The method is successful.
- * @exception E_SYSTEM A system error has occurred.
- * @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_INVALID_ARG A specified input parameter is invalid.
- * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
- * For example, when the member type of a device is not a Wi-Fi Direct group owner.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ * @exception E_IN_PROGRESS A previous request is in progress.
+ * @exception E_INVALID_ARG The specified input parameter is invalid.
+ * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
+ * For example, when the member type of a device is not a Wi-Fi Direct group owner.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @see IWifiDirectGroupOwnerListener::OnWifiDirectClientDisassociated()
* @endif
*/
/**
* @if OSPDEPREC
- * Gets the list of information of all the members of the Wi-Fi Direct group.
+ * Gets the list containing information on all the members of a Wi-Fi Direct group.
*
* @brief <i> [Deprecated] </i>
* @deprecated The %WifiDirectGroupOwner class is deprecated, therefore, this method is also deprecated. @n
* owner, group client, and so on) and so it was necessary to use these APIs. @n
* Now the Wi-Fi Direct APIs have been revised to allow the use of APIs with ease irrespective of the role. @n
* Instead of the GetAllGroupMemberInfoListN() method, use WifiDirectDevice::GetGroupOwnerInfoN() for
- * group owner information and WifiDirectDevice::GetGroupClientInfoListN() for group clients information.
+ * group owner information and WifiDirectDevice::GetGroupClientInfoListN() for group client information.
*
* @since 2.0
*
* All the above privileges are required.
*
* @return An error code
- * @param[in] portNumber A port number to start group member information service
+ * @param[in] portNumber The port number to start group member information service
* @exception E_SUCCESS The method is successful.
* @exception E_SYSTEM A system error has occurred.
* @exception E_IN_PROGRESS A previous request is in progress.
- * @exception E_OUT_OF_RANGE The specified port number is less than 1024 or greater than 65535.
+ * @exception E_OUT_OF_RANGE The specified port number is either less than @c 1024 or greater than @c 65535.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation. @n
- * For example, member type of @c wifiDirectDevice is not the group owner or client.
+ * For example, when the member type of @c wifiDirectDevice is not a group owner or client.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
* @see IWifiDirectGroupOwnerListener::OnWifiDirectGroupMemberInfoServiceStarted()
* @endif
*/
* @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @exception E_USER_NOT_CONSENTED The user blocks an application from calling this method. @b Since: @b 2.1
+ * @exception E_USER_NOT_CONSENTED The user has blocked the application from calling this method. @b Since: @b 2.1
* @see IWifiDirectGroupOwnerListener::OnWifiDirectGroupMemberInfoServiceStopped()
* @endif
*/
/**
* @class WifiManager
- * @brief This class provides methods for the local Wi-Fi device management.
+ * @brief This class provides methods for local Wi-Fi device management.
*
* @since 2.0
*
- * The %WifiManager class provides methods for creating a %WifiManager instance, and managing the local Wi-Fi devices.
- * It also allows the listener to get the events from the local Wi-Fi devices.
+ * The %WifiManager class provides methods for creating a %WifiManager instance, and managing local Wi-Fi devices.
+ * It also allows the listener to get events from local Wi-Fi devices.
*
* For more information on the class features, see
* <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_connectivity.htm">Wi-Fi Connectivity</a>.
{
public:
/**
- * This is the default constructor for this class.
+ * This is the default constructor for this class. @n
+ * After creating an instance of this class, the Construct() method must be called explicitly to initialize the instance.
*
* @since 2.0
- *
- * @remarks After creating an instance of this class, the Construct() method must be called explicitly to
- * initialize the instance.
- * @see Construct()
*/
WifiManager(void);
* <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">
* Application Filtering</a>.
* @remarks
- * - The @c listener instance must not be deleted before destructing this instance.
- * - Before calling this method, check whether the feature is supported by
+ * - The @c listener instance must not be deleted before destructing this instance.
+ * - Before calling this method, check whether the feature is supported by
* Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
*/
result Construct(IWifiManagerEventListener& listener);
/**
- * Activates the local Wi-Fi device.
+ * Activates a local Wi-Fi device.
*
* @since 2.0
* @privlevel public
* @return An error code
* @exception E_SUCCESS The activation is successful.
* @exception E_FAILURE The method has failed to activate.
- * @exception E_IN_PROGRESS The activate process is in progress.
+ * @exception E_IN_PROGRESS The activation process is in progress.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation. @n
* For example, the Wi-Fi is already activated.
* @exception E_SYSTEM A system error has occurred.
result Activate(void) const;
/**
- * Deactivates the local Wi-Fi device.
+ * Deactivates a local Wi-Fi device.
*
* @since 2.0
* @privlevel public
* @return An error code
* @exception E_SUCCESS The deactivation is successful.
* @exception E_FAILURE The method has failed to deactivate.
- * @exception E_IN_PROGRESS The deactivate process is in progress.
+ * @exception E_IN_PROGRESS The deactivation process is in progress.
* @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation. @n
* For example, the Wi-Fi is already deactivated.
* @exception E_SYSTEM A system error has occurred.
result Deactivate(void) const;
/**
- * Gets the current power status of the local Wi-Fi device.
+ * Gets the current power status of a local Wi-Fi device.
*
* @since 2.0
*
WifiPowerStatus GetPowerStatus(void) const;
/**
- * Gets the MAC address of the Wi-Fi device.
+ * Gets the MAC address of a Wi-Fi device.
*
* @since 2.0
*
bool IsActivated(void) const;
/**
- * Checks whether the local device is connected with a remote Access Point(AP).
+ * Checks whether the local device is connected to a remote Access Point(AP).
*
* @since 2.0
*
- * @return @c true if the local device is connected with a remote Access Point(AP), @n
+ * @return @c true if the local device is connected to a remote Access Point(AP), @n
* else @c false
*/
bool IsConnected(void) const;
* @exception E_INVALID_STATE This instance is in an invalid state.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @remarks
- * - Only active scan (probing for Access Points(APs) and ad hoc stations in the range) is supported.
- * - This operation does not work while the Wi-Fi Direct scanning or connection is in progress.
+ * - Only an active scan (probing for Access Points(APs) and ad hoc stations in the range) is supported.
+ * - This operation does not work while a Wi-Fi Direct scanning or connection is in progress.
* @see IWifiManagerEventListener::OnWifiScanCompletedN()
*/
result Scan(void);
* @privilege %http://tizen.org/privilege/wifi.admin
*
* @return An error code
- * @param[in] targetApInfo A BSS information representing the target access point
+ * @param[in] targetApInfo The BSS information that represents the target access point
* @exception E_SUCCESS The method is successful.
* @exception E_FAILURE The method has failed.
- * @exception E_IN_PROGRESS The previous request is in progress.
+ * @exception E_IN_PROGRESS A previous request is in progress.
* @exception E_INVALID_ARG The specified input parameter is invalid. @n
* For example, the BSS type is an independent mode.
* @exception E_INVALID_STATE This instance is in an invalid state.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @remarks If a connection to another access point is already established, it will be disconnected and the new
- * connection of this method will be established.
+ * @remarks If a connection to another access point is already established, it is disconnected and a new
+ * connection of this method is established.
* @see IWifiManagerEventListener::OnWifiConnected()
*/
result Connect(const WifiBssInfo& targetApInfo);
/**
- * Sets the behavior mode of the Wi-Fi background system about connection and background scanning.
+ * Sets the behavior mode of the Wi-Fi background system for connection and background scanning.
*
* @since 2.0
* @privlevel platform
* @privilege %http://tizen.org/privilege/wifimanager
*
* @return An error code
- * @param[in] mode A Wi-Fi background system mode
+ * @param[in] mode The Wi-Fi background system mode
* @exception E_SUCCESS The method is successful.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @exception E_OPERATION_FAILED The operation has failed.
result SetWifiSystemScanMode(WifiSystemScanMode mode);
/**
- * Adds the specified @c listener for receiving the notification when the state of current Wi-Fi connection is changed
+ * Adds the specified @c listener for receiving a notification when the state of a current Wi-Fi connection is changed
* or the result of Wi-Fi background scanning is updated.
*
* @since 2.0
result AddSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
/**
- * Removes the specified IWifiSystemMonitoringEventListener instance for receiving the notification. @n The removed listener
+ * Removes the specified IWifiSystemMonitoringEventListener instance used for receiving a notification. @n The removed listener
* cannot listen to the events that are fired.
*
* @since 2.0
result RemoveSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
/**
- * Gets the state of current Wi-Fi connection.
+ * Gets the state of a current Wi-Fi connection.
*
* @since 2.0
*
WifiConnectionState GetConnectionState(void) const;
/**
- * Gets the information of current Wi-Fi connection target which the local device is connecting or connected with.
+ * Gets the information of a current Wi-Fi connection target to which the local device is connecting or is connected with.
*
* @since 2.0
*
- * @return A pointer to the WifiBssInfo instance representing the information of current Wi-Fi connection target, @n
+ * @return A pointer to the WifiBssInfo instance that represents the information of the current Wi-Fi connection target, @n
* else @c null if GetConnectionState() is ::WIFI_CONN_STATE_NOT_CONNECTED
*/
WifiBssInfo* GetConnectionTargetInfoN(void) const;
* @privilege %http://tizen.org/privilege/wifimanager
*
* @return An error code
- * @param[in] bssInfo A BSS information representing the access point
+ * @param[in] bssInfo The BSS information that represents the access point
* @exception E_SUCCESS The method is successful.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @exception E_OBJ_NOT_FOUND The specified input parameter is not found.
result UpdateBssInfo(const WifiBssInfo& bssInfo);
/**
- * Gets a list of the latest search results which the underlying Wi-Fi system scan periodically on background.
+ * Gets the list of the latest search results which the underlying Wi-Fi system scans periodically in the background.
*
* @since 2.0
*
- * @return A Tizen::Base::Collection::IList containing WifiBssInfo of existing Wi-Fi connections if successful, @n
- * else @c null
+ * @return A Tizen::Base::Collection::IList that contains WifiBssInfo of the existing Wi-Fi connections, @n
+ * else @c null if it fails
*/
Tizen::Base::Collection::IList* GetSystemScanResultN(void) const;
/**
* @class WifiNetAccountInfo
- * @brief This class provides the functionality to control the WLAN network accounts.
+ * @brief This class provides the functionality to control WLAN network accounts.
*
* @since 2.0
*
- * The %WifiNetAccountInfo class provides the functionality to control the WLAN network accounts and the basic network accounts.
+ * The %WifiNetAccountInfo class provides the functionality to control WLAN and basic network accounts.
* This class inherits the NetAccountInfo class.
*
* For more information on the class features, see
: public Tizen::Net::NetAccountInfo
{
public:
- /**
- * This is the destructor for this class.
- *
- *
- * @since 2.0
- */
+ /**
+ * This is the destructor for this class.
+ *
+ *
+ * @since 2.0
+ */
virtual ~WifiNetAccountInfo(void);
- /**
- * Gets the BSSID of this account.
- *
- * @since 2.0
- *
- * @return The BSS ID in the form '00-00-00-00-00-00'
- */
+ /**
+ * Gets the BSSID of this account.
+ *
+ * @since 2.0
+ *
+ * @return The BSS ID in the form '00-00-00-00-00-00'
+ */
Tizen::Base::String GetBssId(void) const;
- /**
- * Gets the SSID of this account.
- *
- * @since 2.0
- *
- * @return The SSID of this account
- */
+ /**
+ * Gets the SSID of this account.
+ *
+ * @since 2.0
+ *
+ * @return The SSID of this account
+ */
Tizen::Base::String GetSsid(void) const;
- /**
- * Gets the type of BSS of this account.
- *
- * @since 2.0
- *
- * @return The type of BSS of this account
- */
+ /**
+ * Gets the type of BSS of this account.
+ *
+ * @since 2.0
+ *
+ * @return The type of BSS of this account
+ */
WifiBssType GetBssType(void) const;
- /**
- * Gets the security information of this account.
- *
- * @since 2.0
- *
- * @return The authentication and encryption type of this account
- */
+ /**
+ * Gets the security information of this account.
+ *
+ * @since 2.0
+ *
+ * @return The authentication and encryption type of this account
+ */
const WifiSecurityInfo* GetSecurityInfo(void) const;
- /**
- * Gets the radio channel of this account. @n
- * If this value is not set, the default value is WIFI_RADIO_CHANNEL_UNKNOWN.
- *
- * @since 2.0
- *
- * @return The radio channel of this account
- * @remarks This operation is not yet supported.
- */
+ /**
+ * Gets the radio channel of this account. @n
+ * If this value is not set, the default value is @c WIFI_RADIO_CHANNEL_UNKNOWN.
+ *
+ * @since 2.0
+ *
+ * @return The radio channel of this account
+ * @remarks This operation is not yet supported.
+ */
WifiRadioChannel GetRadioChannel(void) const;
- /**
- * Checks whether the specified instance of %WifiNetAccountInfo equals the current instance.
- *
- * @since 2.0
- *
- * @return @c true if the specified instance equals the current instance, @n
- * else @c false
- * @param[in] obj An instance of %WifiNetAccountInfo
- * @remarks This method returns @c false if the specified object is not %WifiNetAccountInfo.
- */
+ /**
+ * Checks whether the specified instance of %WifiNetAccountInfo equals the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the specified instance equals the current instance, @n
+ * else @c false
+ * @param[in] obj An instance of %WifiNetAccountInfo
+ * @remarks This method returns @c false if the specified object is not %WifiNetAccountInfo.
+ */
virtual bool Equals(const Tizen::Base::Object& obj) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
private:
: public Tizen::Base::Object
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @since 2.0
- */
+ /**
+ * This is the default constructor for this class.
+ *
+ * @since 2.0
+ */
WifiSecurityInfo(void);
- /**
- * Copying of objects using this copy constructor is allowed.
- *
- * @since 2.0
- *
- * @param[in] value An instance of %WifiSecurityInfo
- */
+ /**
+ * Copying of objects using this copy constructor is allowed.
+ *
+ * @since 2.0
+ *
+ * @param[in] value An instance of %WifiSecurityInfo to copy
+ */
WifiSecurityInfo(const WifiSecurityInfo& value);
- /**
- * This destructor overrides Tizen::Base::Object::~Object().
- *
- * @since 2.0
- */
+ /**
+ * This destructor overrides Tizen::Base::Object::~Object().
+ *
+ * @since 2.0
+ */
virtual ~WifiSecurityInfo(void);
- /**
- * Gets the authentication type of this account.
- *
- * @since 2.0
- *
- * @return The authentication type of this account
+ /**
+ * Gets the authentication type of this account.
+ *
+ * @since 2.0
+ *
+ * @return The authentication type of this account
*/
WifiAuthenticationType GetAuthenticationType(void) const;
- /**
- * Gets the encryption type of this account.
- *
- * @since 2.0
- *
- * @return The encryption type
- * @remarks If the encryption type is @c WIFI_ENCRYPTION_TKIP_AES_MIXED, either SetNetworkKeyAes() or
- * SetNetworkKeyTkip() can be used to set the key.
- */
+ /**
+ * Gets the encryption type of this account.
+ *
+ * @since 2.0
+ *
+ * @return The encryption type
+ * @remarks If the encryption type is @c WIFI_ENCRYPTION_TKIP_AES_MIXED, either SetNetworkKeyAes() or
+ * SetNetworkKeyTkip() can be used to set the key.
+ */
WifiEncryptionType GetEncryptionType(void) const;
- /**
- * @if OSPDEPREC
- * Sets the Wired Equivalent Privacy (WEP) key data.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because the key value does not need to set for each encryption type.
- * Instead of using this method, use SetNetworkKey().
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] keyLen A WifiWepKeyLen enumerator value
- * @param[in] keyIndex The key index of WEP key to set
- * @param[in] key The key data to set
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The length of the specified @c key exceeds @c 10 bytes when the value of @c keyLen
- * is Wifi::WIFI_WEP_KEY_LEN_64BIT, or the length of the specified @c key exceeds
- * @c 26 bytes when the value of @c keyLen is Wifi::WIFI_WEP_KEY_LEN_128BIT.
- * @exception E_SYSTEM A system error has occurred.
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Sets the Wired Equivalent Privacy (WEP) key data.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because the key value does not need to set each encryption type.
+ * Instead of using this method, use SetNetworkKey().
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] keyLen The WifiWepKeyLen enumerator value
+ * @param[in] keyIndex The key index of WEP key to set
+ * @param[in] key The key data to set
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The length of the specified @c key exceeds @c 10 bytes when the value of @c keyLen
+ * is Wifi::WIFI_WEP_KEY_LEN_64BIT, or the length of the specified @c key exceeds
+ * @c 26 bytes when the value of @c keyLen is Wifi::WIFI_WEP_KEY_LEN_128BIT.
+ * @exception E_SYSTEM A system error has occurred.
+ * @endif
+ */
result SetNetworkKeyWep(WifiWepKeyLen keyLen, WifiWepKeyIndex keyIndex, const Tizen::Base::String& key);
- /**
- * @if OSPDEPREC
- * Sets the Advanced Encryption Standard (AES) key data.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because the key value does not need to set for each encryption type.
- * Instead of using this method, use SetNetworkKey().
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] key The key data to set
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The length of the specified @c key exceeds @c 64 bytes.
- * @exception E_SYSTEM A system error has occurred.
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Sets the Advanced Encryption Standard (AES) key data.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because the key value does not need to set each encryption type.
+ * Instead of using this method, use SetNetworkKey().
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] key The key data to set
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The length of the specified @c key exceeds @c 64 bytes.
+ * @exception E_SYSTEM A system error has occurred.
+ * @endif
+ */
result SetNetworkKeyAes(const Tizen::Base::String& key);
- /**
- * @if OSPDEPREC
- * Sets the Temporal Key Integrity Protocol (TKIP) key data.
- *
- * @brief <i> [Deprecated] </i>
- * @deprecated This method is deprecated because the key value does not need to set for each encryption type.
- * Instead of using this method, use SetNetworkKey().
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] key The key data to set
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The length of the specified @c key exceeds @c 64 bytes.
- * @exception E_SYSTEM A system error has occurred.
- * @endif
- */
+ /**
+ * @if OSPDEPREC
+ * Sets the Temporal Key Integrity Protocol (TKIP) key data.
+ *
+ * @brief <i> [Deprecated] </i>
+ * @deprecated This method is deprecated because the key value does not need to set each encryption type.
+ * Instead of using this method, use SetNetworkKey().
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] key The key data to set
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The length of the specified @c key exceeds @c 64 bytes.
+ * @exception E_SYSTEM A system error has occurred.
+ * @endif
+ */
result SetNetworkKeyTkip(const Tizen::Base::String& key);
- /**
- * Sets the Extensible Authentication Protocol (EAP) method information.
- *
- * @since 2.0
- *
- * @return An error code
- * @param[in] type The EAP method type
- * @param[in] userId The user ID to set @n
- * Its length must not exceed @c 256 bytes.
- * @param[in] password The password to set @n
- * Its length must not exceed @c 256 bytes.
- * @param[in] validateServerCertificate Set to @c true to determine the validation of the server certificate, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The length of the specified @c userId or @c password exceeds @c 256 bytes.
- * @exception E_UNSUPPORTED_TYPE The input @c type is not supported.
- * @exception E_SYSTEM A system error has occurred.
- */
+ /**
+ * Sets the Extensible Authentication Protocol (EAP) method information.
+ *
+ * @since 2.0
+ *
+ * @return An error code
+ * @param[in] type The EAP method type
+ * @param[in] userId The user ID to set @n
+ * Its length must not exceed @c 256 bytes.
+ * @param[in] password The password to set @n
+ * Its length must not exceed @c 256 bytes.
+ * @param[in] validateServerCertificate Set to @c true to determine the validation of the server certificate, @n
+ * else @c false
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The length of the specified @c userId or @c password exceeds @c 256 bytes.
+ * @exception E_UNSUPPORTED_TYPE The specified @c type is not supported.
+ * @exception E_SYSTEM A system error has occurred.
+ * @remarks If the @c type is @c WIFI_EAP_SIM or @c WIFI_EAP_AKA, the empty string should be used to set
+ * the @c userId and @c password.
+ */
result SetEapMethodInfo(WifiEapType type, const Tizen::Base::String& userId, const Tizen::Base::String& password,
bool validateServerCertificate = true);
- /**
- * Sets the network key.
- *
- * @since 2.0
- *
- * @param[in] key The network key
- */
+ /**
+ * Sets the network key.
+ *
+ * @since 2.0
+ *
+ * @param[in] key The network key
+ */
void SetNetworkKey(const Tizen::Base::String& key);
- /**
- * Sets the authentication type.
- *
- * @since 2.0
- *
- * @param[in] authType The authentication type
- */
+ /**
+ * Sets the authentication type.
+ *
+ * @since 2.0
+ *
+ * @param[in] authType The authentication type
+ */
void SetAuthenticationType(WifiAuthenticationType authType);
- /**
- * Checks whether the specified instance of %WifiSecurityInfo equals the current instance.
- *
- * @since 2.0
- *
- * @return @c true if the specified instance equals the current instance, @n
- * else @c false
- * @param[in] obj An instance of %WifiSecurityInfo
- * @remarks This method returns @c false if the specified object is not %WifiSecurityInfo.
- */
+ /**
+ * Checks whether the specified instance of %WifiSecurityInfo equals the current instance.
+ *
+ * @since 2.0
+ *
+ * @return @c true if the specified instance equals the current instance, @n
+ * else @c false
+ * @param[in] obj An instance of %WifiSecurityInfo
+ * @remarks This method returns @c false if the specified object is not %WifiSecurityInfo.
+ */
virtual bool Equals(const Tizen::Base::Object& obj) const;
- /**
- * Gets the hash value of the current instance.
- *
- * @since 2.0
- *
- * @return The hash value of the current instance
- */
+ /**
+ * Gets the hash value of the current instance.
+ *
+ * @since 2.0
+ *
+ * @return The hash value of the current instance
+ */
virtual int GetHashCode(void) const;
- /**
- * Assigns the value of the specified instance to the current instance of %WifiSecurityInfo.
- *
- * @since 2.0
- *
- * @return The reference of this instance
- * @param[in] rhs An instance of %WifiSecurityInfo
- */
+ /**
+ * Assigns the value of the specified instance to the current instance of %WifiSecurityInfo.
+ *
+ * @since 2.0
+ *
+ * @return A reference to this instance
+ * @param[in] rhs An instance of %WifiSecurityInfo
+ */
WifiSecurityInfo& operator=(const WifiSecurityInfo& rhs);
private:
/**
* @file FNetWifiWifiTypes.h
- * @brief This is the header file for the enumerations of the Wifi namespace.
+ * @brief This is the header file for the enumerations of the %Wifi namespace.
*
* This header file contains the type declarations of the Wifi namespace.
*/
/**
* @enum WifiPowerStatus
*
- * Defines the power status of the local Wi-Fi device.
+ * Defines the power status of a local Wi-Fi device.
*
* @since 2.0
* @see WifiManager::GetPowerStatus()
{
WIFI_POWER_STATUS_OFF = 0, /**< The local Wi-Fi device is turned off */
WIFI_POWER_STATUS_ON, /**< The local Wi-Fi device is turned on */
- WIFI_POWER_STATUS_DEEP_SLEEP, /**< The local Wi-Fi device enters deep sleep mode */
+ WIFI_POWER_STATUS_DEEP_SLEEP, /**< The local Wi-Fi device enters the deep sleep mode */
};
/**
{
WIFI_BSS_TYPE_INFRASTRUCTURE = 0, /**< The infrastructure type which usually consists of a single Access Point (AP) @n
* However, in order to provide sufficient coverage, it could be necessary to use two
- * or more APs. @n
- * Logically, there needs to be an interconnection among APs, and this concept is
- * called Distribution %System (DS). @n
+ * or more APs @n
+ * Logically, there needs to be an interconnection among APs, and this concept is
+ * called Distribution %System (DS) @n
* Connecting with multiple APs through DS creates a wireless network of an arbitrary
- * size. @n
+ * size @n
* This is called Extended Service Set (ESS). Finally, a logical connection point to
- * the wired LAN is supported by a concept designated as Portal. */
- WIFI_BSS_TYPE_INDEPENDENT, /**< The simplest Wi-Fi configuration is called as Independent Basic Service Set (IBSS)
+ * the wired LAN is supported by a concept designated as Portal */
+ WIFI_BSS_TYPE_INDEPENDENT, /**< The simplest Wi-Fi configuration is called as the Independent Basic Service Set (IBSS)
* or ad hoc @n
* The IBSS is a self-contained network that only supports direct communication
- * between Stations (STAs) that belong to the same BSS. @n
+ * between Stations (STAs) that belong to the same BSS @n
* The most common example of this connection is the use of Wi-Fi to establish
- * peer-to-peer network connection between two STAs. */
+ * peer-to-peer network connection between two STAs */
WIFI_BSS_TYPE_ANY, /**< The type with no specification */
WIFI_BSS_TYPE_MAX = 65535 // This enum value is for internal use only. Using this enum value can cause behavioral,
// security-related, and consistency-related issues in the application.
*/
enum WifiEncryptionType
{
- WIFI_ENCRYPTION_NONE = 0, /**< The type with no encryption */
- WIFI_ENCRYPTION_WEP, /**< The Wired Equivalent Privacy @n This is only used for open and shared methods. */
+ WIFI_ENCRYPTION_NONE = 0, /**< No encryption type */
+ WIFI_ENCRYPTION_WEP, /**< The Wired Equivalent Privacy @n This is only used for open and shared methods */
WIFI_ENCRYPTION_TKIP, /**< The Temporal Key Integrity Protocol */
WIFI_ENCRYPTION_AES, /**< The Advanced Encryption Standard */
WIFI_ENCRYPTION_TKIP_AES_MIXED, /**< The TKIP and AES are both supported */
*/
enum WifiWepKeyLen
{
- WIFI_WEP_KEY_LEN_64BIT = 0, /**< @if OSPDEPREC The WEP key of length 64bits @n
- * The minimum length of the WEP key is 5 digits (40bits). @endif */
- WIFI_WEP_KEY_LEN_128BIT, /**< @if OSPDEPREC The WEP key of length 128bits @n
- * The minimum length of the WEP key is 13 digits (104bits). @endif */
+ WIFI_WEP_KEY_LEN_64BIT = 0, /**< @if OSPDEPREC The WEP key of length @c 64 bits @n
+ * The minimum length of the WEP key is @c 5 digits (@c 40 bits) @endif */
+ WIFI_WEP_KEY_LEN_128BIT, /**< @if OSPDEPREC The WEP key of length @c 128 bits @n
+ * The minimum length of the WEP key is @c 13 digits (@c 104 bits) @endif */
WIFI_WEP_KEY_LEN_MAX = 65535 // This enum value is for internal use only. Using this enum value can cause behavioral,
// security-related, and consistency-related issues in the application.
};
enum WifiDirectGroupMemberType
{
WIFI_DIRECT_GROUP_MEMBER_TYPE_NONE = 0, /**< The Wi-Fi Direct Group Non-member @n That is, the device does not belong to any
- * group. */
+ * group */
WIFI_DIRECT_GROUP_MEMBER_TYPE_OWNER, /**< The Wi-Fi Direct Group Owner */
WIFI_DIRECT_GROUP_MEMBER_TYPE_CLIENT /**< The Wi-Fi Direct Group Client */
};
/**
* @enum WifiDirectDeviceTypeCategory
*
- * Defines the category of the Wi-Fi Direct device type.
+ * Defines the category of a Wi-Fi Direct device type.
*
* @since 2.0
*/
enum WifiDirectAssociationTerminationReason
{
WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_SELF_INITIATED = 0, /**< @if OSPDEPREC The enumerator that is delivered to a group
- * owner or group client who initiates the disassociation
+ * owner or group client who initiates a disassociation
* request @endif */
WIFI_DIRECT_ASSOCIATION_TERMINATION_REASON_DISCONNECTED /**< @if OSPDEPREC The enumerator that is delivered to a group
- * owner or group client who receives the disassociation
+ * owner or group client who receives a disassociation
* request or when a client is disconnected due to out of
* range or abrupt connection loss to the group owner
* @endif */
/**
* @enum WifiWpsConfigurationMode
*
- * Defines the configuration method for the Wi-Fi Protected Setup (WPS).
+ * Defines the configuration method for a Wi-Fi Protected Setup (WPS).
*
* @since 2.0
*/
{
WIFI_WPS_CONFIG_MODE_NONE = 0, /**< The configuration mode with no method to be provided */
WIFI_WPS_CONFIG_MODE_PIN_DISPLAY, /**< A method to display the PIN code */
- WIFI_WPS_CONFIG_MODE_PIN_KEYPAD, /**< A method to provide the keypad to input the PIN */
+ WIFI_WPS_CONFIG_MODE_PIN_KEYPAD, /**< A method to provide a keypad to input the PIN */
WIFI_WPS_CONFIG_MODE_PBC /**< A method of Push Button Configuration (PBC) */
};
/**
* @enum WifiConnectionState
*
- * Defines the state of the Wi-Fi connection.
+ * Defines the state of a Wi-Fi connection.
*
* @since 2.0
*/
/**
* @enum WifiSystemScanMode
*
- * Defines the mode of the Wi-Fi background system behaviors, mainly about background scanning.
+ * Defines the mode of a Wi-Fi background system's behavior, mainly based on background scanning.
*
* @since 2.0
*/
enum WifiSystemScanMode
{
- WIFI_SYSTEM_SCAN_MODE_ACTIVE = 0, /**< The background scanning is performed with the short and fixed time interval
+ WIFI_SYSTEM_SCAN_MODE_ACTIVE = 0, /**< The background scanning is performed within a short and fixed time interval
* (10 seconds) during which the Wi-Fi connection is not established @n The Wi-Fi
- * target picker popup for connection is not launched when Wi-Fi is turned on. @n
- * Generally, this mode is for the case that the Wi-Fi setting app is running on
- * foreground. */
- WIFI_SYSTEM_SCAN_MODE_PASSIVE /**< The background scanning is performed with the exponential backoff time interval
+ * target picker popup for connection is not launched when Wi-Fi is turned on @n
+ * Generally, this mode is for a case where the Wi-Fi setting app is running in the
+ * foreground */
+ WIFI_SYSTEM_SCAN_MODE_PASSIVE /**< The background scanning is performed within an exponential backoff time interval
* (8, 16, ..., and finally 128 seconds) during which the Wi-Fi connection is not
* established @n
- * The Wi-Fi target picker popup for connection is launched when Wi-Fi is turned on. @n
- * Generally, this mode is for the both cases that the Wi-Fi setting app is running on
- * background and terminated. */
+ * The Wi-Fi target picker popup for connection is launched when Wi-Fi is turned on @n
+ * Generally, this mode is applicable for cases where the Wi-Fi setting app is running in the background
+ * and is terminated */
};
} } } // Tizen::Net::Wifi
Version: @VERSION@
Requires: @PC_REQUIRED@
Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir}
\ No newline at end of file
+Cflags: -I${includedir} -I${includedir}/net
Version: @VERSION@
Requires: @PC_REQUIRED@
Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir}
\ No newline at end of file
+Cflags: -I${includedir} -I${includedir}/net
+++ /dev/null
-* Tue Sep 24 2013 Anas Nashif <anas.nashif@intel.com> 2.2_release@9cbe183
-- Merge branch 'tizen_2.2' into tizen
-- fix gbs/obs build failure
-- Update doxygen.
-- Fix for N_SE-45945
-- remove the disconnceting state that was used to determine a group owner or group client
-- Merge "Modified to use wifi_direct_disconnect() instead of wifi_direct_disconnect_all() when a conenction canceling process" into tizen_2.2
-- change the tag when there are several conditions in a method
-- Modified to use wifi_direct_disconnect() instead of wifi_direct_disconnect_all() when a conenction canceling process
-- fix the problem PREVENT reports
-- Merge "Update doxygen" into tizen_2.2
-- Update doxygen
-- restore if tag from cond tag
-- Update doxygen
-- Merge "change version to 1.2.2.0" into tizen_2.2
-- Merge "remove link in brief tag" into tizen_2.2
-- change version to 1.2.2.0
-- remove link in brief tag
-- Fix a crash issue when the application is terminating.
-- Merge "Prevent problem with static instance destructors" into tizen_2.2
-- Prevent problem with static instance destructors
-- Synchronized, Between tizen_2.1 and tizen_2.2
-- Fixed Jira isse(DCM-1742)
-- Merge "Modify the internal state management logic." into tizen_2.1
-- Modify the internal state management logic.
-- Merge "Add the exception handling when using manual cert mode" into tizen_2.1
-- Add the exception handling when using manual cert mode
-- update header for Doxygen
-- Add osp-wifi.pc.in / Modify CMakeList & spec.
-
-* Tue Sep 17 2013 Anas Nashif <anas.nashif@intel.com> accepted/tizen/20130520.101532@2164bcb
-- cleanup packaging
-
%files internal-devel
%{_includedir}/osp/net/*
+
+
inc
/usr/include/chromium
/usr/include/curl
- /usr/include/glib-2.0
+ /usr/include/glib-2.0
/usr/lib/glib-2.0/include
/usr/include/libxml2
/usr/include/wifi-direct
FNet_LocalDhcpServerImpl.cpp
FNetDhcpClientInfo.cpp
FNet_DhcpClientInfoImpl.cpp
- FNet_NetAccountDatabase.cpp
FNet_NetConnectionEvent.cpp
FNet_NetConnectionEventArg.cpp
- FNet_NetExporter.cpp
FNet_NetUtility.cpp
FNet_SystemNetConnection.cpp
FNet_DefaultSystemNetConnection.cpp
TARGET_LINK_LIBRARIES(${this_target} "-lxml2" )
TARGET_LINK_LIBRARIES(${this_target} "-lcrypto" )
-SET_TARGET_PROPERTIES(${this_target}
- PROPERTIES
+SET_TARGET_PROPERTIES(${this_target}
+ PROPERTIES
VERSION ${FULLVER}
SOVERSION ${MAJORVER}
CLEAN_DIRECT_OUTPUT 1
)
-
SET(PC_NAME ${this_target})
SET(VERSION ${FULLVER})
SET(PC_LDFLAGS -l${this_target})
NetAccountId
NetAccountManager::GetNetAccountId(NetBearerType netBearerType) const
{
- result r = E_SUCCESS;
NetAccountId netAccountId = INVALID_HANDLE;
SysAssertf(__pNetAccountManagerImpl != null, "Not yet constructed. Construct() should be called before use.");
#ifndef _OSP_EMUL_
+ result r = E_SUCCESS;
+
if (netBearerType == NET_BEARER_PS)
{
static const wchar_t _TELEPHONY[] = L"http://tizen.org/feature/network.telephony";
* @brief This is the implementation for the %NetAccountManager class. (only partner visibility)
*/
-#include <net_connection.h>
#include <FNetNetAccountManager.h>
#include <FBaseSysLog.h>
#include <FSec_AccessController.h>
#include <FSys_SystemInfoImpl.h>
#include "FNet_NetTypes.h"
-#include "FNet_NetAccountDatabase.h"
#include "FNet_NetAccountInfoImpl.h"
#include "FNet_NetAccountManagerImpl.h"
#include "FNet_NetConnectionManagerImpl.h"
NetAccountManager::UpdateSystemNetAccount(const NetAccountInfo& netAccountInfo)
{
result r = E_SUCCESS;
- String profileName;
NetBearerType bearerType = netAccountInfo.GetBearerType();
SysAssertf(__pNetAccountManagerImpl != null, "Not yet constructed. Construct() should be called before use.");
"Invalid argument is used. accountId=%d", netAccountInfo.GetAccountId());
SysTryReturnResult(NID_NET, !netAccountInfo.GetAccountName().IsEmpty(), E_INVALID_ARG,
"Invalid argument is used. accountName is an empty string.");
-
- r = _NetAccountDatabase::GetProfileName(netAccountInfo.GetAccountId(), profileName);
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_INVALID_ARG,
+ SysTryReturnResult(NID_NET, ((bearerType == NET_BEARER_PS) || (bearerType == NET_BEARER_MMS)), E_INVALID_ARG,
"Invalid argument is used. accountId=%d", netAccountInfo.GetAccountId());
_NetIpcProxy* pProxy = _NetIpcProxy::GetInstance();
SysTryReturnResult(NID_NET, pProxy != null, E_SYSTEM,
"A system error has been occurred. Failed to get an IPC proxy.");
- r = pProxy->UpdateSystemNetAccount(profileName, netAccountInfo, bearerType);
+ r = pProxy->UpdateSystemNetAccount(netAccountInfo);
SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
- r = _NetAccountDatabase::UpdateAccountName(netAccountInfo.GetAccountId(), netAccountInfo.GetAccountName());
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM,
- "A system error has been occurred. Failed to update account name.");
-
return r;
}
r = pProxy->GetAppNetAccountId(netProfileName, netAccountId);
SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Propagating.", GetErrorMessage(r));
- if (netAccountId == _DEFAULT_PS_ACCOUNT_ID)
- {
- netAccountId = _NetAccountManagerImpl::GetInternetAccountId();
- }
- else if (netAccountId == _DEFAULT_MMS_ACCOUNT_ID)
- {
- netAccountId = _NetAccountManagerImpl::GetMmsAccountId();
- }
-
ClearLastResult();
return netAccountId;
* This file contains the implementation of _DefaultSystemNetConnection class.
*/
-#include <net_connection.h>
#include <FNetNetConnectionInfo.h>
#include <FBaseRtMutexGuard.h>
#include <FBaseSysLog.h>
#include <FBase_StringConverter.h>
#include "FNet_NetTypes.h"
-#include "FNet_NetConnectionInfoImpl.h"
#include "FNet_DefaultSystemNetConnection.h"
+#include "FNet_NetConnectionInfoImpl.h"
#include "FNet_NetConnectionEvent.h"
#include "FNet_NetConnectionEventArg.h"
#include "FNet_NetUtility.h"
namespace Tizen { namespace Net {
-void
-ActiveConnectionTypeChangedCallback(connection_type_e type, void* pUserData)
-{
- _DefaultSystemNetConnection* pConnection = static_cast<_DefaultSystemNetConnection*>(pUserData);
- bool isBearerChanged = false;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = pConnection->GetConnectionHandle();
- connection_profile_h profileHandle = null;
-
- SysLog(NID_NET, "ActiveConnectionTypeChangedCallback() has been called with type : %d", type);
-
- if (type != CONNECTION_TYPE_DISCONNECTED)
- {
- // Connected
- if ((type == CONNECTION_TYPE_WIFI) && (pConnection->GetBearerType() != NET_BEARER_WIFI))
- {
- isBearerChanged = true;
- }
- else if ((type == CONNECTION_TYPE_CELLULAR) && (pConnection->GetBearerType() != NET_BEARER_PS))
- {
- isBearerChanged = true;
- }
-
- NetConnectionState oldState = pConnection->GetConnectionState();
-
- ret = connection_get_current_profile(connectionHandle, &profileHandle);
- SysTryReturnVoidResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_current_profile() is %d", GetErrorMessage(E_SYSTEM), ret);
-
- pConnection->UpdateConnectionInfo(profileHandle);
- connection_profile_destroy(profileHandle);
-
- if (oldState != NET_CONNECTION_STATE_STARTED)
- {
- pConnection->HandleStartEvent();
- }
- else if (isBearerChanged)
- {
- pConnection->HandleChangedEvent();
- }
- else
- {
- SysLog(NID_NET, "Ignore the event, because this is already in started state.");
- }
- }
- else
- {
- // Not connected
- if ((pConnection->GetConnectionState() != NET_CONNECTION_STATE_NONE) && (pConnection->GetConnectionState() != NET_CONNECTION_STATE_STOPPED))
- {
- pConnection->UpdateConnectionInfo(null);
- pConnection->HandleStopEvent(E_NETWORK_FAILED);
- }
- else
- {
- SysLog(NID_NET, "Ignore the event, because this is already in stopped state.");
- }
- }
-}
-
_DefaultSystemNetConnection::_DefaultSystemNetConnection(void)
- : __pConnectionHandle(null)
+ : __pIpcProxy(null)
{
}
_DefaultSystemNetConnection::Construct(void)
{
result r = E_SUCCESS;
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_type_e type = CONNECTION_TYPE_DISCONNECTED;
-
- SysAssertf(__pConnectionHandle == null,
- "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
+ _NetConnectionInfoImpl* pConnectionInfoImpl = null;
r = _SystemNetConnection::Initialize(L"DEFAULT");
SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
- ret = connection_create(&connectionHandle);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d", GetErrorMessage(E_SYSTEM), ret);
- pConnectionHandle.reset(connectionHandle);
+ __proxyAddress.Clear();
- ret = connection_set_type_changed_cb(connectionHandle, ActiveConnectionTypeChangedCallback, this);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_set_type_changed_cb() is %d", GetErrorMessage(E_SYSTEM), ret);
+ __pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryCatch(NID_NET, __pIpcProxy != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to initialize IPC client.");
- ret = connection_get_type(connectionHandle, &type);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_type() is %d", GetErrorMessage(E_SYSTEM), ret);
-
- if (type != CONNECTION_TYPE_DISCONNECTED)
- {
- // Default connection is ON
- SysLog(NID_NET, "Default connection is ON. type=%d", type);
+ r = __pIpcProxy->AddDefaultConnectionListener(this, _connectionState, _bearerType, __connectionInfo);
+ SysTryCatch(NID_NET, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
- connection_profile_h profileHandle = null;
-
- ret = connection_get_current_profile(connectionHandle, &profileHandle);
- if (ret == CONNECTION_ERROR_NONE)
- {
- UpdateConnectionInfo(profileHandle);
- connection_profile_destroy(profileHandle);
- }
- else
- {
- SysLog(NID_NET, "The return value from connection_get_current_profile() is %d", ret);
- UpdateConnectionInfo(null);
- }
- }
- else
+ pConnectionInfoImpl = _NetConnectionInfoImpl::GetInstance(__connectionInfo);
+ if (pConnectionInfoImpl != null)
{
- // Default connection is OFF
- SysLog(NID_NET, "Default connection is OFF.");
- UpdateConnectionInfo(null);
+ __proxyAddress = pConnectionInfoImpl->GetProxyAddress();
}
- __pConnectionHandle = move(pConnectionHandle);
+ SysLog(NID_NET, "Default connection state[%d] bearer[%d] proxy[%ls]", _connectionState, _bearerType, __proxyAddress.GetPointer());
return r;
CATCH:
+ __pIpcProxy = null;
_SystemNetConnection::Deinitialize();
return r;
}
void
-_DefaultSystemNetConnection::HandleStartEvent(void)
+_DefaultSystemNetConnection::GetConnectionInfo(NetConnectionInfo& netConnectionInfo)
{
- _NetConnectionEvent* pEvent = null;
- _NetConnectionEventArg* pEventArg = null;
-
- SysLog(NID_NET, "[%ls] Notify started event.", _name.GetPointer());
-
MutexGuard locked(*_pLock);
- unique_ptr<IEnumerator> pEnum(_pEventList->GetEnumeratorN());
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
- if (pEvent != null)
- {
- // Sends event which doesn't invoke start.
- if (pEvent->GetConnectionState() != NET_CONNECTION_STATE_STARTED)
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STARTED);
- pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, E_SUCCESS);
- if (pEventArg != null)
- {
- pEvent->FireAsync(*pEventArg);
- }
- }
- }
- }
- }
+ netConnectionInfo = __connectionInfo;
+}
+
+String
+_DefaultSystemNetConnection::GetProxyAddress(void) const
+{
+ SysLog(NID_NET, "GetProxyAddress() has done with proxy[%ls]", __proxyAddress.GetPointer());
- locked.Unlock();
+ return __proxyAddress;
}
void
-_DefaultSystemNetConnection::HandleStopEvent(result error)
+_DefaultSystemNetConnection::ProcessEvent(result error, _NetConnectionEventType type, NetConnectionState state, NetBearerType bearer, const NetConnectionInfo& connectionInfo)
{
_NetConnectionEvent* pEvent = null;
_NetConnectionEventArg* pEventArg = null;
+ _NetConnectionInfoImpl* pConnectionInfoImpl = null;
- SysLog(NID_NET, "[%ls] Notify stopped event.", _name.GetPointer());
+ SysLog(NID_NET, "Notify default connection changed event. type[%d] state[%d] bearer[%d]", type, state, bearer);
MutexGuard locked(*_pLock);
- _refCount = 0;
+ _connectionState = state;
+ _bearerType = bearer;
+ __connectionInfo = connectionInfo;
- unique_ptr<IEnumerator> pEnum(_pEventList->GetEnumeratorN());
- if (pEnum != null)
+ pConnectionInfoImpl = _NetConnectionInfoImpl::GetInstance(__connectionInfo);
+ if (pConnectionInfoImpl != null)
{
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
- if (pEvent != null)
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, error);
- if (pEventArg != null)
- {
- pEvent->FireAsync(*pEventArg);
- }
- }
- }
+ __proxyAddress = pConnectionInfoImpl->GetProxyAddress();
}
- locked.Unlock();
-}
-
-void
-_DefaultSystemNetConnection::HandleChangedEvent(void)
-{
- _NetConnectionEvent* pEvent = null;
- _NetConnectionEventArg* pEventArg = null;
-
- SysLog(NID_NET, "[%ls] Notify bearer changed event.", _name.GetPointer());
-
- MutexGuard locked(*_pLock);
-
unique_ptr<IEnumerator> pEnum(_pEventList->GetEnumeratorN());
if (pEnum != null)
{
pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
if (pEvent != null)
{
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STARTED);
- pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_CHANGED, E_SUCCESS);
+ if (type == _NET_CONNECTION_EVENT_TYPE_STARTED)
+ {
+ pEvent->SetConnectionState(NET_CONNECTION_STATE_STARTED);
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, E_SUCCESS);
+ }
+ else if (type == _NET_CONNECTION_EVENT_TYPE_STOPPED)
+ {
+ pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, error);
+ }
+ else if (type == _NET_CONNECTION_EVENT_TYPE_CHANGED)
+ {
+ pEvent->SetConnectionState(NET_CONNECTION_STATE_STARTED);
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_CHANGED, E_SUCCESS);
+ }
+ else
+ {
+ pEventArg = null;
+ }
+
if (pEventArg != null)
{
pEvent->FireAsync(*pEventArg);
}
}
}
-
- locked.Unlock();
}
void
-_DefaultSystemNetConnection::UpdateConnectionInfo(void* pData)
-{
- connection_profile_h profileHandle = pData;
- connection_profile_type_e type = CONNECTION_PROFILE_TYPE_WIFI;
- int ret = CONNECTION_ERROR_NONE;
-
- MutexGuard locked(*_pLock);
-
- if (pData != null)
- {
- ret = connection_profile_get_type(profileHandle, &type);
- SysLog(NID_NET, "The return value from connection_profile_get_type() is %d, Type is %d", ret, type);
- if (type == CONNECTION_PROFILE_TYPE_WIFI)
- {
- _bearerType = NET_BEARER_WIFI;
- }
- else
- {
- _bearerType = NET_BEARER_PS;
- }
-
- _connectionState = NET_CONNECTION_STATE_STARTED;
- _pConnectionInfo->Update(pData, true);
- }
- else
- {
- _bearerType = NET_BEARER_NONE;
- _connectionState = NET_CONNECTION_STATE_STOPPED;
- _pConnectionInfo->Clear();
- }
-
- locked.Unlock();
-}
-
-void*
-_DefaultSystemNetConnection::GetConnectionHandle(void) const
+_DefaultSystemNetConnection::ProcessProxyChangedEvent(const String& proxy)
{
- return __pConnectionHandle.get();
+ __proxyAddress = proxy;
}
} } // Tizen::Net
#ifndef _FNET_INTERNAL_DEFAULT_SYSTEM_NET_CONNECTION_H_
#define _FNET_INTERNAL_DEFAULT_SYSTEM_NET_CONNECTION_H_
+#include <FBaseString.h>
+#include <FNetNetConnectionInfo.h>
#include "FNet_SystemNetConnection.h"
+#include "FNet_NetTypes.h"
#include "FNet_NetUtility.h"
+#include "FNet_NetIpcProxy.h"
namespace Tizen { namespace Net {
/**
*/
result Construct(void);
- virtual void HandleStartEvent(void);
- virtual void HandleStopEvent(result error);
+ virtual void GetConnectionInfo(NetConnectionInfo& netConnectionInfo);
+ virtual Tizen::Base::String GetProxyAddress(void) const;
- void HandleChangedEvent(void);
-
- void UpdateConnectionInfo(void* pData);
- void* GetConnectionHandle(void) const;
+ void ProcessEvent(result error, _NetConnectionEventType type, NetConnectionState state, NetBearerType bearer, const NetConnectionInfo& connectionInfo);
+ void ProcessProxyChangedEvent(const Tizen::Base::String& proxy);
private:
/**
_DefaultSystemNetConnection& operator =(const _DefaultSystemNetConnection& rhs);
private:
- std::unique_ptr<void, _ConnectionDeleter> __pConnectionHandle;
+ _NetIpcProxy* __pIpcProxy;
+ NetConnectionInfo __connectionInfo;
+ Tizen::Base::String __proxyAddress;
}; // _DefaultSystemNetConnection
+++ /dev/null
-//
-// Open Service Platform
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
-//
-// 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.
-//
-/**
-* @file FNet_NetAccountDatabase.cpp
-* @brief This is the implementation file for the %_NetAccountDatabase class.
-*
-* This file contains the implementation of the %_NetAccountDatabase class.
-*/
-
-#include <unique_ptr.h>
-#include <FBaseString.h>
-#include <FBaseColIList.h>
-#include <FBaseColIListT.h>
-#include <FIoDatabase.h>
-#include <FIoDbStatement.h>
-#include <FIoDbEnumerator.h>
-#include <FIoDirectory.h>
-#include <FAppApp.h>
-#include <FBaseSysLog.h>
-#include <FApp_AppInfo.h>
-#include "FNet_NetTypes.h"
-#include "FNet_NetUtility.h"
-#include "FNet_NetAccountDatabase.h"
-
-using namespace std;
-using namespace Tizen::App;
-using namespace Tizen::Base;
-using namespace Tizen::Base::Collection;
-using namespace Tizen::Io;
-
-namespace Tizen { namespace Net {
-
-result
-_NetAccountDatabase::InitializeRepository(void)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_CREATE_TABLE_STATEMENT[] =
- L"CREATE TABLE IF NOT EXISTS NetAccountTable (accountId INTEGER UNIQUE, accountName TEXT(256) UNIQUE, profileName TEXT(256) UNIQUE, isReadOnly INTEGER)";
-
- result r = E_SUCCESS;
- Database accountDb;
-
- if (!Database::Exists(_NetAccountDatabase::GetDbPath()))
- {
- SysLog(NID_NET, "NetAccount database is NOT found, so create it now.");
- }
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), true);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = accountDb.ExecuteSql(String(_NET_ACCOUNT_DATABASE_CREATE_TABLE_STATEMENT), true);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- return r;
-}
-
-result
-_NetAccountDatabase::AddAccount(const String& accountName, const String& profileName, _NetAccountOwner owner, NetAccountId& accountId)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_MAX_ACCOUNT_ID_STATEMENT[] =
- L"SELECT MAX(accountId) FROM NetAccountTable";
- static const wchar_t _NET_ACCOUNT_DATABASE_ADD_ACCOUNT_STATEMENT[] =
- L"INSERT INTO NetAccountTable (accountId, accountName, profileName, isReadOnly) VALUES(?, ?, ?, ?)";
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
- bool isReadOnly = true;
- NetAccountId netAccountId = INVALID_HANDLE;
-
- SysSecureLog(NID_NET, "AddAccount() has been called with accountName:%ls, profileName:%ls, owner:%d",
- accountName.GetPointer(), profileName.GetPointer(), owner);
-
- accountId = INVALID_HANDLE;
-
- SysTryReturnResult(NID_NET, !accountName.IsEmpty(), E_INVALID_ARG, "Invalid argument is used. accountName is an empty string.");
- SysTryReturnResult(NID_NET, !profileName.IsEmpty(), E_INVALID_ARG, "Invalid argument is used. profileName is an empty string.");
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- if (owner == _NET_ACCOUNT_OWNER_THIS)
- {
- isReadOnly = false;
- }
- else
- {
- isReadOnly = true;
- }
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_MAX_ACCOUNT_ID_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetIntAt(0, netAccountId);
- break;
- }
- }
-
- if (netAccountId >= _PS_ACCOUNT_ID_START)
- {
- netAccountId++;
- }
- else
- {
- netAccountId = _PS_ACCOUNT_ID_START;
- }
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_ADD_ACCOUNT_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindInt(0, netAccountId);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = pStmt->BindString(1, accountName);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = pStmt->BindString(2, profileName);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = pStmt->BindInt(3, (int)isReadOnly);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- accountId = netAccountId;
-
- return r;
-}
-
-result
-_NetAccountDatabase::RemoveAccountByAccountId(NetAccountId accountId)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_REMOVE_ACCOUNT_BY_ACCOUNT_ID_STATEMENT[] =
- L"DELETE FROM NetAccountTable WHERE accountId=?";
-
- SysSecureLog(NID_NET, "RemoveAccountByAccountId() has been called with accountId:%d", accountId);
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
-
- SysTryReturnResult(NID_NET, accountId > 0, E_INVALID_ARG, "Invalid argument is used. accountId=%d", accountId);
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_REMOVE_ACCOUNT_BY_ACCOUNT_ID_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindInt(0, accountId);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- r = GetLastResult();
-
- return r;
-}
-
-result
-_NetAccountDatabase::RemoveAccountByProfileName(const String& profileName)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_REMOVE_ACCOUNT_BY_PROFILE_NAME_STATEMENT[] =
- L"DELETE FROM NetAccountTable WHERE profileName=?";
-
- SysLog(NID_NET, "RemoveAccountByProfileName() has been called with profileName:%ls", profileName.GetPointer());
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
-
- SysTryReturnResult(NID_NET, !profileName.IsEmpty(), E_INVALID_ARG, "Invalid argument is used. profileName is an empty string.");
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_REMOVE_ACCOUNT_BY_PROFILE_NAME_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindString(0, profileName);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- r = GetLastResult();
-
- return r;
-}
-
-result
-_NetAccountDatabase::UpdateAccountName(NetAccountId accountId, const String& accountName)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_UPDATE_ACCOUNT_NAME_STATEMENT[] =
- L"UPDATE NetAccountTable SET accountName=? WHERE accountId=?";
-
- SysSecureLog(NID_NET, "UpdateAccountName() has been called with accountId:%d, accountName:%ls", accountId, accountName.GetPointer());
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
-
- SysTryReturnResult(NID_NET, accountId > 0, E_INVALID_ARG, "AccountId[%d] is invalid.", accountId);
- SysTryReturnResult(NID_NET, !accountName.IsEmpty(), E_INVALID_ARG, "Invalid argument is used. accountName is an empty string.");
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_UPDATE_ACCOUNT_NAME_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindString(0, accountName);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = pStmt->BindInt(1, accountId);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- r = GetLastResult();
-
- return r;
-}
-
-IListT<NetAccountId>*
-_NetAccountDatabase::GetAccountIdsN(void)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_ACCOUNT_IDS_STATEMENT[] =
- L"SELECT accountId FROM NetAccountTable";
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
- unique_ptr< ArrayListT<NetAccountId> > pList;
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_ACCOUNT_IDS_STATEMENT)));
- r = GetLastResult();
- SysTryReturn(NID_NET, pStmt != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pList.reset(new (std::nothrow) ArrayListT<NetAccountId>());
- r = GetLastResult();
- SysTryReturn(NID_NET, pList != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = pList->Construct();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- r = GetLastResult();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- NetAccountId accountId = INVALID_HANDLE;
-
- r = pEnum->GetIntAt(0, accountId);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = pList->Add(accountId);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
- }
- }
-
- ClearLastResult(); // To suppress E_OUT_OF_RANGE
-
- return pList.release();
-}
-
-IList*
-_NetAccountDatabase::GetAccountNamesN(void)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_ACCOUNT_NAMES_STATEMENT[] =
- L"SELECT accountName FROM NetAccountTable";
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
- unique_ptr<ArrayList, _CollectionDeleter> pList;
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_ACCOUNT_NAMES_STATEMENT)));
- r = GetLastResult();
- SysTryReturn(NID_NET, pStmt != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pList.reset(new (std::nothrow) ArrayList());
- r = GetLastResult();
- SysTryReturn(NID_NET, pList != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = pList->Construct();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- r = GetLastResult();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- unique_ptr<String> pAccountName(new (std::nothrow) String());
- SysTryReturn(NID_NET, pAccountName != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- r = pEnum->GetStringAt(0, *pAccountName);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = pList->Add(*pAccountName);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pAccountName.release();
- }
- }
-
- ClearLastResult(); // To suppress E_OUT_OF_RANGE
-
- return pList.release();
-}
-
-IList*
-_NetAccountDatabase::GetProfileNamesN(void)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_PROFILE_NAMES_STATEMENT[] =
- L"SELECT profileName FROM NetAccountTable";
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
- unique_ptr<ArrayList, _CollectionDeleter> pList;
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_PROFILE_NAMES_STATEMENT)));
- r = GetLastResult();
- SysTryReturn(NID_NET, pStmt != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pList.reset(new (std::nothrow) ArrayList());
- r = GetLastResult();
- SysTryReturn(NID_NET, pList != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = pList->Construct();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- r = GetLastResult();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- unique_ptr<String> pProfileName(new (std::nothrow) String());
- SysTryReturn(NID_NET, pProfileName != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- r = pEnum->GetStringAt(0, *pProfileName);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = pList->Add(*pProfileName);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pProfileName.release();
- }
- }
-
- ClearLastResult(); // To suppress E_OUT_OF_RANGE
-
- return pList.release();
-}
-
-result
-_NetAccountDatabase::GetAccountName(NetAccountId accountId, String& accountName)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_ACCOUNT_NAME_STATEMENT[] =
- L"SELECT accountName FROM NetAccountTable WHERE accountId=?";
-
- SysSecureLog(NID_NET, "GetAccountName() has been called with accountId:%d", accountId);
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
-
- SysTryReturnResult(NID_NET, accountId > 0, E_INVALID_ARG, "Invalid argument is used. accountId=%d", accountId);
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_ACCOUNT_NAME_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindInt(0, accountId);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = E_OBJ_NOT_FOUND;
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetStringAt(0, accountName);
- r = E_SUCCESS;
- break;
- }
- }
-
- return r;
-}
-
-result
-_NetAccountDatabase::GetProfileName(NetAccountId accountId, String& profileName)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_PROFILE_NAME_STATEMENT[] =
- L"SELECT profileName FROM NetAccountTable WHERE accountId=?";
-
- SysSecureLog(NID_NET, "GetProfileName() has been called with accountId:%d", accountId);
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
-
- SysTryReturnResult(NID_NET, accountId > 0, E_INVALID_ARG, "Invalid argument is used. accountId=%d", accountId);
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_PROFILE_NAME_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindInt(0, accountId);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = E_OBJ_NOT_FOUND;
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetStringAt(0, profileName);
- r = E_SUCCESS;
- break;
- }
- }
-
- return r;
-}
-
-result
-_NetAccountDatabase::GetAccountIdByAccountName(const String& accountName, NetAccountId& accountId)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_ACCOUNT_ID_BY_ACCOUNT_NAME_STATEMENT[] =
- L"SELECT accountId FROM NetAccountTable WHERE accountName=?";
-
- SysSecureLog(NID_NET, "GetAccountIdByAccountName() has been called with accountName:%ls", accountName.GetPointer());
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
-
- SysTryReturnResult(NID_NET, !accountName.IsEmpty(), E_INVALID_ARG, "Invalid argument is used. accountName is an empty string.");
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_ACCOUNT_ID_BY_ACCOUNT_NAME_STATEMENT)));
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindString(0, accountName);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = E_OBJ_NOT_FOUND;
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetIntAt(0, accountId);
- r = E_SUCCESS;
- break;
- }
- }
-
- return r;
-}
-
-result
-_NetAccountDatabase::GetAccountIdByProfileName(const String& profileName, NetAccountId& accountId)
-{
- static const wchar_t _NET_ACCOUNT_DATABASE_GET_ACCOUNT_ID_BY_PROFILE_NAME_STATEMENT[] =
- L"SELECT accountId FROM NetAccountTable WHERE profileName=?";
-
- SysLog(NID_NET, "GetAccountIdByProfileName() has been called with profileName:%ls", profileName.GetPointer());
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
-
- SysTryReturnResult(NID_NET, !profileName.IsEmpty(), E_INVALID_ARG, "Invalid argument is used. profileName is an empty string.");
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pStmt.reset(accountDb.CreateStatementN(String(_NET_ACCOUNT_DATABASE_GET_ACCOUNT_ID_BY_PROFILE_NAME_STATEMENT)));
- r = GetLastResult();
- SysTryReturnResult(NID_NET, pStmt != null, r, "Propagating.");
-
- r = pStmt->BindString(0, profileName);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- r = E_OBJ_NOT_FOUND;
-
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetIntAt(0, accountId);
- r = E_SUCCESS;
- break;
- }
- }
-
- return r;
-}
-
-bool
-_NetAccountDatabase::IsReadOnly(NetAccountId accountId)
-{
- static const wchar_t NET_ACCOUNT_DATABASE_GET_IS_READ_ONLY_STATEMENT[] =
- L"SELECT isReadOnly FROM NetAccountTable WHERE accountId=?";
-
- SysSecureLog(NID_NET, "IsReadOnly() has been called with accountId:%d", accountId);
-
- result r = E_SUCCESS;
- Database accountDb;
- unique_ptr<DbStatement> pStmt;
- unique_ptr<DbEnumerator> pEnum;
- int isReadOnly = 1;
-
- SysTryReturn(NID_NET, accountId > 0, true, E_INVALID_ARG,
- "[%s] Invalid argument is used. accountId=%d", GetErrorMessage(E_INVALID_ARG), accountId);
-
- r = accountDb.Construct(_NetAccountDatabase::GetDbPath(), false);
- SysTryReturn(NID_NET, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pStmt.reset(accountDb.CreateStatementN(String(NET_ACCOUNT_DATABASE_GET_IS_READ_ONLY_STATEMENT)));
- r = GetLastResult();
- SysTryReturn(NID_NET, pStmt != null, true, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = pStmt->BindInt(0, accountId);
- SysTryReturn(NID_NET, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
-
- r = E_OBJ_NOT_FOUND;
- pEnum.reset(accountDb.ExecuteStatementN(*pStmt));
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetIntAt(0, isReadOnly);
- r = E_SUCCESS;
- break;
- }
- }
- SysTryReturn(NID_NET, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
-
- ClearLastResult();
-
- return (bool)isReadOnly;
-}
-
-String
-_NetAccountDatabase::GetDbPath(void)
-{
- static const wchar_t _OLD_DATA_PATH[] = L"/Home/";
- static const wchar_t _NET_ACCOUNT_DATABASE_FILE_NAME[] = L".tizen_netaccount.db";
-
- String dbPath;
- _ApiVersion apiVersion = _AppInfo::GetApiVersion();
-
- if (apiVersion == _API_VERSION_2_0 && _AppInfo::IsOspCompat())
- {
- dbPath = String(_OLD_DATA_PATH);
- }
- else
- {
- dbPath = Tizen::App::App::GetInstance()->GetAppDataPath();
- }
-
- dbPath += String(_NET_ACCOUNT_DATABASE_FILE_NAME);
-
- SysLog(NID_NET, "GetDbPath() has been succeeded with the path:%ls", dbPath.GetPointer());
-
- return dbPath;
-}
-
-}} // Tizen::Net
+++ /dev/null
-//
-// Open Service Platform
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
-//
-// 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.
-//
-/**
- * @file FNet_NetAccountDatabase.h
- * @brief This is the header file for the %_NetAccountDatabase class.
- *
- * This header file contains the declarations of the %_NetAccountDatabase class.
- */
-
-#ifndef _FNET_INTERNAL_NET_ACCOUNT_DATABASE_H_
-#define _FNET_INTERNAL_NET_ACCOUNT_DATABASE_H_
-
-#include <FBaseDataType.h>
-#include <FNetNetTypes.h>
-
-namespace Tizen { namespace Base
-{
-class String;
-} } // Tizen::Base
-
-namespace Tizen { namespace Base { namespace Collection
-{
-template<class Type> class IListT;
-class IList;
-} } } // Tizen::Base::Collection
-
-namespace Tizen { namespace Net {
-
-enum _NetAccountOwner
-{
- _NET_ACCOUNT_OWNER_OTHER,
- _NET_ACCOUNT_OWNER_THIS
-};
-
-/**
- * @class _NetAccountDatabase
- * @brief This class represents a database for the network account.
- * @since 2.1
- *
- * This class represents a database for the network account.
- */
-class _NetAccountDatabase
-{
-public:
- static result InitializeRepository(void);
- static result AddAccount(const Tizen::Base::String& accountName, const Tizen::Base::String& profileName, _NetAccountOwner owner, NetAccountId& accountId);
- static result RemoveAccountByAccountId(NetAccountId accountId);
- static result RemoveAccountByProfileName(const Tizen::Base::String& profileName);
- static result UpdateAccountName(NetAccountId accountId, const Tizen::Base::String& accountName);
- static Tizen::Base::Collection::IListT<NetAccountId>* GetAccountIdsN(void);
- static Tizen::Base::Collection::IList* GetAccountNamesN(void);
- static Tizen::Base::Collection::IList* GetProfileNamesN(void);
- static result GetAccountName(NetAccountId accountId, Tizen::Base::String& accountName);
- static result GetProfileName(NetAccountId accountId, Tizen::Base::String& profileName);
- static result GetAccountIdByAccountName(const Tizen::Base::String& accountName, NetAccountId& accountId);
- static result GetAccountIdByProfileName(const Tizen::Base::String& profileName, NetAccountId& accountId);
- static bool IsReadOnly(NetAccountId accountId);
-
-private:
- static Tizen::Base::String GetDbPath(void);
-
-private:
- _NetAccountDatabase(void);
- virtual ~_NetAccountDatabase(void);
-
- _NetAccountDatabase(const _NetAccountDatabase& rhs);
- _NetAccountDatabase& operator =(const _NetAccountDatabase& rhs);
-}; // _NetAccountDatabase
-
-} } // Tizen::Net
-#endif // _FNET_INTERNAL_NET_ACCOUNT_DATABASE_H_
-
* @brief This is the implementation for the %_NetAccountInfoImpl class.
*/
-#include <net_connection.h>
#include <FBaseString.h>
#include <FNetNetTypes.h>
#include <FNetNetEndPoint.h>
#include <FBase_StringConverter.h>
#include "FNet_NetTypes.h"
#include "FNet_NetAccountInfoImpl.h"
-#include "FNet_NetAccountDatabase.h"
using namespace std;
using namespace Tizen::Base;
return E_SUCCESS;
}
-result
-_NetAccountInfoImpl::Construct(NetAccountInfo* pAccountInfo, void* pProfileHandle)
-{
- result r = E_SUCCESS;
- NetAccountId accountId = INVALID_HANDLE;
- String accountName;
- String accessPointName;
- NetNapAuthType authType = NET_NAPAUTH_NONE;
- String authId;
- String authPassword;
- String homeUrl;
- NetBearerType bearerType;
- NetProtocolType protocolType;
- NetAddressScheme localAddressScheme;
- NetAddressScheme dnsAddressScheme;
- std::unique_ptr<IpAddress> pLocalAddress;
- std::unique_ptr<IpAddress> pPrimaryDnsAddress;
- std::unique_ptr<IpAddress> pSecondaryDnsAddress;
- std::unique_ptr<NetEndPoint> pProxyAddress;
- bool isReadOnly = true;
- int ret = CONNECTION_ERROR_NONE;
- connection_profile_h profileHandle = static_cast<connection_profile_h>(pProfileHandle);
-
- SysAssertf(__bearerType == NET_BEARER_NONE,
- "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
-
- SysTryReturnResult(NID_NET, pAccountInfo != null, E_INVALID_ARG, "Invalid argument is used. The account info is null.");
- SysTryReturnResult(NID_NET, profileHandle != null, E_INVALID_ARG, "Invalid argument is used. The profile handle is null.");
-
- connection_profile_type_e profileType = CONNECTION_PROFILE_TYPE_CELLULAR;
- ret = connection_profile_get_type(profileHandle, &profileType);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_get_type() is %d", ret);
-
- if (profileType == CONNECTION_PROFILE_TYPE_CELLULAR)
- {
- String profileName;
- char* pProfileName = null;
- char* pApn = null;
- connection_cellular_service_type_e serviceType = CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN;
- connection_cellular_auth_type_e netAuthType = CONNECTION_CELLULAR_AUTH_TYPE_NONE;
- char* pAuthId = null;
- char* pAuthPassword = null;
- char* pHomeUrl = null;
-
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_get_id() is %d", ret);
-
- profileName = String(pProfileName);
- free(pProfileName);
-
- r = _NetAccountDatabase::GetAccountIdByProfileName(profileName, accountId);
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM,
- "A system error has been occurred. Failed to get the account Id from DB.");
-
- r = _NetAccountDatabase::GetAccountName(accountId, accountName);
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM,
- "A system error has been occurred. Failed to get the account name from DB.");
-
- connection_profile_get_cellular_service_type(profileHandle, &serviceType);
- if ((serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_MMS) || (serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS))
- {
- bearerType = NET_BEARER_MMS;
- isReadOnly = true;
- }
- else if ((serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET) || (serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET))
- {
- bearerType = NET_BEARER_PS;
- isReadOnly = true;
- }
- else
- {
- bearerType = NET_BEARER_PS;
- isReadOnly = false;
- }
-
- ret = connection_profile_get_cellular_apn(profileHandle, &pApn);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_get_cellular_apn() is %d", ret);
-
- accessPointName = String(pApn);
- free(pApn);
-
- ret = connection_profile_get_cellular_auth_info(profileHandle, &netAuthType, &pAuthId, &pAuthPassword);
- if (netAuthType == CONNECTION_CELLULAR_AUTH_TYPE_PAP)
- {
- authType = NET_NAPAUTH_PAP;
- }
- else if (netAuthType == CONNECTION_CELLULAR_AUTH_TYPE_CHAP)
- {
- authType = NET_NAPAUTH_CHAP;
- }
- else
- {
- authType = NET_NAPAUTH_NONE;
- }
-
- if (pAuthId != null)
- {
- authId = String(pAuthId);
- free(pAuthId);
- }
-
- if (pAuthPassword != null)
- {
- authPassword = String(pAuthPassword);
- free(pAuthPassword);
- }
-
- ret = connection_profile_get_cellular_home_url(profileHandle, &pHomeUrl);
- if ((ret == CONNECTION_ERROR_NONE) && (pHomeUrl != null))
- {
- homeUrl = String(pHomeUrl);
- free(pHomeUrl);
- }
- }
- else if (profileType == CONNECTION_PROFILE_TYPE_WIFI)
- {
- accountId = _DEFAULT_WIFI_ACCOUNT_ID;
- bearerType = NET_BEARER_WIFI;
- }
- else
- {
- SysLogException(NID_NET, E_INVALID_ARG, "[%s] Invalid argument is used. The profile info is invalid.", GetErrorMessage(E_INVALID_ARG));
- return E_INVALID_ARG;
- }
-
- protocolType = NET_PROTO_TYPE_IPV4;
-
- connection_ip_config_type_e ipConfigType = CONNECTION_IP_CONFIG_TYPE_NONE;
- ret = connection_profile_get_ip_config_type(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &ipConfigType);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_get_ip_config_type() is %d", ret);
- if ((ipConfigType == CONNECTION_IP_CONFIG_TYPE_STATIC) || (ipConfigType == CONNECTION_IP_CONFIG_TYPE_FIXED))
- {
- localAddressScheme = NET_ADDRESS_SCHEME_STATIC;
- dnsAddressScheme = NET_ADDRESS_SCHEME_STATIC;
- }
- else
- {
- localAddressScheme = NET_ADDRESS_SCHEME_DYNAMIC;
- dnsAddressScheme = NET_ADDRESS_SCHEME_DYNAMIC;
- }
-
- char* pIpAddr = null;
- String ipAddr;
-
- ret = connection_profile_get_ip_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pIpAddr != null))
- {
- ipAddr = String(pIpAddr);
- pLocalAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- free(pIpAddr);
- pIpAddr = null;
- SysTryReturnResult(NID_NET, pLocalAddress != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- }
-
- ret = connection_profile_get_dns_address(profileHandle, 1, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pIpAddr != null))
- {
- ipAddr = String(pIpAddr);
- pPrimaryDnsAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- free(pIpAddr);
- pIpAddr = null;
- SysTryReturnResult(NID_NET, pPrimaryDnsAddress != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- }
-
- ret = connection_profile_get_dns_address(profileHandle, 2, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pIpAddr != null))
- {
- ipAddr = String(pIpAddr);
- pSecondaryDnsAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- free(pIpAddr);
- pIpAddr = null;
- SysTryReturnResult(NID_NET, pSecondaryDnsAddress != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- }
-
- char* pProxyAddr = null;
- String proxyAddr;
- int delimeterIndex = 0;
-
- ret = connection_profile_get_proxy_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &pProxyAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pProxyAddr != null))
- {
- proxyAddr = String(pProxyAddr);
- free(pProxyAddr);
-
- r = proxyAddr.IndexOf(L":", 0, delimeterIndex);
- if (r == E_SUCCESS)
- {
- String proxyIpAddr;
- String proxyPort;
- int port = 0;
-
- r = proxyAddr.SubString(0, delimeterIndex, proxyIpAddr);
- r = proxyAddr.SubString(delimeterIndex+1, proxyPort);
-
- Ip4Address address(proxyIpAddr);
- Integer::Parse(proxyPort, port);
-
- pProxyAddress.reset(new (std::nothrow) NetEndPoint(address, port));
- SysTryReturnResult(NID_NET, pProxyAddress != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- }
- }
-
- __accountId = accountId;
- __accountName = accountName;
- __accessPointName = accessPointName;
- __authType = authType;
- __authId = authId;
- __authPassword = authPassword;
- __homeUrl = homeUrl;
- __bearerType = bearerType;
- __protocolType = protocolType;
- __localAddressScheme = localAddressScheme;
- __dnsAddressScheme = dnsAddressScheme;
- __pLocalAddress = move(pLocalAddress);
- __pPrimaryDnsAddress = move(pPrimaryDnsAddress);
- __pSecondaryDnsAddress = move(pSecondaryDnsAddress);
- __pProxyAddress = move(pProxyAddress);
- __isReadOnly = isReadOnly;
-
- pAccountInfo->__pNetAccountInfoImpl = this;
-
- return E_SUCCESS;
-}
-
NetAccountId
_NetAccountInfoImpl::GetAccountId(void) const
{
return __isReadOnly;
}
-result
-_NetAccountInfoImpl::ConvertToProfileInfo(void* pProfileHandle) const
+void
+_NetAccountInfoImpl::SetReadOnly(bool isReadOnly)
{
- result r = E_SUCCESS;
- connection_profile_h profileHandle = static_cast<connection_profile_h>(pProfileHandle);
- int ret = CONNECTION_ERROR_NONE;
- connection_cellular_auth_type_e authType = CONNECTION_CELLULAR_AUTH_TYPE_NONE;
- connection_ip_config_type_e ipConfigType = CONNECTION_IP_CONFIG_TYPE_NONE;
-
- unique_ptr<char[]> pApn;
- unique_ptr<char[]> pAuthId;
- unique_ptr<char[]> pAuthPassword;
- unique_ptr<char[]> pHomeUrl;
- unique_ptr<char[]> pLocalAddr;
- unique_ptr<char[]> pPrimaryDnsAddr;
- unique_ptr<char[]> pSecondaryDnsAddr;
- unique_ptr<char[]> pProxyAddr;
- String proxyAddr;
-
- SysTryReturnResult(NID_NET, pProfileHandle != null, E_INVALID_ARG, "Profile handle is null.");
- SysTryReturnResult(NID_NET, ((__bearerType == NET_BEARER_PS) || (__bearerType == NET_BEARER_MMS)), E_INVALID_ARG,
- "Invalid argument is used. BearerType is NOT PS. bearerType=%d", __bearerType);
-
- ret = connection_profile_set_cellular_service_type(profileHandle, CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_cellular_service_type() is %d", ret);
-
- if (!__accessPointName.IsEmpty())
- {
- pApn.reset(_StringConverter::CopyToCharArrayN(__accessPointName));
- SysTryReturnResult(NID_NET, pApn != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- ret = connection_profile_set_cellular_apn(profileHandle, pApn.get());
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_cellular_apn() is %d", ret);
- }
-
- if (__authType == NET_NAPAUTH_PAP)
- {
- authType = CONNECTION_CELLULAR_AUTH_TYPE_PAP;
- }
- else if (__authType == NET_NAPAUTH_CHAP)
- {
- authType = CONNECTION_CELLULAR_AUTH_TYPE_CHAP;
- }
- else
- {
- authType = CONNECTION_CELLULAR_AUTH_TYPE_NONE;
- }
-
- if (!__authId.IsEmpty())
- {
- pAuthId.reset(_StringConverter::CopyToCharArrayN(__authId));
- SysTryReturnResult(NID_NET, pAuthId != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- }
-
- if (!__authPassword.IsEmpty())
- {
- pAuthPassword.reset(_StringConverter::CopyToCharArrayN(__authPassword));
- SysTryReturnResult(NID_NET, pAuthPassword != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- }
-
- if ((pAuthId != null) && (pAuthPassword != null))
- {
- ret = connection_profile_set_cellular_auth_info(profileHandle, authType, pAuthId.get(), pAuthPassword.get());
- }
- else
- {
- ret = connection_profile_set_cellular_auth_info(profileHandle, authType, " ", " ");
- }
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_cellular_auth_info() is %d", ret);
-
- if (!__homeUrl.IsEmpty())
- {
- pHomeUrl.reset(_StringConverter::CopyToCharArrayN(__homeUrl));
- SysTryReturnResult(NID_NET, pHomeUrl != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- ret = connection_profile_set_cellular_home_url(profileHandle, pHomeUrl.get());
- }
- else
- {
- ret = connection_profile_set_cellular_home_url(profileHandle, " ");
- }
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_cellular_home_url() is %d", ret);
-
- ret = connection_profile_get_ip_config_type(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &ipConfigType);
-
- if (ipConfigType != CONNECTION_IP_CONFIG_TYPE_FIXED)
- {
- if (__localAddressScheme == NET_ADDRESS_SCHEME_STATIC)
- {
- SysTryReturnResult(NID_NET, __pLocalAddress != null, E_INVALID_ARG, "Invalid argument is used. Local Addr Scheme is static, but local addr is null.");
-
- ret = connection_profile_set_ip_config_type(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, CONNECTION_IP_CONFIG_TYPE_STATIC);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_ip_config_type() is %d", ret);
-
- pLocalAddr.reset(_StringConverter::CopyToCharArrayN(__pLocalAddress->ToString()));
- SysTryReturnResult(NID_NET, pLocalAddr != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- ret = connection_profile_set_ip_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, pLocalAddr.get());
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_ip_address() is %d", ret);
- }
- else
- {
- ret = connection_profile_set_ip_config_type(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, CONNECTION_IP_CONFIG_TYPE_DYNAMIC);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_ip_config_type() is %d", ret);
- }
-
- if (__pPrimaryDnsAddress != null)
- {
- pPrimaryDnsAddr.reset(_StringConverter::CopyToCharArrayN(__pPrimaryDnsAddress->ToString()));
- SysTryReturnResult(NID_NET, pPrimaryDnsAddr != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- ret = connection_profile_set_dns_address(profileHandle, 1, CONNECTION_ADDRESS_FAMILY_IPV4, pPrimaryDnsAddr.get());
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_dns_address() is %d", ret);
- }
-
- if (__pSecondaryDnsAddress != null)
- {
- pSecondaryDnsAddr.reset(_StringConverter::CopyToCharArrayN(__pSecondaryDnsAddress->ToString()));
- SysTryReturnResult(NID_NET, pSecondaryDnsAddr != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- ret = connection_profile_set_dns_address(profileHandle, 2, CONNECTION_ADDRESS_FAMILY_IPV4, pSecondaryDnsAddr.get());
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_dns_address() is %d", ret);
- }
- }
-
- if (__pProxyAddress != null)
- {
- proxyAddr = __pProxyAddress->GetNetEndPoint();
- if (!proxyAddr.IsEmpty())
- {
- ret = connection_profile_set_proxy_type(profileHandle, CONNECTION_PROXY_TYPE_MANUAL);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_proxy_type() is %d", ret);
-
- pProxyAddr.reset(_StringConverter::CopyToCharArrayN(proxyAddr));
- SysTryReturnResult(NID_NET, pProxyAddr != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- ret = connection_profile_set_proxy_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, pProxyAddr.get());
- }
- else
- {
- ret = connection_profile_set_proxy_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, null);
- }
- }
- else
- {
- ret = connection_profile_set_proxy_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, null);
- }
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_profile_set_proxy_address() is %d", ret);
-
- return r;
+ __isReadOnly = isReadOnly;
}
bool
return hashCode;
}
-NetAccountInfo*
-_NetAccountInfoImpl::CreateNetAccountInfoN(void* pProfileHandle)
-{
- result r = E_SUCCESS;
-
- std::unique_ptr<NetAccountInfo> pNetAccountInfo(new (std::nothrow) NetAccountInfo());
- SysTryReturn(NID_NET, pNetAccountInfo != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- unique_ptr<_NetAccountInfoImpl> pNetAccountInfoImpl(new (std::nothrow) _NetAccountInfoImpl());
- SysTryReturn(NID_NET, pNetAccountInfoImpl != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- r = pNetAccountInfoImpl->Construct(pNetAccountInfo.get(), pProfileHandle);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- pNetAccountInfoImpl.release();
-
- return pNetAccountInfo.release();
-}
-
_NetAccountInfoImpl*
_NetAccountInfoImpl::GetInstance(NetAccountInfo& netAccountInfo)
{
*/
#include <dlfcn.h>
-#include <net_connection.h>
#include <FNetNetAccountInfo.h>
#include <FNetNetAccountManager.h>
#include <FNetWifiWifiNetAccountInfo.h>
#include "FNet_NetAccountManagerImpl.h"
#include "FNet_NetConnectionManagerImpl.h"
#include "FNet_SystemNetConnection.h"
-#include "FNet_NetAccountDatabase.h"
+#include "FNet_NetIpcProxy.h"
#include "FNet_NetUtility.h"
#include "FNetWifi_WifiNetAccountInfoImpl.h"
static const char _WIFI_LIBRARY_NAME[] = "libosp-wifi.so";
-bool _NetAccountManagerImpl::__isNetAccountDbInitialized = false;
-NetAccountId _NetAccountManagerImpl::__internetAccountId = INVALID_HANDLE;
-NetAccountId _NetAccountManagerImpl::__mmsAccountId = INVALID_HANDLE;
-String* _NetAccountManagerImpl::__pInternetProfileName = null;
-String* _NetAccountManagerImpl::__pMmsProfileName = null;
-
_NetAccountManagerImpl::_NetAccountManagerImpl(void)
- : __pConnectionHandle(null)
+ : __pIpcProxy(null)
{
}
result
_NetAccountManagerImpl::Construct(void)
{
- result r = E_SUCCESS;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
-
- SysAssertf(__pConnectionHandle == null,
+ SysAssertf(__pIpcProxy == null,
"Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
- _SystemNetConnection::InitializeNetworkFramework();
- _NetAccountManagerImpl::UpdateNetAccountDb();
-
- ret = connection_create(&connectionHandle);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_create() is %d", GetErrorMessage(E_SYSTEM), ret);
+ __pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryReturnResult(NID_NET, __pIpcProxy != null, E_SYSTEM, "Failed to get IPC proxy.");
- __pConnectionHandle.reset(connectionHandle);
+ _SystemNetConnection::InitializeNetworkFramework();
- return r;
+ return E_SUCCESS;
}
NetAccountId
result r = E_SUCCESS;
_NetAccountInfoImpl* pInfoImpl = _NetAccountInfoImpl::GetInstance(netAccountInfo);
NetAccountId accountId = INVALID_HANDLE;
- String profileName;
- bool isCreated = false;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = __pConnectionHandle.get();
- connection_profile_h profileHandle = null;
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
SysTryReturn(NID_NET, pInfoImpl != null, INVALID_HANDLE, E_INVALID_ARG,
"[%s] Invalid argument is used. Network account info is invalid.", GetErrorMessage(E_INVALID_ARG));
INVALID_HANDLE, E_INVALID_ARG,
"[%s] Invalid argument is used. accountName is an empty string.", GetErrorMessage(E_INVALID_ARG));
- unique_ptr<IList, _CollectionDeleter> pProfileNamesBefore(_NetAccountManagerImpl::GetAppProfileNamesN());
- SysTryReturn(NID_NET, pProfileNamesBefore != null, INVALID_HANDLE, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- unique_ptr<char[]> pAccountName(_StringConverter::CopyToCharArrayN(netAccountInfo.GetAccountName()));
- SysTryReturn(NID_NET, pAccountName != null, INVALID_HANDLE, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- ret = connection_profile_create(CONNECTION_PROFILE_TYPE_CELLULAR, pAccountName.get(), &profileHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- unique_ptr<void, _ProfileDeleter> pProfileHandle(profileHandle);
- r = pInfoImpl->ConvertToProfileInfo(profileHandle);
- SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Propagating.", GetErrorMessage(r));
-
- ret = connection_add_profile(connectionHandle, profileHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_add_profile() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- unique_ptr<IList, _CollectionDeleter> pProfileNamesAfter(_NetAccountManagerImpl::GetAppProfileNamesN());
- SysTryReturn(NID_NET, pProfileNamesAfter != null, INVALID_HANDLE, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- unique_ptr<IEnumerator> pEnum(pProfileNamesAfter->GetEnumeratorN());
- SysTryReturn(NID_NET, pEnum != null, INVALID_HANDLE, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- String* pProfileName = null;
-
- pProfileName = dynamic_cast<String*>(pEnum->GetCurrent());
- if ((pProfileName != null) && (!pProfileName->IsEmpty()))
- {
- if (!pProfileNamesBefore->Contains(*pProfileName))
- {
- SysLog(NID_NET, "ProfileName[%ls] is not found before, so it is a new profile name.", pProfileName->GetPointer());
- isCreated = true;
- profileName = *pProfileName;
-
- break;
- }
- }
- }
-
- SysTryReturn(NID_NET, isCreated, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. New account is not found.", GetErrorMessage(E_SYSTEM));
- SysTryReturn(NID_NET, !profileName.IsEmpty(), INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The profileName of new account is an empty string.", GetErrorMessage(E_SYSTEM));
-
- r = _NetAccountDatabase::AddAccount(netAccountInfo.GetAccountName(), profileName, _NET_ACCOUNT_OWNER_THIS, accountId);
- SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Propagating.", GetErrorMessage(r));
+ accountId = __pIpcProxy->CreateNetAccount(netAccountInfo);
+ SysTryReturn(NID_NET, accountId != INVALID_HANDLE, INVALID_HANDLE, GetLastResult(),
+ "[%s] Propagating.", GetErrorMessage(GetLastResult()));
r = pInfoImpl->SetAccountId(accountId);
SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Propagating.", GetErrorMessage(r));
+ pInfoImpl->SetReadOnly(false);
+
ClearLastResult();
- SysSecureLog( NID_NET, "CreateNetAccount() has been succeeded with accountId:%d, accountName:%ls, profileName:%ls",
- netAccountInfo.GetAccountId(), netAccountInfo.GetAccountName().GetPointer(), profileName.GetPointer());
+ SysSecureLog( NID_NET, "CreateNetAccount() has been succeeded with accountId:%d, accountName:%ls",
+ netAccountInfo.GetAccountId(), netAccountInfo.GetAccountName().GetPointer());
return accountId;
}
_NetAccountManagerImpl::DeleteNetAccount(NetAccountId netAccountId)
{
result r = E_SUCCESS;
- String profileName;
- bool isReadOnly = true;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = __pConnectionHandle.get();
SysLog(NID_NET, "DeleteNetAccount() has been called with accountId:%d", netAccountId);
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
- SysTryReturnResult(NID_NET, netAccountId > 0, E_INVALID_ACCOUNT,
- "Invalid network account. accountId=%d", netAccountId);
-
- isReadOnly = _NetAccountDatabase::IsReadOnly(netAccountId);
- r = GetLastResult();
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, !isReadOnly, E_INVALID_OPERATION, "Not allowed on the specified network account.");
-
- r = _NetAccountDatabase::GetProfileName(netAccountId, profileName);
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_INVALID_ACCOUNT, "Invalid network account. accountId=%d", netAccountId);
-
- unique_ptr<void, _ProfileDeleter> pProfileHandle(_NetAccountManagerImpl::GetPsProfileHandleN(profileName));
- SysTryReturnResult(NID_NET, pProfileHandle != null, E_INVALID_ACCOUNT,
- "Invalid network account. accountId=%d", netAccountId);
-
- ret = connection_remove_profile(connectionHandle, pProfileHandle.get());
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_remove_profile() is %d", ret);
-
- r = _NetAccountDatabase::RemoveAccountByAccountId(netAccountId);
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM,
- "A system error has been occurred. Failed to remove the account.");
+ r = __pIpcProxy->DeleteNetAccount(netAccountId);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
return r;
}
_NetAccountManagerImpl::UpdateNetAccount(const NetAccountInfo& netAccountInfo)
{
result r = E_SUCCESS;
- String profileName;
- bool isReadOnly = true;
const _NetAccountInfoImpl* pInfoImpl = _NetAccountInfoImpl::GetInstance(netAccountInfo);
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = (connection_h) __pConnectionHandle.get();
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
SysTryReturnResult(NID_NET, pInfoImpl != null, E_INVALID_ARG,
"Invalid argument is used. Network account info is invalid.");
SysTryReturnResult(NID_NET, !netAccountInfo.GetAccountName().IsEmpty(), E_INVALID_ARG,
"Invalid argument is used. accountName is an empty string.");
- isReadOnly = _NetAccountDatabase::IsReadOnly(netAccountInfo.GetAccountId());
- r = GetLastResult();
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, !isReadOnly, E_INVALID_OPERATION,
- "Not allowed on the specified network account.");
-
- r = _NetAccountDatabase::GetProfileName(netAccountInfo.GetAccountId(), profileName);
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_INVALID_ARG,
- "Invalid argument is used. accountId=%d.", netAccountInfo.GetAccountId());
-
- unique_ptr<void, _ProfileDeleter> pProfileHandle(_NetAccountManagerImpl::GetPsProfileHandleN(profileName));
- SysTryReturnResult(NID_NET, pProfileHandle != null, E_INVALID_ACCOUNT,
- "Invalid network account. accountId=%d", netAccountInfo.GetAccountId());
-
- r = pInfoImpl->ConvertToProfileInfo(pProfileHandle.get());
+ r = __pIpcProxy->UpdateNetAccount(netAccountInfo);
SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
- ret = connection_update_profile(connectionHandle, pProfileHandle.get());
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_update_profile() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- r = _NetAccountDatabase::UpdateAccountName(netAccountInfo.GetAccountId(), netAccountInfo.GetAccountName());
- SysTryReturnResult(NID_NET, r != E_OUT_OF_MEMORY, r, "Propagating.");
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM,
- "A system error has been occurred. Failed to update accountName.");
-
return r;
}
{
result r = E_SUCCESS;
NetAccountInfo* pInfo = null;
- connection_profile_h profileHandle = null;
- unique_ptr<void, _ProfileDeleter> pProfileHandle;
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
SysTryReturn(NID_NET, netAccountId > 0, null, E_INVALID_ACCOUNT,
"[%s] Invalid network account. accountId=%d.", GetErrorMessage(E_INVALID_ACCOUNT), netAccountId);
if (netAccountId == _DEFAULT_WIFI_ACCOUNT_ID)
{
- profileHandle = _NetAccountManagerImpl::GetWifiProfileHandleN();
- SysTryReturn(NID_NET, profileHandle != null, null, E_INVALID_ACCOUNT,
- "[%s] WiFi account is NOT found.",GetErrorMessage(E_INVALID_ACCOUNT));
- pProfileHandle.reset(profileHandle);
-
- pInfo = _NetAccountManagerImpl::CreateWifiNetAccountInfoN(
- profileHandle);
+ pInfo = _NetAccountManagerImpl::CreateWifiNetAccountInfoN();
r = GetLastResult();
SysTryReturn(NID_NET, pInfo != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
}
}
else
{
- String profileName;
-
- r = _NetAccountDatabase::GetProfileName(netAccountId, profileName);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- profileHandle = _NetAccountManagerImpl::GetPsProfileHandleN(profileName);
- SysTryReturn(NID_NET, profileHandle != null, null, E_INVALID_ACCOUNT,
- "[%s] PS account is NOT found.", GetErrorMessage(E_INVALID_ACCOUNT));
- pProfileHandle.reset(profileHandle);
-
- pInfo = _NetAccountInfoImpl::CreateNetAccountInfoN(profileHandle);
+ pInfo = __pIpcProxy->GetNetAccountInfoN(netAccountId);
r = GetLastResult();
SysTryReturn(NID_NET, pInfo != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
}
IListT<NetAccountId>*
_NetAccountManagerImpl::GetNetAccountIdsN(void) const
{
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
- _NetAccountManagerImpl::UpdateNetAccountDb(true);
+ ArrayListT<NetAccountId>* pList = new (std::nothrow) ArrayListT<NetAccountId>();
+ SysTryReturn(NID_NET, pList != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
ClearLastResult();
- return _NetAccountDatabase::GetAccountIdsN();
+ __pIpcProxy->GetNetAccountIds(pList);
+
+ return pList;
}
IList*
_NetAccountManagerImpl::GetNetAccountNamesN(void) const
{
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
- _NetAccountManagerImpl::UpdateNetAccountDb(true);
+ ArrayList* pList = new (std::nothrow) ArrayList();
+ SysTryReturn(NID_NET, pList != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
ClearLastResult();
- return _NetAccountDatabase::GetAccountNamesN();
+ __pIpcProxy->GetNetAccountNames(pList);
+
+ return pList;
}
NetAccountId
result r = E_SUCCESS;
NetAccountId accountId = INVALID_HANDLE;
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
- r = _NetAccountDatabase::GetAccountIdByAccountName(netAccountName, accountId);
- SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, E_INVALID_ARG,
- "[%s] Invalid argument is used. AccountName[%ls] is not found.",
- GetErrorMessage(E_INVALID_ARG), netAccountName.GetPointer());
+ accountId = __pIpcProxy->GetNetAccountId(netAccountName);
+ r = GetLastResult();
+ SysTryReturn(NID_NET, accountId != INVALID_HANDLE, INVALID_HANDLE, r, "[%s] Propagating.", GetErrorMessage(r));
- SysSecureLog(NID_NET, "GetNetAccountId() has been succeeded with accountId:%d", accountId);
+ ClearLastResult();
return accountId;
}
NetAccountId accountId = INVALID_HANDLE;
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
if (netBearerType == NET_BEARER_PS)
{
- accountId = _NetAccountManagerImpl::GetInternetAccountId();
+ accountId = __pIpcProxy->GetInternetAccountId();
}
else if (netBearerType == NET_BEARER_MMS)
{
- accountId = _NetAccountManagerImpl::GetMmsAccountId();
+ accountId = __pIpcProxy->GetMmsAccountId();
}
else if (netBearerType == NET_BEARER_WIFI)
{
{
_NetConnectionManagerImpl* pConnectionManager = _NetConnectionManagerImpl::GetInstance();
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
SysTryReturn(NID_NET, pConnectionManager != null, NET_WIFI_FIRST, E_SYSTEM,
"[%s] A system error has been occurred.", GetErrorMessage(E_SYSTEM));
_NetConnectionManagerImpl* pConnectionManager = _NetConnectionManagerImpl::GetInstance();
- SysAssertf(__pConnectionHandle != null, "Not yet constructed. Construct() should be called before use.");
+ SysAssertf(__pIpcProxy != null, "Not yet constructed. Construct() should be called before use.");
SysTryReturnResult(NID_NET, pConnectionManager != null, E_SYSTEM, "A system error has been occurred.");
return netAccountManager.__pNetAccountManagerImpl;
}
-void*
-_NetAccountManagerImpl::GetPsProfileHandleN(const String& profileName)
-{
- ClearLastResult();
-
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_iterator_h iterator = null;
- connection_profile_h profileHandle = null;
- connection_profile_h matchingProfileHandle = null;
-
- SysLog(NID_NET, "GetPsProfileHandleN() has been called with profileName:%ls", profileName.GetPointer());
-
- SysTryReturn(NID_NET, !profileName.IsEmpty(), null, E_INVALID_ARG,
- "[%s] Invalid argument is used. profileName is an empty string.", GetErrorMessage(E_INVALID_ARG));
-
- ret = connection_create(&connectionHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle(connectionHandle);
-
- ret = connection_get_profile_iterator(connectionHandle, CONNECTION_ITERATOR_TYPE_REGISTERED, &iterator);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_profile_iterator() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ProfileIteratorDeleter> pIterator(iterator);
-
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- while ((ret == CONNECTION_ERROR_NONE) && (profileHandle != null))
- {
- char* pTempProfileName = null;
- String tempProfileName;
-
- ret = connection_profile_get_id(profileHandle, &pTempProfileName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_id() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- tempProfileName = String(pTempProfileName);
- free(pTempProfileName);
-
- if (profileName.Equals(tempProfileName))
- {
- ret = connection_profile_clone(&matchingProfileHandle, profileHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_clone() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- break;
- }
-
- profileHandle = null;
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- }
-
- SysTryReturn(NID_NET, matchingProfileHandle != null, null, E_INVALID_ACCOUNT,
- "[%s] Matching profileName is not found. profileName=%ls", GetErrorMessage(E_INVALID_ACCOUNT), profileName.GetPointer());
-
- return matchingProfileHandle;
-}
-
-void*
-_NetAccountManagerImpl::GetWifiProfileHandleN(void)
-{
- ClearLastResult();
-
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_iterator_h iterator = null;
- connection_profile_h profileHandle = null;
- connection_profile_h matchingProfileHandle = null;
- connection_profile_type_e profileType = CONNECTION_PROFILE_TYPE_CELLULAR;
-
- ret = connection_create(&connectionHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle(connectionHandle);
-
- ret = connection_get_profile_iterator(connectionHandle, CONNECTION_ITERATOR_TYPE_CONNECTED, &iterator);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_profile_iterator() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ProfileIteratorDeleter> pIterator(iterator);
-
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- while ((ret == CONNECTION_ERROR_NONE) && (profileHandle != null))
- {
- ret = connection_profile_get_type(profileHandle, &profileType);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_type() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- if (profileType == CONNECTION_PROFILE_TYPE_WIFI)
- {
- SysLog(NID_NET, "Connected WiFi profile is found.");
- ret = connection_profile_clone(&matchingProfileHandle,
- profileHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_clone() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- break;
- }
-
- profileHandle = null;
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- }
-
- SysTryReturn(NID_NET, matchingProfileHandle != null, null, E_INVALID_ACCOUNT,
- "[%s] Active Wi-Fi profile is not found.", GetErrorMessage(E_INVALID_ACCOUNT));
-
- return matchingProfileHandle;
-}
-
-IList*
-_NetAccountManagerImpl::GetAppProfileNamesN(void)
-{
- ClearLastResult();
-
- result r = E_SUCCESS;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_iterator_h iterator = null;
- connection_profile_h profileHandle = null;
- connection_profile_type_e profileType = CONNECTION_PROFILE_TYPE_WIFI;
-
- ret = connection_create(&connectionHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle(connectionHandle);
-
- unique_ptr<ArrayList, _CollectionDeleter> pList(new (std::nothrow) ArrayList());
- SysTryReturn(NID_NET, pList != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- r = pList->Construct();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- ret = connection_get_profile_iterator(connectionHandle, CONNECTION_ITERATOR_TYPE_REGISTERED, &iterator);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_profile_iterator() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ProfileIteratorDeleter> pIterator(iterator);
-
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- while ((ret == CONNECTION_ERROR_NONE) && (profileHandle != null))
- {
- char* pProfileName = null;
-
- ret = connection_profile_get_type(profileHandle, &profileType);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_type() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- if (profileType == CONNECTION_PROFILE_TYPE_CELLULAR)
- {
- connection_cellular_service_type_e serviceType = CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN;
-
- ret = connection_profile_get_cellular_service_type(profileHandle, &serviceType);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_cellular_service_type() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- if (serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION)
- {
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_id() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- unique_ptr<String> pProfileNameString(new (std::nothrow) String(pProfileName));
- free(pProfileName);
- SysTryReturn(NID_NET, pProfileNameString != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- r = pList->Add(*pProfileNameString);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
- pProfileNameString.release();
- }
- else
- {
- SysLog(NID_NET, "Ignore non-app profile.");
- }
- }
- else
- {
- SysLog(NID_NET, "Ignore non-cellular profile.");
- }
-
- profileHandle = null;
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- }
-
- SysLog(NID_NET, "GetAppProfileNamesN() has been succeeded with profiles count:%d", pList->GetCount());
-
- return pList.release();
-}
-
-IList*
-_NetAccountManagerImpl::GetAllProfileNamesN(void)
-{
- ClearLastResult();
-
- result r = E_SUCCESS;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_iterator_h iterator = null;
- connection_profile_h profileHandle = null;
- connection_profile_type_e profileType = CONNECTION_PROFILE_TYPE_WIFI;
-
- ret = connection_create(&connectionHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle(connectionHandle);
-
- unique_ptr<ArrayList, _CollectionDeleter> pList(new (std::nothrow) ArrayList());
- SysTryReturn(NID_NET, pList != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- r = pList->Construct();
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- ret = connection_get_profile_iterator(connectionHandle, CONNECTION_ITERATOR_TYPE_REGISTERED, &iterator);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_profile_iterator() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ProfileIteratorDeleter> pIterator(iterator);
-
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- while ((ret == CONNECTION_ERROR_NONE) && (profileHandle != null))
- {
- ret = connection_profile_get_type(profileHandle, &profileType);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_type() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- if (profileType == CONNECTION_PROFILE_TYPE_CELLULAR)
- {
- connection_cellular_service_type_e serviceType = CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN;
-
- ret = connection_profile_get_cellular_service_type(profileHandle, &serviceType);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_cellular_service_type() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- if ((serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET)
- || (serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET)
- || (serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_MMS)
- || (serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS)
- || (serviceType == CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION))
- {
- char* pProfileName = null;
- char* pProfileDisplayName = null;
- String profileName;
- String profileDisplayName;
-
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_id() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- profileName = String(pProfileName);
- free(pProfileName);
-
- ret = connection_profile_get_name(profileHandle, &pProfileDisplayName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_name() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- profileDisplayName = String(pProfileDisplayName);
- free(pProfileDisplayName);
-
- unique_ptr<String> pNetProfileName(new (std::nothrow) String(profileName));
-
- SysLog(NID_NET, "Cellular profile is found: [%d][%ls][%ls].", serviceType, profileDisplayName.GetPointer(), profileName.GetPointer());
-
- r = pList->Add(*pNetProfileName);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
- pNetProfileName.release();
- }
- else
- {
- SysLog(NID_NET, "Ignore unknown profile.");
- }
- }
- else
- {
- SysLog(NID_NET, "Ignore non-cellular profile.");
- }
-
- profileHandle = null;
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- }
-
- SysLog(NID_NET, "GetAllProfileNamesN() has been succeeded with profiles count:%d", pList->GetCount());
-
- return pList.release();
-}
-
NetAccountInfo*
-_NetAccountManagerImpl::CreateWifiNetAccountInfoN(void* pProfileInfo)
+_NetAccountManagerImpl::CreateWifiNetAccountInfoN(void)
{
void* pHandle = null;
NetAccountInfo* pWifiNetAccountInfo = null;
- WifiNetAccountInfo*(*pFunction)(void* pProfileInfo) = null;
+ WifiNetAccountInfo*(*pFunction)() = null;
pHandle = dlopen(_WIFI_LIBRARY_NAME, RTLD_LAZY);
SysTryReturn(NID_NET, pHandle != null, null, E_SYSTEM,
"[%s] A system error has been occurred. Failed to open wifi library.");
- pFunction = reinterpret_cast<WifiNetAccountInfo*(*)(void* pProfileInfo)>(dlsym(pHandle, "_WifiNetAccountInfoImpl_CreateWifiNetAccountInfoN"));
+ pFunction = reinterpret_cast<WifiNetAccountInfo*(*)()>(dlsym(pHandle, "_WifiNetAccountInfoImpl_CreateWifiNetAccountInfoN"));
SysTryCatch(NID_NET, pFunction != null, , E_SYSTEM,
"[%s] A system error has been occurred. Failed to find a symbol.", GetErrorMessage(E_SYSTEM));
- pWifiNetAccountInfo = pFunction(pProfileInfo);
+ pWifiNetAccountInfo = pFunction();
SysTryCatch(NID_NET, pWifiNetAccountInfo != null, , E_SYSTEM,
"[%s] A system error has been occurred. Failed to create the instance.", GetErrorMessage(E_SYSTEM));
return null;
}
-NetAccountId
-_NetAccountManagerImpl::GetInternetAccountId(void)
-{
- result r = E_SUCCESS;
- NetAccountId accountId = INVALID_HANDLE;
-
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_h profileHandle = null;
-
- _NetAccountManagerImpl::UpdateNetAccountDb();
-
- ret = connection_create(&connectionHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle(connectionHandle);
-
- ret = connection_get_default_cellular_service_profile(connectionHandle, CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET, &profileHandle);
- if ((ret != CONNECTION_ERROR_NONE) || (profileHandle == null))
- {
- SysLog(NID_NET, "Internet profile is not found, so search a prepaid-Internet profile.");
-
- ret = connection_get_default_cellular_service_profile(connectionHandle, CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET, &profileHandle);
- }
- SysTryReturn(NID_NET, profileHandle != null, INVALID_HANDLE, E_INVALID_ACCOUNT,
- "[%s] Internet(incl. prepaid) profile is not found.", GetErrorMessage(E_INVALID_ACCOUNT));
- unique_ptr<void, _ProfileDeleter> pProfileHandle(profileHandle);
-
- char* pProfileName = null;
- char* pProfileDisplayName = null;
- String profileName;
- String profileDisplayName;
-
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_id() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- profileName = String(pProfileName);
- free(pProfileName);
-
- ret = connection_profile_get_name(profileHandle, &pProfileDisplayName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_name() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- profileDisplayName = String(pProfileDisplayName);
- free(pProfileDisplayName);
-
- SysLog(NID_NET, "Internet profile is found. [%ls][%ls]", profileDisplayName.GetPointer(), profileName.GetPointer());
-
- Mutex* pLock = _NetUtility::GetLock();
- MutexGuard locked(*pLock);
-
- if (__pInternetProfileName != null)
- {
- if (!profileName.Equals(*__pInternetProfileName, false))
- {
- // Internet profile is changed.
- SysLog(NID_NET, "Internet profile is changed. [%ls]->[%ls]", __pInternetProfileName->GetPointer(), profileName.GetPointer());
-
- _NetAccountManagerImpl::UpdateNetAccountDb(true);
- r = _NetAccountDatabase::GetAccountIdByProfileName(profileName, accountId);
-
- delete __pInternetProfileName;
- __pInternetProfileName = new (std::nothrow) String(profileName);
- __internetAccountId = accountId;
- }
- else
- {
- accountId = __internetAccountId;
- }
- }
- else
- {
- SysLog(NID_NET, "Initialize Internet profile.");
-
- _NetAccountManagerImpl::UpdateNetAccountDb(true);
- r = _NetAccountDatabase::GetAccountIdByProfileName(profileName, accountId);
-
- __pInternetProfileName = new (std::nothrow) String(profileName);
- __internetAccountId = accountId;
- }
-
- locked.Unlock();
-
- ClearLastResult();
-
- return accountId;
-}
-
-NetAccountId
-_NetAccountManagerImpl::GetMmsAccountId(void)
-{
- result r = E_SUCCESS;
- NetAccountId accountId = INVALID_HANDLE;
-
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_h profileHandle = null;
-
- _NetAccountManagerImpl::UpdateNetAccountDb();
-
- ret = connection_create(&connectionHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle(connectionHandle);
-
- ret = connection_get_default_cellular_service_profile(connectionHandle, CONNECTION_CELLULAR_SERVICE_TYPE_MMS, &profileHandle);
- if ((ret != CONNECTION_ERROR_NONE) || (profileHandle == null))
- {
- SysLog(NID_NET, "MMS profile is not found, so search a prepaid-MMS profile.");
-
- ret = connection_get_default_cellular_service_profile(connectionHandle, CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS, &profileHandle);
- }
- SysTryReturn(NID_NET, profileHandle != null, INVALID_HANDLE, E_INVALID_ACCOUNT,
- "[%s] MMS(incl. prepaid) profile is not found.", GetErrorMessage(E_INVALID_ACCOUNT));
- unique_ptr<void, _ProfileDeleter> pProfileHandle(profileHandle);
-
- char* pProfileName = null;
- char* pProfileDisplayName = null;
- String profileName;
- String profileDisplayName;
-
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_id() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- profileName = String(pProfileName);
- free(pProfileName);
-
- ret = connection_profile_get_name(profileHandle, &pProfileDisplayName);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, INVALID_HANDLE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_name() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- profileDisplayName = String(pProfileDisplayName);
- free(pProfileDisplayName);
-
- SysLog(NID_NET, "MMS profile is found. [%ls][%ls]", profileDisplayName.GetPointer(), profileName.GetPointer());
-
- Mutex* pLock = _NetUtility::GetLock();
- MutexGuard locked(*pLock);
-
- if (__pMmsProfileName != null)
- {
- if (!profileName.Equals(*__pMmsProfileName, false))
- {
- // MMS profile is changed.
- SysLog(NID_NET, "MMS profile is changed. [%ls]->[%ls]", __pMmsProfileName->GetPointer(), profileName.GetPointer());
-
- _NetAccountManagerImpl::UpdateNetAccountDb(true);
- r = _NetAccountDatabase::GetAccountIdByProfileName(profileName, accountId);
-
- delete __pMmsProfileName;
- __pMmsProfileName = new (std::nothrow) String(profileName);
- __mmsAccountId = accountId;
- }
- else
- {
- accountId = __mmsAccountId;
- }
- }
- else
- {
- SysLog(NID_NET, "Initialize MMS profile.");
-
- _NetAccountManagerImpl::UpdateNetAccountDb(true);
- r = _NetAccountDatabase::GetAccountIdByProfileName(profileName, accountId);
-
- __pMmsProfileName = new (std::nothrow) String(profileName);
- __mmsAccountId = accountId;
- }
-
- locked.Unlock();
-
- ClearLastResult();
-
- return accountId;
-}
-
-void
-_NetAccountManagerImpl::UpdateNetAccountDb(bool force)
-{
- if (__isNetAccountDbInitialized && !force)
- {
- // Already done
- return;
- }
-
- Mutex* pLock = _NetUtility::GetLock();
- MutexGuard locked(*pLock);
-
- result r = E_SUCCESS;
- NetAccountId accountId = INVALID_HANDLE;
- unique_ptr<IList, _CollectionDeleter> pAccountList(_NetAccountDatabase::GetProfileNamesN());
- unique_ptr<IList, _CollectionDeleter> pProfileList(_NetAccountManagerImpl::GetAllProfileNamesN());
-
- if (pProfileList != null)
- {
- if (pProfileList->GetCount() > 0)
- {
- SysLog(NID_NET, "[%d] profiles are found.", pProfileList->GetCount());
-
- unique_ptr<IEnumerator> pEnum(pProfileList->GetEnumeratorN());
- if (pEnum != null)
- {
- String* pProfileName = null;
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pProfileName = dynamic_cast<String*>(pEnum->GetCurrent());
- if (pProfileName != null)
- {
- if (pAccountList->Contains(*pProfileName))
- {
- SysLog(NID_NET, "ProfileName[%ls] is already on DB.", pProfileName->GetPointer());
- pAccountList->Remove(*pProfileName, true);
- }
- else
- {
- SysLog(NID_NET, "ProfileName[%ls] is not found on DB, so add it.", pProfileName->GetPointer());
- r = _NetAccountDatabase::AddAccount(*pProfileName, *pProfileName, _NET_ACCOUNT_OWNER_OTHER, accountId);
- }
- }
- }
- }
- }
- }
-
- if (pAccountList != null)
- {
- if (pAccountList->GetCount() > 0)
- {
- SysLog(NID_NET, "[%d] zombie accounts are on DB.", pAccountList->GetCount());
-
- unique_ptr<IEnumerator> pEnum(pAccountList->GetEnumeratorN());
- if (pEnum != null)
- {
- String* pProfileName = null;
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pProfileName = dynamic_cast<String*>(pEnum->GetCurrent());
- if (pProfileName != null)
- {
- r = _NetAccountDatabase::RemoveAccountByProfileName(*pProfileName);
- }
- }
- }
- }
- }
-
- __isNetAccountDbInitialized = true;
-
- ClearLastResult();
-
- locked.Unlock();
-
- SysLog(NID_NET, "Network account database is updated.");
-}
-
} } // Tizen::Net
{
class NetAccountInfo;
class NetAccountManager;
+class _NetIpcProxy;
class _PsSystemNetConnection;
class _NetAccountManagerImpl
static const _NetAccountManagerImpl* GetInstance(const NetAccountManager& netAccountManager);
public:
- static void* GetPsProfileHandleN(const Tizen::Base::String& profileName);
- static void* GetWifiProfileHandleN(void);
- static Tizen::Base::Collection::IList* GetAppProfileNamesN(void);
- static Tizen::Base::Collection::IList* GetAllProfileNamesN(void);
- static NetAccountInfo* CreateWifiNetAccountInfoN(void* pProfileInfo);
- static NetAccountId GetInternetAccountId(void);
- static NetAccountId GetMmsAccountId(void);
- static void UpdateNetAccountDb(bool force = false);
+ static NetAccountInfo* CreateWifiNetAccountInfoN(void);
private:
/**
_NetAccountManagerImpl& operator =(const _NetAccountManagerImpl& rhs);
private:
- static bool __isNetAccountDbInitialized;
- static NetAccountId __internetAccountId;
- static NetAccountId __mmsAccountId;
- static Tizen::Base::String* __pInternetProfileName;
- static Tizen::Base::String* __pMmsProfileName;
-
- std::unique_ptr<void, _ConnectionDeleter> __pConnectionHandle;
+ _NetIpcProxy* __pIpcProxy;
friend class NetAccountManager;
{
class _SystemNetConnection;
-enum _NetConnectionEventType
-{
- _NET_CONNECTION_EVENT_TYPE_NONE,
- _NET_CONNECTION_EVENT_TYPE_STARTED,
- _NET_CONNECTION_EVENT_TYPE_STOPPED,
- _NET_CONNECTION_EVENT_TYPE_SUSPENDED,
- _NET_CONNECTION_EVENT_TYPE_RESUMED,
- _NET_CONNECTION_EVENT_TYPE_CHANGED
-};
-
typedef Tizen::Base::Runtime::IEventListener* _NetListenerKey;
class _NetListenerHashCodeProvider
#include "FNet_NetConnectionImpl.h"
#include "FNet_NetConnectionManagerImpl.h"
#include "FNet_SystemNetConnection.h"
-#include "FNet_NetAccountDatabase.h"
+#include "FNet_NetIpcProxy.h"
#include "FNet_NetConnectionEvent.h"
#include "FNet_NetUtility.h"
#ifdef _OSP_EMUL_
if ((netAccountId == _DEFAULT_WIFI_ACCOUNT_ID) ||
(netAccountId == _DEFAULT_WIFI_DIRECT_ACCOUNT_ID) ||
- (netAccountId == _DEFAULT_USB_ACCOUNT_ID) ||
- (_NetAccountDatabase::GetAccountName(netAccountId, netAccountName) == E_SUCCESS))
+ (netAccountId == _DEFAULT_USB_ACCOUNT_ID))
{
SysLog(NID_NET, "Use default network connection.");
pSystemNetConnection = _SystemNetConnection::GetDefaultInstance();
}
else
{
- pSystemNetConnection = null;
+ _NetIpcProxy* pIpcProxy = _NetIpcProxy::GetInstance();
+ if (pIpcProxy != null)
+ {
+ r = pIpcProxy->GetNetAccountName(netAccountId, netAccountName);
+ if (r == E_SUCCESS)
+ {
+ SysLog(NID_NET, "Use default network connection.");
+ pSystemNetConnection = _SystemNetConnection::GetDefaultInstance();
+ }
+ }
}
SysTryReturnResult(NID_NET, pSystemNetConnection != null, E_INVALID_ACCOUNT,
"Invalid network account. accountId=%d", netAccountId);
else
{
// PS
- String profileName;
+ _NetIpcProxy* pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryReturnResult(NID_NET, pIpcProxy != null, E_SYSTEM, "Failed to get IPC proxy.");
- r = _NetAccountDatabase::GetAccountName(netAccountId, netAccountName);
+ r = pIpcProxy->GetNetAccountName(netAccountId, netAccountName);
SysTryReturnResult(NID_NET, r == E_SUCCESS, E_INVALID_ACCOUNT,
"Invalid network account. accountId=%d", netAccountId);
* @brief This is the implementation for the _NetConnectionInfoImpl class.
*/
-#include <net_connection.h>
#include <FBaseUtilStringUtil.h>
#include <FNetNetConnectionInfo.h>
#include <FNetIp4Address.h>
void
_NetConnectionInfoImpl::SetProxyAddress(const String& proxyAddress)
{
- __proxyAddress = proxyAddress;
-}
-
-void
-_NetConnectionInfoImpl::SetDeviceName(const String& deviceName)
-{
- __deviceName = deviceName;
-}
-
-void
-_NetConnectionInfoImpl::Update(void* pProfileHandle, bool isDefault)
-{
static const wchar_t _IP4_ADDRESS_EMPTY_ADDRESS[] = L":";
static const wchar_t _IP4_ADDRESS_DUMMY_ADDRESS[] = L"0.0.0.0";
- NetBearerType bearerType = NET_BEARER_NONE;
- NetProtocolType protocolType = NET_PROTO_TYPE_NONE;
- String apn;
- String deviceName;
- String proxyAddress;
- NetAddressScheme localAddressScheme = NET_ADDRESS_SCHEME_NONE;
- NetAddressScheme dnsAddressScheme = NET_ADDRESS_SCHEME_NONE;
- unique_ptr<IpAddress> pLocalAddress;
- unique_ptr<IpAddress> pSubnetMaskAddress;
- unique_ptr<IpAddress> pDefaultGatewayAddress;
- unique_ptr<IpAddress> pPrimaryDnsAddress;
- unique_ptr<IpAddress> pSecondaryDnsAddress;
-
- int ret = CONNECTION_ERROR_NONE;
- connection_profile_h profileHandle = static_cast<connection_profile_h>(pProfileHandle);
- connection_profile_type_e type = CONNECTION_PROFILE_TYPE_WIFI;
-
- SysLog(NID_NET, "Update() has been called with isDefault:%d", isDefault);
+ String temp = proxyAddress;
+ temp.Trim();
- Clear();
-
- if (pProfileHandle == null)
+ if (!temp.IsEmpty())
{
- return;
- }
-
- ret = connection_profile_get_type(profileHandle, &type);
- SysLog(NID_NET, "The return value from connection_profile_get_type() is %d. Network type is %d", ret, type);
-
- if (type == CONNECTION_PROFILE_TYPE_WIFI)
- {
- SysLog(NID_NET, "Profile type is Wi-Fi.");
- bearerType = NET_BEARER_WIFI;
- }
- else if (type == CONNECTION_PROFILE_TYPE_CELLULAR)
- {
- SysLog(NID_NET, "Profile type is Cellular.");
-
- char* pApn = null;
- ret = connection_profile_get_cellular_apn(profileHandle, &pApn);
- if ((ret == CONNECTION_ERROR_NONE) && (pApn != null))
+ if ((temp.StartsWith(_IP4_ADDRESS_DUMMY_ADDRESS, 0)) || (temp.StartsWith(_IP4_ADDRESS_EMPTY_ADDRESS, 0)))
{
- apn = String(pApn);
- free(pApn);
+ temp.Clear();
+ SysLog(NID_NET, "Proxy address is invalid, so clear it.");
}
-
- bearerType = NET_BEARER_PS;
}
- else
- {
- // CONNECTION_PROFILE_TYPE_ETHERNET (For emulator: Treat ethernet as cellular.)
- SysLog(NID_NET, "Profile type is Ethernet.");
- bearerType = NET_BEARER_PS;
- }
-
- protocolType = NET_PROTO_TYPE_IPV4;
- connection_ip_config_type_e ipConfigType = CONNECTION_IP_CONFIG_TYPE_NONE;
- ret = connection_profile_get_ip_config_type(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &ipConfigType);
- SysTryReturnVoidResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_get_ip_config_type() is %d",
- GetErrorMessage(E_SYSTEM), ret);
-
- if ((ipConfigType == CONNECTION_IP_CONFIG_TYPE_STATIC) || (ipConfigType == CONNECTION_IP_CONFIG_TYPE_FIXED))
- {
- localAddressScheme = NET_ADDRESS_SCHEME_STATIC;
- dnsAddressScheme = NET_ADDRESS_SCHEME_STATIC;
- }
- else
- {
- localAddressScheme = NET_ADDRESS_SCHEME_DYNAMIC;
- dnsAddressScheme = NET_ADDRESS_SCHEME_DYNAMIC;
- }
-
- char* pIpAddr = null;
- String ipAddr;
-
- ret = connection_profile_get_ip_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pIpAddr != null))
- {
- ipAddr = String(pIpAddr);
- free(pIpAddr);
- pIpAddr = null;
- pLocalAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- SysTryReturnVoidResult(NID_NET, pLocalAddress != null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- }
-
- ret = connection_profile_get_subnet_mask(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pIpAddr != null))
- {
- ipAddr = String(pIpAddr);
- free(pIpAddr);
- pIpAddr = null;
- pSubnetMaskAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- SysTryReturnVoidResult(NID_NET, pSubnetMaskAddress != null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- }
-
- ret = connection_profile_get_gateway_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- {
- ipAddr = String(pIpAddr);
- free(pIpAddr);
- pIpAddr = null;
- pDefaultGatewayAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- SysTryReturnVoidResult(NID_NET, pDefaultGatewayAddress != null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- }
-
- ret = connection_profile_get_dns_address(profileHandle, 1, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pIpAddr != null))
- {
- ipAddr = String(pIpAddr);
- free(pIpAddr);
- pIpAddr = null;
- pPrimaryDnsAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- SysTryReturnVoidResult(NID_NET, pPrimaryDnsAddress != null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- }
-
- ret = connection_profile_get_dns_address(profileHandle, 2, CONNECTION_ADDRESS_FAMILY_IPV4, &pIpAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pIpAddr != null))
- {
- ipAddr = String(pIpAddr);
- free(pIpAddr);
- pIpAddr = null;
- pSecondaryDnsAddress.reset(new (std::nothrow) Ip4Address(ipAddr));
- SysTryReturnVoidResult(NID_NET, pSecondaryDnsAddress != null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- }
-
- char* pProxyAddr = null;
-
- ret = connection_profile_get_proxy_address(profileHandle, CONNECTION_ADDRESS_FAMILY_IPV4, &pProxyAddr);
- SysSecureLog(NID_NET, "The return value from connection_profile_get_proxy_address() is [%d], Proxy address is [%s]", ret, pProxyAddr);
- if ((ret == CONNECTION_ERROR_NONE) && (pProxyAddr != null))
- {
- proxyAddress = String(pProxyAddr);
- proxyAddress.Trim();
- free(pProxyAddr);
-
- if (!proxyAddress.IsEmpty())
- {
- if ((proxyAddress.StartsWith(_IP4_ADDRESS_DUMMY_ADDRESS, 0)) || (proxyAddress.StartsWith(_IP4_ADDRESS_EMPTY_ADDRESS, 0)))
- {
- proxyAddress.Clear();
- SysLog(NID_NET, "Proxy address is invalid, so clear it.");
- }
- }
- }
-
- if (isDefault)
- {
- deviceName.Clear();
- }
- else
- {
- char* pDeviceName = null;
-
- ret = connection_profile_get_network_interface_name(profileHandle, &pDeviceName);
- if ((ret == CONNECTION_ERROR_NONE) && (pDeviceName != null))
- {
- deviceName = String(pDeviceName);
- free(pDeviceName);
- }
- }
-
- __bearerType = bearerType;
- __protocolType = protocolType;
- __apn = apn;
- __localAddressScheme = localAddressScheme;
- __dnsAddressScheme = dnsAddressScheme;
- __proxyAddress = proxyAddress;
- __deviceName = deviceName;
-
- __pLocalAddress.reset(pLocalAddress.release());
- __pSubnetMaskAddress.reset(pSubnetMaskAddress.release());
- __pDefaultGatewayAddress.reset(pDefaultGatewayAddress.release());
- __pPrimaryDnsAddress.reset(pPrimaryDnsAddress.release());
- __pSecondaryDnsAddress.reset(pSecondaryDnsAddress.release());
+ __proxyAddress = temp;
}
-NetConnectionInfo*
-_NetConnectionInfoImpl::CreateNetConnectionInfoN(void* pProfileHandle)
+void
+_NetConnectionInfoImpl::SetDeviceName(const String& deviceName)
{
- result r = E_SUCCESS;
-
- unique_ptr<NetConnectionInfo> pNetConnectionInfo;
- _NetConnectionInfoImpl* pNetConnectionInfoImpl = null;
-
- SysTryReturn(NID_NET, pProfileHandle != null, null, E_INVALID_ARG,
- "[%s] Invalid argument is used. The profile info is null.", GetErrorMessage(E_INVALID_ARG));
-
- pNetConnectionInfo.reset(new (std::nothrow) NetConnectionInfo());
- SysTryReturn(NID_NET, pNetConnectionInfo != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- pNetConnectionInfoImpl = _NetConnectionInfoImpl::GetInstance(*pNetConnectionInfo);
- SysTryReturn(NID_NET, pNetConnectionInfoImpl != null, null, E_OUT_OF_MEMORY,
- "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
- pNetConnectionInfoImpl->Update(pProfileHandle);
- r = GetLastResult();
- SysTryReturn(NID_NET, pNetConnectionInfoImpl != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
- return pNetConnectionInfo.release();
+ __deviceName = deviceName;
}
_NetConnectionInfoImpl::_NetConnectionInfoImpl(const _NetConnectionInfoImpl& value)
*/
#include <pthread.h>
-#include <net_connection.h>
#include <unique_ptr.h>
#include <FNetNetConnection.h>
#include <FNetIManagedNetConnectionEventListener.h>
#include "FNet_NetConnectionManagerImpl.h"
#include "FNet_NetConnectionInfoImpl.h"
#include "FNet_SystemNetConnection.h"
-#include "FNet_NetAccountDatabase.h"
+#include "FNet_NetIpcProxy.h"
#include "FNet_NetAccountManagerImpl.h"
#include "FNet_NetConnectionEvent.h"
#include "FNet_NetUtility.h"
{
if (__managedNetAccountId == _DEFAULT_PS_ACCOUNT_ID)
{
- __pPsConnection = _SystemNetConnection::GetPsInstance(_NetAccountManagerImpl::GetInternetAccountId());
+ _NetIpcProxy* pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryReturnResult(NID_NET, pIpcProxy != null, E_SYSTEM, "Failed to get IPC proxy.");
+
+ __pPsConnection = _SystemNetConnection::GetPsInstance(pIpcProxy->GetInternetAccountId());
}
else
{
ClearLastResult();
- result r = E_SUCCESS;
NetConnectionInfo* pInfo = null;
_SystemNetConnection* pSystemNetConnection = null;
}
else
{
- String profileName;
- connection_profile_h profileHandle = null;
-
- r = _NetAccountDatabase::GetProfileName(netAccountId, profileName);
- SysTryReturn(NID_NET, r == E_SUCCESS, null, E_INVALID_ACCOUNT,
- "[%s] Invalid network account. accountId:%d", GetErrorMessage(E_INVALID_ACCOUNT), netAccountId);
-
- profileHandle = (void*)_NetAccountManagerImpl::GetPsProfileHandleN(profileName);
- SysTryReturn(NID_NET, profileHandle != null, null, E_INVALID_ACCOUNT,
- "[%s] Invalid network account. accountId:%d", GetErrorMessage(E_INVALID_ACCOUNT), netAccountId);
+ _NetIpcProxy* pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryReturn(NID_NET, pIpcProxy != null, null, E_SYSTEM, "Failed to get IPC proxy.");
- pInfo = _NetConnectionInfoImpl::CreateNetConnectionInfoN(profileHandle);
- connection_profile_destroy(profileHandle);
+ pInfo = pIpcProxy->GetNetConnectionInfoN(netAccountId);
}
return pInfo;
IList*
_NetConnectionManagerImpl::GetAllNetConnectionInfoN(void)
{
- _NetConnectionManagerImpl* pThis = _NetConnectionManagerImpl::GetInstance();
- NetConnectionInfo* pInfo = null;
+ unique_ptr<ArrayList, _CollectionDeleter> pList(new (std::nothrow) ArrayList());
+ SysTryReturn(NID_NET, pList != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- ClearLastResult();
+#ifdef _OSP_EMUL_
+ NetConnectionInfo* pInfo = null;
+ _NetConnectionManagerImpl* pThis = _NetConnectionManagerImpl::GetInstance();
SysTryReturn(NID_NET, pThis != null, null, E_SYSTEM,
"[%s] Asystem error has been occurred. System is not ready.", GetErrorMessage(E_SYSTEM));
- unique_ptr<ArrayList, _CollectionDeleter> pList(new (std::nothrow) ArrayList());
- SysTryReturn(NID_NET, pList != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-#ifdef _OSP_EMUL_
const NetConnectionInfo* pManagedNetConnectionInfo = pThis->GetManagedNetConnectionInfo();
pInfo = new (std::nothrow) NetConnectionInfo(*pManagedNetConnectionInfo);
if (pInfo != null)
pList->Add(*pInfo);
}
#else // _OSP_EMUL_
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_iterator_h iterator = null;
- connection_profile_h profileHandle = null;
-
- ret = connection_create(&connectionHandle);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle(connectionHandle);
-
- ret = connection_get_profile_iterator(connectionHandle, CONNECTION_ITERATOR_TYPE_CONNECTED, &iterator);
- SysTryReturn(NID_NET, ret == CONNECTION_ERROR_NONE, null, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_profile_iterator() is %d",
- GetErrorMessage(E_SYSTEM), ret);
- unique_ptr<void, _ProfileIteratorDeleter> pIterator(iterator);
-
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- while ((ret == CONNECTION_ERROR_NONE) && (profileHandle != null))
- {
- pInfo = _NetConnectionInfoImpl::CreateNetConnectionInfoN(profileHandle);
- if (pInfo != null)
- {
- pList->Add(*pInfo);
- }
+ result r = E_SUCCESS;
+ _NetIpcProxy* pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryReturn(NID_NET, pIpcProxy != null, null, E_SYSTEM, "[E_SYSTEM] Failed to get IPC proxy.");
+
+ r = pIpcProxy->GetAllNetConnectionInfo(pList.get());
+ SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
- profileHandle = null;
- ret = connection_profile_iterator_next(iterator, &profileHandle);
- }
#endif // _OSP_EMUL_
- SysLog(NID_NET, "GetAllNetConnectionInfoN() has been succeeded with result:%s, count:%d",
- GetErrorMessage(GetLastResult()), pList->GetCount());
+ SysLog(NID_NET, "GetAllNetConnectionInfoN() has been succeeded with count:%d", pList->GetCount());
+
+ ClearLastResult();
return pList.release();
}
bool ret = false;
_NetConnectionManagerImpl* pThis = _NetConnectionManagerImpl::GetInstance();
+ SysTryReturn(NID_NET, pThis != null, true, E_SYSTEM,
+ "[E_SYSTEM] Asystem error has been occurred. System is not ready.");
+
SysLog(NID_NET, "Preference:%d, AccountId:%d", pThis->__managedNetPreference, pThis->__managedNetAccountId);
ret = pThis->__isManagedNetDefaultMode;
SysTryReturnResult(NID_NET, netAccountId >= _PS_ACCOUNT_ID_START,
E_INVALID_ARG, "Invalid argument is used. accountId=%d", netAccountId);
- r = _NetAccountDatabase::GetAccountName(netAccountId, accountName);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_INVALID_ARG, "Invalid argument is used. accountId=%d", netAccountId);
-
__pPsConnection = _SystemNetConnection::GetPsInstance(netAccountId);
SysTryReturnResult(NID_NET, __pPsConnection != null, E_INVALID_ARG, "Invalid argument is used. accountId=%d", netAccountId);
{
if (__managedNetAccountId == _DEFAULT_PS_ACCOUNT_ID)
{
- accountId = _NetAccountManagerImpl::GetInternetAccountId();
+ _NetIpcProxy* pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryReturn(NID_NET, pIpcProxy != null, INVALID_HANDLE, E_SYSTEM, "Failed to get IPC proxy.");
+
+ accountId = pIpcProxy->GetInternetAccountId();
}
else
{
+++ /dev/null
-//
-// Open Service Platform
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
-//
-// 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.
-//
-/**
- * @file FNet_NetExporter.cpp
- * @brief This is the implementation for the %_NetExporter class.
- */
-
-#include <unique_ptr.h>
-#include <FNetNetAccountInfo.h>
-#include <FBaseSysLog.h>
-#include "FNet_NetAccountInfoImpl.h"
-#include "FNet_NetExporter.h"
-
-using namespace std;
-using namespace Tizen::Base;
-
-namespace Tizen { namespace Net
-{
-
-_NetExporter::_NetExporter(void)
-{
-}
-
-_NetExporter::~_NetExporter(void)
-{
-}
-
-result
-_NetExporter::InitializeNetAccountInfo(NetAccountInfo* pAccountInfo, void* pProfileInfo)
-{
- result r = E_SUCCESS;
-
- SysTryReturnResult(NID_NET, pAccountInfo != null, E_INVALID_ARG, "Invalid argument is used. AccountInfo is null.");
- SysTryReturnResult(NID_NET, pProfileInfo != null, E_INVALID_ARG, "Invalid argument is used. ProfileInfo is null.");
-
- unique_ptr<_NetAccountInfoImpl> pNetAccountInfoImpl(new (std::nothrow) _NetAccountInfoImpl());
- SysTryReturnResult(NID_NET, pNetAccountInfoImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- r = pNetAccountInfoImpl->Construct(pAccountInfo, pProfileInfo);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
-
- pNetAccountInfoImpl.release();
-
- return r;
-}
-
-} } // Tizen::Net
#include <FNetNetTypes.h>
#include <FIo_IpcClient.h>
#include <FNet_ConnectivityIpcMessages.h>
-#include "FNet_NetAccountDatabase.h"
#include "FNet_NetIpcProxy.h"
#include "FNet_NetAccountInfoImpl.h"
+#include "FNet_DefaultSystemNetConnection.h"
+#include "FNet_PsSystemNetConnection.h"
+#include "FNet_WifiSystemNetConnection.h"
using namespace std;
using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
using namespace Tizen::Io;
namespace Tizen { namespace Net
_NetIpcProxy::_NetIpcProxy(void)
: __pIpcClient(null)
+ , __pDefaultNetConnection(null)
+ , __pWifiNetConnection(null)
{
}
unique_ptr<_IpcClient> pIpcClient(new (std::nothrow) _IpcClient());
SysTryReturnResult(NID_NET, pIpcClient != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- r = pIpcClient->Construct(NET_CONNECTIVITY_IPC_SERVER_NAME, null);
+ r = pIpcClient->Construct(NET_CONNECTIVITY_IPC_SERVER_NAME, this);
SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
__pIpcClient = move(pIpcClient);
}
result
-_NetIpcProxy::UpdateSystemNetAccount(const String& profileName, const NetAccountInfo& netAccountInfo, NetBearerType bearerType)
+_NetIpcProxy::UpdateSystemNetAccount(const NetAccountInfo& netAccountInfo)
{
result r = E_SUCCESS;
unsigned long ret = 0;
- unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_updateSystemNetAccount(profileName, netAccountInfo, bearerType, &ret));
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_updateSystemNetAccount(netAccountInfo, &ret));
SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
return r;
}
+
result
_NetIpcProxy::GetAppNetAccountId(const String& netProfileName, NetAccountId& netAccountId) const
{
return r;
}
+result
+_NetIpcProxy::AddDefaultConnectionListener(_DefaultSystemNetConnection* pDefaultNetConnection, NetConnectionState& netConnectionState, NetBearerType& netBearerType, NetConnectionInfo& netConnectionInfo)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int state = 0;
+ int bearer = 0;
+
+ SysLog(NID_NET, "AddDefaultConnectionListener() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_addDefaultConnectionListener(&state, &bearer, &netConnectionInfo, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ netConnectionState = static_cast<NetConnectionState>(state);
+ netBearerType = static_cast<NetBearerType>(bearer);
+
+ __pDefaultNetConnection = pDefaultNetConnection;
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::AddWifiConnectionListener(_WifiSystemNetConnection* pWifiNetConnection, NetConnectionState& netConnectionState, NetConnectionInfo& netConnectionInfo)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int state = 0;
+
+ SysLog(NID_NET, "AddWifiConnectionListener() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_addWifiConnectionListener(&state, &netConnectionInfo, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ netConnectionState = static_cast<NetConnectionState>(state);
+
+ __pWifiNetConnection = pWifiNetConnection;
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::StartWifiConnection(void)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "StartWifiConnection() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_startWifiConnection(&ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::StartPsConnection(const String& profileName)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "StartPsConnection() has been called with profile[%ls].", profileName.GetPointer());
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_startPsConnection(profileName, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::StopPsConnection(const String& profileName)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "StopPsConnection() has been called with profile[%ls].", profileName.GetPointer());
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_stopPsConnection(profileName, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::GetPsConnectionState(const String& profileName, NetConnectionState& netConnectionState, String& devName)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int state = 0;
+
+ SysLog(NID_NET, "GetPsConnectionState() has been called with profile[%ls].", profileName.GetPointer());
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getPsConnectionState(profileName, &state, &devName, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ netConnectionState = static_cast<NetConnectionState>(state);
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::GetNetAccountName(NetAccountId netAccountId, String& netAccountName)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "GetNetAccountName() has been called with accountId[%d].", netAccountId);
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getNetAccountName(netAccountId, &netAccountName, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::GetNetProfileName(NetAccountId netAccountId, String& netProfileName)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "GetNetProfileName() has been called with accountId[%d].", netAccountId);
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getNetProfileName(netAccountId, &netProfileName, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+NetConnectionInfo*
+_NetIpcProxy::GetNetConnectionInfoN(NetAccountId netAccountId)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "GetNetConnectionInfoN() has been called with accountId[%d].", netAccountId);
+
+ unique_ptr<NetConnectionInfo> pConnectionInfo(new NetConnectionInfo());
+ SysTryReturn(NID_NET, pConnectionInfo!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityNetServiceMsg_getNetConnectionInfo(netAccountId, pConnectionInfo.get(), &ret));
+ SysTryReturn(NID_NET, pMessage!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET, ret == E_SUCCESS, null, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return pConnectionInfo.release();
+}
+
+NetAccountInfo*
+_NetIpcProxy::GetNetAccountInfoN(NetAccountId netAccountId)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "GetNetAccountInfoN() has been called with accountId[%d].", netAccountId);
+
+ unique_ptr<NetAccountInfo> pAccountInfo(new NetAccountInfo());
+ SysTryReturn(NID_NET, pAccountInfo != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityNetServiceMsg_getNetAccountInfo(netAccountId, pAccountInfo.get(), &ret));
+ SysTryReturn(NID_NET, pMessage!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturn(NID_NET, r == E_SUCCESS, null, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET, ret == E_SUCCESS, null, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return pAccountInfo.release();
+}
+
+NetAccountId
+_NetIpcProxy::GetNetAccountId(const String& netAccountName)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int accountId = 0;
+
+ SysLog(NID_NET, "GetNetAccountId() has been called with accountName[%ls].", netAccountName.GetPointer());
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getNetAccountId(netAccountName, &accountId, &ret));
+ SysTryReturn(NID_NET, pMessage!= null, INVALID_HANDLE, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET, ret == E_SUCCESS, INVALID_HANDLE, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ NetAccountId netAccountId = static_cast<NetAccountId>(accountId);
+
+ return netAccountId;
+}
+
+NetAccountId
+_NetIpcProxy::GetInternetAccountId(void)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int accountId = 0;
+
+ SysLog(NID_NET, "GetInternetAccountId() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getInternetNetAccountId(&accountId, &ret));
+ SysTryReturn(NID_NET, pMessage!= null, INVALID_HANDLE, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET, ret == E_SUCCESS, INVALID_HANDLE, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ NetAccountId netAccountId = static_cast<NetAccountId>(accountId);
+
+ return netAccountId;
+}
+
+NetAccountId
+_NetIpcProxy::GetMmsAccountId(void)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int accountId = 0;
+
+ SysLog(NID_NET, "GetMmsAccountId() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getMmsNetAccountId(&accountId, &ret));
+ SysTryReturn(NID_NET, pMessage!= null, INVALID_HANDLE, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET, ret == E_SUCCESS, INVALID_HANDLE, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ NetAccountId netAccountId = static_cast<NetAccountId>(accountId);
+
+ return netAccountId;
+}
+
+NetAccountId
+_NetIpcProxy::CreateNetAccount(const NetAccountInfo& netAccountInfo)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int accountId = 0;
+
+ SysLog(NID_NET, "CreateNetAccount() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_createNetAccount(netAccountInfo, &accountId, &ret));
+ SysTryReturn(NID_NET, pMessage!= null, INVALID_HANDLE, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturn(NID_NET, r == E_SUCCESS, INVALID_HANDLE, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET, ret == E_SUCCESS, INVALID_HANDLE, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ NetAccountId netAccountId = static_cast<NetAccountId>(accountId);
+
+ return netAccountId;
+}
+
+result
+_NetIpcProxy::DeleteNetAccount(NetAccountId netAccountId)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "DeleteNetAccount() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_deleteNetAccount(netAccountId, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::UpdateNetAccount(const NetAccountInfo& netAccountInfo)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "UpdateNetAccount() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_updateNetAccount(netAccountInfo, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::GetNetAccountIds(ArrayListT<NetAccountId>* pList)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "GetNetAccountIds() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getNetAccountIds(pList, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::GetNetAccountNames(ArrayList* pList)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ SysLog(NID_NET, "GetNetAccountNames() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getNetAccountNames(pList, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ return E_SUCCESS;
+}
+
+result
+_NetIpcProxy::GetAllNetConnectionInfo(ArrayList* pList)
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ ArrayListT<NetConnectionInfo*> list;
+ NetConnectionInfo* pInfo = null;
+
+ SysLog(NID_NET, "GetAllNetConnectionInfo() has been called.");
+
+ unique_ptr<IPC::Message> pMessage(new (std::nothrow) ConnectivityNetServiceMsg_getAllNetConnectionInfo(&list, &ret));
+ SysTryReturnResult(NID_NET, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred.");
+ SysTryReturnResult(NID_NET, ret == E_SUCCESS, ret, "Propagating.");
+
+ IEnumeratorT<NetConnectionInfo*>* pEnum = list.GetEnumeratorN();
+ if (pEnum != null)
+ {
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pInfo);
+ pList->Add(*pInfo);
+ }
+ delete pEnum;
+ }
+
+ return E_SUCCESS;
+}
+
+void
+_NetIpcProxy::OnIpcResponseReceived(Tizen::Io::_IpcClient& client, const IPC::Message& message)
+{
+ SysLog(NID_NET, "OnIpcResponseReceived");
+
+ IPC_BEGIN_MESSAGE_MAP(_NetIpcProxy, message)
+ IPC_MESSAGE_HANDLER(ConnectivityNetServiceMsg_onDefaultConnectionChanged, OnDefaultConnectionChanged, &client)
+ IPC_MESSAGE_HANDLER(ConnectivityNetServiceMsg_onWifiConnectionChanged, OnWifiConnectionChanged, &client)
+ IPC_MESSAGE_HANDLER(ConnectivityNetServiceMsg_onPsConnectionStarted, OnPsConnectionStarted, &client)
+ IPC_MESSAGE_HANDLER(ConnectivityNetServiceMsg_onPsConnectionStopped, OnPsConnectionStopped, &client)
+ IPC_MESSAGE_HANDLER(ConnectivityNetServiceMsg_onDefaultProxyChanged, OnDefaultProxyChanged, &client)
+ IPC_END_MESSAGE_MAP()
+}
+
+void
+_NetIpcProxy::OnDefaultConnectionChanged(unsigned long error, int eventType, int connectionState, int bearerType, const NetConnectionInfo& connectionInfo)
+{
+ SysLog(NID_NET, "The listener has been called.");
+
+ if (__pDefaultNetConnection != null)
+ {
+ __pDefaultNetConnection->ProcessEvent((result)error, (_NetConnectionEventType)eventType, (NetConnectionState)connectionState, (NetBearerType)bearerType, connectionInfo);
+ }
+}
+
+void
+_NetIpcProxy::OnWifiConnectionChanged(unsigned long error, int eventType, int connectionState, const NetConnectionInfo& connectionInfo)
+{
+ SysLog(NID_NET, "The listener has been called.");
+
+ if (__pWifiNetConnection != null)
+ {
+ __pWifiNetConnection->ProcessEvent((result)error, (_NetConnectionEventType)eventType, (NetConnectionState)connectionState, connectionInfo);
+ }
+}
+
+void
+_NetIpcProxy::OnPsConnectionStarted(const String& profileName, unsigned long error, const NetConnectionInfo& connectionInfo)
+{
+ SysLog(NID_NET, "The listener has been called.");
+
+ _PsSystemNetConnection* pConnection = _SystemNetConnection::GetPsInstanceByProfile(profileName);
+ if (pConnection != null)
+ {
+ pConnection->ProcessStartEvent((result)error, connectionInfo);
+ }
+}
+
+void
+_NetIpcProxy::OnPsConnectionStopped(const String& profileName, unsigned long error)
+{
+ SysLog(NID_NET, "The listener has been called.");
+
+ _PsSystemNetConnection* pConnection = _SystemNetConnection::GetPsInstanceByProfile(profileName);
+ if (pConnection != null)
+ {
+ pConnection->ProcessStopEvent((result)error);
+ }
+}
+
+void
+_NetIpcProxy::OnDefaultProxyChanged(const String& proxy)
+{
+ SysLog(NID_NET, "The listener has been called with proxy[%ls].", proxy.GetPointer());
+
+ if (__pDefaultNetConnection != null)
+ {
+ __pDefaultNetConnection->ProcessProxyChangedEvent(proxy);
+ }
+
+ if (__pWifiNetConnection != null)
+ {
+ __pWifiNetConnection->ProcessProxyChangedEvent(proxy);
+ }
+}
+
+
}} // Tizen::Net
#define _FNET_INTERNAL_NET_IPC_PROXY_H_
#include <FBaseObject.h>
+#include <FBaseCol.h>
+#include <FNetNetAccountInfo.h>
+#include <FNetNetConnectionInfo.h>
+#include <FIo_IpcCommonDataTypes.h>
+#include <FIo_IIpcClientEventListener.h>
#include "FNet_NetUtility.h"
// Forward declaration
namespace Tizen { namespace Net
{
+class _DefaultSystemNetConnection;
+class _WifiSystemNetConnection;
+
/**
* @class _NetIpcProxy
* @brief This class represents an IPC proxy for %Net service.
*/
class _NetIpcProxy
: public Tizen::Base::Object
+ , public Tizen::Io::_IIpcClientEventListener
{
public:
+ virtual void OnIpcResponseReceived(Tizen::Io::_IpcClient& client, const IPC::Message& message);
+
static _NetIpcProxy* GetInstance(void);
result GetAppNetAccountId(const Tizen::Base::String& netProfileName, NetAccountId& netAccountId) const;
result SetNetAccountId(NetAccountId netAccountId, NetAccountId& netAccountId2);
- result UpdateSystemNetAccount(const Tizen::Base::String& profileName, const NetAccountInfo& netAccountInfo, NetBearerType bearerType);
+ result UpdateSystemNetAccount(const NetAccountInfo& netAccountInfo);
result ResetNetStatistics(NetBearerType bearerType, NetStatisticsInfoType statType);
result ResetAllNetStatistics(NetBearerType bearerType);
+ result AddDefaultConnectionListener(_DefaultSystemNetConnection* pDefaultNetConnection, NetConnectionState& netConnectionState, NetBearerType& netBearerType, NetConnectionInfo& netConnectionInfo);
+ result AddWifiConnectionListener(_WifiSystemNetConnection* pWifiNetConnection, NetConnectionState& netConnectionState, NetConnectionInfo& netConnectionInfo);
+ result StartWifiConnection(void);
+ result StartPsConnection(const Tizen::Base::String& profileName);
+ result StopPsConnection(const Tizen::Base::String& profileName);
+ result GetPsConnectionState(const Tizen::Base::String& profileName, NetConnectionState& netConnectionState, Tizen::Base::String& devName);
+
+ result GetNetAccountName(NetAccountId netAccountId, Tizen::Base::String& netAccountName);
+ result GetNetProfileName(NetAccountId netAccountId, Tizen::Base::String& netProfileName);
+ NetConnectionInfo* GetNetConnectionInfoN(NetAccountId netAccountId);
+ NetAccountInfo* GetNetAccountInfoN(NetAccountId netAccountId);
+ NetAccountId GetNetAccountId(const Tizen::Base::String& netAccountName);
+ NetAccountId GetInternetAccountId(void);
+ NetAccountId GetMmsAccountId(void);
+ NetAccountId CreateNetAccount(const NetAccountInfo& netAccountInfo);
+ result DeleteNetAccount(NetAccountId netAccountId);
+ result UpdateNetAccount(const NetAccountInfo& netAccountInfo);
+ result GetNetAccountIds(Tizen::Base::Collection::ArrayListT<NetAccountId>* pList);
+ result GetNetAccountNames(Tizen::Base::Collection::ArrayList* pList);
+ result GetAllNetConnectionInfo(Tizen::Base::Collection::ArrayList* pList);
+
private:
_NetIpcProxy(void);
virtual ~_NetIpcProxy(void);
_NetIpcProxy(const _NetIpcProxy& value);
_NetIpcProxy& operator =(const _NetIpcProxy& rhs);
+ void OnDefaultConnectionChanged(unsigned long error, int eventType, int connectionState, int bearerType, const NetConnectionInfo& connectionInfo);
+ void OnWifiConnectionChanged(unsigned long error, int eventType, int connectionState, const NetConnectionInfo& connectionInfo);
+ void OnPsConnectionStarted(const Tizen::Base::String& profileName, unsigned long error, const NetConnectionInfo& connectionInfo);
+ void OnPsConnectionStopped(const Tizen::Base::String& profileName, unsigned long error);
+ void OnDefaultProxyChanged(const Tizen::Base::String& proxy);
+
static void InitSingleton(void);
private:
std::unique_ptr<Tizen::Io::_IpcClient> __pIpcClient;
+ _DefaultSystemNetConnection* __pDefaultNetConnection;
+ _WifiSystemNetConnection* __pWifiNetConnection;
+
static _NetIpcProxy* __pInstance;
friend class std::default_delete<_NetIpcProxy>;
#include <FNetNetStatistics.h>
#include <FBaseSysLog.h>
#include "FNet_NetTypes.h"
+#include "FNet_NetUtility.h"
#include "FNet_NetStatisticsImpl.h"
#include "FNet_NetIpcProxy.h"
result
_NetStatisticsImpl::Construct()
{
- result r = E_SUCCESS;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
-
SysAssertf(!__isConstructed,
"Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
- ret = connection_create(&connectionHandle);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_create() is %d", GetErrorMessage(E_SYSTEM), ret);
-
- __pConnectionHandle.reset(connectionHandle);
__isConstructed = true;
- return r;
+ return E_SUCCESS;
}
long long
#include <FBaseDataType.h>
#include <FBaseObject.h>
#include <FNetNetTypes.h>
-#include "FNet_NetUtility.h"
namespace Tizen { namespace Net
{
private:
bool __isConstructed;
- std::unique_ptr<void, _ConnectionDeleter> __pConnectionHandle;
friend class NetStatistics;
}; // _NetStatisticsImpl
}
};
-struct _ProfileDeleter
-{
- void operator()(void* pProfile)
- {
- connection_profile_destroy(pProfile);
- }
-};
-
struct _TetheringDeleter
{
void operator()(void* pTethering)
}
};
-
-struct _ProfileIteratorDeleter
-{
- void operator()(void* pIterator)
- {
- connection_destroy_profile_iterator(pIterator);
- }
-};
-
struct _CollectionDeleter
{
template<typename Collection>
* This file contains the implementation of _PsSystemNetConnection class.
*/
-#include <net_connection.h>
#include <FNetNetConnectionInfo.h>
#include <FBaseSysLog.h>
#include <FBase_StringConverter.h>
#include "FNet_NetTypes.h"
#include "FNet_NetConnectionInfoImpl.h"
#include "FNet_PsSystemNetConnection.h"
-#include "FNet_NetAccountDatabase.h"
#include "FNet_NetAccountManagerImpl.h"
#include "FNet_NetConnectionEvent.h"
#include "FNet_NetConnectionEventArg.h"
namespace Tizen { namespace Net {
-void
-PsOpenCallback(connection_error_e res, void* pUserData)
-{
- _PsSystemNetConnection* pConnection = static_cast<_PsSystemNetConnection*>(pUserData);
- NetConnectionState connectionState = pConnection->GetConnectionState();
- bool isConnected = false;
- char* pProfileName = null;
- char* pProfileDisplayName = null;
- int ret = CONNECTION_ERROR_NONE;
- connection_profile_h profileHandle = pConnection->GetProfileHandle();
- connection_profile_state_e state = CONNECTION_PROFILE_STATE_DISCONNECTED;
-
- ret = connection_profile_refresh(profileHandle);
- SysLog(NID_NET, "The return value from connection_profile_refresh() is %d", ret);
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysLog(NID_NET, "The return value from connection_profile_get_id() is %d", ret);
- ret = connection_profile_get_name(profileHandle, &pProfileDisplayName);
- SysLog(NID_NET, "The return value from connection_profile_get_name() is %d", ret);
- ret = connection_profile_get_state(profileHandle, &state);
- SysLog(NID_NET, "The return value from connection_profile_get_state() is %d", ret);
-
- SysSecureLog(NID_NET, "PsOpenCallback() has been called with res:%d, state:%d, name:[%s][%s]", res, state, pProfileDisplayName, pProfileName);
-
- if ((res == CONNECTION_ERROR_NONE) && (state == CONNECTION_PROFILE_STATE_CONNECTED))
- {
- SysLog(NID_NET, "Profile[%s] is connected.", pProfileName);
- isConnected = true;
- }
- else
- {
- SysLog(NID_NET, "Profile[%s] is disconnected.", pProfileName);
- isConnected = false;
- }
-
- free(pProfileName);
- free(pProfileDisplayName);
-
- if (connectionState != NET_CONNECTION_STATE_STARTING)
- {
- SysLog(NID_NET, "Ignore open response because it is in state[%d].", connectionState);
- return;
- }
-
- if (isConnected)
- {
- pConnection->HandleStartResponse(E_SUCCESS, profileHandle);
- }
- else
- {
- pConnection->HandleStartResponse(E_NETWORK_FAILED, null);
- }
-}
-
-void
-PsCloseCallback(connection_error_e res, void* pUserData)
-{
- _PsSystemNetConnection* pConnection = static_cast<_PsSystemNetConnection*>(pUserData);
- NetConnectionState connectionState = pConnection->GetConnectionState();
- bool isConnected = false;
- char* pProfileName = null;
- char* pProfileDisplayName = null;
- int ret = CONNECTION_ERROR_NONE;
- connection_profile_h profileHandle = pConnection->GetProfileHandle();
- connection_profile_state_e state = CONNECTION_PROFILE_STATE_DISCONNECTED;
-
- ret = connection_profile_refresh(profileHandle);
- SysLog(NID_NET, "The return value from connection_profile_refresh() is %d", ret);
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysLog(NID_NET, "The return value from connection_profile_get_id() is %d", ret);
- ret = connection_profile_get_name(profileHandle, &pProfileDisplayName);
- SysLog(NID_NET, "The return value from connection_profile_get_name() is %d", ret);
- ret = connection_profile_get_state(profileHandle, &state);
- SysLog(NID_NET, "The return value from connection_profile_get_state() is %d", ret);
-
- SysSecureLog(NID_NET, "PsCloseCallback() has been called with res:%d, state:%d, name:[%s][%s]", res, state, pProfileDisplayName, pProfileName);
-
- if ((res == CONNECTION_ERROR_NONE) && (state == CONNECTION_PROFILE_STATE_CONNECTED))
- {
- SysLog(NID_NET, "Profile[%s] is connected.", pProfileName);
- isConnected = true;
- }
- else
- {
- SysLog(NID_NET, "Profile[%s] is disconnected.", pProfileName);
- isConnected = false;
- }
-
- free(pProfileName);
- free(pProfileDisplayName);
-
- if (connectionState != NET_CONNECTION_STATE_STOPPING)
- {
- SysLog(NID_NET, "Ignore close response because it is in state[%d].", connectionState);
- return;
- }
-
- pConnection->HandleStopResponse();
-}
-
-void
-PsStateChangedCallback(connection_profile_state_e state, void* pUserData)
-{
- _PsSystemNetConnection* pConnection = static_cast<_PsSystemNetConnection*>(pUserData);
- NetConnectionState connectionState = pConnection->GetConnectionState();
- bool isConnected = false;
- char* pProfileName = null;
- char* pProfileDisplayName = null;
- int ret = CONNECTION_ERROR_NONE;
- connection_profile_h profileHandle = pConnection->GetProfileHandle();
-
- ret = connection_profile_refresh(profileHandle);
- SysLog(NID_NET, "The return value from connection_profile_refresh() is %d", ret);
- ret = connection_profile_get_id(profileHandle, &pProfileName);
- SysLog(NID_NET, "The return value from connection_profile_get_id() is %d", ret);
- ret = connection_profile_get_name(profileHandle, &pProfileDisplayName);
- SysLog(NID_NET, "The return value from connection_profile_get_name() is %d", ret);
-
- SysSecureLog(NID_NET, "PsStateChangedCallback() has been called with state:%d, name:[%s][%s]", state, pProfileDisplayName, pProfileName);
-
- if (state == CONNECTION_PROFILE_STATE_CONNECTED)
- {
- SysLog(NID_NET, "Profile[%s] is connected.", pProfileName);
- isConnected = true;
- }
- else
- {
- SysLog(NID_NET, "Profile[%s] is disconnected.", pProfileName);
- isConnected = false;
- }
-
- free(pProfileName);
- free(pProfileDisplayName);
-
- if ((connectionState == NET_CONNECTION_STATE_STARTING) || (connectionState == NET_CONNECTION_STATE_STOPPING))
- {
- SysLog(NID_NET, "Ignore (not requested) event because it is in state[%d].", connectionState);
- return;
- }
-
- if (isConnected)
- {
- // Start event
- SysLog(NID_NET, "Ignore started event.");
- }
- else
- {
- // Stop event
- pConnection->HandleStopEvent(E_NETWORK_FAILED);
- }
-}
-
_PsSystemNetConnection::_PsSystemNetConnection(void)
- : __pConnectionHandle(null)
- , __pProfileHandle(null)
+ : __pIpcProxy(null)
{
}
result
_PsSystemNetConnection::Construct(const String& profileName)
{
- SysLog(NID_NET, "Construct()has been called with profileName:%ls", profileName.GetPointer());
-
result r = E_SUCCESS;
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle;
- unique_ptr<void, _ProfileDeleter> pProfileHandle;
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_h profileHandle = null;
-
- SysAssertf(__pConnectionHandle == null,
- "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
r = _SystemNetConnection::Initialize(L"PS");
SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
- ret = connection_create(&connectionHandle);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d", GetErrorMessage(E_SYSTEM), ret);
- pConnectionHandle.reset(connectionHandle);
-
- profileHandle = _NetAccountManagerImpl::GetPsProfileHandleN(profileName);
- SysTryCatch(NID_NET, profileHandle != null, r = GetLastResult(), GetLastResult(),
- "[%s] Propagating.", GetErrorMessage(GetLastResult()));
- pProfileHandle.reset(profileHandle);
-
- ret = connection_profile_set_state_changed_cb(profileHandle, PsStateChangedCallback, this);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_profile_set_state_changed_cb() is %d", GetErrorMessage(E_SYSTEM), ret);
+ __pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryCatch(NID_NET, __pIpcProxy != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to initialize IPC client.");
__profileName = profileName;
- __pConnectionHandle = move(pConnectionHandle);
- __pProfileHandle = move(pProfileHandle);
return r;
CATCH:
+ __pIpcProxy = null;
_SystemNetConnection::Deinitialize();
return r;
result r = E_SUCCESS;
_NetConnectionEventArg* pEventArg = null;
- SysAssertf(__pConnectionHandle != null,
- "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
-
MutexGuard locked(*_pLock);
if (_connectionState == NET_CONNECTION_STATE_STARTED)
// None or Stopped
SysLog(NID_NET, "PS connection[%ls] is not active, so start now.", __profileName.GetPointer());
- int ret = CONNECTION_ERROR_NONE;
-
- ret = connection_open_profile(__pConnectionHandle.get(), __pProfileHandle.get(), PsOpenCallback, this);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_open_profile() is %d", ret);
+ r = __pIpcProxy->StartPsConnection(__profileName);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
_connectionState = NET_CONNECTION_STATE_STARTING;
event.SetConnectionState(NET_CONNECTION_STATE_STARTING);
_refCount++;
}
- locked.Unlock();
-
return r;
}
result r = E_SUCCESS;
_NetConnectionEventArg* pEventArg = null;
- SysAssertf(__pConnectionHandle != null,
- "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
-
MutexGuard locked(*_pLock);
if ((event.GetConnectionState() == NET_CONNECTION_STATE_STARTED) ||
{
SysLog(NID_NET, "PS connection[%ls] is used by others[%d].", __profileName.GetPointer(), _refCount-1);
- if (waitingEvent)
- {
- pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, E_SUCCESS);
- SysTryReturnResult(NID_NET, pEventArg != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- event.SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- event.FireAsync(*pEventArg);
- }
-
_refCount--;
}
else
{
SysLog(NID_NET, "PS connection[%ls] is not used any longer, so stop it.", __profileName.GetPointer());
- int ret = CONNECTION_ERROR_NONE;
-
- ret = connection_close_profile(__pConnectionHandle.get(), __pProfileHandle.get(), PsCloseCallback, this);
- SysTryReturnResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "A system error has been occurred. The return value from connection_close_profile() is %d", ret);
+ r = __pIpcProxy->StopPsConnection(__profileName);
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
- _connectionState = NET_CONNECTION_STATE_STOPPING;
+ _connectionState = NET_CONNECTION_STATE_STOPPED;
_refCount--;
-
- event.SetConnectionState(NET_CONNECTION_STATE_STOPPING);
}
}
else if ((_connectionState == NET_CONNECTION_STATE_STOPPING) ||
{
// Waiting Response
_refCount--;
- event.SetConnectionState(NET_CONNECTION_STATE_STOPPING);
}
}
else
{
// None or Stopped
SysLog(NID_NET, "PS connection[%ls] is already stopped.", __profileName.GetPointer());
-
- if (waitingEvent)
- {
- pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, E_SUCCESS);
- SysTryReturnResult(NID_NET, pEventArg != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- event.SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- event.FireAsync(*pEventArg);
- }
}
- locked.Unlock();
-
- return r;
-}
-
-void
-_PsSystemNetConnection::HandleStartResponse(result error, void* pData)
-{
- IEnumerator* pEnum = null;
- _NetConnectionEvent* pEvent = null;
- _NetConnectionEventArg* pStartEventArg = null;
- _NetConnectionEventArg* pStopEventArg = null;
-
- if (_connectionState != NET_CONNECTION_STATE_STARTING)
- {
- SysLog(NID_NET, "Ignore _PsSystemNetConnection::HandleStartResponse() because this is NOT in starting state.");
- return;
- }
-
- MutexGuard locked(*_pLock);
-
- if (error == E_SUCCESS)
- {
- _bearerType = NET_BEARER_PS;
- _connectionState = NET_CONNECTION_STATE_STARTED;
- _pConnectionInfo->Update(pData);
- }
- else
- {
- _bearerType = NET_BEARER_NONE;
- _connectionState = NET_CONNECTION_STATE_STOPPED;
- _pConnectionInfo->Clear();
- _refCount = 0;
- }
-
- pEnum = _pEventList->GetEnumeratorN();
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
- if (pEvent != null)
- {
- if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
- {
- if (error == E_SUCCESS)
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STARTED);
- }
- else
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- }
-
- pStartEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, error);
- if (pStartEventArg != null)
- {
- pEvent->FireAsync(*pStartEventArg);
- SysLog(NID_NET, "Fire Start event on event[0x%x].", pEvent);
- }
- }
- else if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STOPPING)
- {
- if (error != E_SUCCESS)
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- pStopEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, E_SUCCESS);
- if (pStopEventArg != null)
- {
- pEvent->FireAsync(*pStopEventArg);
- }
- }
- }
- }
- }
-
- delete pEnum;
- }
+ event.SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- if ((_connectionState == NET_CONNECTION_STATE_STARTED) && (_refCount == 0))
+ if (waitingEvent)
{
- SysLog(NID_NET, "Connection is started, but not used any more, so stop it.");
-
- int ret = CONNECTION_ERROR_NONE;
- bool isSuccess = false;
-
- ret = connection_close_profile(__pConnectionHandle.get(), __pProfileHandle.get(), PsCloseCallback, this);
- if (ret == CONNECTION_ERROR_NONE)
- {
- _connectionState = NET_CONNECTION_STATE_STOPPING;
- isSuccess = true;
- }
-
- if (isSuccess == false)
- {
- _connectionState = NET_CONNECTION_STATE_STOPPED;
-
- pEnum = _pEventList->GetEnumeratorN();
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
- if (pEvent != null)
- {
- if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STOPPING)
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- pStopEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, E_SUCCESS);
- if (pStopEventArg != null)
- {
- pEvent->FireAsync(*pStopEventArg);
- }
- }
- }
- }
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, E_SUCCESS);
+ SysTryReturnResult(NID_NET, pEventArg != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- delete pEnum;
- }
- }
+ event.FireAsync(*pEventArg);
}
- locked.Unlock();
+ return r;
}
void
-_PsSystemNetConnection::HandleStopResponse(void)
+_PsSystemNetConnection::ProcessStartEvent(result error,const NetConnectionInfo& connectionInfo)
{
- IEnumerator* pEnum = null;
+ result r = E_SUCCESS;
_NetConnectionEvent* pEvent = null;
_NetConnectionEventArg* pEventArg = null;
- if (_connectionState != NET_CONNECTION_STATE_STOPPING)
- {
- SysLog(NID_NET, "Ignore _PsSystemNetConnection::HandleStopResponse() because this is NOT in stopping state.");
- return;
- }
+ SysLog(NID_NET, "Notify ps connection started event. [%s]", GetErrorMessage(error));
MutexGuard locked(*_pLock);
- _bearerType = NET_BEARER_NONE;
- _connectionState = NET_CONNECTION_STATE_STOPPED;
- _pConnectionInfo->Clear();
+ _connectionState = NET_CONNECTION_STATE_STARTED;
+ _bearerType = connectionInfo.GetBearerType();
+ __connectionInfo = connectionInfo;
- pEnum = _pEventList->GetEnumeratorN();
+ unique_ptr<IEnumerator> pEnum(_pEventList->GetEnumeratorN());
if (pEnum != null)
{
while (pEnum->MoveNext() == E_SUCCESS)
pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
if (pEvent != null)
{
- if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STOPPING)
+ pEvent->SetConnectionState(NET_CONNECTION_STATE_STARTED);
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, E_SUCCESS);
+
+ if (pEventArg != null)
{
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, E_SUCCESS);
- if (pEventArg != null)
- {
- pEvent->FireAsync(*pEventArg);
- }
+ pEvent->FireAsync(*pEventArg);
}
}
}
-
- delete pEnum;
}
- if (_refCount > 0)
+ if (_refCount == 0)
{
- SysLog(NID_NET, "Connection is stopped, but another start request is found, so start the connection.");
-
- int ret = CONNECTION_ERROR_NONE;
- bool isSuccess = false;
-
- ret = connection_open_profile(__pConnectionHandle.get(), __pProfileHandle.get(), PsOpenCallback, this);
- SysLog(NID_NET, "Invoke connection_open_profile() ret[%d].", ret);
- if (ret == CONNECTION_ERROR_NONE)
- {
- _connectionState = NET_CONNECTION_STATE_STARTING;
- isSuccess = true;
- }
-
- if (isSuccess == false)
- {
- _refCount = 0;
+ SysLog(NID_NET, "Connection is started, but not used any more, so stop it.");
- pEnum = _pEventList->GetEnumeratorN();
- if (pEnum != null)
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
- if (pEvent != null)
- {
- if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, E_NETWORK_FAILED);
- if (pEventArg != null)
- {
- pEvent->FireAsync(*pEventArg);
- }
- }
- }
- }
+ r = __pIpcProxy->StopPsConnection(__profileName);
+ SysTryReturnVoidResult(NID_NET, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
- delete pEnum;
- }
- }
+ _connectionState = NET_CONNECTION_STATE_STOPPED;
}
-
- locked.Unlock();
-}
-
-void
-_PsSystemNetConnection::HandleStartEvent(void)
-{
- SysLogException(NID_NET, E_INVALID_OPERATION,
- "[%s] _PsSystemNetConnection.HandleStartEvent() is NOT allowed.", GetErrorMessage(E_INVALID_OPERATION));
}
void
-_PsSystemNetConnection::HandleStopEvent(result error)
+_PsSystemNetConnection::ProcessStopEvent(result error)
{
- IEnumerator* pEnum = null;
_NetConnectionEvent* pEvent = null;
_NetConnectionEventArg* pStartEventArg = null;
_NetConnectionEventArg* pStopEventArg = null;
- _NetConnectionEventArg* pStopEventArg2 = null;
- if ((_connectionState == NET_CONNECTION_STATE_NONE) || (_connectionState == NET_CONNECTION_STATE_STOPPED))
- {
- SysLog(NID_NET, "Ignore _PsSystemNetConnection::HandleStopEvent() because this is already in stopped state.");
- return;
- }
+ SysLog(NID_NET, "Notify ps connection stopped event. [%s]", GetErrorMessage(error));
MutexGuard locked(*_pLock);
- _bearerType = NET_BEARER_NONE;
_connectionState = NET_CONNECTION_STATE_STOPPED;
- _pConnectionInfo->Clear();
+ _bearerType = NET_BEARER_NONE;
+ _NetConnectionInfoImpl* pInfoImpl = _NetConnectionInfoImpl::GetInstance(__connectionInfo);
+ pInfoImpl->Clear();
_refCount = 0;
- pEnum = _pEventList->GetEnumeratorN();
+ unique_ptr<IEnumerator> pEnum(_pEventList->GetEnumeratorN());
if (pEnum != null)
{
while (pEnum->MoveNext() == E_SUCCESS)
pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
if (pEvent != null)
{
+ pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
+
if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
{
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
pStartEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, error);
if (pStartEventArg != null)
{
pEvent->FireAsync(*pStartEventArg);
}
}
- else if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STARTED)
+ else
{
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
pStopEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, error);
if (pStopEventArg != null)
{
- pEvent->FireAsync(*pStopEventArg);
- }
- }
- else if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STOPPING)
- {
- pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
- pStopEventArg2 = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, E_SUCCESS);
- if (pStopEventArg2 != null)
- {
- pEvent->FireAsync(*pStopEventArg2);
+ pEvent->FireAsync(*pStopEventArg);
}
}
}
}
-
- delete pEnum;
}
-
- locked.Unlock();
}
NetConnectionState
_PsSystemNetConnection::QueryConnectionState(String& devName) const
{
+ result r = E_SUCCESS;
NetConnectionState state = _connectionState;
- int ret = CONNECTION_ERROR_NONE;
- connection_profile_h profileHandle = _NetAccountManagerImpl::GetPsProfileHandleN(__profileName);
- connection_profile_state_e profileState = CONNECTION_PROFILE_STATE_DISCONNECTED;
-
- if (profileHandle != null)
- {
- ret = connection_profile_get_state(profileHandle, &profileState);
- if ((ret == CONNECTION_ERROR_NONE) && (profileState == CONNECTION_PROFILE_STATE_CONNECTED))
- {
- char* pDevName = null;
-
- ret = connection_profile_get_network_interface_name(profileHandle, &pDevName);
- if ((ret == CONNECTION_ERROR_NONE) && (pDevName != null))
- {
- devName = String(pDevName);
- free(pDevName);
- }
-
- state = NET_CONNECTION_STATE_STARTED;
- }
-
- connection_profile_destroy(profileHandle);
- }
- SysLog(NID_NET, "QueryConnectionState() has done with state:%d, devName:%ls", state, devName.GetPointer());
+ r = __pIpcProxy->GetPsConnectionState(__profileName, state, devName);
+ SysLog(NID_NET, "QueryConnectionState() has done with result[%s] state:%d, devName:%ls", GetErrorMessage(r), state, devName.GetPointer());
return state;
}
-void*
-_PsSystemNetConnection::GetProfileHandle(void)
+void
+_PsSystemNetConnection::GetConnectionInfo(NetConnectionInfo& netConnectionInfo)
{
- return __pProfileHandle.get();
+ MutexGuard locked(*_pLock);
+
+ netConnectionInfo = __connectionInfo;
}
} } // Tizen::Net
#ifndef _FNET_INTERNAL_PS_SYSTEM_NET_CONNECTION_H_
#define _FNET_INTERNAL_PS_SYSTEM_NET_CONNECTION_H_
+#include <FNetNetConnectionInfo.h>
#include "FNet_SystemNetConnection.h"
#include "FNet_NetUtility.h"
+#include "FNet_NetIpcProxy.h"
namespace Tizen { namespace Net {
/**
*/
virtual result Stop(_NetConnectionEvent& event, bool waitingEvent = true);
- virtual void HandleStartResponse(result error, void* pData);
- virtual void HandleStopResponse(void);
- virtual void HandleStartEvent(void);
- virtual void HandleStopEvent(result error);
+ void ProcessStartEvent(result error, const NetConnectionInfo& connectionInfo);
+ void ProcessStopEvent(result error);
virtual NetConnectionState QueryConnectionState(Tizen::Base::String& devName) const;
-
- void* GetProfileHandle(void);
+ virtual void GetConnectionInfo(NetConnectionInfo& netConnectionInfo);
private:
/**
private:
Tizen::Base::String __profileName;
- std::unique_ptr<void, _ConnectionDeleter> __pConnectionHandle;
- std::unique_ptr<void, _ProfileDeleter> __pProfileHandle;
+ _NetIpcProxy* __pIpcProxy;
+ NetConnectionInfo __connectionInfo;
friend class _SystemNetConnection;
#include <pthread.h>
#include <unique_ptr.h>
-#include <net_connection.h>
#include <FNetNetConnectionInfo.h>
#include <FBaseRtMutexGuard.h>
#include <FBaseSysLog.h>
#include "FNet_WifiSystemNetConnection.h"
#include "FNet_WifiDirectSystemNetConnection.h"
#include "FNet_UsbSystemNetConnection.h"
-#include "FNet_NetAccountDatabase.h"
+#include "FNet_NetIpcProxy.h"
#include "FNet_NetAccountManagerImpl.h"
#include "FNet_NetConnectionEvent.h"
#include "FNet_NetConnectionEventArg.h"
return _connectionState;
}
+void
+_SystemNetConnection::GetConnectionInfo(NetConnectionInfo& netConnectionInfo)
+{
+ _NetConnectionInfoImpl* pSource = _pConnectionInfo.get();
+ _NetConnectionInfoImpl* pDestnation = _NetConnectionInfoImpl::GetInstance(netConnectionInfo);
+
+ SysTryReturnVoidResult(NID_NET, ((pSource != null) && (pDestnation != null)), E_INVALID_ARG,
+ "[%s] Invalid argument is used. The impl instance is null. [0x%x] [0x%x]", GetErrorMessage(E_INVALID_ARG), pSource, pDestnation);
+
+ MutexGuard locked(*_pLock);
+
+ pDestnation->CopyFrom(pSource);
+
+ locked.Unlock();
+}
+
NetBearerType
_SystemNetConnection::GetBearerType(void) const
{
}
void
-_SystemNetConnection::GetConnectionInfo(NetConnectionInfo& netConnectionInfo)
-{
- _NetConnectionInfoImpl* pSource = _pConnectionInfo.get();
- _NetConnectionInfoImpl* pDestnation = _NetConnectionInfoImpl::GetInstance(netConnectionInfo);
-
- SysTryReturnVoidResult(NID_NET, ((pSource != null) && (pDestnation != null)), E_INVALID_ARG,
- "[%s] Invalid argument is used. The impl instance is null. [0x%x] [0x%x]", GetErrorMessage(E_INVALID_ARG), pSource, pDestnation);
-
- MutexGuard locked(*_pLock);
-
- pDestnation->CopyFrom(pSource);
-
- locked.Unlock();
-}
-
-void
_SystemNetConnection::InitializeNetworkFramework(void)
{
static pthread_once_t onceBlock = PTHREAD_ONCE_INIT;
SysTryReturnVoidResult(NID_NET, r == E_SUCCESS, r,
"[%s] A system error has been occurred. Failed to initialize the HashMap.", GetErrorMessage(r));
- r = _NetAccountDatabase::InitializeRepository();
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
- SysTryReturnVoidResult(NID_NET, r == E_SUCCESS, r,
- "[%s] A system error has been occurred. Failed to initialize the network database.", GetErrorMessage(r));
-
__isInitialized = true;
}
_PsSystemNetConnection* pConnection = null;
String profileName;
- r = _NetAccountDatabase::GetProfileName(netAccountId, profileName);
+ _NetIpcProxy* pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryReturn(NID_NET, pIpcProxy != null, null, E_SYSTEM, "[E_SYSTEM] Failed to initialize IPC client.");
+
+ r = pIpcProxy->GetNetProfileName(netAccountId, profileName);
SysTryReturn(NID_NET, r == E_SUCCESS, null, E_INVALID_ACCOUNT,
"[%s] Invalid network account. accountId=%d", GetErrorMessage(E_INVALID_ACCOUNT), netAccountId);
return pConnection;
}
+_PsSystemNetConnection*
+_SystemNetConnection::GetPsInstanceByProfile(const Tizen::Base::String& profileName)
+{
+ _PsSystemNetConnection* pConnection = null;
+
+ Mutex* pLock = _NetUtility::GetLock();
+ MutexGuard locked(*pLock);
+
+ pConnection = dynamic_cast<_PsSystemNetConnection*>(__pPsSystemConnectionMap->GetValue(profileName));
+
+ locked.Unlock();
+
+ return pConnection;
+}
+
_SystemNetConnection*
_SystemNetConnection::GetDefaultInstance(void)
{
class _NetConnectionEvent;
class _NetConnectionInfoImpl;
class _DefaultSystemNetConnection;
+class _PsSystemNetConnection;
class _WifiSystemNetConnection;
class _WifiDirectSystemNetConnection;
class _UsbSystemNetConnection;
virtual void HandleStopEvent(result error);
virtual NetConnectionState QueryConnectionState(Tizen::Base::String& devName) const;
+ virtual void GetConnectionInfo(NetConnectionInfo& netConnectionInfo);
+ virtual Tizen::Base::String GetProxyAddress(void) const;
NetBearerType GetBearerType(void) const;
NetConnectionState GetConnectionState(void) const;
- Tizen::Base::String GetProxyAddress(void) const;
-
- void GetConnectionInfo(NetConnectionInfo& netConnectionInfo);
public:
static void InitializeNetworkFramework(void);
static _SystemNetConnection* GetPsInstance(NetAccountId netAccountId);
+ static _PsSystemNetConnection* GetPsInstanceByProfile(const Tizen::Base::String& profileName);
static _SystemNetConnection* GetDefaultInstance(void);
static _SystemNetConnection* GetWifiInstance(void);
static _SystemNetConnection* GetWifiDirectInstance(void);
* This file contains the implementation of _WifiSystemNetConnection class.
*/
-#include <net_connection.h>
-#include <wifi.h>
#include <FNetNetConnectionInfo.h>
#include <FBaseRtMutexGuard.h>
#include <FBaseSysLog.h>
-#include <FSysSettingInfo.h>
#include <FBase_StringConverter.h>
-#include <FApp_AppManagerImpl.h>
#include "FNet_NetTypes.h"
-#include "FNet_NetConnectionInfoImpl.h"
#include "FNet_WifiSystemNetConnection.h"
-#include "FNet_NetAccountDatabase.h"
-#include "FNet_NetAccountManagerImpl.h"
+#include "FNet_NetConnectionInfoImpl.h"
#include "FNet_NetConnectionEvent.h"
#include "FNet_NetConnectionEventArg.h"
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
using namespace Tizen::Base::Runtime;
-using namespace Tizen::System;
namespace Tizen { namespace Net {
-static const char* _WIFI_QS_APP_ID = "net.wifi-qs";
-
-void
-WifiConnectionTypeChangedCallback(connection_type_e type, void* pUserData)
-{
- _WifiSystemNetConnection* pConnection = static_cast<_WifiSystemNetConnection*>(pUserData);
-
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = pConnection->GetConnectionHandle();
- connection_profile_h profileHandle = null;
- connection_wifi_state_e state = CONNECTION_WIFI_STATE_DEACTIVATED;
-
- SysLog(NID_NET, "WifiConnectionTypeChangedCallback() has been called with type:%d", type);
-
- ret = connection_get_wifi_state(connectionHandle, &state);
- SysTryReturnVoidResult(NID_NET, ret == CONNECTION_ERROR_NONE, E_SYSTEM,
- "[%s] A system error has been called. The return value from connection_get_wifi_state() is %d", ret);
-
- if (state == CONNECTION_WIFI_STATE_CONNECTED)
- {
- profileHandle = _NetAccountManagerImpl::GetWifiProfileHandleN();
- SysTryReturnVoidResult(NID_NET, profileHandle != null,
- E_SYSTEM, "WIFI profileHandle is not found.");
-
- SysLog(NID_NET, "Wifi is connected.");
-
- if (pConnection->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
- {
- pConnection->HandleStartResponse(E_SUCCESS, profileHandle);
- }
- else
- {
- pConnection->HandleStartEvent();
- pConnection->UpdateConnectionInfo(profileHandle);
- }
-
- connection_profile_destroy(profileHandle);
- }
- else
- {
- SysLog(NID_NET, "Wifi is not connected.");
-
- if (pConnection->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
- {
- bool isWifiQsRunning = false;
-
- isWifiQsRunning = _AppManagerImpl::GetInstance()->IsRunning(String(_WIFI_QS_APP_ID));
-
- if (isWifiQsRunning)
- {
- SysLog(NID_NET, "Ignore disconnected event on the starting state because Wi-Fi QuickStart is running.");
- }
- else
- {
- SysLog(NID_NET, "Failed to connect Wifi.");
- pConnection->HandleStartResponse(E_NETWORK_FAILED, null);
- }
- }
- else
- {
- pConnection->HandleStopEvent(E_NETWORK_FAILED);
- pConnection->UpdateConnectionInfo(null);
- }
- }
-}
-
-void
-WifiActivatedCallback(wifi_error_e res, void* pUserData)
-{
- _WifiSystemNetConnection* pConnection = static_cast<_WifiSystemNetConnection*>(pUserData);
-
- SysLog(NID_NET, "Enter with res[%d].", res);
-
- if (res != WIFI_ERROR_NONE)
- {
- SysLogException(NID_NET, E_NETWORK_FAILED, "[E_NETWORK_FAILED] Failed to activate Wi-Fi.");
- pConnection->HandleStartResponse(E_NETWORK_FAILED, null);
- }
-
- SysLog(NID_NET, "Exit.");
-}
-
_WifiSystemNetConnection::_WifiSystemNetConnection(void)
- : __pConnectionHandle(null)
- , __pTimer(null)
+ : __pIpcProxy(null)
{
}
_WifiSystemNetConnection::Construct(void)
{
result r = E_SUCCESS;
- unique_ptr<void, _ConnectionDeleter> pConnectionHandle;
- unique_ptr<Timer> pTimer;
-
- int ret = CONNECTION_ERROR_NONE;
- connection_h connectionHandle = null;
- connection_profile_h profileHandle = null;
- connection_wifi_state_e state = CONNECTION_WIFI_STATE_DEACTIVATED;
-
- SysAssertf(__pConnectionHandle == null,
- "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
-
- pTimer.reset(new (std::nothrow) Timer());
- SysTryReturnResult(NID_NET, pTimer != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
- r = pTimer->Construct(*this);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
+ _NetConnectionInfoImpl* pConnectionInfoImpl = null;
r = _SystemNetConnection::Initialize(L"WIFI");
SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
- ret = wifi_initialize();
- SysTryCatch(NID_NET, ((ret == WIFI_ERROR_NONE) || (ret == WIFI_ERROR_INVALID_OPERATION)),
- r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] wifi_initialize() failed with ret=[%d]", ret);
-
- ret = connection_create(&connectionHandle);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_create() is %d", GetErrorMessage(E_SYSTEM), ret);
- pConnectionHandle.reset(connectionHandle);
+ __proxyAddress.Clear();
- ret = connection_set_type_changed_cb(connectionHandle, WifiConnectionTypeChangedCallback, this);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_set_type_changed_cb() is %d", ret);
+ __pIpcProxy = _NetIpcProxy::GetInstance();
+ SysTryCatch(NID_NET, __pIpcProxy != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to initialize IPC client.");
- ret = connection_get_wifi_state(connectionHandle, &state);
- SysTryCatch(NID_NET, ret == CONNECTION_ERROR_NONE, r = E_SYSTEM, E_SYSTEM,
- "[%s] A system error has been occurred. The return value from connection_get_wifi_state() is %d", ret);
+ r = __pIpcProxy->AddWifiConnectionListener(this, _connectionState, __connectionInfo);
+ SysTryCatch(NID_NET, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
- if (state == CONNECTION_WIFI_STATE_CONNECTED)
+ _bearerType = __connectionInfo.GetBearerType();
+ pConnectionInfoImpl = _NetConnectionInfoImpl::GetInstance(__connectionInfo);
+ if (pConnectionInfoImpl != null)
{
- profileHandle = _NetAccountManagerImpl::GetWifiProfileHandleN();
- if (profileHandle != null)
- {
- SysLog(NID_NET, "Wifi is connected.");
- UpdateConnectionInfo(profileHandle);
- connection_profile_destroy(profileHandle);
- }
- else
- {
- SysLog(NID_NET, "Wifi state is connected, but profileHandle is not found.");
- UpdateConnectionInfo(null);
- }
- }
- else
- {
- SysLog(NID_NET, "Wifi is not connected.");
- UpdateConnectionInfo(null);
+ __proxyAddress = pConnectionInfoImpl->GetProxyAddress();
}
- __pConnectionHandle = move(pConnectionHandle);
- __pTimer = move(pTimer);
+ SysLog(NID_NET, "Wi-Fi connection state[%d] proxy[%ls]", _connectionState, __proxyAddress.GetPointer());
return r;
CATCH:
+ __pIpcProxy = null;
_SystemNetConnection::Deinitialize();
return r;
result r = E_SUCCESS;
- SysAssertf(_pEventList != null, "Not yet constructed. Construct() should be called before use.");
-
MutexGuard locked(*_pLock);
if (_connectionState == NET_CONNECTION_STATE_STARTED)
SysTryReturnResult(NID_NET, !event.IsManagedSystemConnection(), E_INVALID_CONNECTION, "Wi-Fi activation is not allowed for a managed network connection.");
- int ret = WIFI_ERROR_NONE;
- bool isActivated = false;
-
- ret = wifi_is_activated(&isActivated);
- SysTryReturnResult(NID_NET, ret == WIFI_ERROR_NONE, E_SYSTEM, "wifi_is_activated() failed with ret=[%d].", ret);
- SysTryReturnResult(NID_NET, !isActivated, E_INVALID_CONNECTION, "Wi-Fi is already activated, so can't start it.");
-
- bool isFlightModeEnabled = false;
- r = SettingInfo::GetValue(L"http://tizen.org/setting/network.flight_mode", isFlightModeEnabled);
- SysTryReturnResult(NID_NET, r == E_SUCCESS && !isFlightModeEnabled, E_INVALID_CONNECTION, "Flight mode is enabled.");
-
- r = _AppManagerImpl::GetInstance()->AddAppEventListener(*this);
- SysTryReturnResult(NID_NET, r == E_SUCCESS, E_SYSTEM, "Failed to set application event listener.");
-
- ret = wifi_activate(WifiActivatedCallback, this);
- if (ret != WIFI_ERROR_NONE)
- {
- SysLogException(NID_NET, E_SYSTEM, "[E_SYSTEM] wifi_activate() failed with ret=[%d].", ret);
-
- _AppManagerImpl::GetInstance()->RemoveAppEventListener(*this);
-
- return E_SYSTEM;
- }
+ r = __pIpcProxy->StartWifiConnection();
+ SysTryReturnResult(NID_NET, r == E_SUCCESS, r, "Propagating.");
_connectionState = NET_CONNECTION_STATE_STARTING;
event.SetConnectionState(NET_CONNECTION_STATE_STARTING);
}
void
-_WifiSystemNetConnection::HandleStartResponse(result error, void* pData)
+_WifiSystemNetConnection::GetConnectionInfo(NetConnectionInfo& netConnectionInfo)
{
- SysLog(NID_NET, "Start response is received with result[%s].", GetErrorMessage(error));
+ MutexGuard locked(*_pLock);
- IEnumerator* pEnum = null;
- _NetConnectionEvent* pEvent = null;
- _NetConnectionEventArg* pStartEventArg = null;
+ netConnectionInfo = __connectionInfo;
+}
- if (_connectionState != NET_CONNECTION_STATE_STARTING)
- {
- SysLog(NID_NET, "Ignore _WifiSystemNetConnection::HandleStartResponse() because this is NOT in starting state.");
- return;
- }
+String
+_WifiSystemNetConnection::GetProxyAddress(void) const
+{
+ SysLog(NID_NET, "GetProxyAddress() has done with proxy[%ls]", __proxyAddress.GetPointer());
+
+ return __proxyAddress;
+}
+
+void
+_WifiSystemNetConnection::ProcessEvent(result error, _NetConnectionEventType type, NetConnectionState state, const NetConnectionInfo& connectionInfo)
+{
+ _NetConnectionEvent* pEvent = null;
+ _NetConnectionEventArg* pEventArg = null;
+ _NetConnectionInfoImpl* pConnectionInfoImpl = null;
- _AppManagerImpl::GetInstance()->RemoveAppEventListener(*this);
+ SysLog(NID_NET, "Notify wifi connection changed event. type[%d] state[%d]", type, state);
MutexGuard locked(*_pLock);
- if (error == E_SUCCESS)
- {
- _bearerType = NET_BEARER_WIFI;
- _connectionState = NET_CONNECTION_STATE_STARTED;
- _pConnectionInfo->Update(pData);
- }
- else
+ _connectionState = state;
+ _bearerType = connectionInfo.GetBearerType();
+ __connectionInfo = connectionInfo;
+
+ pConnectionInfoImpl = _NetConnectionInfoImpl::GetInstance(__connectionInfo);
+ if (pConnectionInfoImpl != null)
{
- _bearerType = NET_BEARER_NONE;
- _connectionState = NET_CONNECTION_STATE_STOPPED;
- _pConnectionInfo->Clear();
- _refCount = 0;
+ __proxyAddress = pConnectionInfoImpl->GetProxyAddress();
}
- pEnum = _pEventList->GetEnumeratorN();
+ unique_ptr<IEnumerator> pEnum(_pEventList->GetEnumeratorN());
if (pEnum != null)
{
while (pEnum->MoveNext() == E_SUCCESS)
pEvent = dynamic_cast<_NetConnectionEvent*>(pEnum->GetCurrent());
if (pEvent != null)
{
- if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
+ if (type == _NET_CONNECTION_EVENT_TYPE_STARTED)
{
- if (error == E_SUCCESS)
+ if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
{
pEvent->SetConnectionState(NET_CONNECTION_STATE_STARTED);
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, E_SUCCESS);
}
- else
+ }
+ else if (type == _NET_CONNECTION_EVENT_TYPE_STOPPED)
+ {
+ if (pEvent->GetConnectionState() == NET_CONNECTION_STATE_STARTING)
{
pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, error);
}
-
- pStartEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STARTED, error);
- if (pStartEventArg != null)
+ else if ((pEvent->GetConnectionState() != NET_CONNECTION_STATE_NONE) &&
+ (pEvent->GetConnectionState() != NET_CONNECTION_STATE_STOPPED))
{
- pEvent->FireAsync(*pStartEventArg);
+ pEvent->SetConnectionState(NET_CONNECTION_STATE_STOPPED);
+ pEventArg = new (std::nothrow) _NetConnectionEventArg(_NET_CONNECTION_EVENT_TYPE_STOPPED, error);
}
}
+ else
+ {
+ pEventArg = null;
+ }
+
+ if (pEventArg != null)
+ {
+ pEvent->FireAsync(*pEventArg);
+ }
}
}
-
- delete pEnum;
}
-
- locked.Unlock();
-
- SysLog(NID_NET, "Exit.");
-}
-
-void
-_WifiSystemNetConnection::OnApplicationLaunched(const AppId& appId, int pid)
-{
- SysLog(NID_NET, "App is launched. appid[%ls] pid[%d].", appId.GetPointer(), pid);
-}
-
-void
-_WifiSystemNetConnection::OnApplicationTerminated(const AppId& appId, int pid)
-{
- SysLog(NID_NET, "App is terminated. appid[%ls] pid[%d].", appId.GetPointer(), pid);
-
- if (appId.Equals(String(_WIFI_QS_APP_ID), false))
- {
- SysLog(NID_NET, "Wi-Fi QuickStart is terminated before Wi-Fi is connected.");
- __pTimer->Start(1);
-
- // ToDo - Remove timer and call HandleStartResponse here (After lockup issue is resolved.)
-// HandleStartResponse(E_NETWORK_FAILED, null);
- }
-}
-
-void
-_WifiSystemNetConnection::OnTimerExpired(Timer& timer)
-{
- SysLog(NID_NET, "Timer is expired, so treat as an error.");
-
- HandleStartResponse(E_NETWORK_FAILED, null);
}
void
-_WifiSystemNetConnection::UpdateConnectionInfo(void* pData)
+_WifiSystemNetConnection::ProcessProxyChangedEvent(const String& proxy)
{
- MutexGuard locked(*_pLock);
-
- if (pData != null)
- {
- _bearerType = NET_BEARER_WIFI;
- _connectionState = NET_CONNECTION_STATE_STARTED;
- _pConnectionInfo->Update(pData);
-
- }
- else
+ if (_connectionState == NET_CONNECTION_STATE_STARTED)
{
- _bearerType = NET_BEARER_NONE;
- _connectionState = NET_CONNECTION_STATE_STOPPED;
- _pConnectionInfo->Clear();
+ __proxyAddress = proxy;
}
-
- locked.Unlock();
-}
-
-void*
-_WifiSystemNetConnection::GetConnectionHandle(void) const
-{
- return __pConnectionHandle.get();
}
} } // Tizen::Net
#ifndef _FNET_INTERNAL_WIFI_SYSTEM_NET_CONNECTION_H_
#define _FNET_INTERNAL_WIFI_SYSTEM_NET_CONNECTION_H_
-#include <FBase.h>
-#include <FApp_IAppEventListener.h>
+#include <FNetNetConnectionInfo.h>
#include "FNet_SystemNetConnection.h"
+#include "FNet_NetTypes.h"
#include "FNet_NetUtility.h"
+#include "FNet_NetIpcProxy.h"
+
namespace Tizen { namespace Net {
/**
class _WifiSystemNetConnection
: public _SystemNetConnection
- , public Tizen::App::_IAppEventListener
- , virtual public Tizen::Base::Runtime::ITimerEventListener
{
public:
/**
*/
result Construct(void);
- /**
- * Starts the network connection.
- *
- * @since 3.0
- *
- * @return An error code
- * @exception E_SUCCESS The method was successful.
- * @exception E_INVALID_STATE This instance is in an invalid state.
- * @exception E_SYSTEM An internal error occurred.
- * @see Stop()
- */
virtual result Start(_NetConnectionEvent& event);
- virtual void HandleStartResponse(result error, void* pData);
-
- virtual void OnApplicationLaunched(const Tizen::App::AppId& appId, int pid);
- virtual void OnApplicationTerminated(const Tizen::App::AppId& appId, int pid);
-
- virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
-
- void UpdateConnectionInfo(void* pData);
+ virtual void GetConnectionInfo(NetConnectionInfo& netConnectionInfo);
+ virtual Tizen::Base::String GetProxyAddress(void) const;
- void* GetConnectionHandle(void) const;
+ void ProcessEvent(result error, _NetConnectionEventType type, NetConnectionState state, const NetConnectionInfo& connectionInfo);
+ void ProcessProxyChangedEvent(const Tizen::Base::String& proxy);
private:
/**
_WifiSystemNetConnection& operator =(const _WifiSystemNetConnection& rhs);
private:
- std::unique_ptr<void, _ConnectionDeleter> __pConnectionHandle;
- std::unique_ptr<Tizen::Base::Runtime::Timer> __pTimer;
+ _NetIpcProxy* __pIpcProxy;
+ NetConnectionInfo __connectionInfo;
+ Tizen::Base::String __proxyAddress;
}; // _WifiSystemNetConnection
{
headerLine.Trim();
- char version[3];
+ char version[4];
version[0] = '\0';
int statusCode = -1;
char statusText[headerLine.GetLength()];
E_OUT_OF_MEMORY, "Memory allocation failed.");
//Parse HTTP First line.
- sscanf(pHeaderLine, "HTTP/%s %d %s", version, &statusCode, statusText);
+ sscanf(pHeaderLine, "HTTP/%3s %d %s", version, &statusCode, statusText);
delete[] pHeaderLine;
SysLog(NID_NET_HTTP, "Version: %s, StatusCode: %d, StatusText: %s", version, statusCode, statusText);
#include <ipc/ipc_message_macros.h>
#include <FIo_IpcCommonParamTraits.h>
#include <FIo_IpcMessageStart.h>
+#include "FNet_ConnectivityIpcParamTraits.h"
#include "FNetWifi_ConnectivityIpcParamTraits.h"
#ifndef WIFI_CONNECTIVITY_IPC_SERVER_NAME
#define IPC_MESSAGE_START ConnectivityWifiServiceMsgStart
// Client -> Server (sync)
-IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_setSystemScanMode, int /* mode */, unsigned long /* result */)
-IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_checkSystemSettingPrivilege, unsigned long /* result */)
+
+// Wifi(13)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_registerManagerEventCallback, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_unregisterManagerEventCallback, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_activateWifi, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_deactivateWifi, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_scanWifi, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_connectWifi, Tizen::Net::Wifi::WifiBssInfo, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_getWifiMacAddress, Tizen::Base::String, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_isWifiActivated, bool, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_isWifiConnected, bool, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_getWifiConnectionState, int, unsigned long)
IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_updateWifiBssInfo, Tizen::Net::Wifi::WifiBssInfo /* BSS info */, unsigned long /* result */)
-IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_initializeWifiDirect, unsigned long /* result */)
-IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_getWifiDirectLocalDeviceName, Tizen::Base::String /* local name */, unsigned long /* result */)
-IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_setWifiDirectLocalDeviceName, Tizen::Base::String /* local name */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_getWifiConnectionTargetInfo, Tizen::Net::Wifi::WifiBssInfo, unsigned long)
+IPC_SYNC_MESSAGE_CONTROL0_3(ConnectivityWifiServiceMsg_getWifiNetAccountInfo, Tizen::Net::NetAccountInfo, Tizen::Net::Wifi::_WifiNetAccountInfoImpl, unsigned long)
+
+// Wifi System Monitoring(4)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_registerSystemMonitoringEventCallback, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_unregisterSystemMonitoringEventCallback, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_setSystemScanMode, int /* mode */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_getWifiSystemScanResult,Tizen::Base::Collection::ArrayListT<Tizen::Net::Wifi::WifiBssInfo*>, unsigned long)
+
+// Wifi Proximity(5)
IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_registerBssId, Tizen::Base::String /* BSS ID */, unsigned long /* result */)
IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_unregisterBssId, Tizen::Base::String /* BSS ID */, unsigned long /* result */)
IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_activateProximityCheck, unsigned long /* result */)
IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_deactivateProximityCheck, unsigned long /* result */)
IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_isProximityCheckActivated, bool /* Proximity service status */, unsigned long /* result */)
+// Wifi Direct(3)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityWifiServiceMsg_initializeWifiDirect, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityWifiServiceMsg_getWifiDirectLocalDeviceName, Tizen::Base::String /* local name */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityWifiServiceMsg_setWifiDirectLocalDeviceName, Tizen::Base::String /* local name */, unsigned long /* result */)
+
+
// Server -> Client (async)
-IPC_MESSAGE_CONTROL0(ConnectivityWifiServiceMsg_onProximityCheckActivated);
-IPC_MESSAGE_CONTROL0(ConnectivityWifiServiceMsg_onProximityCheckDeactivated);
-IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiBssDetected, Tizen::Net::Wifi::WifiBssInfo /* BSS info */);
-IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiBssLost, Tizen::Base::String /* BSS ID */);
+
+// Wifi(8)
+IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiActivated, unsigned long /* result */)
+IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiDeactivated, unsigned long /* result */)
+IPC_MESSAGE_CONTROL2(ConnectivityWifiServiceMsg_onWifiScanCompleted, Tizen::Base::Collection::ArrayListT<Tizen::Net::Wifi::WifiBssInfo*> /* pWifiBssInfoList */, unsigned long /* result */)
+IPC_MESSAGE_CONTROL2(ConnectivityWifiServiceMsg_onWifiConnected, Tizen::Base::String /* ssid */, unsigned long /* result */)
+IPC_MESSAGE_CONTROL0(ConnectivityWifiServiceMsg_onWifiDisconnected)
+IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiRssiChanged, long /* rssi */)
+IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiConnectionStateChanged,int /* state */);
+IPC_MESSAGE_CONTROL0(ConnectivityWifiServiceMsg_onWifiSystemScanResultUpdated)
+
+// Wifi Proximity(4)
+IPC_MESSAGE_CONTROL0(ConnectivityWifiServiceMsg_onProximityCheckActivated)
+IPC_MESSAGE_CONTROL0(ConnectivityWifiServiceMsg_onProximityCheckDeactivated)
+IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiBssDetected, Tizen::Net::Wifi::WifiBssInfo /* BSS info */)
+IPC_MESSAGE_CONTROL1(ConnectivityWifiServiceMsg_onWifiBssLost, Tizen::Base::String /* BSS ID */)
+
+
+
+
+
// limitations under the License.
//
/**
- * @file FNetWifi_ConnectivityIpcMessages.h
+ * @file FNetWifi_ConnectivityIpcParamTraits.h
* @brief This is the header file for the Connectivity service daemon's IPC messages.
*
* This header file contains the declarations of the IPC messages for the Connectivity service daemon.
#include <base/tuple.h>
#include <ipc/ipc_param_traits.h>
+#include <unique_ptr.h>
#include <FBaseString.h>
#include <FBaseSysLog.h>
+#include <FBaseColArrayListT.h>
#include <FNetWifiWifiTypes.h>
#include <FNetWifiWifiBssInfo.h>
#include <FNetWifiWifiSecurityInfo.h>
#include <FNetIp4Address.h>
#include <FNetNetTypes.h>
+#include <FNetWifi_WifiUtility.h>
#include "FNetWifi_WifiBssInfoImpl.h"
#include "FNetWifi_WifiSecurityInfoImpl.h"
+#include "FNetWifi_WifiNetAccountInfoImpl.h"
#include "FIo_IpcCommonDataTypes.h"
+using namespace std;
using namespace Tizen::Base;
using namespace Tizen::Net;
using namespace Tizen::Net::Wifi;
namespace IPC
{
+
template <>
struct ParamTraits<Tizen::Net::Wifi::WifiBssInfo>
{
static void Write(Message* m, const param_type& p)
{
- const IpAddress* pAddress = null;
- const WifiSecurityInfo* pSecurityInfo = null;
- NetAddressScheme ipScheme = NET_ADDRESS_SCHEME_DYNAMIC;
- NetProxyType proxyType = NET_PROXY_TYPE_NONE;
-
// 1. BSS ID
WriteParam(m, p.GetBssId());
-
+
// 2. SSID
WriteParam(m, p.GetSsid());
-
+
// 3. Radio Channel
m->WriteInt(p.GetRadioChannel());
-
+
// 4. BSS Type
m->WriteInt(p.GetBssType());
-
+
// 5. Security Info
- pSecurityInfo = p.GetSecurityInfo();
+ WifiSecurityInfo* pSecurityInfo = const_cast<WifiSecurityInfo*>(p.GetSecurityInfo());
+ _WifiSecurityInfoImpl* pSecurityInfoImpl = null;
+
if (pSecurityInfo != null)
{
- m->WriteInt(pSecurityInfo->GetAuthenticationType());
- m->WriteInt(pSecurityInfo->GetEncryptionType());
+ pSecurityInfoImpl = _WifiSecurityInfoImpl::GetInstance(*pSecurityInfo);
+
+ m->WriteInt(pSecurityInfoImpl->GetAuthenticationType());
+ m->WriteInt(pSecurityInfoImpl->GetEncryptionType());
+
+ if (!pSecurityInfoImpl->GetNetworkKey().IsEmpty())
+ {
+ WriteParam(m, pSecurityInfoImpl->GetNetworkKey());
+ }
+ else
+ {
+ WriteParam(m, String(L""));
+ }
+ }
+ else
+ {
+ m->WriteInt(WIFI_AUTHENTICATION_OPEN);
+ m->WriteInt(WIFI_ENCRYPTION_NONE);
+ WriteParam(m, String(L""));
}
- // 6. RSSI
+ // 6. EAP Info
+ if (pSecurityInfoImpl != null &&
+ (pSecurityInfoImpl->GetAuthenticationType() == WIFI_AUTHENTICATION_WPA
+ || pSecurityInfoImpl->GetAuthenticationType() == WIFI_AUTHENTICATION_WPA2))
+ {
+ m->WriteInt(pSecurityInfoImpl->GetEapType());
+ if (pSecurityInfoImpl->GetEapType() != WIFI_EAP_NONE)
+ {
+ WriteParam(m, String(pSecurityInfoImpl->GetEapUserId()));
+ WriteParam(m, String(pSecurityInfoImpl->GetEapPassword()));
+ m->WriteBool(pSecurityInfoImpl->GetValidateServerCertificate());
+ }
+ }
+
+ // 7. RSSI
m->WriteLong(p.GetRssi());
- // 7. Data Rate
+ // 8. Data Rate
float dataRate = p.GetDataRate();
m->WriteBytes(&dataRate, sizeof(dataRate));
- // 8. Known
+ // 9. Known
m->WriteBool(p.IsKnown());
- // 9. Local address scheme
- ipScheme = p.GetLocalAddressScheme();
+ // 10. Local address scheme
+ NetAddressScheme ipScheme = p.GetLocalAddressScheme();
m->WriteInt(ipScheme);
if (ipScheme == NET_ADDRESS_SCHEME_STATIC)
{
- // 10. IP address
+ const IpAddress* pAddress = null;
+ // 11. IP address
pAddress = p.GetLocalAddress();
if (pAddress != null)
{
WriteParam(m, String(L""));
}
- // 11. Subnet mask address
+ // 12. Subnet mask address
pAddress = p.GetSubnetMaskAddress();
if (pAddress != null)
{
WriteParam(m, String(L""));
}
- // 12. Default gateway address
+ // 13. Default gateway address
pAddress = p.GetDefaultGatewayAddress();
if (pAddress != null)
{
WriteParam(m, String(L""));
}
- // 13. Primary DNS address
+ // 14. Primary DNS address
pAddress = p.GetPrimaryDnsAddress();
if (pAddress != null)
{
WriteParam(m, String(L""));
}
- // 14. Secondary DNS address
+ // 15. Secondary DNS address
pAddress = p.GetSecondaryDnsAddress();
if (pAddress != null)
{
}
}
- // 15. Proxy type
- proxyType = p.GetProxyType();
+ // 16. Proxy type
+ NetProxyType proxyType = p.GetProxyType();
m->WriteInt(proxyType);
if (proxyType == NET_PROXY_TYPE_MANUAL)
{
- // 16. Proxy address
+ // 17. Proxy address
WriteParam(m, p.GetProxyAddress());
}
}
static bool Read(const Message* m, void** iter, param_type* r)
{
- _WifiBssInfoImpl* pInfoImpl = null;
- WifiSecurityInfo securityInfo;
- _WifiSecurityInfoImpl* pSecurityInfoImpl = null;
- String bssId;
- String Ssid;
- String addressStr;
- bool isKnown = false;
- int ipScheme = 0;
- int proxyType = 0;
- int radioChannel = 0;
- int bssType = 0;
- int authenticationType = 0;
- int encryptionType = 0;
- long rssi = 0;
- float* pDataRate = null;
-
- pInfoImpl = _WifiBssInfoImpl::GetInstance(*r);
- pSecurityInfoImpl = _WifiSecurityInfoImpl::GetInstance(securityInfo);
-
+ _WifiBssInfoImpl* pBssInfoImpl = _WifiBssInfoImpl::GetInstance(*r);
// 1. BSS ID
+ String bssId;
if (!ReadParam(m, iter, &bssId))
{
return false;
}
- pInfoImpl->SetBssId(bssId);
+ pBssInfoImpl->SetBssId(bssId);
// 2. SSID
- if (!ReadParam(m, iter, &Ssid))
+ String ssid;
+ if (!ReadParam(m, iter, &ssid))
{
return false;
}
- pInfoImpl->SetSsid(Ssid);
+ pBssInfoImpl->SetSsid(ssid);
// 3. Radio Channel
+ int radioChannel = 0;
m->ReadInt(iter, &radioChannel);
- pInfoImpl->SetRadioChannel((WifiRadioChannel)radioChannel);
+ pBssInfoImpl->SetRadioChannel((WifiRadioChannel)radioChannel);
// 4. BSS Type
+ int bssType = 0;
m->ReadInt(iter, &bssType);
- pInfoImpl->SetBssType((WifiBssType)bssType);
+ pBssInfoImpl->SetBssType((WifiBssType)bssType);
// 5. Security Info
- m->ReadInt(iter, &authenticationType);
- pSecurityInfoImpl->SetAuthenticationType((WifiAuthenticationType)authenticationType);
+ WifiSecurityInfo* pWifiSecurityInfo = const_cast<WifiSecurityInfo*>(pBssInfoImpl->GetSecurityInfo());
+ _WifiSecurityInfoImpl* pSecurityInfoImpl = null;
+
+ if (pWifiSecurityInfo != null)
+ {
+ pSecurityInfoImpl = _WifiSecurityInfoImpl::GetInstance(*pWifiSecurityInfo);
+ int authenticationType = 0;
+ m->ReadInt(iter, &authenticationType);
+ pSecurityInfoImpl->SetAuthenticationType((WifiAuthenticationType)authenticationType);
+ int encryptionType = 0;
+ m->ReadInt(iter, &encryptionType);
+ pSecurityInfoImpl->SetEncryptionType((WifiEncryptionType)encryptionType);
+
+ String networkKey;
+ if (!ReadParam(m, iter, &networkKey))
+ {
+ return false;
+ }
+ pSecurityInfoImpl->SetNetworkKey(networkKey);
- m->ReadInt(iter, &encryptionType);
- pSecurityInfoImpl->SetEncryptionType((WifiEncryptionType)encryptionType);
+ // 6. Eap Info
+ if (authenticationType == WIFI_AUTHENTICATION_WPA
+ || authenticationType == WIFI_AUTHENTICATION_WPA2)
+ {
+ int eapType = 0;
+ String eapUserId;
+ String eapPassword;
+ bool validateServerCertificate = false;
+ m->ReadInt(iter, &eapType);
+ if (eapType != 0)
+ {
+
+ if (!ReadParam(m, iter, &eapUserId))
+ {
+ return false;
+ }
+
+ if (!ReadParam(m, iter, &eapPassword))
+ {
+ return false;
+ }
+
+ m->ReadBool(iter, &validateServerCertificate);
+ }
+ pSecurityInfoImpl->SetEapMethodInfo((WifiEapType)eapType, eapUserId, eapPassword, validateServerCertificate);
+ }
+ }
- // 6. RSSI
+ // 7. RSSI
+ long rssi = 0;
m->ReadLong(iter, &rssi);
- pInfoImpl->SetRssi(rssi);
+ pBssInfoImpl->SetRssi(rssi);
- // 7. Date Rate
+ // 8. Date Rate
+ float* pDataRate = null;
const char* pTempDataRate = null;
m->ReadBytes(iter, &pTempDataRate, sizeof(*pDataRate));
pDataRate = (float*)(pTempDataRate);
- pInfoImpl->SetDataRate(*pDataRate);
+ pBssInfoImpl->SetDataRate(*pDataRate);
- // 8. Known
+ // 9. Known
+ bool isKnown = false;
m->ReadBool(iter, &isKnown);
- pInfoImpl->SetKnown(isKnown);
+ pBssInfoImpl->SetKnown(isKnown);
- // 9. Local address scheme
+ // 10. Local address scheme
+ int ipScheme = 0;
m->ReadInt(iter, &ipScheme);
- pInfoImpl->SetLocalAddressScheme((NetAddressScheme)ipScheme);
+ pBssInfoImpl->SetLocalAddressScheme((NetAddressScheme)ipScheme);
if (ipScheme == NET_ADDRESS_SCHEME_STATIC)
{
- // 10. IP address
+ // 11. IP address
+ String addressStr;
if (!ReadParam(m, iter, &addressStr))
{
return false;
if (addressStr.GetLength() > 0)
{
Tizen::Net::Ip4Address ipAddress(addressStr); // on the assumption that the address family is IP 4.
- pInfoImpl->SetLocalAddress(&ipAddress);
+ pBssInfoImpl->SetLocalAddress(&ipAddress);
}
else
{
- pInfoImpl->SetLocalAddress(null);
+ pBssInfoImpl->SetLocalAddress(null);
}
- // 11. Subnet mask address
+ // 12. Subnet mask address
if (!ReadParam(m, iter, &addressStr))
{
return false;
if (addressStr.GetLength() > 0)
{
Tizen::Net::Ip4Address maskAddress(addressStr); // on the assumption that the address family is IP 4.
- pInfoImpl->SetSubnetMaskAddress(&maskAddress);
+ pBssInfoImpl->SetSubnetMaskAddress(&maskAddress);
}
else
{
- pInfoImpl->SetSubnetMaskAddress(null);
+ pBssInfoImpl->SetSubnetMaskAddress(null);
}
- // 12. Default gateway address
+ // 13. Default gateway address
if (!ReadParam(m, iter, &addressStr))
{
return false;
if (addressStr.GetLength() > 0)
{
Tizen::Net::Ip4Address gwAddress(addressStr); // on the assumption that the address family is IP 4.
- pInfoImpl->SetDefaultGatewayAddress(&gwAddress);
+ pBssInfoImpl->SetDefaultGatewayAddress(&gwAddress);
}
else
{
- pInfoImpl->SetDefaultGatewayAddress(null);
+ pBssInfoImpl->SetDefaultGatewayAddress(null);
}
- // 13. Primary DNS address
+ // 14. Primary DNS address
if (!ReadParam(m, iter, &addressStr))
{
return false;
if (addressStr.GetLength() > 0)
{
Tizen::Net::Ip4Address priDnsAddress(addressStr); // on the assumption that the address family is IP 4.
- pInfoImpl->SetPrimaryDnsAddress(&priDnsAddress);
+ pBssInfoImpl->SetPrimaryDnsAddress(&priDnsAddress);
}
else
{
- pInfoImpl->SetPrimaryDnsAddress(null);
+ pBssInfoImpl->SetPrimaryDnsAddress(null);
}
- // 14. Secondary DNS address
+ // 15. Secondary DNS address
if (!ReadParam(m, iter, &addressStr))
{
return false;
if (addressStr.GetLength() > 0)
{
Tizen::Net::Ip4Address secDnsAddress(addressStr); // on the assumption that the address family is IP 4.
- pInfoImpl->SetSecondaryDnsAddress(&secDnsAddress);
+ pBssInfoImpl->SetSecondaryDnsAddress(&secDnsAddress);
}
else
{
- pInfoImpl->SetSecondaryDnsAddress(null);
+ pBssInfoImpl->SetSecondaryDnsAddress(null);
}
}
- // 15. Proxy type
+ // 16. Proxy type
+ int proxyType = 0;
m->ReadInt(iter, &proxyType);
- pInfoImpl->SetProxyType((NetProxyType)proxyType);
+ pBssInfoImpl->SetProxyType((NetProxyType)proxyType);
if (proxyType == NET_PROXY_TYPE_MANUAL)
{
- // 16. Proxy address
+ // 17. Proxy address
+ String addressStr;
if (!ReadParam(m, iter, &addressStr))
{
return false;
}
- pInfoImpl->SetProxyAddress(addressStr);
+ pBssInfoImpl->SetProxyAddress(addressStr);
}
return true;
{
}
};
-}
+
+
+template <>
+struct ParamTraits< Tizen::Base::Collection::ArrayListT<Tizen::Net::Wifi::WifiBssInfo*> >
+{
+ typedef Tizen::Base::Collection::ArrayListT<Tizen::Net::Wifi::WifiBssInfo*> param_type;
+
+ static void Write(Message* m, const param_type& p)
+ {
+ int count = p.GetCount();
+
+ WriteParam(m, count);
+
+ for (int i = 0; i < count; i++)
+ {
+ WifiBssInfo* pWifiBssInfo = null;
+ p.GetAt(i,pWifiBssInfo);
+ WriteParam(m, *pWifiBssInfo);
+ }
+ }
+
+ static bool Read(const Message* m, void** iter, param_type* r)
+ {
+ int count = 0;
+
+ if (!m->ReadLength(iter, &count))
+ {
+ return false;
+ }
+
+ r->Construct(count);
+
+
+ for (int i = 0; i < count; i++)
+ {
+ unique_ptr<WifiBssInfo> pBssInfo(new (std::nothrow) WifiBssInfo);
+ SysTryReturn(NID_NET_WIFI, pBssInfo != null, false, E_OUT_OF_MEMORY, "Insufficient memory.");
+
+ if (!ReadParam(m, iter, pBssInfo.get()))
+ {
+ for (int j = 0; j < r->GetCount(); j++)
+ {
+ WifiBssInfo* pBssInfo = null;
+ r->GetAt(j, pBssInfo);
+ delete pBssInfo;
+ }
+ return false;
+ }
+ r->Add(pBssInfo.release());
+ }
+
+ return true;
+ }
+
+ static void Log(const param_type& p, std::string* l)
+ {
+ }
+};
+
+
+template <>
+struct ParamTraits<Tizen::Net::Wifi::_WifiNetAccountInfoImpl>
+{
+ typedef _WifiNetAccountInfoImpl param_type;
+
+ static void Write(Message* m, const param_type& p)
+ {
+ // 1. BSSID
+ WriteParam(m, p.GetBssId());
+
+ // 2. SSID
+ WriteParam(m, p.GetSsid());
+
+ // 3. BSS Type
+ m->WriteInt(p.GetBssType());
+
+ // 4. Radio Channel
+ m->WriteInt(p.GetRadioChannel());
+
+ // 5. Security Info
+ m->WriteInt(p.GetSecurityInfo()->GetAuthenticationType());
+ m->WriteInt(p.GetSecurityInfo()->GetEncryptionType());
+ }
+
+ static bool Read(const Message* m, void** iter, param_type* r)
+ {
+ // 1. BSSID
+ String bssId;
+ if (!ReadParam(m, iter, &bssId))
+ {
+ return false;
+ }
+ r->SetBssId(bssId);
+
+ // 2. SSID
+ String ssid;
+ if (!ReadParam(m, iter, &ssid))
+ {
+ return false;
+ }
+ r->SetSsid(ssid);
+
+ // 3. BSS Type
+ int bssType = 0;
+ m->ReadInt(iter, &bssType);
+ r->SetBssType((WifiBssType)bssType);
+
+ // 4. Radio Channel
+ int radioChannel = 0;
+ m->ReadInt(iter, &radioChannel);
+ r->SetRadioChannel((WifiRadioChannel)radioChannel);
+
+ // 5. Security Info
+ WifiSecurityInfo* pWifiSecurityInfo = const_cast<WifiSecurityInfo*>(r->GetSecurityInfo());
+ _WifiSecurityInfoImpl* pSecurityInfoImpl = _WifiSecurityInfoImpl::GetInstance(*pWifiSecurityInfo);
+
+ int authenticationType = 0;
+ m->ReadInt(iter, &authenticationType);
+ pSecurityInfoImpl->SetAuthenticationType((WifiAuthenticationType)authenticationType);
+
+ int encryptionType = 0;
+ m->ReadInt(iter, &encryptionType);
+ pSecurityInfoImpl->SetEncryptionType((WifiEncryptionType)encryptionType);
+
+ return true;
+ }
+
+ static void Log(const param_type& p, std::string* l)
+ {
+ }
+};
+
+
+} // IPC
#endif // _FNET_WIFI_INTERNAL_CONNECTIVITY_IPC_PARAM_TRAITS_H_
+++ /dev/null
-//
-// Open Service Platform
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
-//
-// 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.
-//
-
-/**
- * @file FNetWifi_IWifiManagerEventListener.h
- * @brief This is the header file for the _IWifiManagerEventListener interface.
- *
- * This is the header file for the internal interface of wifi events.
- *
- */
-
-#ifndef _FNET_WIFI_INTERNAL_IWIFI_MANAGER_EVENT_LISTENER_H_
-#define _FNET_WIFI_INTERNAL_IWIFI_MANAGER_EVENT_LISTENER_H_
-
-#include <FBaseRtIEventListener.h>
-#include <FOspConfig.h>
-
-namespace Tizen { namespace Net { namespace Wifi
-{
-
-/**
- * @interface _IWifiManagerEventListener
- * @brief This interface implements listeners for WifiManager internal events.
- * @since 1.0
- */
-
-class _OSP_EXPORT_ _IWifiManagerEventListener
- : public Tizen::Base::Runtime::IEventListener
-{
-
-public:
- /**
- * This polymorphic destructor should be overridden if required. This way,
- * the destructors of the derived classes are called when the destructor of this interface is called.
- *
- */
- virtual ~_IWifiManagerEventListener(void) {}
-
- /**
- * @see IWifiManagerEventListener::OnWifiActivated()
- */
- virtual void OnWifiActivated(result r) = 0;
-
- /**
- * @see IWifiManagerEventListener::OnWifiDeactivated()
- */
- virtual void OnWifiDeactivated(result r) = 0;
-
- /**
- * @see IWifiManagerEventListener::OnWifiConnected()
- */
- virtual void OnWifiConnected(const Tizen::Base::String& ssid, result r) = 0;
-
- /**
- * @see IWifiManagerEventListener::OnWifiDisconnected()
- */
- virtual void OnWifiDisconnected(void) = 0;
-
- /**
- * @see IWifiManagerEventListener::OnWifiRssiChanged()
- */
- virtual void OnWifiRssiChanged(long rssi) = 0;
-
- /**
- * @see IWifiManagerEventListener::OnWifiScanCompletedN()
- */
- virtual void OnWifiScanCompleted(Tizen::Base::Collection::IList* pWifiBssInfoList, result r) = 0;
-
- /**
- * @see IWifiSystemMonitoringEventListener::OnWifiConnectionStateChanged()
- */
- virtual void OnWifiConnectionStateChanged(WifiConnectionState state) = 0;
-
- /**
- * @see IWifiSystemMonitoringEventListener::OnWifiSystemScanResultUpdated()
- */
- virtual void OnWifiSystemScanResultUpdated(void) = 0;
-
-}; // _IWifiManagerEventListener
-
-} } } // Tizen::Net::Wifi
-
-#endif // _FNET_WIFI_INTERNAL_IWIFI_MANAGER_EVENT_LISTENER_H_
/**
* @file FNetWifi_WifiManagerImpl.h
* @brief This is the header file for the _WifiManagerImpl Class.
- * @version 3.0
*
* This header file contains declaration of the _WifiManagerImpl Class.
*/
#include <FOspConfig.h>
#include <FBaseObject.h>
+#include <FBaseRtMutex.h>
#include <FNetWifiWifiTypes.h>
-#include "FNetWifi_IWifiManagerEventListener.h"
namespace Tizen { namespace Net { namespace Wifi
{
class WifiManager;
class IWifiManagerEventListener;
class IWifiSystemMonitoringEventListener;
-class _WifiSystemAdapter;
+class _WifiIpcProxy;
class _WifiManagerEvent;
class _WifiSystemMonitoringEvent;
*/
class _OSP_EXPORT_ _WifiManagerImpl
: public Tizen::Base::Object
- , public _IWifiManagerEventListener
{
public:
- /**
- * This is the default constructor for this class.
- *
- * @remarks After creating an instance of this class, you must explicitly call
- * the construction method to initialize the instance.
- * @see Construct()
- */
- _WifiManagerImpl(void);
-
- /**
- * This is the copy constructor for this class. Do @b not use directly.
- *
- * @param[in] value An instance of %_WifiManagerImpl
- */
- _WifiManagerImpl(const _WifiManagerImpl& value);
-
- /**
- *This destructor overrides Tizen::Base::Object::~Object().
- */
- virtual ~_WifiManagerImpl(void);
-
- /**
- * @see WifiManager::Construct()
- */
- result Construct(IWifiManagerEventListener& listener);
-
- /**
- * @see WifiManager::Activate()
- */
- result Activate(void);
-
- /**
- * @see WifiManager::Deactivate()
- */
- result Deactivate(void);
-
- /**
- * @see WifiManager::GetPowerStatus()
- */
- WifiPowerStatus GetPowerStatus(void) const;
-
- /**
- * @see WifiManager::GetMacAddress()
- */
- Tizen::Base::String GetMacAddress(void) const;
-
- /**
- * @see WifiManager::IsActivated()
- */
- bool IsActivated(void) const;
-
- /**
- * @see WifiManager::IsConnected()
- */
- bool IsConnected(void) const;
-
- /**
- * @see WifiManager::Scan()
- */
- result Scan(void);
-
- /**
- * @see WifiManager::Connect()
- */
- result Connect(const WifiBssInfo& targetApInfo);
-
- /**
- * @see WifiManager::SetWifiSystemScanMode()
- */
- result SetWifiSystemScanMode(WifiSystemScanMode mode);
-
- /**
- * @see WifiManager::AddSystemMonitoringEventListener()
- */
- result AddSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
-
- /**
- * @see WifiManager::RemoveSystemMonitoringEventListener()
- */
- result RemoveSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
-
- /**
- * @see WifiManager::GetConnectionState()
- */
- WifiConnectionState GetConnectionState(void) const;
-
- /**
- * @see WifiManager::GetConnectionTargetInfoN()
- */
- WifiBssInfo* GetConnectionTargetInfoN(void) const;
-
- /**
- * @see WifiManager::UpdateBssInfo()
- */
- result UpdateBssInfo(const WifiBssInfo& bssInfo);
-
- /**
- * @see WifiManager::GetSystemScanResultN()
- */
- Tizen::Base::Collection::IList* GetSystemScanResultN(void) const;
-
- /**
- * @see IWifiManagerEventListener::OnWifiActivated()
- */
- virtual void OnWifiActivated(result r);
-
- /**
- * @see IWifiManagerEventListener::OnWifiDeactivated()
- */
- virtual void OnWifiDeactivated(result r);
-
- /**
- * @see IWifiManagerEventListener::OnWifiConnected()
- */
- virtual void OnWifiConnected(const Tizen::Base::String& ssid, result r);
-
- /**
- * @see IWifiManagerEventListener::OnWifiDisconnected()
- */
- virtual void OnWifiDisconnected(void);
-
- /**
- * @see IWifiManagerEventListener::OnWifiRssiChanged()
- */
- virtual void OnWifiRssiChanged(long rssi);
-
- /**
- * @see IWifiManagerEventListener::OnWifiScanCompletedN()
- */
- virtual void OnWifiScanCompleted(Tizen::Base::Collection::IList* pWifiBssInfoList, result r);
-
- /**
- * @see IWifiSystemMonitoringEventListener::OnWOnWifiConnectionStateChanged()
- */
- virtual void OnWifiConnectionStateChanged(WifiConnectionState state);
-
- /**
- * @see IWifiSystemMonitoringEventListener::OnWifiSystemScanResultUpdated()
- */
- virtual void OnWifiSystemScanResultUpdated(void);
-
- /**
- * Gets the Impl instance.
- *
- * @return The pointer to %_WifiManagerImpl
- * @param[in] wifiManager An instance of %WifiManager
- */
- static _WifiManagerImpl* GetInstance(WifiManager& wifiManager);
-
- /**
- * Gets the Impl instance.
- *
- * @return The pointer to %_WifiManagerImpl
- * @param[in] wifiManager An instance of %WifiManager
- */
- static const _WifiManagerImpl* GetInstance(const WifiManager& wifiManager);
-
- /**
- * @see WifiManager::operator=()
- */
- _WifiManagerImpl& operator=(const _WifiManagerImpl& rhs);
+ /**
+ * This is the default constructor for this class.
+ *
+ * @remarks After creating an instance of this class, you must explicitly call
+ * the construction method to initialize the instance.
+ * @see Construct()
+ */
+ _WifiManagerImpl(void);
+
+ /**
+ * This is the copy constructor for this class. Do @b not use directly.
+ *
+ * @param[in] value An instance of %_WifiManagerImpl
+ */
+ _WifiManagerImpl(const _WifiManagerImpl& value);
+
+ /**
+ *This destructor overrides Tizen::Base::Object::~Object().
+ */
+ virtual ~_WifiManagerImpl(void);
+
+ /**
+ * @see WifiManager::Construct()
+ */
+ result Construct(IWifiManagerEventListener& listener);
+
+ /**
+ * @see WifiManager::Activate()
+ */
+ result Activate(void);
+
+ /**
+ * @see WifiManager::Deactivate()
+ */
+ result Deactivate(void);
+
+ /**
+ * @see WifiManager::GetPowerStatus()
+ */
+ WifiPowerStatus GetPowerStatus(void) const;
+
+ /**
+ * @see WifiManager::GetMacAddress()
+ */
+ Tizen::Base::String GetMacAddress(void) const;
+
+ /**
+ * @see WifiManager::IsActivated()
+ */
+ bool IsActivated(void) const;
+
+ /**
+ * @see WifiManager::IsConnected()
+ */
+ bool IsConnected(void) const;
+
+ /**
+ * @see WifiManager::Scan()
+ */
+ result Scan(void);
+
+ /**
+ * @see WifiManager::Connect()
+ */
+ result Connect(const WifiBssInfo& targetApInfo);
+
+ /**
+ * @see WifiManager::SetWifiSystemScanMode()
+ */
+ result SetWifiSystemScanMode(WifiSystemScanMode mode);
+
+ /**
+ * @see WifiManager::AddSystemMonitoringEventListener()
+ */
+ result AddSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
+
+ /**
+ * @see WifiManager::RemoveSystemMonitoringEventListener()
+ */
+ result RemoveSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
+
+ /**
+ * @see WifiManager::GetConnectionState()
+ */
+ WifiConnectionState GetConnectionState(void) const;
+
+ /**
+ * @see WifiManager::GetConnectionTargetInfoN()
+ */
+ WifiBssInfo* GetConnectionTargetInfoN(void) const;
+
+ /**
+ * @see WifiManager::UpdateBssInfo()
+ */
+ result UpdateBssInfo(const WifiBssInfo& bssInfo);
+
+ /**
+ * @see WifiManager::GetSystemScanResultN()
+ */
+ Tizen::Base::Collection::IList* GetSystemScanResultN(void) const;
+
+ /**
+ * Gets the Impl instance.
+ *
+ * @return The pointer to %_WifiManagerImpl
+ * @param[in] wifiManager An instance of %WifiManager
+ */
+ static _WifiManagerImpl* GetInstance(WifiManager& wifiManager);
+
+ /**
+ * Gets the Impl instance.
+ *
+ * @return The pointer to %_WifiManagerImpl
+ * @param[in] wifiManager An instance of %WifiManager
+ */
+ static const _WifiManagerImpl* GetInstance(const WifiManager& wifiManager);
+
+ /**
+ * @see WifiManager::operator=()
+ */
+ _WifiManagerImpl& operator=(const _WifiManagerImpl& rhs);
+
+ // Callback functions to receive from _WifiIpcProxy
+
+ void OnWifiActivated(result r);
+ void OnWifiDeactivated(result r);
+ void OnWifiConnected(const Tizen::Base::String& ssid, result r);
+ void OnWifiDisconnected(void);
+ void OnWifiRssiChanged(long rssi);
+ void OnWifiScanCompleted(Tizen::Base::Collection::IList* pWifiBssInfoList, result r);
+ void OnWifiConnectionStateChanged(WifiConnectionState state);
+ void OnWifiSystemScanResultUpdated(void);
private:
enum _WifiManagerState
const char* GetStringOfConnectionState(WifiConnectionState state) const;
private:
- _WifiSystemAdapter* __pWifiSystemAdapter;
+ _WifiIpcProxy* __pWifiProxy;
std::unique_ptr<_WifiManagerEvent> __pMgrEvent;
std::unique_ptr<_WifiSystemMonitoringEvent> __pMonitoringEvent;
WifiBssInfo* __pTargetApInfo;
/**
* This is the default constructor for this class.
*
- * @since 2.1
*/
_WifiNetAccountInfoImpl(void);
/**
* Copying of objects using this copy constructor is allowed.
*
- * @since 2.1
*/
_WifiNetAccountInfoImpl(const _WifiNetAccountInfoImpl &rhs);
/**
* This destructor overrides Tizen::Base::Object::~Object().
*
- * @since 2.1
*/
virtual ~_WifiNetAccountInfoImpl(void);
*/
virtual int GetHashCode(void) const;
-
- /**
- * Allocates Instance of WifiNetAccountInfo.
- *
- * @since 2.1
- * @return WifiNetAccountInfo
- *
- */
- static WifiNetAccountInfo* CreateWifiNetAccountInfoN(void* pProfileInfo);
-
/**
* Gets the Impl instance.
*
- * @since 2.1
* @return The pointer to %_WifiNetAccountInfoImpl
* @param[in] wifiNetAccountInfo An instance of %WifiNetAccountInfo
*/
/**
* Gets the Impl instance.
*
- * @since 2.1
* @return The pointer to %_WifiNetAccountInfoImpl
* @param[in] wifiNetAccountInfo An instance of %WifiNetAccountInfo
*/
static const _WifiNetAccountInfoImpl* GetInstance(const WifiNetAccountInfo& wifiNetAccountInfo);
+ static WifiNetAccountInfo* CreateWifiNetAccountInfoN(void);
+
private:
- WifiBssType __bssType;
- Tizen::Base::String __ssid;
- WifiSecurityInfo __securityInfo;
- Tizen::Base::String __bssid;
- WifiRadioChannel __channel;
+ WifiBssType __bssType;
+ WifiRadioChannel __channel;
+ Tizen::Base::String __ssid;
+ Tizen::Base::String __bssid;
+ WifiSecurityInfo __securityInfo;
}; // _WifiNetAccountInfoImpl
/**
* @see WifiSecurityInfo::SetNetworkKeyWep()
*/
- result SetNetworkKeyWep(WifiWepKeyLen keyLen, WifiWepKeyIndex keyIndex, const Tizen::Base::String& key);
+ result SetNetworkKeyWep(WifiWepKeyLen keyLen, WifiWepKeyIndex keyIndex, const Tizen::Base::String& key);
/**
* @see WifiSecurityInfo::SetNetworkKeyAes()
result SetNetworkKeyTkip(const Tizen::Base::String& key);
/**
- * Get the Wired Equivalent Privacy (WEP) key data.
- *
- * @return unsigned char*
- */
- const unsigned char* GetNetworkKeyWep(void) const;
-
- /**
- * Gets the Advanced Encryption Standard (AES) key data.
- *
- * @return unsigned char*
- */
- const unsigned char* GetNetworkKeyAes(void) const;
-
- /**
- * Gets the Temporal Key Integrity Protocol (TKIP) key data.
- *
- * @return unsigned char*
- */
- const unsigned char* GetNetworkKeyTkip(void) const;
-
- /**
* @see WifiSecurityInfo::SetEapMethodInfo()
*/
result SetEapMethodInfo(WifiEapType type, const Tizen::Base::String& userId, const Tizen::Base::String& password, bool validateServerCertificate = true);
*
* @return user ID
*/
- const char* GetEapUserId(void) const;
+ Tizen::Base::String GetEapUserId(void) const;
/**
* Gets the password of EAP
*
* @return password
*/
- const char* GetEapPassword(void) const;
+ Tizen::Base::String GetEapPassword(void) const;
+
+
+ bool GetValidateServerCertificate(void) const;
/**
* @see WifiSecurityInfo::SetNetworkKey()
private:
/**
- * @brief Defines IEEE 802.11 security key with the WEP encryption.
+ * @brief Defines IEEE 802.11 security info with the WEP encryption.
*/
struct WifiNetworkKeyWep
{
- WifiWepKeyLen keyLen; //< WEP Key length(64 or 128 bits).
- int keyIndex; //< WEP Key index(must be 1, 2, 3, or 4).
- unsigned char key[WIFI_WEP_128BIT_KEY_LENGTH + 1]; //< WEP key value.
- };
-
- /**
- * @brief Defines IEEE 802.11 security key with the AES encryption.
- */
- struct WifiNetworkKeyAes
- {
- unsigned char key[WIFI_AES_KEY_LENGTH + 1]; //< The AES key value.
- };
-
- /**
- * @brief Defines the type definition of IEEE 802.11 security key with the TKIP encryption.
- */
- struct WifiNetworkKeyTkip
- {
- unsigned char key[WIFI_TKIP_KEY_LENGTH + 1]; //< The TKIP key value
+ WifiWepKeyLen keyLen;
+ WifiWepKeyIndex keyIndex;
};
/**
struct WifiEapMethodInfo
{
WifiEapType eapType; //< EAP method type.
- char userId[WIFI_EAP_KEY_LENGTH + 1]; //< EAP userId.
- char password[WIFI_EAP_KEY_LENGTH + 1]; //< EAP password.
- bool validateCertificate; //< The option to validate server certificate.
+ bool validateCertificate; //< The option to validate server certificate.
+ Tizen::Base::String userId;
+ Tizen::Base::String password;
};
WifiAuthenticationType __authenticationType;
WifiEncryptionType __encryptionType;
- WifiNetworkKeyWep __wepKey;
- WifiNetworkKeyAes __aesKey;
- WifiNetworkKeyTkip __tkipKey;
+ WifiNetworkKeyWep __webKeyInfo;
WifiEapMethodInfo __eapInfo;
Tizen::Base::String __networkKey;
+++ /dev/null
-//
-// Open Service Platform
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
-//
-// 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.
-//
-/**
- * @file FNetWifi_WifiSystemAdapter.h
- * @brief This is the header file for the _WifiSystemAdapter class.
- * @version 2.1
- *
- * This header file contains declarations of the _WifiSystemAdapter class.
- */
-#ifndef _FNET_WIFI_INTERNAL_WIFI_SYSTEM_ADAPTER_H_
-#define _FNET_WIFI_INTERNAL_WIFI_SYSTEM_ADAPTER_H_
-
-#include <unique_ptr.h>
-#include <wifi.h>
-#include <FOspConfig.h>
-#include <FBaseObject.h>
-#include <FNetWifiWifiTypes.h>
-
-namespace Tizen { namespace Net { namespace Wifi
-{
-
-class WifiBssInfo;
-class _WifiManagerImpl;
-class _IWifiManagerEventListener;
-
-class _OSP_EXPORT_ _WifiSystemAdapter :
- public Tizen::Base::Object
-{
-
-public:
- /**
- * Register an instance of _IWifiManagerEventListener interface.
- *
- * @return An error code
- * @param[in] listener The instance of _IWifiManagerEventListener to be registered
- * @param[in] isHighPriority Set to @c true to register with the high priority, @n
- * else @c false
- * @exception E_SUCCESS The method is successful.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- */
- result RegisterManagerEventListener(_IWifiManagerEventListener& listener);
-
- /**
- * Unregister an instance of _IBluetoothManagerEventListener interface.
- *
- * @return An error code
- * @param[in] listener The instance of _IWifiManagerEventListener to be unregistered
- * @exception E_SUCCESS The method is successful.
- * @exception E_OBJ_NOT_FOUND The input instance is not registered.
- */
- result UnregisterManagerEventListener(_IWifiManagerEventListener& listener);
-
- /**
- * Activates the local Wifi device.
- *
- * @return An error code
- * @exception E_SUCCESS The activation was successful.
- * @exception E_FAILURE Failed to activate.
- * @exception E_SYSTEM A system error occurred.
- */
- result Activate(void);
-
- /**
- * Deactivates the local Wifi device.
- *
- * @return An error code
- * @exception E_SUCCESS The deactivation was successful.
- * @exception E_FAILURE Failed to deactivate.
- * @exception E_SYSTEM A system error occurred.
- */
- result Deactivate(void);
-
- /**
- * Gets the MAC address of the Wifi device.
- * @return The MAC address in the form '00-00-00-00-00-00'
- */
- Tizen::Base::String GetMacAddress(void) const;
-
- /**
- * Checks whether the local device is activated.
- * @return @c true, if the local device is activated @n
- * @c false, otherwise
- */
- bool IsActivated(void) const;
-
- /**
- * Checks whether the local device is connected with a remote STA.
- * @return @c true, if the local device is connected with a remote STA @n
- * @c false, otherwise
- */
- bool IsConnected(void) const;
-
- /**
- * Checks whether the local device is already connected with a specific remote STA.
- *
- * @return @c true, if the local device is already connected with a specific remote STA @n
- * @c false, otherwise
- * @param[in] pApHandle a handle of access point
- *
- */
- bool IsConnected(wifi_ap_h pApHandle) const;
-
- /**
- * Requests a scan for nearby BSS with both infrastructure and independent mode.
- *
- * @return An error code
- * @exception E_SUCCESS The method was successful.
- * @exception E_FAILURE The method failed.
- * @remarks Only active scan - i.e. probing for APs in the range - is supported.
- * @see IWifiManagerEventListener::OnWifiScanCompleted()
- */
- result Scan(void);
-
- /**
- * Establishes a connection to a specific access point - only BSS with infrastructure mode.
- *
- * @return An error code
- * @param[in] targetApInfo A BSS information that represents target access point.
- * @exception E_SUCCESS The method was successful.
- * @exception E_FAILURE The method failed.
- * @exception E_INVALID_ARG A specified input parameter is invalid. E.g. BSS type is independent mode.
- * @remarks If a connection to other access point is already established, it will be disconnected and the new connection
- * of this method will be established.
- * @see IWifiManagerEventListener::OnWifiConnected()
- */
- result Connect(const WifiBssInfo& targetApInfo);
-
- /**
- * Gets the state of current Wi-Fi connection.
- *
- * @return The state of the current Wi-Fi connection
- */
- WifiConnectionState GetConnectionState(void) const;
-
- /**
- * Gets the information of current Wi-Fi connection target which the local device is connecting or connected with.
- *
- * @return A pointer to the WifiBssInfo instance representing the information of current Wi-Fi connection target
- * else @c null if GetConnectionState() is WIFI_CONNECTION_STATE_NOT_CONNECTED
- */
- WifiBssInfo* GetConnectionTargetInfoN(void) const;
-
- /**
- * Gets a list of the latest search results which the underlying Wi-Fi system scan periodically on background.
- *
- * @return An IList containing WifiBssInfo of existing Wi-Fi connections if successful, @n
- * else @c null
- */
- Tizen::Base::Collection::IList* GetSystemScanResultN(void) const;
-
- /**
- * Called when the device state is changed.
- *
- * @param[in] state Device status
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiDeviceStateChanged(wifi_device_state_e state, void* pUserData);
-
- /**
- * Called when the connection state is changed.
- *
- * @param[in] state Connection status
- * @param[in] pApHandle A handle of access point
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiConnectionStateChanged(wifi_connection_state_e state, wifi_ap_h pApHandle, void* pUserData);
-
- /**
- * Called when each access point is found.
- *
- * @param[in] pApHandle A handle of access point
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static bool OnWifiEachAccessPointFound(wifi_ap_h pApHandle, void* pUserData);
-
- /**
- * Called when each access point is checked.
- *
- * @param[in] pApHandle A handle of access point
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static bool OnWifiEachAccessPointChecked(wifi_ap_h pApHandle, void* pUserData);
-
- /**
- * Called when Wifi is activated.
- *
- * @param[in] errorCode Error code
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiActivated(wifi_error_e errorCode, void* pUserData);
-
- /**
- * Called when Wifi is dectivated.
- *
- * @param[in] errorCode Error code
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiDeactivated(wifi_error_e errorCode, void* pUserData);
-
- /**
- * Called when the local device is connected with Wifi access point.
- *
- * @param[in] errorCode Error code
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiConnected(wifi_error_e errorCode, void* pUserData);
-
- /**
- * Called when the scan process is completed.
- *
- * @param[in] errorCode Error code
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiScanCompleted(wifi_error_e errorCode, void* pUserData);
-
- /**
- * Called when the rssi value is changed.
- *
- * @param[in] rssiLevel Rssi level
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiRssiLevelChanged(wifi_rssi_level_e rssiLevel, void* pUserData);
-
- /**
- * Called when the background scan result is updated.
- *
- * @param[in] errorCode Error code
- * @param[in] pUserData The user data passed from the callback registration function
- */
- static void OnWifiBackgroundScanResultUpdated(wifi_error_e errorCode, void* pUserData);
-
- /**
- * Get the singleton insatnce of _WifiSystemAdapter.
- *
- * @return The pointer to _WifiSystemAdapter
- */
- static _WifiSystemAdapter* GetInstance(void);
-
-private:
- /**
- * This default constructor is intentionally declared as private to implement the Singleton semantic.
- *
- * @remarks After creating an instance of this class, you must explicitly call
- * the construction method to initialize the instance.
- * @see Construct()
- */
- _WifiSystemAdapter(void);
-
- /**
- * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %_WifiSystemAdapter
- */
- _WifiSystemAdapter(const _WifiSystemAdapter& rhs);
-
- /**
- * This destructor is intentionally declared as private to implement the Singleton semantic.
- *
- */
- virtual ~_WifiSystemAdapter(void);
-
- /**
- * Initializes the _WifiSystemAdapter instance and adds the listener instance.
- *
- * @return An error code
- * @exception E_SUCCESS The initialization was successful.
- * @exception E_SYSTEM A system error occurred.
- */
- result Construct();
-
- /**
- * Initializes the _WifiSystemAdapter singletone instance.
- *
- * @exception E_SUCCESS The initialization was successful.
- * @exception E_SYSTEM A system error occurred.
- * @exception E_OUT_OF_MEMORY The memory is insufficient.
- */
- static void InitSingleton(void);
-
- /**
- * Destorys instance of singleton class.
- *
- */
- static void DestroySingleton(void);
-
- /**
- * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %_WifiSystemAdapter
- */
- _WifiSystemAdapter& operator=(const _WifiSystemAdapter& rhs);
-
- static const char* GetStringOfConnectionState(wifi_connection_state_e state);
-
-private:
- Tizen::Base::Collection::LinkedListT<_IWifiManagerEventListener*> __mgrEvtListenerList;
- wifi_connection_state_e __prevconnState;
-
-friend class std::default_delete<_WifiSystemAdapter>;
-
-}; // _WifiSystemAdapter
-
-} } } // Tizen::Net::Wifi
-
-#endif // _FNET_WIFI_INTERNAL_WIFI_SYSTEM_ADAPTER_H_
*/
static WifiBssInfo* CreateWifiBssInfoInstanceN(wifi_ap_h& pApHandle);
+ static result GetWifiBssInfoFromApHandle(wifi_ap_h& pApHandle, Tizen::Net::Wifi::WifiBssInfo* pBssInfo);
+
/**
* Releases memory for wifi aphandler and sets it to null
*
// Client -> Server (sync)
IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_getAppNetAccountId, Tizen::Base::String /* ProfileName */, int /* NetAccountId */, unsigned long /* result */)
IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_setNetAccountId, int /* NetAccountId*/, int /* NetAccountId */, unsigned long /* result */)
-IPC_SYNC_MESSAGE_CONTROL3_1(ConnectivityNetServiceMsg_updateSystemNetAccount, Tizen::Base::String /* ProfileName */, Tizen::Net::NetAccountInfo /* NetAccountInfo */, int /* NetBearerType*/, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityNetServiceMsg_updateSystemNetAccount, Tizen::Net::NetAccountInfo /* NetAccountInfo */, unsigned long /* result */)
IPC_SYNC_MESSAGE_CONTROL2_1(ConnectivityNetServiceMsg_resetNetStatistics, int /* bearerType */, int /* statType */, unsigned long /* result */)
IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityNetServiceMsg_resetAllNetStatistics, int /* bearerType */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_4(ConnectivityNetServiceMsg_addDefaultConnectionListener, int /* NetConnectionState */, int /* NetBearerType */, Tizen::Net::NetConnectionInfo /* NetConnectionInfo */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityNetServiceMsg_removeDefaultConnectionListener, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_3(ConnectivityNetServiceMsg_addWifiConnectionListener, int /* NetConnectionState */, Tizen::Net::NetConnectionInfo /* NetConnectionInfo */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityNetServiceMsg_removeWifiConnectionListener, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_1(ConnectivityNetServiceMsg_startWifiConnection, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityNetServiceMsg_startPsConnection, Tizen::Base::String /* ProfileName */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityNetServiceMsg_stopPsConnection, Tizen::Base::String /* ProfileName */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_3(ConnectivityNetServiceMsg_getPsConnectionState, Tizen::Base::String /* ProfileName */, int /* NetConnectionState */, Tizen::Base::String /* deviceName */, unsigned long /* result */)
+
+IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_getNetAccountName, int /* NetAccountId*/, Tizen::Base::String /* netAccountName */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_getNetProfileName, int /* NetAccountId*/, Tizen::Base::String /* netProfileName */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_getNetConnectionInfo, int /* NetAccountId*/, Tizen::Net::NetConnectionInfo /* NetConnectionInfo */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_getNetAccountInfo, int /* NetAccountId*/, Tizen::Net::NetAccountInfo /* NetAccountInfo */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_getNetAccountId, Tizen::Base::String /* AccountName */, int /* NetAccountId */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityNetServiceMsg_getInternetNetAccountId, int /* NetAccountId */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityNetServiceMsg_getMmsNetAccountId, int /* NetAccountId */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_2(ConnectivityNetServiceMsg_createNetAccount, Tizen::Net::NetAccountInfo /* NetAccountInfo */, int /* NetAccountId */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityNetServiceMsg_deleteNetAccount, int /* NetAccountId */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL1_1(ConnectivityNetServiceMsg_updateNetAccount, Tizen::Net::NetAccountInfo /* NetAccountInfo */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityNetServiceMsg_getNetAccountIds, Tizen::Base::Collection::ArrayListT<int> /* List of NetAccountId */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityNetServiceMsg_getNetAccountNames, Tizen::Base::Collection::ArrayList /* List of NetAccountName */, unsigned long /* result */)
+IPC_SYNC_MESSAGE_CONTROL0_2(ConnectivityNetServiceMsg_getAllNetConnectionInfo, Tizen::Base::Collection::ArrayListT<Tizen::Net::NetConnectionInfo*> /* List of NetConnectionInfo */, unsigned long /* result */)
+
+// Server -> Client (async)
+IPC_MESSAGE_CONTROL5(ConnectivityNetServiceMsg_onDefaultConnectionChanged, unsigned long /* result */, int /* _NetConnectionEventType */, int /* NetConnectionState */, int /* NetBearerType */, Tizen::Net::NetConnectionInfo /* NetConnectionInfo */)
+IPC_MESSAGE_CONTROL4(ConnectivityNetServiceMsg_onWifiConnectionChanged, unsigned long /* result */, int /* _NetConnectionEventType */, int /* NetConnectionState */, Tizen::Net::NetConnectionInfo /* NetConnectionInfo */)
+IPC_MESSAGE_CONTROL3(ConnectivityNetServiceMsg_onPsConnectionStarted, Tizen::Base::String /* ProfileName */, unsigned long /* result */, Tizen::Net::NetConnectionInfo /* NetConnectionInfo */)
+IPC_MESSAGE_CONTROL2(ConnectivityNetServiceMsg_onPsConnectionStopped, Tizen::Base::String /* ProfileName */, unsigned long /* result */)
+IPC_MESSAGE_CONTROL1(ConnectivityNetServiceMsg_onDefaultProxyChanged, Tizen::Base::String /* Proxy */)
#include <ipc/ipc_param_traits.h>
#include <FBaseString.h>
#include <FBaseSysLog.h>
+#include <FBaseColArrayListT.h>
#include <FNetNetAccountInfo.h>
+#include <FNetNetConnectionInfo.h>
#include <FNetIpAddress.h>
#include <FNetIp4Address.h>
#include <FNetNetTypes.h>
#include <FNetNetEndPoint.h>
-#include "FIo_IpcCommonDataTypes.h"
+#include <FIo_IpcCommonDataTypes.h>
+#include "FNet_NetAccountInfoImpl.h"
+#include "FNet_NetConnectionInfoImpl.h"
-using namespace std;
-using namespace Tizen::Net;
-using namespace Tizen::Net::Wifi;
namespace IPC
{
static void Write(Message* m, const param_type& p)
{
- bool isNull = false;
Tizen::Net::NetNapAuthType authType;
Tizen::Base::String authId;
Tizen::Base::String authPassword;
- Tizen::Net::NetAddressScheme localAddressScheme;
- Tizen::Net::NetAddressScheme dnsAddressScheme;
- Tizen::Net::NetEndPoint* pNetEndPoint;
-
- SysSecureLog(NID_NET, "Writting... APN : %ls", p.GetAccessPointName().GetPointer());
- WriteParam(m, p.GetAccessPointName());
- SysSecureLog(NID_NET, "Writting... Account Id : %d", p.GetAccountId());
m->WriteInt(p.GetAccountId());
- SysSecureLog(NID_NET, "Writting... Account Name : %ls", p.GetAccountName().GetPointer());
+ m->WriteInt(p.GetBearerType());
+ m->WriteInt(p.GetProtocolType());
+ m->WriteInt(p.IsReadOnly());
+
WriteParam(m, p.GetAccountName());
+ WriteParam(m, p.GetAccessPointName());
- // AuthenticationInfo
p.GetAuthenticationInfo(authType, authId, authPassword);
- SysSecureLog(NID_NET, "Writting... Auth Info (Type, Id, Pw) : (%d, %ls, %ls)", authType, authId.GetPointer(), authPassword.GetPointer());
-
m->WriteInt(authType);
WriteParam(m, authId);
WriteParam(m, authPassword);
- SysLog(NID_NET, "Writting... HomeUrl : %ls", p.GetHomeUrl().GetPointer());
WriteParam(m, p.GetHomeUrl());
- SysLog(NID_NET, "Writting... Bearer : %d", p.GetBearerType());
- m->WriteInt(p.GetBearerType());
- SysLog(NID_NET, "Writting... Local Address Scheme : %d", p.GetLocalAddressScheme());
- // LocalAddressScheme
- localAddressScheme = p.GetLocalAddressScheme();
- m->WriteInt(localAddressScheme);
+ m->WriteInt(p.GetLocalAddressScheme());
- // LocalAddress
- if (localAddressScheme == NET_ADDRESS_SCHEME_STATIC)
+ if (p.GetLocalAddressScheme() == Tizen::Net::NET_ADDRESS_SCHEME_STATIC)
{
if (p.GetLocalAddress() != null)
{
- isNull = false;
- m->WriteBool(isNull);
-
- SysLog(NID_NET, "Writting... NetAddressFamily : %d", p.GetLocalAddress()->GetNetAddressFamily());
- m->WriteInt(p.GetLocalAddress()->GetNetAddressFamily());
- SysLog(NID_NET, "Writting... Local Address : %ls", p.GetLocalAddress()->ToString().GetPointer());
WriteParam(m, p.GetLocalAddress()->ToString());
}
else
{
- isNull = true;
- m->WriteBool(isNull);
+ WriteParam(m, Tizen::Base::String(L""));
}
}
+ else
+ {
+ WriteParam(m, Tizen::Base::String(L""));
+ }
- SysLog(NID_NET, "Writting... DNS Address Scheme : %d", p.GetDnsAddressScheme());
- // DnsAddressScheme
- dnsAddressScheme = p.GetDnsAddressScheme();
- m->WriteInt(dnsAddressScheme);
+ m->WriteInt(p.GetDnsAddressScheme());
- SysLog(NID_NET, "Writting... DNS Address");
- if (dnsAddressScheme == NET_ADDRESS_SCHEME_STATIC)
+ if (p.GetDnsAddressScheme() == Tizen::Net::NET_ADDRESS_SCHEME_STATIC)
{
if (p.GetPrimaryDnsAddress() != null)
{
- isNull = false;
- m->WriteBool(isNull);
-
- // PrimaryDnsAddress
- m->WriteInt(p.GetPrimaryDnsAddress()->GetNetAddressFamily());
WriteParam(m, p.GetPrimaryDnsAddress()->ToString());
- SysLog(NID_NET, "Primary Dns Net Address Family : %d", p.GetPrimaryDnsAddress()->GetNetAddressFamily());
-
- if (p.GetSecondaryDnsAddress() != null)
- {
- isNull = false;
- m->WriteBool(isNull);
-
- // SecondaryDnsAddress
- m->WriteInt(p.GetSecondaryDnsAddress()->GetNetAddressFamily());
- WriteParam(m, p.GetSecondaryDnsAddress()->ToString());
- }
- else
- {
- isNull = true;
- m->WriteBool(isNull);
- }
}
else
{
- isNull = true;
- m->WriteBool(isNull);
+ WriteParam(m, Tizen::Base::String(L""));
}
}
+ else
+ {
+ WriteParam(m, Tizen::Base::String(L""));
+ }
- SysLog(NID_NET, "Protocol Type : %d",p.GetProtocolType());
- m->WriteInt(p.GetProtocolType());
-
- // NetEndPoint
- SysLog(NID_NET, "NetEndPoint");
- pNetEndPoint = const_cast<NetEndPoint*>(p.GetProxyAddress());
-
- if (pNetEndPoint != null)
+ if (p.GetDnsAddressScheme() == Tizen::Net::NET_ADDRESS_SCHEME_STATIC)
{
- isNull = false;
- m->WriteBool(isNull);
+ if (p.GetSecondaryDnsAddress() != null)
+ {
+ WriteParam(m, p.GetSecondaryDnsAddress()->ToString());
+ }
+ else
+ {
+ WriteParam(m, Tizen::Base::String(L""));
+ }
+ }
+ else
+ {
+ WriteParam(m, Tizen::Base::String(L""));
+ }
- SysLog(NID_NET, "Proxy Address Family : %d ", pNetEndPoint->GetNetAddressFamily());
- m->WriteInt(pNetEndPoint->GetNetAddressFamily());
- SysLog(NID_NET, "Proxy Address : %ls", pNetEndPoint->GetAddress()->ToString().GetPointer());
- WriteParam(m, pNetEndPoint->GetAddress()->ToString());
- SysLog(NID_NET, "Proxy Port : %d", static_cast <int>(pNetEndPoint->GetPort()));
- m->WriteInt(static_cast <int>(pNetEndPoint->GetPort()));
+ if (p.GetProxyAddress() != null)
+ {
+ if (p.GetProxyAddress()->GetAddress() != null)
+ {
+ WriteParam(m, p.GetProxyAddress()->GetAddress()->ToString());
+ }
+ else
+ {
+ WriteParam(m, Tizen::Base::String(L""));
+ }
+ m->WriteInt(p.GetProxyAddress()->GetPort());
}
else
{
- isNull = true;
- m->WriteBool(isNull);
+ WriteParam(m, Tizen::Base::String(L""));
+ m->WriteInt(0);
}
}
static bool Read(const Message* m, void** iter, param_type* r)
{
- Tizen::Base::String accessPointName;
int accountId;
+ int bearerType;
+ int protocolType;
+ int isReadOnly;
Tizen::Base::String accountName;
+ Tizen::Base::String accessPointName;
int authType;
Tizen::Base::String authId;
Tizen::Base::String authPassword;
Tizen::Base::String homeUrl;
- int bearerType;
int localAddressScheme;
- int localAddressFamily;
Tizen::Base::String localAddress;
+ std::unique_ptr<Tizen::Net::Ip4Address> pLocalAddress;
int dnsAddressScheme;
- int primaryDnsAddressFamily;
Tizen::Base::String primaryDnsAddress;
- int secondaryDnsAddressFamily;
+ std::unique_ptr<Tizen::Net::Ip4Address> pPrimaryDnsAddress;
Tizen::Base::String secondaryDnsAddress;
- int protocolType;
- int proxyAddressFamily;
- Tizen::Base::String proxyAddress;
- int port;
- bool isNull;
-
- unique_ptr<Ip4Address> pPrimaryDnsIp4Address(null);
- unique_ptr<Ip4Address> pSecondaryDnsIp4Address(null);
- unique_ptr<Ip4Address> pLocalIp4Address(null);
- unique_ptr<Ip4Address> pProxyIp4Address(null);
+ std::unique_ptr<Tizen::Net::Ip4Address> pSecondaryDnsAddress;
+ Tizen::Base::String proxyIpAddress;
+ std::unique_ptr<Tizen::Net::Ip4Address> pProxyIpAddress;
+ int proxyPort;
+ std::unique_ptr<Tizen::Net::NetEndPoint> pProxyAddress;
r->Construct();
- // APN
- if (!ReadParam(m, iter, &accessPointName))
- {
- return false;
- }
- SysSecureLog(NID_NET, "AccessPointName : %ls", accessPointName.GetPointer());
- r->SetAccessPointName(accessPointName);
+ Tizen::Net::_NetAccountInfoImpl* pImpl = Tizen::Net::_NetAccountInfoImpl::GetInstance(*r);
- // Account Id (No Setter)
m->ReadInt(iter, &accountId);
- SysSecureLog(NID_NET, "AccountId : %d", accountId);
+ pImpl->SetAccountId((Tizen::Net::NetAccountId)accountId);
+
+ m->ReadInt(iter, &bearerType);
+ pImpl->SetBearerType((Tizen::Net::NetBearerType)bearerType);
+
+ m->ReadInt(iter, &protocolType);
+ r->SetProtocolType((Tizen::Net::NetProtocolType)protocolType);
+
+ m->ReadInt(iter, &isReadOnly);
+ pImpl->SetReadOnly((bool)isReadOnly);
- // Account Name
if (!ReadParam(m, iter, &accountName))
{
return false;
}
- SysSecureLog(NID_NET, "AccountName : %ls", accountName.GetPointer());
r->SetAccountName(accountName);
- // Authentication Info
+ if (!ReadParam(m, iter, &accessPointName))
+ {
+ return false;
+ }
+ r->SetAccessPointName(accessPointName);
+
m->ReadInt(iter, &authType);
- SysLog(NID_NET, "AuthType : %d", authType);
if (!ReadParam(m, iter, &authId))
{
return false;
}
- SysSecureLog(NID_NET, "authId : %ls", authId.GetPointer());
if (!ReadParam(m, iter, &authPassword))
{
return false;
}
- SysSecureLog(NID_NET, "authPassword : %ls", authPassword.GetPointer());
r->SetAuthenticationInfo((Tizen::Net::NetNapAuthType)authType, authId, authPassword);
- // Home URL
if (!ReadParam(m, iter, &homeUrl))
{
return false;
}
- SysLog(NID_NET, "homeUrl : %ls", homeUrl.GetPointer());
r->SetHomeUrl(homeUrl);
- // Bearer Type (No Setter)
- m->ReadInt(iter, &bearerType);
- SysLog(NID_NET, "bearerType : %d", bearerType);
-
- // Local Address
m->ReadInt(iter, &localAddressScheme);
- if (localAddressScheme == 1)
+ if (!ReadParam(m, iter, &localAddress))
{
- SysLog(NID_NET, "Local Address Scheme : Dynamic");
- r->SetLocalAddress(NET_ADDRESS_SCHEME_DYNAMIC, null);
+ return false;
}
- else if (localAddressScheme == 2)
+ if (!localAddress.IsEmpty())
{
- m->ReadBool(iter, &isNull);
- if (!isNull)
- {
- SysLog(NID_NET, "Local Address Scheme : Static");
- m->ReadInt(iter, &localAddressFamily);
- if (!ReadParam(m, iter, &localAddress))
- {
- return false;
- }
- SysLog(NID_NET, "Local Address : %ls", localAddress.GetPointer());
+ pLocalAddress.reset(new (std::nothrow) Tizen::Net::Ip4Address(localAddress));
+ }
+ if ((Tizen::Net::NetAddressScheme)localAddressScheme != Tizen::Net::NET_ADDRESS_SCHEME_NONE)
+ {
+ r->SetLocalAddress((Tizen::Net::NetAddressScheme)localAddressScheme, pLocalAddress.get());
+ }
- // Setting Part
- SysLog(NID_NET, "Set Local Address statically");
- if (localAddressFamily == NET_AF_IPV4)
- {
- // NET_AF_IPV4
- pLocalIp4Address.reset(new (std::nothrow) Ip4Address(localAddress));
- }
- else
- {
- // Not supported yet.
- return false;
- }
- r->SetLocalAddress(NET_ADDRESS_SCHEME_STATIC, pLocalIp4Address.get());
- }
- else
- {
- // Local Address is null
- }
+ m->ReadInt(iter, &dnsAddressScheme);
+ if (!ReadParam(m, iter, &primaryDnsAddress))
+ {
+ return false;
+ }
+ if (!primaryDnsAddress.IsEmpty())
+ {
+ pPrimaryDnsAddress.reset(new (std::nothrow) Tizen::Net::Ip4Address(primaryDnsAddress));
+ }
+ if (!ReadParam(m, iter, &secondaryDnsAddress))
+ {
+ return false;
+ }
+ if (!secondaryDnsAddress.IsEmpty())
+ {
+ pSecondaryDnsAddress.reset(new (std::nothrow) Tizen::Net::Ip4Address(secondaryDnsAddress));
+ }
+ if ((Tizen::Net::NetAddressScheme)dnsAddressScheme != Tizen::Net::NET_ADDRESS_SCHEME_NONE)
+ {
+ r->SetDnsAddress((Tizen::Net::NetAddressScheme)dnsAddressScheme, pPrimaryDnsAddress.get(), pSecondaryDnsAddress.get());
+ }
+
+ if (!ReadParam(m, iter, &proxyIpAddress))
+ {
+ return false;
+ }
+ if (!proxyIpAddress.IsEmpty())
+ {
+ pProxyIpAddress.reset(new (std::nothrow) Tizen::Net::Ip4Address(proxyIpAddress));
+ }
+ m->ReadInt(iter, &proxyPort);
+ if (pProxyIpAddress != null)
+ {
+ pProxyAddress.reset(new Tizen::Net::NetEndPoint(*pProxyIpAddress, (unsigned short)proxyPort));
+ }
+ r->SetProxyAddress(pProxyAddress.get());
+
+ return true;
+ }
+
+ static void Log(const param_type& p, std::string* l)
+ {
+ }
+};
+
+template <>
+struct ParamTraits<Tizen::Net::NetConnectionInfo>
+{
+ typedef Tizen::Net::NetConnectionInfo param_type;
+
+ static void Write(Message* m, const param_type& p)
+ {
+ const Tizen::Net::_NetConnectionInfoImpl* pImpl = Tizen::Net::_NetConnectionInfoImpl::GetInstance(p);
+
+ m->WriteInt(pImpl->GetBearerType());
+ m->WriteInt(pImpl->GetProtocolType());
+ m->WriteInt(pImpl->GetLocalAddressScheme());
+ m->WriteInt(pImpl->GetDnsAddressScheme());
+
+ WriteParam(m, pImpl->GetAccessPointName());
+ WriteParam(m, pImpl->GetDeviceName());
+ WriteParam(m, pImpl->GetProxyAddress());
+
+ if (pImpl->GetLocalAddress() != null)
+ {
+ WriteParam(m, pImpl->GetLocalAddress()->ToString());
}
else
{
- SysLog(NID_NET, "Local Address Scheme : None");
+ WriteParam(m, Tizen::Base::String(L""));
}
- // DnsAddressScheme
- m->ReadInt(iter, &dnsAddressScheme);
- if (dnsAddressScheme == 1)
+ if (pImpl->GetSubnetMaskAddress() != null)
{
- SysLog(NID_NET, "DNS Address Scheme : Dynamic");
- r->SetDnsAddress(NET_ADDRESS_SCHEME_DYNAMIC, null, null);
+ WriteParam(m, pImpl->GetSubnetMaskAddress()->ToString());
}
- else if (dnsAddressScheme == 2)
+ else
{
- SysLog(NID_NET, "Dns Address Scheme : Static");
+ WriteParam(m, Tizen::Base::String(L""));
+ }
- m->ReadBool(iter, &isNull);
- if (!isNull)
- {
- // PrimaryDnsAddress
- m->ReadInt(iter, &primaryDnsAddressFamily);
- if (!ReadParam(m, iter, &primaryDnsAddress))
- {
- return false;
- }
- SysLog(NID_NET, "primaryDnsAddress : %ls", primaryDnsAddress.GetPointer());
- if (primaryDnsAddressFamily == NET_AF_IPV4)
- {
- pPrimaryDnsIp4Address.reset(new (std::nothrow) Ip4Address(primaryDnsAddress));
- }
- else
- {
- // IPv6 is NOT supported yet
- }
+ if (pImpl->GetDefaultGatewayAddress() != null)
+ {
+ WriteParam(m, pImpl->GetDefaultGatewayAddress()->ToString());
+ }
+ else
+ {
+ WriteParam(m, Tizen::Base::String(L""));
+ }
- m->ReadBool(iter, &isNull);
- if (!isNull)
- {
- // SecondaryDnsAddress
- m->ReadInt(iter, &secondaryDnsAddressFamily);
- if (!ReadParam(m, iter, &secondaryDnsAddress))
- {
- return false;
- }
- SysLog(NID_NET, "secondaryDnsAddress : %ls", secondaryDnsAddress.GetPointer());
- if (secondaryDnsAddressFamily == NET_AF_IPV4)
- {
- pSecondaryDnsIp4Address.reset(new (std::nothrow) Ip4Address(secondaryDnsAddress));
- }
- else
- {
- // IPv6 is NOT supported yet
- }
- }
- else
- {
- // Secondary DNS is null
- }
- r->SetDnsAddress(NET_ADDRESS_SCHEME_STATIC, pPrimaryDnsIp4Address.get(), pSecondaryDnsIp4Address.get());
- }
- else
- {
- // Primary DNS is null
- }
+ if (pImpl->GetPrimaryDnsAddress() != null)
+ {
+ WriteParam(m, pImpl->GetPrimaryDnsAddress()->ToString());
+ }
+ else
+ {
+ WriteParam(m, Tizen::Base::String(L""));
+ }
+
+ if (pImpl->GetSecondaryDnsAddress() != null)
+ {
+ WriteParam(m, pImpl->GetSecondaryDnsAddress()->ToString());
}
else
{
- SysLog(NID_NET, "Dns Address Scheme : None");
+ WriteParam(m, Tizen::Base::String(L""));
}
+ }
+
+ static bool Read(const Message* m, void** iter, param_type* r)
+ {
+ Tizen::Net::_NetConnectionInfoImpl* pImpl = Tizen::Net::_NetConnectionInfoImpl::GetInstance(*r);
+
+ int bearerType = 0;
+ int protocolType = 0;
+ int localAddressScheme = 0;
+ int dnsAddressScheme = 0;
+ Tizen::Base::String apn;
+ Tizen::Base::String deviceName;
+ Tizen::Base::String proxyAddress;
+ Tizen::Base::String localAddress;
+ Tizen::Base::String subnetMaskAddress;
+ Tizen::Base::String defaultGatewayAddress;
+ Tizen::Base::String primaryDnsAddress;
+ Tizen::Base::String secondaryDnsAddress;
+
+ m->ReadInt(iter, &bearerType);
+ pImpl->SetBearerType((Tizen::Net::NetBearerType)bearerType);
m->ReadInt(iter, &protocolType);
- SysLog(NID_NET, "protocolType : %d", protocolType);
+ pImpl->SetProtocolType((Tizen::Net::NetProtocolType)protocolType);
+
+ m->ReadInt(iter, &localAddressScheme);
+ pImpl->SetLocalAddressScheme((Tizen::Net::NetAddressScheme)localAddressScheme);
+
+ m->ReadInt(iter, &dnsAddressScheme);
+ pImpl->SetDnsAddressScheme((Tizen::Net::NetAddressScheme)dnsAddressScheme);
- // NetEndPoint
- m->ReadBool(iter, &isNull);
- if (isNull)
+ if (!ReadParam(m, iter, &apn))
{
- // NetEndPoint is null
+ return false;
}
- else
+ pImpl->SetAccessPointName(apn);
+
+ if (!ReadParam(m, iter, &deviceName))
{
- m->ReadInt(iter, &proxyAddressFamily);
- if (!ReadParam(m, iter, &proxyAddress))
+ return false;
+ }
+ pImpl->SetDeviceName(deviceName);
+
+ if (!ReadParam(m, iter, &proxyAddress))
+ {
+ return false;
+ }
+ pImpl->SetProxyAddress(proxyAddress);
+
+ if (!ReadParam(m, iter, &localAddress))
+ {
+ return false;
+ }
+ if (!localAddress.IsEmpty())
+ {
+ pImpl->SetLocalAddress(localAddress);
+ }
+
+ if (!ReadParam(m, iter, &subnetMaskAddress))
+ {
+ return false;
+ }
+ if (!subnetMaskAddress.IsEmpty())
+ {
+ pImpl->SetSubnetMaskAddress(subnetMaskAddress);
+ }
+
+ if (!ReadParam(m, iter, &defaultGatewayAddress))
+ {
+ return false;
+ }
+ if (!defaultGatewayAddress.IsEmpty())
+ {
+ pImpl->SetDefaultGatewayAddress(defaultGatewayAddress);
+ }
+
+ if (!ReadParam(m, iter, &primaryDnsAddress))
+ {
+ return false;
+ }
+ if (!primaryDnsAddress.IsEmpty())
+ {
+ pImpl->SetPrimaryDnsAddress(primaryDnsAddress);
+ }
+
+ if (!ReadParam(m, iter, &secondaryDnsAddress))
+ {
+ return false;
+ }
+ if (!secondaryDnsAddress.IsEmpty())
+ {
+ pImpl->SetSecondaryDnsAddress(secondaryDnsAddress);
+ }
+
+ return true;
+ }
+
+ static void Log(const param_type& p, std::string* l)
+ {
+ }
+};
+
+template <>
+struct ParamTraits< Tizen::Base::Collection::ArrayListT<Tizen::Net::NetConnectionInfo*> >
+{
+ typedef Tizen::Base::Collection::ArrayListT<Tizen::Net::NetConnectionInfo*> param_type;
+
+ static void Write(Message* m, const param_type& p)
+ {
+ int count = p.GetCount();
+
+ WriteParam(m, count);
+
+ for (int i = 0; i < count; i++)
+ {
+ Tizen::Net::NetConnectionInfo* pNetConnectionInfo = null;
+ p.GetAt(i,pNetConnectionInfo);
+ WriteParam(m, *pNetConnectionInfo);
+ }
+ }
+
+ static bool Read(const Message* m, void** iter, param_type* r)
+ {
+ int count = 0;
+
+ if (!m->ReadLength(iter, &count))
+ {
+ return false;
+ }
+
+ r->Construct(count);
+
+
+ for (int i = 0; i < count; i++)
+ {
+ std::unique_ptr<Tizen::Net::NetConnectionInfo> pNetConnectionInfo(new (std::nothrow) Tizen::Net::NetConnectionInfo());
+ SysTryReturn(NID_NET, pNetConnectionInfo != null, false, E_OUT_OF_MEMORY, "Insufficient memory.");
+
+ if (!ReadParam(m, iter, pNetConnectionInfo.get()))
{
+ for (int j = 0; j < r->GetCount(); j++)
+ {
+ Tizen::Net::NetConnectionInfo* pNetConnectionInfo = null;
+ r->GetAt(j, pNetConnectionInfo);
+ delete pNetConnectionInfo;
+ }
return false;
}
- m->ReadInt(iter, &port);
+ r->Add(pNetConnectionInfo.release());
+ }
+
+ return true;
+ }
+
+ static void Log(const param_type& p, std::string* l)
+ {
+ }
+};
+
+template <>
+struct ParamTraits< Tizen::Base::Collection::ArrayListT<int> >
+{
+ typedef Tizen::Base::Collection::ArrayListT<int> param_type;
+
+ static void Write(Message* m, const param_type& p)
+ {
+ int count = p.GetCount();
- // Set ProxyAddress
- if ((NetAddressFamily)proxyAddressFamily == NET_AF_IPV4)
+ WriteParam(m, count);
+
+ for (int i = 0; i < count; i++)
{
- pProxyIp4Address.reset(new (std::nothrow) Ip4Address(proxyAddress));
+ int value;
+ p.GetAt(i, value);
+ m->WriteInt(value);
}
- else
+ }
+
+ static bool Read(const Message* m, void** iter, param_type* r)
+ {
+ int count = 0;
+
+ if (!m->ReadLength(iter, &count))
+ {
+ return false;
+ }
+
+ r->Construct(count);
+
+ for (int i = 0; i < count; i++)
+ {
+ int value;
+ if (!m->ReadInt(iter, &value))
{
- // Not supported yet.
return false;
}
- unique_ptr<NetEndPoint> pProxyEndPoint(new (std::nothrow) NetEndPoint(*pProxyIp4Address, port));
-
- SysLog(NID_NET, "SetProxyAddress() from Recieved NetAccountInfo");
- r->SetProxyAddress(pProxyEndPoint.get());
+ r->Add(value);
}
return true;
}
- static void Log(const param_type& p, std::string* l)
+ static void Log(const param_type& p, std::string* l)
{
}
};
+
}
#endif // _FNET_INTERNAL_CONNECTIVITY_IPC_PARAM_TRAITS_H_
class NetAccountInfo;
class _NetAccountManagerImpl;
-class _NetAccountInfoImpl
+class _OSP_EXPORT_ _NetAccountInfoImpl
: public Tizen::Base::Object
{
*/
result Construct(void);
- /**
- * Initializes this instance of %_NetAccountInfoImpl with the specified profile instance. @n
- *
- * @since 2.1
- * @return An error code
- * @param[in] pAccountInfo A %NetAccountInfo instance
- * @param[in] pProfileHandle A profile handle
- * @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_STATE This instance has already been constructed.
- * @exception E_INVALID_ARG The specified @c pAccountInfo or @c pProfileInfo is invalid.
- */
- result Construct(NetAccountInfo* pAccountInfo, void* pProfileHandle);
-
public:
/**
* @see NetAccountInfo::GetAccountId()
*/
bool IsReadOnly(void) const;
- result ConvertToProfileInfo(void* pProfileHandle) const;
-
/**
* @see NetAccountInfo::Equals()
*/
virtual int GetHashCode(void) const;
public:
- static NetAccountInfo* CreateNetAccountInfoN(void* pProfileHandle);
-
-public:
/**
* Gets the Impl instance.
*
*/
static const _NetAccountInfoImpl* GetInstance(const NetAccountInfo& netAccountInfo);
-private:
+public:
/**
* Sets the bearer type.
*
*/
result SetAccountId(NetAccountId accountId);
+ void SetReadOnly(bool isReadOnly);
+
private:
/**
* This is the copy constructor for this class. @n
class IpAddress;
class Ip4Address;
class NetConnectionInfo;
-class _NetConnectionManagerImpl;
-class _SystemNetConnection;
-class _DefaultSystemNetConnection;
-class _PsSystemNetConnection;
-class _UsbSystemNetConnection;
-class _WifiSystemNetConnection;
-class _WifiDirectSystemNetConnection;
-
-class _NetConnectionInfoImpl
+
+class _OSP_EXPORT_ _NetConnectionInfoImpl
: public Tizen::Base::Object
{
public:
*/
Tizen::Base::String GetProxyAddress(void) const;
- void Update(void* pProfileHandle, bool isDefault = false);
-
-public:
- static NetConnectionInfo* CreateNetConnectionInfoN(void* pProfileHandle);
+ void Clear(void);
public:
/**
*/
virtual int GetHashCode(void) const;
-private:
+public:
void CopyFrom(const _NetConnectionInfoImpl* pSource);
- void Clear(void);
-
void SetBearerType(NetBearerType bearerType);
void SetProtocolType(NetProtocolType protocolType);
void SetLocalAddress(const Tizen::Base::String& localAddress);
- void SetSubnetMaskAddress(const Tizen::Base::String& localAddress);
+ void SetSubnetMaskAddress(const Tizen::Base::String& subnetMaskAddress);
- void SetDefaultGatewayAddress(const Tizen::Base::String& localAddress);
+ void SetDefaultGatewayAddress(const Tizen::Base::String& defaultGatewayAddress);
void SetPrimaryDnsAddress(const Tizen::Base::String& primaryDnsAddress);
std::unique_ptr<IpAddress> __pDefaultGatewayAddress;
std::unique_ptr<IpAddress> __pPrimaryDnsAddress;
std::unique_ptr<IpAddress> __pSecondaryDnsAddress;
-
- friend class _NetConnectionManagerImpl;
- friend class _SystemNetConnection;
- friend class _DefaultSystemNetConnection;
- friend class _PsSystemNetConnection;
- friend class _UsbSystemNetConnection;
- friend class _WifiSystemNetConnection;
- friend class _WifiDirectSystemNetConnection;
}; // _NetConnectionInfoImpl
} } //Tizen::Net
+++ /dev/null
-//
-// Open Service Platform
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
-//
-// 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.
-//
-/**
- * @file FNet_NetExporter.h
- * @brief This is the header file for the %_NetExporter class.
- */
-
-#ifndef _FNET_INTERNAL_NET_EXPORTER_H_
-#define _FNET_INTERNAL_NET_EXPORTER_H_
-
-#include <FBaseDataType.h>
-#include <FOspConfig.h>
-
-namespace Tizen { namespace Net
-{
-class NetAccountInfo;
-
-class _OSP_EXPORT_ _NetExporter
-{
-public:
- static result InitializeNetAccountInfo(NetAccountInfo* pAccountInfo, void* pProfileInfo);
-
-private:
- /**
- * This default constructor is intentionally declared as private because this class is not constructible.
- */
- _NetExporter(void);
-
- /**
- * This destructor is intentionally declared as private because this class is not constructible.
- */
- virtual ~_NetExporter(void);
-
- /**
- * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %_NetExporter
- */
- _NetExporter(const _NetExporter& rhs);
-
- /**
- * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
- *
- * @param[in] rhs An instance of %_NetExporter
- */
- _NetExporter& operator =(const _NetExporter& rhs);
-}; // _NetExporter
-
-} } // Tizen::Net
-
-#endif // _FNET_INTERNAL_NET_EXPORTER_H_
static const int _HASH_CODE_INITIAL_VALUE = 17;
static const int _HASH_CODE_COEFFICIENT_VALUE = 37;
+enum _NetConnectionEventType
+{
+ _NET_CONNECTION_EVENT_TYPE_NONE,
+ _NET_CONNECTION_EVENT_TYPE_STARTED,
+ _NET_CONNECTION_EVENT_TYPE_STOPPED,
+ _NET_CONNECTION_EVENT_TYPE_SUSPENDED,
+ _NET_CONNECTION_EVENT_TYPE_RESUMED,
+ _NET_CONNECTION_EVENT_TYPE_CHANGED
+};
+
} } // Tizen::Net
#endif // _FNET_INTERNAL_NET_TYPES_H_
return pClientSocket;
CATCH:
+ if (pClientSocket != null)
+ {
+ delete pClientSocket;
+ pClientSocket = null;
+ }
+
SetLastResult(r);
return null;
}
${CMAKE_SOURCE_DIR}/inc
${CMAKE_SOURCE_DIR}/src/inc
/usr/include/chromium
- /usr/include/glib-2.0
+ /usr/include/glib-2.0
/usr/lib/glib-2.0/include
/usr/include/wifi-direct
/usr/include/network
SET (${this_target}_SOURCE_FILES
FNetWifiWifiManager.cpp
FNetWifi_WifiManagerImpl.cpp
- FNetWifi_WifiSystemAdapter.cpp
FNetWifi_WifiManagerEvent.cpp
FNetWifi_WifiManagerEventArg.cpp
FNetWifi_WifiSystemMonitoringEvent.cpp
FNetWifiWifiDirectDeviceManager.cpp
FNetWifiWifiDirectDevice.cpp
FNetWifiWifiDirectGroupMember.cpp
- FNetWifiWifiDirectGroupOwner.cpp
+ FNetWifiWifiDirectGroupOwner.cpp
FNetWifiWifiDirectGroupClient.cpp
FNetWifiWifiDirectGroupInfo.cpp
FNetWifiWifiDirectDeviceInfo.cpp
TARGET_LINK_LIBRARIES(${this_target} "-lglib-2.0" )
TARGET_LINK_LIBRARIES(${this_target} "-lnetwork" )
TARGET_LINK_LIBRARIES(${this_target} "-lwifi-direct" )
-TARGET_LINK_LIBRARIES(${this_target} "-lcapi-network-wifi" )
-TARGET_LINK_LIBRARIES(${this_target} "-lcapi-network-connection" )
+TARGET_LINK_LIBRARIES(${this_target} "-lcapi-network-wifi" )
+TARGET_LINK_LIBRARIES(${this_target} "-lcapi-network-connection" )
-SET_TARGET_PROPERTIES(${this_target}
- PROPERTIES
+SET_TARGET_PROPERTIES(${this_target}
+ PROPERTIES
VERSION ${FULLVER}
SOVERSION ${MAJORVER}
CLEAN_DIRECT_OUTPUT 1
)
+
SET(PC_NAME ${this_target})
SET(VERSION ${FULLVER})
SET(PC_LDFLAGS -l${this_target})
{
__pDeviceInfoList.reset(new (std::nothrow) ArrayList());
SysTryReturnVoidResult(NID_NET_WIFI, __pDeviceInfoList != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
- result r = __pDeviceInfoList->Construct(*pDeviceInfoList);
- SysTryReturnVoidResult(NID_NET_WIFI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+ result res = __pDeviceInfoList->Construct(*pDeviceInfoList);
+ SysTryReturnVoidResult(NID_NET_WIFI, res == E_SUCCESS, res, "[%s] Propagating.", GetErrorMessage(res));
}
}
wifi_direct_state_e status = WIFI_DIRECT_STATE_DEACTIVATED;
err = wifi_direct_get_state(&status);
_WifiDirectConvertErrorResult(err != WIFI_DIRECT_ERROR_NONE, r, E_SYSTEM);
- SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Failed result from wifi_direct_get_state() is 0x%x", GetErrorMessage(r), err);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r,
+ "[%s] Failed result from wifi_direct_get_state() is 0x%x", GetErrorMessage(r), err);
// MAC
char* pMacAddress = null;
- err = wifi_direct_get_mac_address(&pMacAddress);
- _WifiDirectConvertErrorResult(err != WIFI_DIRECT_ERROR_NONE, r, E_SYSTEM);
- _WifiDirectConvertErrorResult(err == WIFI_DIRECT_ERROR_OUT_OF_MEMORY, r, E_OUT_OF_MEMORY);
- SysTryReturn(NID_NET_WIFI, pMacAddress != null && r == E_SUCCESS, null, r,
- "[%s] Failed result from wifi_direct_get_mac_address() is 0x%x", GetErrorMessage(r), err);
+ wifi_direct_get_mac_address(&pMacAddress);
- String mac = _WifiDirectUtility::ConvertMacCharToString(pMacAddress);
- free(pMacAddress);
- pGroupInfoImpl->SetBssId(mac);
+ if (pMacAddress == null)
+ {
+ SysLog(NID_NET_WIFI, "The mac address is null.");
+ }
+ else
+ {
+ String mac = _WifiDirectUtility::ConvertMacCharToString(pMacAddress);
+ free(pMacAddress);
+ pGroupInfoImpl->SetBssId(mac);
+ }
- if (status != WIFI_DIRECT_STATE_DEACTIVATED
- && status != WIFI_DIRECT_STATE_DEACTIVATING
- && status != WIFI_DIRECT_STATE_ACTIVATING)
+ if (status == WIFI_DIRECT_STATE_CONNECTED || status == WIFI_DIRECT_STATE_GROUP_OWNER)
{
// SSID
- if (status == WIFI_DIRECT_STATE_CONNECTED)
- {
- char* pSsid = null;
- err = wifi_direct_get_ssid(&pSsid);
+ char* pSsid = null;
+ wifi_direct_get_ssid(&pSsid);
- if (pSsid == null)
- {
- SysLog(NID_NET_WIFI, "The ssid is null.");
+ if (pSsid == null)
+ {
+ SysLog(NID_NET_WIFI, "The ssid is null.");
- }
- else
- {
- pGroupInfoImpl->SetSsid(String(pSsid));
- free(pSsid);
- }
+ }
+ else
+ {
+ pGroupInfoImpl->SetSsid(String(pSsid));
+ free(pSsid);
}
// Autonomous group
bool isAutonomousGroup = false;
err = wifi_direct_is_autonomous_group(&isAutonomousGroup);
_WifiDirectConvertErrorResult(err != WIFI_DIRECT_ERROR_NONE, r, E_SYSTEM);
- SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Failed result from wifi_direct_is_autonomous_group() is 0x%x", GetErrorMessage(r), err);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Failed result from wifi_direct_is_autonomous_group() is 0x%x",
+ GetErrorMessage(r), err);
pGroupInfoImpl->SetAutonomousGroupOwnerMode(isAutonomousGroup);
- // Intent
- int groupOwnerIntent = 0;
- err = wifi_direct_get_group_owner_intent(&groupOwnerIntent);
- _WifiDirectConvertErrorResult(err != WIFI_DIRECT_ERROR_NONE, r, E_SYSTEM);
- SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Failed result from wifi_direct_get_group_owner_intent() is 0x%x", GetErrorMessage(r), err);
-
- pGroupInfoImpl->SetGroupOwnerIntent(groupOwnerIntent);
-
// Radio channel
int channel = 0;
err = wifi_direct_get_operating_channel(&channel);
pGroupInfoImpl->SetOperatingChannel(operatingChannel);
}
- // Max clients
- int maxClients = 0;
- err = wifi_direct_get_max_clients(&maxClients);
- _WifiDirectConvertErrorResult(err != WIFI_DIRECT_ERROR_NONE, r, E_SYSTEM);
- SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r,
- "[%s] Failed result from wifi_direct_get_max_clients() is 0x%x", GetErrorMessage(r), err);
+ if (status != WIFI_DIRECT_STATE_DEACTIVATED
+ && status != WIFI_DIRECT_STATE_DEACTIVATING
+ && status != WIFI_DIRECT_STATE_ACTIVATING)
+ {
+ // Intent
+ int groupOwnerIntent = 0;
+ err = wifi_direct_get_group_owner_intent(&groupOwnerIntent);
+ _WifiDirectConvertErrorResult(err != WIFI_DIRECT_ERROR_NONE, r, E_SYSTEM);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Failed result from wifi_direct_get_group_owner_intent() is 0x%x",
+ GetErrorMessage(r), err);
- pGroupInfoImpl->SetMaxNumberOfClients(maxClients);
+ pGroupInfoImpl->SetGroupOwnerIntent(groupOwnerIntent);
+
+ // Max clients
+ int maxClients = 0;
+ err = wifi_direct_get_max_clients(&maxClients);
+ _WifiDirectConvertErrorResult(err != WIFI_DIRECT_ERROR_NONE, r, E_SYSTEM);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r,
+ "[%s] Failed result from wifi_direct_get_max_clients() is 0x%x", GetErrorMessage(r), err);
+
+ pGroupInfoImpl->SetMaxNumberOfClients(maxClients);
+ }
return pGroupInfo.release();
}
switch (status)
{
- // case WIFI_DIRECT_STATE_DISCONNECTING:
case WIFI_DIRECT_STATE_CONNECTED:
if (isOwner)
{
wifi_direct_wps_type_e wpsType;
WifiWpsConfigurationMode wpsMode = WIFI_WPS_CONFIG_MODE_NONE;
- err = wifi_direct_get_wps_type(&wpsType);
+ err = wifi_direct_get_req_wps_type(&wpsType);
_WifiDirectConvertErrorResult(err == WIFI_DIRECT_ERROR_NONE, r, E_SUCCESS);
- SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, WIFI_WPS_CONFIG_MODE_NONE, r, "[%s] Failed result from wifi_direct_get_wps_type() is 0x%x", GetErrorMessage(r), err);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, WIFI_WPS_CONFIG_MODE_NONE, r, "[%s] Failed result from wifi_direct_get_req_wps_type() is 0x%x", GetErrorMessage(r), err);
switch (wpsType)
{
return E_SYSTEM;
}
- err = wifi_direct_set_wps_type(wpsType);
+ err = wifi_direct_set_req_wps_type(wpsType);
_WifiDirectConvertErrorResult(err == WIFI_DIRECT_ERROR_NONE, r, E_SUCCESS);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed result from wifi_direct_get_wps_type() is 0x%x", GetErrorMessage(r), err);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed result from wifi_direct_set_req_wps_type() is 0x%x", GetErrorMessage(r), err);
return r;
}
__pWifiDirectSystemAdapter->OnWifiDirectGroupCreated(peerMacAddress, E_OPERATION_CANCELED);
__pWifiDirectSystemAdapter->OnWifiDirectConnected(peerMacAddress, E_OPERATION_CANCELED);
}
- break;
+ break;
case WIFI_DIRECT_DISCONNECTION_IND:
SysLog(NID_NET_WIFI, "event type : WIFI_DIRECT_DISCONNECTION_IND, error code : 0x%x", errorCode);
#include <unique_ptr.h>
#include <FBaseSysLog.h>
#include <FNetWifiWifiBssInfo.h>
+#include <FNetWifiWifiNetAccountInfo.h>
+#include <FBaseColArrayList.h>
#include <FIo_IpcClient.h>
#include "FNetWifi_WifiProximityManagerImpl.h"
#include "FNetWifi_WifiIpcProxy.h"
#include "FNetWifi_ConnectivityIpcMessages.h"
+#include "FNetWifi_WifiManagerImpl.h"
using namespace std;
using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
using namespace Tizen::Io;
+using namespace Tizen::Net::Wifi;
namespace Tizen { namespace Net { namespace Wifi
{
static _WifiIpcProxy* pSingleton = null;
-_WifiIpcProxy::_WifiIpcProxy(void)
- : __pIpcClient(null)
+_WifiIpcProxy*
+_WifiIpcProxy::GetInstance(void)
{
+ static pthread_once_t onceBlock = PTHREAD_ONCE_INIT;
+
+ if (!pSingleton)
+ {
+ ClearLastResult();
+ pthread_once(&onceBlock, InitSingleton);
+
+ result r = GetLastResult();
+ if (IsFailed(r))
+ {
+ onceBlock = PTHREAD_ONCE_INIT;
+ }
+ }
+
+ return pSingleton;
}
-_WifiIpcProxy::~_WifiIpcProxy(void)
+// Wi-Fi
+result
+_WifiIpcProxy::RegisterWifiManagerImpl(_WifiManagerImpl& impl)
{
- delete __pIpcClient;
- pSingleton = null;
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ bool isContained = false;
+
+ isContained = __managerImplList.Contains(&impl);
+ SysTryReturnResult(NID_NET_WIFI, isContained == false, E_OBJ_ALREADY_EXIST,
+ "the _WifiManagerImpl instance is already added.");
+
+ if (__managerImplList.GetCount() == 0)
+ {
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_registerManagerEventCallback(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
+ SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
+
+ SysLog(NID_NET_WIFI, "Registering the Wi-Fi event through IPC is successful.");
+ }
+
+
+ r = __managerImplList.Add(&impl);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
+
+ return E_SUCCESS;
}
result
-_WifiIpcProxy::Construct(void)
+_WifiIpcProxy::UnregisterWifiManagerImpl(_WifiManagerImpl& impl)
{
result r = E_SUCCESS;
+ unsigned long ret = 0;
- unique_ptr<_IpcClient> pClient(new (std::nothrow) _IpcClient);
- SysTryReturnResult(NID_NET_WIFI, pClient != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+ r = __managerImplList.Remove(&impl);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
- r = pClient->Construct(WIFI_CONNECTIVITY_IPC_SERVER_NAME, this);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Construction of _IpcClient has failed.");
+ if (__managerImplList.GetCount() == 0)
+ {
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_unregisterManagerEventCallback(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- __pIpcClient = pClient.release();
- SysLog(NID_NET_WIFI, "An instance of the Wifi IPC Proxy has been constructed.");
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
+ SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
+
+ SysLog(NID_NET_WIFI, "Unregistering the Wi-Fi system monitoring through IPC is successful.");
+ }
return E_SUCCESS;
+
}
-void
-_WifiIpcProxy::InitSingleton(void)
+result
+_WifiIpcProxy::RegisterSystemMonitoringCallback(_WifiManagerImpl& impl)
{
- result r = E_SUCCESS;
- unique_ptr<_WifiIpcProxy> pInst(new (std::nothrow) _WifiIpcProxy());
-
- SysTryReturnVoidResult(NID_NET_WIFI, pInst != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ bool isContained = false;
+
+ isContained = __systemMonManagerImplList.Contains(&impl);
+ SysTryReturnResult(NID_NET_WIFI, isContained == false, E_OBJ_ALREADY_EXIST,
+ "the _WifiManagerImpl instance is already added.");
+
+ if (__systemMonManagerImplList.GetCount() == 0)
+ {
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_registerSystemMonitoringEventCallback(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
+ SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
+
+ SysLog(NID_NET_WIFI, "Registering the Wi-Fi system monitoring through IPC is successful.");
+ }
- r = pInst->Construct();
- SysTryReturnVoidResult(NID_NET_WIFI, r == E_SUCCESS, r, "[%s] Construction of the _WifiIpcProxy has failed.", GetErrorMessage(r));
+ r = __systemMonManagerImplList.Add(&impl);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
+
+ return E_SUCCESS;
- pSingleton = pInst.release();
}
-_WifiIpcProxy*
-_WifiIpcProxy::GetInstance(void)
+result
+_WifiIpcProxy::UnregisterSystemMonitoringCallback(_WifiManagerImpl& impl)
{
- static pthread_once_t onceBlock = PTHREAD_ONCE_INIT;
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
- if (!pSingleton)
- {
- ClearLastResult();
- pthread_once(&onceBlock, InitSingleton);
-
- result r = GetLastResult();
- if (IsFailed(r))
- {
- onceBlock = PTHREAD_ONCE_INIT;
- }
- }
+ r = __systemMonManagerImplList.Remove(&impl);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
+
+
+ if (__systemMonManagerImplList.GetCount() == 0)
+ {
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_unregisterSystemMonitoringEventCallback(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
+ SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
+
+ SysLog(NID_NET_WIFI, "Unregistering the Wi-Fi system monitoring through IPC is successful.");
+ }
+
+ return E_SUCCESS;
- return pSingleton;
}
result
-_WifiIpcProxy::InitializeWifiDirect(void) const
+_WifiIpcProxy::SetWifiSystemScanMode(WifiSystemScanMode mode)
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_initializeWifiDirect(&ret);
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_setSystemScanMode((int)mode, &ret));
SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
- SysLog(NID_NET_WIFI, "Initializing the Wi-Fi Direct of osp-connectivity-service through IPC is successful.");
+ SysLog(NID_NET_WIFI, "Setting the Wi-Fi system scan mode through IPC is successful.");
return E_SUCCESS;
}
result
-_WifiIpcProxy::GetWifiDirectLocalDeviceName(Tizen::Base::String& deviceName) const
+_WifiIpcProxy::UpdateBssInfo(const WifiBssInfo& bssInfo)
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_getWifiDirectLocalDeviceName(&deviceName, &ret);
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_updateWifiBssInfo(bssInfo, &ret));
SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
- SysSecureLog(NID_NET_WIFI, "The Wi-Fi Direct local name obtained through IPC is [%ls].", deviceName.GetPointer());
+ SysLog(NID_NET_WIFI, "Updating the Wi-Fi BSS info IPC is successful.");
return E_SUCCESS;
}
result
-_WifiIpcProxy::SetWifiDirectLocalDeviceName(const Tizen::Base::String& deviceName) const
+_WifiIpcProxy::Activate(void)
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_setWifiDirectLocalDeviceName(deviceName, &ret);
- SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_activateWifi(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
- SysLog(NID_NET_WIFI, "Setting the Wi-Fi Direct local name through IPC is successful.");
-
return E_SUCCESS;
}
-
result
-_WifiIpcProxy::SetWifiSystemScanMode(WifiSystemScanMode mode)
+_WifiIpcProxy::Deactivate(void)
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_setSystemScanMode((int)mode, &ret);
- SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_deactivateWifi(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
- SysLog(NID_NET_WIFI, "Setting the Wi-Fi system scan mode through IPC is successful.");
-
return E_SUCCESS;
}
+Tizen::Base::String
+_WifiIpcProxy::GetMacAddress(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ String macAddress;
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_getWifiMacAddress(&macAddress, &ret));
+ SysTryReturn(NID_NET_WIFI, pMessage!= null, L"", E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, L"", r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET_WIFI, ret == E_SUCCESS, L"", ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return macAddress;
+}
+
+bool
+_WifiIpcProxy::IsActivated(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ bool isActivated = false;
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_isWifiActivated(&isActivated, &ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, false, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET_WIFI, ret == E_SUCCESS, false, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return isActivated;
+
+}
+bool
+_WifiIpcProxy::IsConnected(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ bool isConnected = false;
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_isWifiConnected(&isConnected, &ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, false, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET_WIFI, ret == E_SUCCESS, false, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return isConnected;
+}
+
result
-_WifiIpcProxy::CheckSystemSettingPrivilege(void)
+_WifiIpcProxy::Scan(void)
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_checkSystemSettingPrivilege(&ret);
- SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_scanWifi(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
- SysLog(NID_NET_WIFI, "Checking the Wi-Fi system setting privilege through IPC is successful.");
-
return E_SUCCESS;
}
result
-_WifiIpcProxy::UpdateBssInfo(const WifiBssInfo& bssInfo)
+_WifiIpcProxy::Connect(const WifiBssInfo& targetApInfo)
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_updateWifiBssInfo(bssInfo, &ret);
- SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_connectWifi(targetApInfo, &ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
- SysLog(NID_NET_WIFI, "Updating the Wi-Fi BSS info IPC is successful.");
-
return E_SUCCESS;
}
+int
+_WifiIpcProxy::GetConnectionState(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ int state = 0;
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_getWifiConnectionState(&state, &ret));
+ SysTryReturn(NID_NET_WIFI, pMessage!= null, state, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, 0, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET_WIFI, ret == E_SUCCESS, 0, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return state;
+}
+
+WifiBssInfo*
+_WifiIpcProxy::GetConnectionTargetInfoN(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+ unique_ptr<WifiBssInfo> pBssInfo(new (std::nothrow) WifiBssInfo);
+ SysTryReturn(NID_NET_WIFI, pBssInfo!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_getWifiConnectionTargetInfo(pBssInfo.get(), &ret));
+ SysTryReturn(NID_NET_WIFI, pMessage!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET_WIFI, ret == E_SUCCESS, null, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return pBssInfo.release();
+
+}
+
+Tizen::Base::Collection::IList*
+_WifiIpcProxy::GetSystemScanResultN(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ unique_ptr< ArrayListT<WifiBssInfo*> > pBssInfoListT(new (std::nothrow) ArrayListT<WifiBssInfo*>);
+ SysTryReturn(NID_NET_WIFI, pBssInfoListT!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_getWifiSystemScanResult(pBssInfoListT.get(), &ret));
+ SysTryReturn(NID_NET_WIFI, pMessage!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET_WIFI, ret == E_SUCCESS, null, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ ArrayList* pResultBssInfoList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ SysTryReturn(NID_NET_WIFI, pResultBssInfoList!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ IEnumeratorT<WifiBssInfo*>* pEnum = null;
+ pEnum = pBssInfoListT->GetEnumeratorN();
+
+ WifiBssInfo* pBssInfo = null;
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pBssInfo);
+
+ pResultBssInfoList->Add(pBssInfo);
+ }
+ delete pEnum;
+
+ return pResultBssInfoList;
+}
+
+
+Tizen::Net::Wifi::WifiNetAccountInfo*
+_WifiIpcProxy::GetWifiNetAccountInfoN(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ unique_ptr< WifiNetAccountInfo > pWifiNetAccountInfo(_WifiNetAccountInfoImpl::CreateWifiNetAccountInfoN());
+ SysTryReturn(NID_NET_WIFI, pWifiNetAccountInfo!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+
+ NetAccountInfo* pNetAccountInfo = pWifiNetAccountInfo.get();
+ _WifiNetAccountInfoImpl* pWifiNetAccountInfoImpl = _WifiNetAccountInfoImpl::GetInstance(*pWifiNetAccountInfo.get());
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_getWifiNetAccountInfo(pNetAccountInfo, pWifiNetAccountInfoImpl, &ret));
+ SysTryReturn(NID_NET_WIFI, pMessage!= null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Sending a request message to an IPC server failed.", GetErrorMessage(r));
+ SysTryReturn(NID_NET_WIFI, ret == E_SUCCESS, null, ret, "[%s] Propagating through IPC.", GetErrorMessage(ret));
+
+ return pWifiNetAccountInfo.release();
+}
+
+void
+_WifiIpcProxy::OnWifiActivated(result r)
+{
+ _WifiManagerImpl* pManagerImpl = null;
+ IEnumeratorT<_WifiManagerImpl*>* pEnum = null;
+ pEnum = __managerImplList.GetEnumeratorN();
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pManagerImpl);
+
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_ACTIVATED],[result:%s]", GetErrorMessage(r));
+ pManagerImpl->OnWifiActivated(r);
+ }
+
+ delete pEnum;
+}
+
+void
+_WifiIpcProxy::OnWifiDeactivated(result r)
+{
+ _WifiManagerImpl* pManagerImpl = null;
+ IEnumeratorT<_WifiManagerImpl*>* pEnum = null;
+ pEnum = __managerImplList.GetEnumeratorN();
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pManagerImpl);
+
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_DEACTIVATED],[result:%s]", GetErrorMessage(r));
+ pManagerImpl->OnWifiDeactivated(r);
+ }
+
+ delete pEnum;
+
+}
+
+void
+_WifiIpcProxy::OnWifiConnected(const Tizen::Base::String& ssid, result r)
+{
+ _WifiManagerImpl* pManagerImpl = null;
+ IEnumeratorT<_WifiManagerImpl*>* pEnum = null;
+ pEnum = __managerImplList.GetEnumeratorN();
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pManagerImpl);
+
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTED],[result:%s]", GetErrorMessage(r));
+ pManagerImpl->OnWifiConnected(ssid, r);
+ }
+
+ delete pEnum;
+}
+
+void
+_WifiIpcProxy::OnWifiDisconnected(void)
+{
+ _WifiManagerImpl* pManagerImpl = null;
+ IEnumeratorT<_WifiManagerImpl*>* pEnum = null;
+ pEnum = __managerImplList.GetEnumeratorN();
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pManagerImpl);
+
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_DISCONNECTED]");
+ pManagerImpl->OnWifiDisconnected();
+ }
+
+ delete pEnum;
+
+}
+
void
-_WifiIpcProxy::SetWifiProximityManagerImpl(Tizen::Net::Wifi::_WifiProximityManagerImpl& impl)
+_WifiIpcProxy::OnWifiRssiChanged(long rssi)
{
- __pWifiProximityManagerImpl = &impl;
+ _WifiManagerImpl* pManagerImpl = null;
+ IEnumeratorT<_WifiManagerImpl*>* pEnum = null;
+ pEnum = __managerImplList.GetEnumeratorN();
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pManagerImpl);
+
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_RSSI]");
+ pManagerImpl->OnWifiRssiChanged(rssi);
+ }
+
+ delete pEnum;
+}
+
+void
+_WifiIpcProxy::OnWifiScanCompleted(const Tizen::Base::Collection::ArrayListT<Tizen::Net::Wifi::WifiBssInfo*>& scanList, result r)
+{
+ unique_ptr<ArrayList> pResultBssInfoList(new (std::nothrow) ArrayList(SingleObjectDeleter));
+ SysTryReturnVoidResult(NID_NET_WIFI, pResultBssInfoList!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ IEnumeratorT<WifiBssInfo*>* pEnum = null;
+ pEnum = scanList.GetEnumeratorN();
+
+ WifiBssInfo* pBssInfo = null;
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pBssInfo);
+
+ pResultBssInfoList->Add(pBssInfo);
+ }
+ delete pEnum;
+
+
+ IEnumeratorT<_WifiManagerImpl*>* pManagerEnum = null;
+ pManagerEnum = __managerImplList.GetEnumeratorN();
+
+ _WifiManagerImpl* pManagerImpl = null;
+ while (pManagerEnum->MoveNext() == E_SUCCESS)
+ {
+ pManagerEnum->GetCurrent(pManagerImpl);
+
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_SCAN_COMPLETED],[result:%s]", GetErrorMessage(r));
+ pManagerImpl->OnWifiScanCompleted(pResultBssInfoList.get(), r);
+ }
+
+ delete pManagerEnum;
+}
+
+void
+_WifiIpcProxy::OnWifiConnectionStateChanged(int state)
+{
+
+ _WifiManagerImpl* pManagerImpl = null;
+ IEnumeratorT<_WifiManagerImpl*>* pEnum = null;
+ pEnum = __systemMonManagerImplList.GetEnumeratorN();
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pManagerImpl);
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTION_STATE_CHANGED],[State:%d]", state);
+ pManagerImpl->OnWifiConnectionStateChanged(static_cast<WifiConnectionState>(state));
+ }
+
+ delete pEnum;
+}
+
+void
+_WifiIpcProxy::OnWifiSystemScanResultUpdated()
+{
+ _WifiManagerImpl* pManagerImpl = null;
+ IEnumeratorT<_WifiManagerImpl*>* pEnum = null;
+ pEnum = __systemMonManagerImplList.GetEnumeratorN();
+
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEnum->GetCurrent(pManagerImpl);
+ SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_SCAN_RESULT_UPDATED]");
+ pManagerImpl->OnWifiSystemScanResultUpdated();
+ }
+
+ delete pEnum;
+}
+
+// Wi-Fi Proximity
+void
+_WifiIpcProxy::SetWifiProximityManagerImpl(Tizen::Net::Wifi::_WifiProximityManagerImpl* pImpl)
+{
+ __pWifiProximityManagerImpl = pImpl;
}
result
_WifiIpcProxy::RegisterBssId(const Tizen::Base::String& bssId) const
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_registerBssId(bssId, &ret);
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_registerBssId(bssId, &ret));
SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
_WifiIpcProxy::UnRegisterBssId(const Tizen::Base::String& bssId) const
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_unregisterBssId(bssId, &ret);
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_unregisterBssId(bssId, &ret));
SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
_WifiIpcProxy::ActivateProximityCheck(void) const
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_activateProximityCheck(&ret);
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_activateProximityCheck(&ret));
SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
_WifiIpcProxy::DeactivateProximityCheck(void) const
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_deactivateProximityCheck(&ret);
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_deactivateProximityCheck(&ret));
SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
_WifiIpcProxy::IsProximityCheckActivated(bool& isActivated) const
{
result r = E_SUCCESS;
- IPC::Message* pMessage = null;
unsigned long ret = 0;
- pMessage = new (std::nothrow) ConnectivityWifiServiceMsg_isProximityCheckActivated(&isActivated, &ret);
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_isProximityCheckActivated(&isActivated, &ret));
SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
r = __pIpcClient->SendRequest(*pMessage);
- delete pMessage;
+
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
void
_WifiIpcProxy::OnProximityCheckActivated()
{
- __pWifiProximityManagerImpl->OnWifiProximityCheckActivated();
+ if (__pWifiProximityManagerImpl)
+ {
+ __pWifiProximityManagerImpl->OnWifiProximityCheckActivated();
+ }
}
void
_WifiIpcProxy::OnProximityCheckDeactivated()
{
- __pWifiProximityManagerImpl->OnWifiProximityCheckDeactivated();
+ if (__pWifiProximityManagerImpl)
+ {
+ __pWifiProximityManagerImpl->OnWifiProximityCheckDeactivated();
+ }
}
void
_WifiIpcProxy::OnWifiBssDetected(const Tizen::Net::Wifi::WifiBssInfo& wifiBssInfo)
{
- __pWifiProximityManagerImpl->OnWifiBssDetected(wifiBssInfo);
+ if (__pWifiProximityManagerImpl)
+ {
+ __pWifiProximityManagerImpl->OnWifiBssDetected(wifiBssInfo);
+ }
}
void
_WifiIpcProxy::OnWifiBssLost(const Tizen::Base::String& bssId)
{
- __pWifiProximityManagerImpl->OnWifiBssLost(bssId);
+ if (__pWifiProximityManagerImpl)
+ {
+ __pWifiProximityManagerImpl->OnWifiBssLost(bssId);
+ }
}
+// Wi-Fi Direct
+result
+_WifiIpcProxy::InitializeWifiDirect(void) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_initializeWifiDirect(&ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage!= null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
+ SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
+
+ SysLog(NID_NET_WIFI, "Initializing the Wi-Fi Direct of osp-connectivity-service through IPC is successful.");
+
+ return E_SUCCESS;
+}
+
+result
+_WifiIpcProxy::GetWifiDirectLocalDeviceName(Tizen::Base::String& deviceName) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_getWifiDirectLocalDeviceName(&deviceName, &ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
+ SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
+
+ SysSecureLog(NID_NET_WIFI, "The Wi-Fi Direct local name obtained through IPC is [%ls].", deviceName.GetPointer());
+
+ return E_SUCCESS;
+}
+
+result
+_WifiIpcProxy::SetWifiDirectLocalDeviceName(const Tizen::Base::String& deviceName) const
+{
+ result r = E_SUCCESS;
+ unsigned long ret = 0;
+
+ unique_ptr<IPC::Message> pMessage( new (std::nothrow) ConnectivityWifiServiceMsg_setWifiDirectLocalDeviceName(deviceName, &ret));
+ SysTryReturnResult(NID_NET_WIFI, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = __pIpcClient->SendRequest(*pMessage);
+
+ r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Sending a request message to an IPC server failed.");
+ SysTryReturnResult(NID_NET_WIFI, ret == E_SUCCESS, ret, "Propagating through IPC.");
+
+ SysLog(NID_NET_WIFI, "Setting the Wi-Fi Direct local name through IPC is successful.");
+
+ return E_SUCCESS;
+}
+
+// from _IIpcClientEventListener
void
_WifiIpcProxy::OnIpcResponseReceived(Tizen::Io::_IpcClient& client, const IPC::Message& message)
{
- IPC_BEGIN_MESSAGE_MAP(_WifiIpcProxy, message)
- IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onProximityCheckActivated, OnProximityCheckActivated, &client)
- IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onProximityCheckDeactivated, OnProximityCheckDeactivated, &client)
- IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiBssDetected, OnWifiBssDetected, &client);
- IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiBssLost, OnWifiBssLost, &client);
- IPC_END_MESSAGE_MAP()
+ IPC_BEGIN_MESSAGE_MAP(_WifiIpcProxy, message)
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onProximityCheckActivated, OnProximityCheckActivated, &client)
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onProximityCheckDeactivated, OnProximityCheckDeactivated, &client)
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiBssDetected, OnWifiBssDetected, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiBssLost, OnWifiBssLost, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiActivated, OnWifiActivated, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiDeactivated, OnWifiDeactivated, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiConnected, OnWifiConnected, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiDisconnected, OnWifiDisconnected, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiRssiChanged, OnWifiRssiChanged, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiScanCompleted, OnWifiScanCompleted, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiConnectionStateChanged, OnWifiConnectionStateChanged, &client);
+ IPC_MESSAGE_HANDLER(ConnectivityWifiServiceMsg_onWifiSystemScanResultUpdated, OnWifiSystemScanResultUpdated, &client);
+ IPC_END_MESSAGE_MAP()
+}
+
+_WifiIpcProxy::_WifiIpcProxy(void)
+ : __pIpcClient(null)
+ , __pWifiProximityManagerImpl(null)
+ , __managerImplList()
+ , __systemMonManagerImplList()
+{
+}
+
+_WifiIpcProxy::~_WifiIpcProxy(void)
+{
+ delete __pIpcClient;
+ pSingleton = null;
+}
+
+result
+_WifiIpcProxy::Construct(void)
+{
+ result r = E_SUCCESS;
+
+ unique_ptr<_IpcClient> pClient(new (std::nothrow) _IpcClient);
+ SysTryReturnResult(NID_NET_WIFI, pClient != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ r = pClient->Construct(WIFI_CONNECTIVITY_IPC_SERVER_NAME, this);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Construction of _IpcClient has failed.");
+
+ __pIpcClient = pClient.release();
+ SysLog(NID_NET_WIFI, "An instance of the Wifi IPC Proxy has been constructed.");
+
+ return E_SUCCESS;
+}
+
+void
+_WifiIpcProxy::InitSingleton(void)
+{
+ result r = E_SUCCESS;
+ unique_ptr<_WifiIpcProxy> pInst(new (std::nothrow) _WifiIpcProxy());
+
+ SysTryReturnVoidResult(NID_NET_WIFI, pInst != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = pInst->Construct();
+ SysTryReturnVoidResult(NID_NET_WIFI, r == E_SUCCESS, r, "[%s] Construction of the _WifiIpcProxy has failed.", GetErrorMessage(r));
+
+ pSingleton = pInst.release();
}
+
} } } // Tizen::Net::Wifi
{
class WifiBssInfo;
+class WifiNetAccountInfo;
+class _WifiManagerImpl;
class _WifiProximityManagerImpl;
/**
{
public:
- /**
- * Gets the instance.
- *
- * @return The pointer to %_WifiIpcProxy
- */
- static _WifiIpcProxy* GetInstance(void);
+ /**
+ * Gets the instance.
+ *
+ * @return The pointer to %_WifiIpcProxy
+ */
+ static _WifiIpcProxy* GetInstance(void);
+
+// Wi-Fi
+ /**
+ * Register an instance of _WifiManagerImpl instance.
+ *
+ * @return An error code
+ * @param[in] impl The instance of _WifiManagerImpl to be registered
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OBJ_ALREADY_EXIST The input instance was already added.
+ * @exception E_OUT_OF_MEMORY The memory is insufficient.
+ */
+ result RegisterWifiManagerImpl(_WifiManagerImpl& impl);
+
+ /**
+ * Unregister an instance of _WifiManagerImpl instance.
+ *
+ * @return An error code
+ * @param[in] impl The instance of _WifiManagerImpl to be unregistered
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OBJ_NOT_FOUND The input instance is not registered.
+ */
+ result UnregisterWifiManagerImpl(_WifiManagerImpl& impl);
+
+ /**
+ * Registers the callback to receive Wi-Fi system monitoring events using IPC Proxy.
+ *
+ * @return An error code
+ * @param[in] impl The instance of _WifiManagerImpl to be unregistered
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OBJ_ALREADY_EXIST The input instance was already added.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege(SYSTEM_NET_SETTING) to call this method.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ */
+ result RegisterSystemMonitoringCallback(_WifiManagerImpl& impl);
+
+ /**
+ * Unregisters the previously registered callback to receive Wi-Fi system monitoring events using IPC Proxy.
+ *
+ * @return An error code
+ * @param[in] impl The instance of _WifiManagerImpl to be unregistered
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OBJ_NOT_FOUND The input instance is not registered.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege(SYSTEM_NET_SETTING) to call this method.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ */
+ result UnregisterSystemMonitoringCallback(_WifiManagerImpl& impl);
+
+ /**
+ * Sets the behavior mode of the Wi-Fi background system about connection and background scanning through the IPC
+ *
+ * @return An error code
+ * @param[in] mode A Wi-Fi system mode
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege(SYSTEM_NET_SETTING) to call this method.
+ * @exception E_OPERATION_FAILED The operation has failed.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ */
+ result SetWifiSystemScanMode(WifiSystemScanMode mode);
+
+ /**
+ * Updates the Wi-Fi BSS information which is saved in the underlying Wi-Fi system through the IPC.
+ *
+ * @return An error code
+ * @param[in] bssInfo A BSS information representing the access point
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege(SYSTEM_NET_SETTING) to call this method.
+ * @exception E_OBJ_NOT_FOUND The specified input parameter is not found.
+ * @exception E_OPERATION_FAILED The operation has failed.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ */
+ result UpdateBssInfo(const WifiBssInfo& bssInfo);
+
+ /**
+ * Activates the local Wifi device.
+ *
+ * @return An error code
+ * @exception E_SUCCESS The activation was successful.
+ * @exception E_FAILURE Failed to activate.
+ * @exception E_SYSTEM A system error occurred.
+ */
+ result Activate(void);
+
+ /**
+ * Deactivates the local Wifi device.
+ *
+ * @return An error code
+ * @exception E_SUCCESS The deactivation was successful.
+ * @exception E_FAILURE Failed to deactivate.
+ * @exception E_SYSTEM A system error occurred.
+ */
+ result Deactivate(void);
+
+ /**
+ * Gets the MAC address of the Wifi device.
+ * @return The MAC address in the form '00-00-00-00-00-00'
+ */
+ Tizen::Base::String GetMacAddress(void) const;
+
+ /**
+ * Checks whether the local device is activated.
+ * @return @c true, if the local device is activated @n
+ * @c false, otherwise
+ */
+ bool IsActivated(void) const;
+
+ /**
+ * Checks whether the local device is connected with a remote STA.
+ * @return @c true, if the local device is connected with a remote STA @n
+ * @c false, otherwise
+ */
+ bool IsConnected(void) const;
+
+ /**
+ * Requests a scan for nearby BSS with both infrastructure and independent mode.
+ *
+ * @return An error code
+ * @exception E_SUCCESS The method was successful.
+ * @exception E_FAILURE The method failed.
+ * @remarks Only active scan - i.e. probing for APs in the range - is supported.
+ * @see IWifiManagerEventListener::OnWifiScanCompleted()
+ */
+ result Scan(void);
+
+ /**
+ * Establishes a connection to a specific access point - only BSS with infrastructure mode.
+ *
+ * @return An error code
+ * @param[in] targetApInfo A BSS information that represents target access point.
+ * @exception E_SUCCESS The method was successful.
+ * @exception E_FAILURE The method failed.
+ * @exception E_INVALID_ARG A specified input parameter is invalid. E.g. BSS type is independent mode.
+ * @remarks If a connection to other access point is already established, it will be disconnected and the new connection
+ * of this method will be established.
+ * @see IWifiManagerEventListener::OnWifiConnected()
+ */
+ result Connect(const WifiBssInfo& targetApInfo);
+
+ /**
+ * Gets the state of current Wi-Fi connection.
+ *
+ * @return The state of the current Wi-Fi connection
+ */
+ int GetConnectionState(void) const;
+
+ /**
+ * Gets the information of current Wi-Fi connection target which the local device is connecting or connected with.
+ *
+ * @return A pointer to the WifiBssInfo instance representing the information of current Wi-Fi connection target
+ * else @c null if GetConnectionState() is WIFI_CONNECTION_STATE_NOT_CONNECTED
+ */
+ WifiBssInfo* GetConnectionTargetInfoN(void) const;
+
+ /**
+ * Gets a list of the latest search results which the underlying Wi-Fi system scan periodically on background.
+ *
+ * @return An IList containing WifiBssInfo of existing Wi-Fi connections if successful, @n
+ * else @c null
+ */
+ Tizen::Base::Collection::IList* GetSystemScanResultN(void) const;
+
+ Tizen::Net::Wifi::WifiNetAccountInfo* GetWifiNetAccountInfoN(void) const;
+
+ void OnWifiActivated(result r);
+ void OnWifiDeactivated(result r);
+ void OnWifiConnected(const Tizen::Base::String& ssid, result r);
+ void OnWifiDisconnected(void);
+ void OnWifiRssiChanged(long rssi);
+ void OnWifiScanCompleted(const Tizen::Base::Collection::ArrayListT<Tizen::Net::Wifi::WifiBssInfo*>& scanList, result r);
+ void OnWifiConnectionStateChanged(int state);
+ void OnWifiSystemScanResultUpdated();
+
+// Wi-Fi Proximity
+ void SetWifiProximityManagerImpl(Tizen::Net::Wifi::_WifiProximityManagerImpl* pImpl);
+ result RegisterBssId(const Tizen::Base::String& bssId) const;
+ result UnRegisterBssId(const Tizen::Base::String& bssId) const;
+ result ActivateProximityCheck(void) const;
+ result DeactivateProximityCheck(void) const;
+ result IsProximityCheckActivated(bool& isActivated) const;
+
+ void OnProximityCheckActivated();
+ void OnProximityCheckDeactivated();
+ void OnWifiBssDetected(const Tizen::Net::Wifi::WifiBssInfo& wifiBssInfo);
+ void OnWifiBssLost(const Tizen::Base::String& macAddress);
+// Wi-Fi Direct
/**
* Initialize Wifi Direct of osp-connectivity-service daemon using IPC Proxy.
*
*/
result SetWifiDirectLocalDeviceName(const Tizen::Base::String& deviceName) const;
- /**
- * Sets the behavior mode of the Wi-Fi background system about connection and background scanning through the IPC
- *
- * @return An error code
- * @param[in] mode A Wi-Fi system mode
- * @exception E_SUCCESS The method is successful.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege(SYSTEM_NET_SETTING) to call this method.
- * @exception E_OPERATION_FAILED The operation has failed.
- * @exception E_SYSTEM The method cannot proceed due to a severe system error.
- */
- result SetWifiSystemScanMode(WifiSystemScanMode mode);
-
- /**
- * Checks whether the caller has SYSTEM_NET_SETTING privilege throuth the IPC.
- *
- * @return An error code
- * @exception E_SUCCESS The method is successful.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege(SYSTEM_NET_SETTING) to call this method.
- * @exception E_SYSTEM The method cannot proceed due to a severe system error.
- */
- result CheckSystemSettingPrivilege(void);
-
- /**
- * Updates the Wi-Fi BSS information which is saved in the underlying Wi-Fi system through the IPC.
- *
- * @return An error code
- * @param[in] bssInfo A BSS information representing the access point
- * @exception E_SUCCESS The method is successful.
- * @exception E_PRIVILEGE_DENIED The application does not have the privilege(SYSTEM_NET_SETTING) to call this method.
- * @exception E_OBJ_NOT_FOUND The specified input parameter is not found.
- * @exception E_OPERATION_FAILED The operation has failed.
- * @exception E_SYSTEM The method cannot proceed due to a severe system error.
- */
- result UpdateBssInfo(const WifiBssInfo& bssInfo);
-
- result RegisterBssId(const Tizen::Base::String& bssId) const;
- result UnRegisterBssId(const Tizen::Base::String& bssId) const;
- result ActivateProximityCheck(void) const;
- result DeactivateProximityCheck(void) const;
- result IsProximityCheckActivated(bool& isActivated) const;
-
- void OnProximityCheckActivated();
- void OnProximityCheckDeactivated();
- void OnWifiBssDetected(const Tizen::Net::Wifi::WifiBssInfo& wifiBssInfo);
- void OnWifiBssLost(const Tizen::Base::String& macAddress);
-
- void SetWifiProximityManagerImpl(Tizen::Net::Wifi::_WifiProximityManagerImpl& impl);
-
- // from _IIpcClientEventListener
+// from _IIpcClientEventListener
virtual void OnIpcResponseReceived(Tizen::Io::_IpcClient& client, const IPC::Message& message);
private:
private:
Tizen::Io::_IpcClient* __pIpcClient;
- friend class std::default_delete<_WifiIpcProxy>;
Tizen::Net::Wifi::_WifiProximityManagerImpl* __pWifiProximityManagerImpl;
+ Tizen::Base::Collection::LinkedListT<_WifiManagerImpl*> __managerImplList;
+ Tizen::Base::Collection::LinkedListT<_WifiManagerImpl*> __systemMonManagerImplList;
+
+ friend class std::default_delete<_WifiIpcProxy>;
}; // _WifiIpcProxy
#include <FNetWifiIWifiManagerEventListener.h>
#include <FNetWifiIWifiSystemMonitoringEventListener.h>
#include "FNetWifi_WifiManagerImpl.h"
-#include "FNetWifi_WifiSystemAdapter.h"
#include "FNetWifi_WifiIpcProxy.h"
#include "FNetWifi_WifiManagerEvent.h"
#include "FNetWifi_WifiManagerEventArg.h"
namespace Tizen { namespace Net { namespace Wifi {
_WifiManagerImpl::_WifiManagerImpl(void)
- : __pWifiSystemAdapter(null)
+ : __pWifiProxy(null)
, __pMgrEvent(null)
, __pMonitoringEvent(null)
, __pTargetApInfo(null)
_WifiManagerImpl::~_WifiManagerImpl(void)
{
- if (__pWifiSystemAdapter != null)
+ if ( __pWifiProxy != null)
{
- __pWifiSystemAdapter->UnregisterManagerEventListener(*this);
+ __pWifiProxy->UnregisterWifiManagerImpl(*this);
}
}
unique_ptr<_WifiSystemMonitoringEvent> pMonitoringEvent;
unique_ptr<_WifiManagerEvent> pMgrEvent;
- SysAssertf(__pWifiSystemAdapter == null,
+ SysAssertf(__pWifiProxy == null,
"Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
r = __stateMutex.Create();
r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to create mutex.");
- __pWifiSystemAdapter = _WifiSystemAdapter::GetInstance();
- SysTryReturnResult(NID_NET_WIFI, __pWifiSystemAdapter != null, E_OUT_OF_MEMORY, "Failed to get Wi-Fi System adapter instance");
+ __pWifiProxy = _WifiIpcProxy::GetInstance();
+ SysTryReturnResult(NID_NET_WIFI, __pWifiProxy != null, E_SYSTEM, "Failed to get Wi-Fi proxy instance");
pMonitoringEvent.reset(new (std::nothrow) _WifiSystemMonitoringEvent());
SysTryReturnResult(NID_NET_WIFI, pMonitoringEvent != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
// add the IWifiManagerEventListener instance to a new created _WifiManagerEvent.
r = pMgrEvent->AddListener(listener, true);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, E_SYSTEM,
- "Failed to add the application listener for WifiManager event");
+ "Failed to add the application listener for WifiManager event");
- __pWifiSystemAdapter->RegisterManagerEventListener(*this);
+ __pWifiProxy->RegisterWifiManagerImpl(*this);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, E_SYSTEM,
- "Failed to register the manager event listener to _WifiSystemAdapter.");
+ "Failed to register the manager event listener to _WifiIpcProxy.");
__stateMutex.Acquire();
- if (__pWifiSystemAdapter->IsActivated())
+ if (__pWifiProxy->IsActivated())
{
- if (__pWifiSystemAdapter->IsConnected())
+ if (__pWifiProxy->IsConnected())
{
__currentState = WIFI_MANAGER_CONNECTED;
}
switch (__currentState)
{
case WIFI_MANAGER_DEACTIVATED:
- r = __pWifiSystemAdapter->Activate();
+ r = __pWifiProxy->Activate();
if (r == E_SUCCESS)
{
__currentState = WIFI_MANAGER_ACTIVATING;
r = E_IN_PROGRESS;
break;
default:
- r = __pWifiSystemAdapter->Deactivate();
+ r = __pWifiProxy->Deactivate();
if (r == E_SUCCESS)
{
__currentState = WIFI_MANAGER_DEACTIVATING;
return macAddress;
break;
default:
- macAddress = __pWifiSystemAdapter->GetMacAddress();
+ macAddress = __pWifiProxy->GetMacAddress();
break;
}
SysLog(NID_NET_WIFI, "Enter, [Current State : %s], [Scan State: %s]",
GetStringOfCurrentState(), GetStringOfCurrentScanState());
- return __pWifiSystemAdapter->IsActivated();
+ return __pWifiProxy->IsActivated();
}
bool
SysLog(NID_NET_WIFI, "Enter, [Current State : %s], [Scan State: %s]",
GetStringOfCurrentState(), GetStringOfCurrentScanState());
- return __pWifiSystemAdapter->IsConnected();
+ return __pWifiProxy->IsConnected();
}
result
default:
if (__currentScanState == WIFI_SCAN_IDLE)
{
- r = __pWifiSystemAdapter->Scan();
+ r = __pWifiProxy->Scan();
if (r == E_SUCCESS)
{
__currentScanState = WIFI_SCAN_SCANNING;
}
else
{
- r = __pWifiSystemAdapter->Connect(targetApInfo);
+ r = __pWifiProxy->Connect(targetApInfo);
if (r == E_SUCCESS)
{
__currentState = WIFI_MANAGER_CONNECTING;
}
else
{
- r = __pWifiSystemAdapter->Connect(targetApInfo);
+ r = __pWifiProxy->Connect(targetApInfo);
if (r == E_SUCCESS)
{
__currentState = WIFI_MANAGER_DISCONNECTING;
_WifiManagerImpl::SetWifiSystemScanMode(WifiSystemScanMode mode)
{
result r = E_SUCCESS;
- _WifiIpcProxy* pProxy = null;
- pProxy = _WifiIpcProxy::GetInstance();
- SysTryReturnResult(NID_NET_WIFI, pProxy != null, E_SYSTEM, "Failed to get _WifiIpcProxy instance.");
-
- r = pProxy->SetWifiSystemScanMode(mode);
+ r = __pWifiProxy->SetWifiSystemScanMode(mode);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
return E_SUCCESS;
_WifiManagerImpl::AddSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener)
{
result r = E_SUCCESS;
- _WifiIpcProxy* pProxy = null;
-
- pProxy = _WifiIpcProxy::GetInstance();
- SysTryReturnResult(NID_NET_WIFI, pProxy != null, E_SYSTEM, "Failed to get _WifiIpcProxy instance.");
- r = pProxy->CheckSystemSettingPrivilege();
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
+ if (__pMonitoringEvent->GetListenerCount() == 0)
+ {
+ r = __pWifiProxy->RegisterSystemMonitoringCallback(*this);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
+ }
// add the specified new IWifiSystemMonitoringEventListener instance to the _WifiSystemMonitoringEvent.
r = __pMonitoringEvent->AddListener(listener, true);
_WifiManagerImpl::RemoveSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener)
{
result r = E_SUCCESS;
- _WifiIpcProxy* pProxy = null;
-
- pProxy = _WifiIpcProxy::GetInstance();
- SysTryReturnResult(NID_NET_WIFI, pProxy != null, E_SYSTEM, "Failed to get _WifiIpcProxy instance.");
-
- r = pProxy->CheckSystemSettingPrivilege();
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
// remove the previous IWifiSystemMonitoringEventListener instance from the _WifiSystemMonitoringEvent.
r = __pMonitoringEvent->RemoveListener(listener);
r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY, E_OBJ_NOT_FOUND);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to remove the previous listener.");
+ if (__pMonitoringEvent->GetListenerCount() == 0)
+ {
+ r = __pWifiProxy->UnregisterSystemMonitoringCallback(*this);
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
+ }
+
SysLog(NID_NET_WIFI, "Removing the previous IWifiSystemMonitoringEventListener is successful.");
return E_SUCCESS;
WifiConnectionState
_WifiManagerImpl::GetConnectionState(void) const
{
- return __pWifiSystemAdapter->GetConnectionState();
+ return static_cast<WifiConnectionState>(__pWifiProxy->GetConnectionState());
}
WifiBssInfo*
_WifiManagerImpl::GetConnectionTargetInfoN(void) const
{
- return __pWifiSystemAdapter->GetConnectionTargetInfoN();
+ return __pWifiProxy->GetConnectionTargetInfoN();
}
result
_WifiManagerImpl::UpdateBssInfo(const WifiBssInfo& bssInfo)
{
result r = E_SUCCESS;
- _WifiIpcProxy* pProxy = null;
- pProxy = _WifiIpcProxy::GetInstance();
- SysTryReturnResult(NID_NET_WIFI, pProxy != null, E_SYSTEM, "Failed to get _WifiIpcProxy instance.");
-
- r = pProxy->UpdateBssInfo(bssInfo);
+ r = __pWifiProxy->UpdateBssInfo(bssInfo);
SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Propagating.");
return E_SUCCESS;
Tizen::Base::Collection::IList*
_WifiManagerImpl::GetSystemScanResultN(void) const
{
- return __pWifiSystemAdapter->GetSystemScanResultN();
+ return __pWifiProxy->GetSystemScanResultN();
}
void
}
else
{
- if (__pWifiSystemAdapter->IsConnected())
+ if (__pWifiProxy->IsConnected())
{
__currentState = WIFI_MANAGER_CONNECTED;
}
}
} } } // Tizen::Net::Wifi
-
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-_OSP_EXPORT_ result
-_WifiManagerImpl_Activate(void)
-{
- Tizen::Net::Wifi::_WifiSystemAdapter* __pWifiSystemAdapter = Tizen::Net::Wifi::_WifiSystemAdapter::GetInstance();
- SysTryReturnResult(NID_NET_WIFI, __pWifiSystemAdapter != null, E_OUT_OF_MEMORY, "Failed to get Wi-Fi System adapter instance");
-
- return __pWifiSystemAdapter->Activate();
-}
-
-_OSP_EXPORT_ result
-_WifiManagerImpl_Deactivate(void)
-{
- Tizen::Net::Wifi::_WifiSystemAdapter* __pWifiSystemAdapter = Tizen::Net::Wifi::_WifiSystemAdapter::GetInstance();
- SysTryReturnResult(NID_NET_WIFI, __pWifiSystemAdapter != null, E_OUT_OF_MEMORY, "Failed to get Wi-Fi System adapter instance");
-
- return __pWifiSystemAdapter->Deactivate();
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-
#include <FOspConfig.h>
#include <FNetWifiWifiNetAccountInfo.h>
#include <FBaseSysLog.h>
-#include "FNet_NetExporter.h"
#include "FNetWifi_WifiNetAccountInfoImpl.h"
#include "FNetWifi_WifiSecurityInfoImpl.h"
+#include "FNetWifi_WifiIpcProxy.h"
#include "FNetWifi_WifiUtility.h"
-
+
using namespace Tizen::Base;
namespace Tizen { namespace Net { namespace Wifi
_WifiNetAccountInfoImpl::_WifiNetAccountInfoImpl(void)
: __bssType(WIFI_BSS_TYPE_INFRASTRUCTURE)
, __channel(WIFI_RADIO_CHANNEL_UNKNOWN)
+ , __ssid()
+ , __bssid()
+ , __securityInfo()
+
{
}
_WifiNetAccountInfoImpl::_WifiNetAccountInfoImpl(const _WifiNetAccountInfoImpl& value)
: __bssType(value.__bssType)
+ , __channel(value.__channel)
, __ssid(value.__ssid)
- , __securityInfo(value.__securityInfo)
, __bssid(value.__bssid)
- , __channel(value.__channel)
+ , __securityInfo(value.__securityInfo)
+
{
}
__channel = channel;
}
-
bool
_WifiNetAccountInfoImpl::Equals(const Tizen::Base::Object& obj) const
{
return __bssid.GetHashCode();
}
-
-WifiNetAccountInfo*
-_WifiNetAccountInfoImpl::CreateWifiNetAccountInfoN(void* pProfileInfo)
-{
- result r = E_SUCCESS;
- WifiNetAccountInfo* pWifiNetAccountInfo = null;
- _WifiNetAccountInfoImpl* pWifiNetAccountInfoImpl = null;
- connection_profile_h profileHandle = static_cast<connection_profile_h>(pProfileInfo);
-
- char *pSsid = null;
- char *pBssid = null;
- int radioChannel = 0;
- connection_wifi_security_type_e secType = CONNECTION_WIFI_SECURITY_TYPE_NONE;
- connection_wifi_encryption_type_e encType = CONNECTION_WIFI_ENCRYPTION_TYPE_NONE;
- String ssid;
- String bssid;
-
- WifiBssType wifiBssType = WIFI_BSS_TYPE_INFRASTRUCTURE;
- WifiRadioChannel wifiRadioChannel = WIFI_RADIO_CHANNEL_UNKNOWN;
- WifiSecurityInfo securityInfo;
- _WifiSecurityInfoImpl* pSecuInfoImpl = _WifiSecurityInfoImpl::GetInstance(securityInfo);
-
- SysTryCatch(NID_NET_WIFI, pProfileInfo, , E_INVALID_ARG, "[E_INVALID_ARG] A profile is NULL.");
-
- pWifiNetAccountInfo = new (std::nothrow) WifiNetAccountInfo();
- SysTryCatch(NID_NET_WIFI, pWifiNetAccountInfo, , E_OUT_OF_MEMORY,
- "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
- pWifiNetAccountInfoImpl = _WifiNetAccountInfoImpl::GetInstance(*pWifiNetAccountInfo);
- SysTryCatch(NID_NET_WIFI, pWifiNetAccountInfoImpl, , E_OUT_OF_MEMORY,
- "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
- connection_profile_get_wifi_essid(profileHandle, &pSsid);
- SysTryCatch(NID_NET_WIFI, pSsid, , E_SYSTEM,
- "[E_SYSTEM] connection_profile_get_wifi_essid failed.");
- ssid = String(pSsid);
- free(pSsid);
-
- connection_profile_get_wifi_bssid(profileHandle, &pBssid);
- SysTryCatch(NID_NET_WIFI, pBssid, , E_SYSTEM,
- "[E_SYSTEM] connection_profile_get_wifi_essid failed.");
- bssid = _WifiUtility::ConvertMacAddress(pBssid);
- free(pBssid);
-
- wifiBssType = WIFI_BSS_TYPE_INFRASTRUCTURE;
- connection_profile_get_wifi_frequency(profileHandle, &radioChannel);
-
- wifiRadioChannel = Tizen::Net::Wifi::_WifiUtility::ConvertRadioChannel(radioChannel);
-
- connection_profile_get_wifi_security_type(profileHandle,&secType);
- connection_profile_get_wifi_encryption_type(profileHandle,&encType);
- pSecuInfoImpl->SetAuthenticationType(_WifiUtility::ConvertAuthType(static_cast <wifi_security_type_e>(secType), static_cast <wifi_encryption_type_e>(encType)));
- pSecuInfoImpl->SetEncryptionType(_WifiUtility::ConvertEncryptionType(static_cast <wifi_encryption_type_e>(encType)));
-
- pWifiNetAccountInfoImpl->SetSsid(ssid);
- pWifiNetAccountInfoImpl->SetBssType(wifiBssType);
- pWifiNetAccountInfoImpl->SetBssId(bssid);
- pWifiNetAccountInfoImpl->SetRadioChannel(wifiRadioChannel);
- pWifiNetAccountInfoImpl->SetSecurityInfo(securityInfo);
-
- r = _NetExporter::InitializeNetAccountInfo(pWifiNetAccountInfo, pProfileInfo);
-
- return pWifiNetAccountInfo;
-
-CATCH:
- if (pWifiNetAccountInfo)
- {
- delete pWifiNetAccountInfo;
- }
-
- return null;
-}
-
_WifiNetAccountInfoImpl*
_WifiNetAccountInfoImpl::GetInstance(WifiNetAccountInfo& wifiNetAccountInfo)
{
return wifiNetAccountInfo.__pWifiNetAccountInfoImpl;
}
+WifiNetAccountInfo*
+_WifiNetAccountInfoImpl::CreateWifiNetAccountInfoN(void)
+{
+ WifiNetAccountInfo* pWifiNetAccountInfo = new (std::nothrow) WifiNetAccountInfo();
+ SysTryReturn(NID_NET_WIFI, pWifiNetAccountInfo != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ return pWifiNetAccountInfo;
+
+}
+
} } } // Tizen::Net::Wifi
#ifdef __cplusplus
#endif
_OSP_EXPORT_ Tizen::Net::Wifi::WifiNetAccountInfo*
-_WifiNetAccountInfoImpl_CreateWifiNetAccountInfoN(void* pProfileInfo)
+_WifiNetAccountInfoImpl_CreateWifiNetAccountInfoN()
{
- return Tizen::Net::Wifi::_WifiNetAccountInfoImpl::CreateWifiNetAccountInfoN(pProfileInfo);
+
+ Tizen::Net::Wifi::_WifiIpcProxy* pWifiProxy = Tizen::Net::Wifi::_WifiIpcProxy::GetInstance();
+ SysTryReturn(NID_NET_WIFI, pWifiProxy != null, null, E_SYSTEM, "[E_SYSTEM] Failed to get Wi-Fi proxy instance");
+
+ return pWifiProxy->GetWifiNetAccountInfoN();
}
#ifdef __cplusplus
_WifiProximityManagerImpl::~_WifiProximityManagerImpl(void)
{
+ __pWifiServiceProxy->SetWifiProximityManagerImpl(null);
delete __pListenerStateMap;
delete __pBssListenerMap;
}
__pWifiServiceProxy = _WifiIpcProxy::GetInstance();
SysTryReturnResult(NID_NET_WIFI, __pWifiServiceProxy != null, E_SYSTEM, "Getting WifiIpcProxy instance has failed.");
- __pWifiServiceProxy->SetWifiProximityManagerImpl(*this);
+ __pWifiServiceProxy->SetWifiProximityManagerImpl(this);
__pListenerStateMap = pTempMap.release();
__pBssListenerMap = pTempMultiMap.release();
{
_WifiSecurityInfoImpl::_WifiSecurityInfoImpl(void)
- :__authenticationType(WIFI_AUTHENTICATION_MAX)
- ,__encryptionType(WIFI_ENCRYPTION_MAX)
+ : __authenticationType(WIFI_AUTHENTICATION_MAX)
+ , __encryptionType(WIFI_ENCRYPTION_MAX)
{
- memset(__aesKey.key, '\0', WIFI_AES_KEY_LENGTH+1);
- memset(__tkipKey.key, '\0', WIFI_TKIP_KEY_LENGTH+1);
- memset(__wepKey.key, '\0', WIFI_WEP_128BIT_KEY_LENGTH+1);
- __wepKey.keyIndex = 1;
- __wepKey.keyLen = WIFI_WEP_KEY_LEN_64BIT;
+ __webKeyInfo.keyLen = WIFI_WEP_KEY_LEN_64BIT;
+ __webKeyInfo.keyIndex = WIFI_WEP_KEY_INDEX_1;
__eapInfo.eapType = WIFI_EAP_NONE;
- __eapInfo.userId[0] = '\0';
- __eapInfo.password[0] = '\0';
+ __eapInfo.userId = "";
+ __eapInfo.password = "";
__eapInfo.validateCertificate = true;
-}
+ }
_WifiSecurityInfoImpl::_WifiSecurityInfoImpl(const _WifiSecurityInfoImpl& value)
:__authenticationType(value.__authenticationType)
,__encryptionType(value.__encryptionType)
- ,__wepKey(value.__wepKey)
- ,__aesKey(value.__aesKey)
- ,__tkipKey(value.__tkipKey)
+ ,__webKeyInfo(value.__webKeyInfo)
,__eapInfo(value.__eapInfo)
,__networkKey(value.__networkKey)
{
{
if ( this != &rhs )
{
- __aesKey = rhs.__aesKey;
__authenticationType = rhs.__authenticationType;
__encryptionType = rhs.__encryptionType;
- __tkipKey = rhs.__tkipKey;
- __wepKey = rhs.__wepKey;
+ __webKeyInfo = rhs.__webKeyInfo;
__eapInfo = rhs.__eapInfo;
__networkKey = rhs.__networkKey;
}
result
_WifiSecurityInfoImpl::SetNetworkKeyWep(WifiWepKeyLen keyLen, WifiWepKeyIndex keyIndex, const String& key)
{
- int len = 0;
result r = E_SUCCESS;
- len = key.GetLength();
- ByteBuffer* pKey = null;
+ int len = key.GetLength();
if (keyLen == WIFI_WEP_KEY_LEN_64BIT)
{
r = E_INVALID_ARG;
}
- SysTryCatch(NID_NET_WIFI, r == E_SUCCESS, , r, "[E_INVALID_ARG] The length of key is invalid.");
-
- pKey = StringUtil::StringToUtf8N(key);
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
- SysTryReturnResult(NID_NET_WIFI, pKey != null, r, "String to UTF-8 Conversion failed.");
-
- __wepKey.keyLen = keyLen;
+ SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "The length of key is invalid.");
- switch (keyIndex)
- {
- case WIFI_WEP_KEY_INDEX_1:
- __wepKey.keyIndex = 1;
- break;
- case WIFI_WEP_KEY_INDEX_2:
- __wepKey.keyIndex = 2;
- break;
- case WIFI_WEP_KEY_INDEX_3:
- __wepKey.keyIndex = 3;
- break;
- case WIFI_WEP_KEY_INDEX_4:
- __wepKey.keyIndex = 4;
- break;
- default:
- delete pKey;
- return E_INVALID_ARG;
- }
+ __webKeyInfo.keyLen = keyLen;
+ __webKeyInfo.keyIndex = keyIndex;
+ __networkKey = key;
- r = pKey->GetArray(reinterpret_cast<byte*>(__wepKey.key), 0, len);
- SysTryCatch(NID_NET_WIFI, r == E_SUCCESS, , r, "[E_SYSTEM] Getting the specified number of bytes from the ByteBuffer has failed.");
- __wepKey.key[len] = '\0';
-
- delete pKey;
- return r;
-
-CATCH:
- delete pKey;
return r;
}
result
_WifiSecurityInfoImpl::SetNetworkKeyAes(const String& key)
{
- int len = 0;
- result r = E_SUCCESS;
- len = key.GetLength();
+ int len = key.GetLength();
SysTryReturnResult(NID_NET_WIFI, len <= WIFI_AES_KEY_LENGTH, E_INVALID_ARG, "The length of key is invalid.");
- ByteBuffer* pKey = null;
- pKey = StringUtil::StringToUtf8N(key);
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
- SysTryReturnResult(NID_NET_WIFI, pKey != null, r, "String to UTF-8 Conversion failed.");
-
- r = pKey->GetArray(reinterpret_cast<byte*>(__aesKey.key), 0, len);
- SysTryCatch(NID_NET_WIFI, r == E_SUCCESS, , r, "[E_SYSTEM] Getting the specified number of bytes from the ByteBuffer has failed.");
- __aesKey.key[len] = '\0';
-
- delete pKey;
-
- return r;
-
-CATCH:
- delete pKey;
- return r;
+ __networkKey = key;
+ return E_SUCCESS;
}
result
_WifiSecurityInfoImpl::SetNetworkKeyTkip(const String& key)
{
- int len = 0;
- result r = E_SUCCESS;
- len = key.GetLength();
+ int len = key.GetLength();
SysTryReturnResult(NID_NET_WIFI, len <= WIFI_TKIP_KEY_LENGTH, E_INVALID_ARG, "The length of key is invalid.");
- ByteBuffer* pKey = null;
- pKey = StringUtil::StringToUtf8N(key);
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
- SysTryReturnResult(NID_NET_WIFI, pKey != null, r, "String to UTF-8 Conversion failed.");
-
- r = pKey->GetArray(reinterpret_cast<byte*>(__tkipKey.key), 0, len);
- SysTryCatch(NID_NET_WIFI, r == E_SUCCESS, , r, "[E_SYSTEM] Getting the specified number of bytes from the ByteBuffer has failed.");
- __tkipKey.key[len] = '\0';
-
- delete pKey;
-
- return r;
-
-CATCH:
- delete pKey;
- return r;
-}
-
-const unsigned char*
-_WifiSecurityInfoImpl::GetNetworkKeyWep(void) const
-{
- return __wepKey.key;
-}
-
-const unsigned char*
-_WifiSecurityInfoImpl::GetNetworkKeyAes(void) const
-{
- return __aesKey.key;
-}
-
-const unsigned char*
-_WifiSecurityInfoImpl::GetNetworkKeyTkip(void) const
-{
- return __tkipKey.key;
+ __networkKey = key;
+ return E_SUCCESS;
}
result
_WifiSecurityInfoImpl::SetEapMethodInfo(WifiEapType type, const Tizen::Base::String& userId, const Tizen::Base::String& password,
bool validateServerCertificate)
{
- int userIdLen = 0;
- int passwordLen = 0;
- result r = E_SUCCESS;
- ByteBuffer* pUserIdByte = null;
- ByteBuffer* pPasswordByte = null;
-
- userIdLen = userId.GetLength();
- passwordLen = password.GetLength();
+ int userIdLen = userId.GetLength();
+ int passwordLen = password.GetLength();
- // WIFI_EAP_TLS is not supported in v.1.2
- SysTryReturnResult(NID_NET_WIFI, type != WIFI_EAP_TLS, E_UNSUPPORTED_TYPE,
- "EAP type is not supported, only supports WIFI_EAP_TLS.");
+ // WIFI_EAP_TLS is not supported yet.
+ SysTryReturnResult(NID_NET_WIFI, type != WIFI_EAP_TLS, E_UNSUPPORTED_TYPE, "EAP-TLS type is not supported");
SysTryReturnResult(NID_NET_WIFI, (userIdLen <= WIFI_EAP_KEY_LENGTH) , E_INVALID_ARG, "User ID length should be lesser then 256 character.");
SysTryReturnResult(NID_NET_WIFI, (passwordLen <= WIFI_EAP_KEY_LENGTH) , E_INVALID_ARG, "Password length should be lesser then 256 character.");
- pUserIdByte = StringUtil::StringToUtf8N(userId);
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
- SysTryCatch(NID_NET_WIFI, pUserIdByte != null, , r, "[%s] String to UTF-8 Conversion failed.", GetErrorMessage(r));
-
- r = pUserIdByte->GetArray(reinterpret_cast<byte*>(__eapInfo.userId), 0, userIdLen);
- SysTryCatch(NID_NET_WIFI, r == E_SUCCESS, , r, "[E_SYSTEM] Getting the specified number of bytes from the ByteBuffer has failed.");
- __eapInfo.userId[userIdLen] = '\0';
-
- pPasswordByte = StringUtil::StringToUtf8N(password);
- r = TransExceptionsExclusive(r, E_SYSTEM, E_OUT_OF_MEMORY);
- SysTryCatch(NID_NET_WIFI, pPasswordByte != null, , r, "[%s] String to UTF-8 Conversion failed.", GetErrorMessage(r));
-
- r = pPasswordByte->GetArray(reinterpret_cast<byte*>(__eapInfo.password), 0, passwordLen);
- SysTryCatch(NID_NET_WIFI, r == E_SUCCESS, , r, "[E_SYSTEM] Getting the specified number of bytes from the ByteBuffer has failed.");
- __eapInfo.password[passwordLen] = '\0';
-
__eapInfo.eapType = type;
__eapInfo.validateCertificate = validateServerCertificate;
-
- delete pUserIdByte;
- delete pPasswordByte;
+ __eapInfo.userId= userId;
return E_SUCCESS;
-
-CATCH:
- if (pUserIdByte)
- {
- delete pUserIdByte;
- pUserIdByte = null;
- }
-
- if (pPasswordByte)
- {
- delete pPasswordByte;
- pPasswordByte = null;
- }
-
- return r;
}
WifiEapType
return __eapInfo.eapType;
}
-const char*
+String
_WifiSecurityInfoImpl::GetEapUserId(void) const
{
return __eapInfo.userId;
}
-const char*
+String
_WifiSecurityInfoImpl::GetEapPassword(void) const
{
return __eapInfo.password;
}
+bool
+_WifiSecurityInfoImpl::GetValidateServerCertificate(void) const
+{
+ return __eapInfo.validateCertificate;
+}
+
void
_WifiSecurityInfoImpl::SetNetworkKey(const Tizen::Base::String& key)
{
switch (__authenticationType)
{
case WIFI_AUTHENTICATION_SHARED:
- if (__wepKey.keyIndex != pOther->__wepKey.keyIndex
- || __wepKey.keyLen != pOther->__wepKey.keyLen)
- {
- return false;
- }
- break;
- case WIFI_AUTHENTICATION_WPA_PSK:
- case WIFI_AUTHENTICATION_WPA2_PSK:
- case WIFI_AUTHENTICATION_WPA_WPA2_MIXED_PSK:
- if (memcmp(&__aesKey.key, &pOther->__aesKey.key, sizeof(__aesKey.key)) != 0
- || memcmp(&__tkipKey.key, &pOther->__tkipKey.key, sizeof(__tkipKey.key)) != 0)
+ if (__webKeyInfo.keyIndex != pOther->__webKeyInfo.keyIndex
+ || __webKeyInfo.keyLen != pOther->__webKeyInfo.keyLen)
{
return false;
}
case WIFI_AUTHENTICATION_WPA:
case WIFI_AUTHENTICATION_WPA2:
if ( __eapInfo.eapType != pOther->__eapInfo.eapType
- || memcmp(&__eapInfo.userId, &pOther->__eapInfo.userId, sizeof(__eapInfo.userId)) != 0
- || memcmp(&__eapInfo.password, &pOther->__eapInfo.password, sizeof(__eapInfo.password)) != 0
+ || __eapInfo.userId != pOther->__eapInfo.userId
+ || __eapInfo.password != pOther->__eapInfo.password
|| __eapInfo.validateCertificate != pOther->__eapInfo.validateCertificate)
{
return false;
+++ /dev/null
-//
-// Open Service Platform
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
-//
-// 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.
-//
-
-/**
- * @file FNetWifi_WifiSystemAdapter.cpp
- * @brief This is the implementation file for the _WifiSystemAdapter Class.
- */
-#include <pthread.h>
-#include <FBaseUtilStringUtil.h>
-#include <FBaseSysLog.h>
-#include <FNetWifiWifiBssInfo.h>
-#include <FBase_StringConverter.h>
-#include "FNetWifi_WifiBssInfoImpl.h"
-#include "FNetWifi_IWifiManagerEventListener.h"
-#include "FNetWifi_WifiManagerImpl.h"
-#include "FNetWifi_WifiSystemAdapter.h"
-#include "FNetWifi_WifiSecurityInfoImpl.h"
-#include "FNetWifi_WifiUtility.h"
-
-#ifdef _WifiConvertErrorResult
-#undef _WifiConvertErrorResult
-#endif
-#define _WifiConvertErrorResult(condition, r, value) \
- do \
- { \
- if (condition) { \
- r = value; \
- } \
- } while (0);
-
-using namespace std;
-using namespace Tizen::Base;
-using namespace Tizen::Base::Runtime;
-using namespace Tizen::Base::Collection;
-
-namespace Tizen { namespace Net { namespace Wifi {
-
-static _WifiSystemAdapter* pInstance = null;
-
-_WifiSystemAdapter::_WifiSystemAdapter(void)
- : __mgrEvtListenerList()
- , __prevconnState(WIFI_CONNECTION_STATE_DISCONNECTED)
-{
-}
-
-_WifiSystemAdapter::~_WifiSystemAdapter(void)
-{
-}
-
-result
-_WifiSystemAdapter::Construct(void)
-{
- int err = WIFI_ERROR_NONE;
-
- err = wifi_initialize();
- SysTryReturnResult(NID_NET_WIFI, ((err == WIFI_ERROR_NONE) || (err == WIFI_ERROR_INVALID_OPERATION)), E_SYSTEM, "Failed to wifi_initialize()");
-
- err = wifi_set_device_state_changed_cb(OnWifiDeviceStateChanged, null);
- SysTryReturnResult(NID_NET_WIFI, err == WIFI_ERROR_NONE, E_SYSTEM, "Failed to wifi_set_device_state_changed_cb()");
-
- err = wifi_set_connection_state_changed_cb(OnWifiConnectionStateChanged, null);
- SysTryReturnResult(NID_NET_WIFI, err == WIFI_ERROR_NONE, E_SYSTEM, "Failed to wifi_set_connection_state_changed_cb()");
-
- err = wifi_set_rssi_level_changed_cb(OnWifiRssiLevelChanged, null);
- SysTryReturnResult(NID_NET_WIFI, err == WIFI_ERROR_NONE, E_SYSTEM, "Failed to wifi_set_rssi_level_changed_cb()");
-
- err = wifi_set_background_scan_cb(OnWifiBackgroundScanResultUpdated, null);
- SysTryReturnResult(NID_NET_WIFI, err == WIFI_ERROR_NONE, E_SYSTEM, "Failed to wifi_set_background_scan_cb()");
-
- wifi_get_connection_state(&__prevconnState);
-
- return E_SUCCESS;
-}
-
-void
-_WifiSystemAdapter::InitSingleton(void)
-{
- result r = E_SUCCESS;
- unique_ptr<_WifiSystemAdapter> pInst(new (std::nothrow) _WifiSystemAdapter());
-
- SysTryReturnVoidResult(NID_NET_WIFI, pInst != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
- r = pInst->Construct();
- SysTryReturnVoidResult(NID_NET_WIFI, r == E_SUCCESS, r, "[%s] Error occurred in construct.", GetErrorMessage(r));
-
- pInstance = pInst.release();
-
- std::atexit(DestroySingleton);
-}
-
-void
-_WifiSystemAdapter::DestroySingleton(void)
-{
- wifi_unset_connection_state_changed_cb();
- wifi_unset_device_state_changed_cb();
- wifi_unset_rssi_level_changed_cb();
- wifi_unset_background_scan_cb();
- wifi_deinitialize();
-}
-
-_WifiSystemAdapter*
-_WifiSystemAdapter::GetInstance(void)
-{
- static pthread_once_t onceBlock = PTHREAD_ONCE_INIT;
-
- if (!pInstance)
- {
- ClearLastResult();
- pthread_once(&onceBlock, InitSingleton);
-
- result r = GetLastResult();
- if (IsFailed(r))
- {
- onceBlock = PTHREAD_ONCE_INIT;
- }
- }
-
- return pInstance;
-}
-
-result
-_WifiSystemAdapter::RegisterManagerEventListener(_IWifiManagerEventListener& listener)
-{
- return __mgrEvtListenerList.Add(&listener);
-}
-
-result
-_WifiSystemAdapter::UnregisterManagerEventListener(_IWifiManagerEventListener& listener)
-{
- return __mgrEvtListenerList.Remove(&listener);
-}
-
-result
-_WifiSystemAdapter::Activate(void)
-{
- result r = E_SYSTEM;
- int err = WIFI_ERROR_NONE;
-
- err = wifi_activate(OnWifiActivated, null);
- _WifiConvertErrorResult(err == WIFI_ERROR_OPERATION_FAILED, r, E_FAILURE);
- _WifiConvertErrorResult(err == WIFI_ERROR_INVALID_OPERATION, r, E_INVALID_OPERATION);
- _WifiConvertErrorResult(err == WIFI_ERROR_NONE, r, E_SUCCESS);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to activate Wi-Fi. [0x%08X]", err);
-
- return E_SUCCESS;
-}
-
-result
-_WifiSystemAdapter::Deactivate(void)
-{
- result r = E_SYSTEM;
- int err = WIFI_ERROR_NONE;
-
- err = wifi_deactivate(OnWifiDeactivated, null);
- _WifiConvertErrorResult(err == WIFI_ERROR_OPERATION_FAILED, r, E_FAILURE);
- _WifiConvertErrorResult(err == WIFI_ERROR_INVALID_OPERATION, r, E_INVALID_OPERATION);
- _WifiConvertErrorResult(err == WIFI_ERROR_NONE, r, E_SUCCESS);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to deactivate Wi-Fi. [0x%08X]", err);
-
- return E_SUCCESS;
-}
-
-String
-_WifiSystemAdapter::GetMacAddress(void) const
-{
- int err = 0;
- char *pMacAddress;
- err = wifi_get_mac_address(&pMacAddress);
- String macAddress(_WifiUtility::ConvertMacAddress(pMacAddress));
- free(pMacAddress);
-
- return macAddress;
-}
-
-bool
-_WifiSystemAdapter::IsActivated(void) const
-{
- bool val = false;
- wifi_is_activated(&val);
-
- return val;
-}
-
-bool
-_WifiSystemAdapter::IsConnected(void) const
-{
- wifi_connection_state_e connectionState = WIFI_CONNECTION_STATE_DISCONNECTED;
-
- wifi_get_connection_state(&connectionState);
-
- switch (connectionState)
- {
- case WIFI_CONNECTION_STATE_CONNECTED:
- return true;
- default:
- return false;
- }
-}
-
-
-bool
-_WifiSystemAdapter::IsConnected(wifi_ap_h pApHandle) const
-{
- int err = WIFI_ERROR_NONE;
- bool isSame = false;
-
- if (IsConnected())
- {
- wifi_ap_h pConnectedApHandle = null;
- err = wifi_get_connected_ap(&pConnectedApHandle);
-
- if (err != WIFI_ERROR_NONE && pConnectedApHandle == null)
- {
- SysLog(NID_NET_WIFI, "Failed result from wifi_get_connected_ap() is 0x%x", err);
- return false;
- }
-
- String connectedBssId(_WifiUtility::GetBssIdFromApHandle(pConnectedApHandle));
- String targetBssId(_WifiUtility::GetBssIdFromApHandle(pApHandle));
-
- if (connectedBssId.CompareTo(targetBssId) == 0)
- {
- isSame = true;
- }
-
- (void)wifi_ap_destroy(pConnectedApHandle);
- }
-
- return isSame;
-}
-
-
-result
-_WifiSystemAdapter::Scan(void)
-{
- result r = E_FAILURE;
- int err = WIFI_ERROR_NONE;
-
- err = wifi_scan(OnWifiScanCompleted, null);
- _WifiConvertErrorResult(err == WIFI_ERROR_NONE, r, E_SUCCESS);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to scan for a nearby BSS. [0x%08X]", err);
-
- return E_SUCCESS;
-}
-
-WifiConnectionState
-_WifiSystemAdapter::GetConnectionState(void) const
-{
- WifiConnectionState currentState = WIFI_CONN_STATE_NOT_CONNECTED;
-
- wifi_foreach_found_aps(OnWifiEachAccessPointChecked, ¤tState);
-
- return currentState;
-}
-
-WifiBssInfo*
-_WifiSystemAdapter::GetConnectionTargetInfoN(void) const
-{
- WifiBssInfo* pBssInfo = null;
- int apRes = WIFI_ERROR_NONE;
- wifi_ap_h pApHandle = null;
-
- apRes = wifi_get_connected_ap(&pApHandle);
- SysTryReturn(NID_NET_WIFI, apRes != WIFI_ERROR_OUT_OF_MEMORY, null, E_OUT_OF_MEMORY,
- "[E_OUT_OF_MEMORY] Memory allocation failed.");
- SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_SYSTEM, "[E_SYSTEM] Failed to get the connected AP handle.");
-
- pBssInfo = _WifiUtility::CreateWifiBssInfoInstanceN(pApHandle);
- (void)wifi_ap_destroy(pApHandle);
- SysTryReturn(NID_NET_WIFI, pBssInfo != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
- return pBssInfo;
-}
-
-Tizen::Base::Collection::IList*
-_WifiSystemAdapter::GetSystemScanResultN(void) const
-{
- LinkedList* pBssInfoList = null;
-
- pBssInfoList = new (std::nothrow) LinkedList(SingleObjectDeleter);
- SysTryReturn(NID_NET_WIFI, pBssInfoList != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
- wifi_foreach_found_aps(OnWifiEachAccessPointFound, pBssInfoList);
-
- return pBssInfoList;
-}
-
-void
-_WifiSystemAdapter::OnWifiDeviceStateChanged(wifi_device_state_e state, void* pUserData)
-{
- result r = E_SUCCESS;
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- if(state == WIFI_DEVICE_STATE_ACTIVATED)
- {
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_ACTIVATED],[result:%s]", GetErrorMessage(r));
- pMgrEvtListener->OnWifiActivated(r);
- }
- else
- {
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_DEACTIVATED],[result:%s]", GetErrorMessage(r));
- pMgrEvtListener->OnWifiDeactivated(r);
- }
- }
-
- delete pEnum;
-}
-
-void
-_WifiSystemAdapter::OnWifiActivated(wifi_error_e errorCode, void* pUserData)
-{
- result r = E_FAILURE;
- _WifiConvertErrorResult(errorCode == WIFI_ERROR_NONE, r, E_SUCCESS);
-
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_ACTIVATED],[result:%s]", GetErrorMessage(r));
- pMgrEvtListener->OnWifiActivated(r);
- }
-
- delete pEnum;
-}
-
-void
-_WifiSystemAdapter::OnWifiDeactivated(wifi_error_e errorCode, void* pUserData)
-{
- result r = E_FAILURE;
- _WifiConvertErrorResult(errorCode == WIFI_ERROR_NONE, r, E_SUCCESS);
-
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_DEACTIVATED],[result:%s]", GetErrorMessage(r));
- pMgrEvtListener->OnWifiDeactivated(r);
- }
-
- delete pEnum;
-}
-
-void
-_WifiSystemAdapter::OnWifiConnected(wifi_error_e errorCode, void* pUserData)
-{
- result r = E_SUCCESS;
- _WifiConvertErrorResult(errorCode != WIFI_ERROR_NONE, r, E_FAILURE);
- _WifiConvertErrorResult(errorCode == WIFI_ERROR_ALREADY_EXISTS, r, E_SUCCESS);
- _WifiConvertErrorResult(errorCode == WIFI_ERROR_INVALID_KEY, r, E_AUTHENTICATION);
- _WifiConvertErrorResult(errorCode == WIFI_ERROR_NO_REPLY, r, E_NOT_RESPONDING);
- _WifiConvertErrorResult(errorCode == WIFI_ERROR_DHCP_FAILED, r, E_DHCP);
- SysTryLog(NID_NET_WIFI, r == E_SUCCESS, "Failed result from OnWifiConnected() is 0x%x.", errorCode);
-
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- if(r == E_SUCCESS)
- {
- char* pEssid = null;
- wifi_ap_h apHandler;
- int err = wifi_get_connected_ap(&apHandler);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_get_connected_ap() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- _WifiConvertErrorResult(err == WIFI_ERROR_OUT_OF_MEMORY, r, E_OUT_OF_MEMORY);
-
- err = wifi_ap_get_essid(apHandler, &pEssid);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_get_essid() is 0x%x.", err);
- String ssid(pEssid);
- free(pEssid);
-
- (void)wifi_ap_destroy(apHandler);
-
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTED],[result:%s]", GetErrorMessage(r));
- pMgrEvtListener->OnWifiConnected(ssid, r);
- }
- else
- {
- String ssid(L"");
-
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTED],[result:%s]", GetErrorMessage(r));
- pMgrEvtListener->OnWifiConnected(ssid, r);
- }
- }
-
- delete pEnum;
-}
-
-void
-_WifiSystemAdapter::OnWifiConnectionStateChanged(wifi_connection_state_e state, wifi_ap_h pApHandle, void *pUserData)
-{
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
-
- char* pEssid = null;
- int err = wifi_ap_get_essid(pApHandle, &pEssid);
- unique_ptr<char, _CharDeleter> pSsid(pEssid);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_get_essid() is 0x%x.", err);
- SysLog(NID_NET_WIFI, "The connection state is %s, ssid : %s", GetStringOfConnectionState(state), pSsid.get());
-
- if (pAdapter->__prevconnState == state)
- {
- SysLog(NID_NET_WIFI, "The connection state is same as the previous state.[%d]", state);
- return;
- }
-
- pAdapter->__prevconnState = state;
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- switch(state)
- {
- case WIFI_CONNECTION_STATE_CONNECTED:
- {
- String ssid(pSsid.release());
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- // Fire a CONNECTED event for notifying that the connection is established not by this system adapter.
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTED],[result:E_SUCCESS]");
- pMgrEvtListener->OnWifiConnected(ssid, E_SUCCESS);
-
- // Fire a CONNECTION_CHANGED event for notifying that the connection state is changed to 'CONNECTED' state.
- // This seems a little redundant but the purpose of it is quite different from CONNECTED event.
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTION_STATE_CHANGED],[State:WIFI_CONNECTION_STATE_CONNECTED]");
- pMgrEvtListener->OnWifiConnectionStateChanged(WIFI_CONN_STATE_CONNECTED);
- }
- }
- break;
-
- case WIFI_CONNECTION_STATE_DISCONNECTED:
- {
- wifi_connection_state_e connectionState = WIFI_CONNECTION_STATE_DISCONNECTED;
- wifi_get_connection_state(&connectionState);
-
- // Ignore if wifi state is connected.
- if (connectionState == WIFI_CONNECTION_STATE_CONNECTED)
- break;
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- // Fire a DISCONNECTED event for notifying that the connection is broken off not by this system adapter.
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_DISCONNECTED]");
- pMgrEvtListener->OnWifiDisconnected();
-
- // Fire a CONNECTION_CHANGED event for notifying that the connection state is changed to "IDLE' state.
- // This seems a little redundant but the purpose of it is quite different from DISCONNECTED event.
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTION_STATE_CHANGED],[State:WIFI_CONN_STATE_NOT_CONNECTED]");
- pMgrEvtListener->OnWifiConnectionStateChanged(WIFI_CONN_STATE_NOT_CONNECTED);
- }
- }
- break;
-
- case WIFI_CONNECTION_STATE_ASSOCIATION:
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- // Fire a CONNECTION_CHANGED event for notifying that the connection state is changed to "ASSOCIATING" state.
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTION_STATE_CHANGED],[State:WIFI_CONN_STATE_ASSOCIATING]");
- pMgrEvtListener->OnWifiConnectionStateChanged(WIFI_CONN_STATE_ASSOCIATING);
- }
- }
- break;
-
- case WIFI_CONNECTION_STATE_CONFIGURATION:
- {
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- // Fire a CONNECTION_CHANGED event for notifying that the connection state is changed to "CONFIGURING" state.
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_CONNECTION_STATE_CHANGED],[State:WIFI_CONN_STATE_CONFIGURING]");
- pMgrEvtListener->OnWifiConnectionStateChanged(WIFI_CONN_STATE_CONFIGURING);
- }
- }
- break;
-
- default:
- break;
- }
-
- delete pEnum;
-}
-
-bool
-_WifiSystemAdapter::OnWifiEachAccessPointFound(wifi_ap_h pApHandle, void* pUserData)
-{
- WifiBssInfo* pBssInfo = null;
- LinkedList* pBssInfoList = static_cast<LinkedList*>(pUserData);
- wifi_ap_h pApHandleClone = null;
-
- int err = wifi_ap_clone(&pApHandleClone, pApHandle);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_clone() is 0x%x.", err);
- pBssInfo = _WifiUtility::CreateWifiBssInfoInstanceN(pApHandleClone);
- // keep gonig even though creating one WifiBssInfo instance.
- SysTryReturn(NID_NET_WIFI, pBssInfo != null, true, GetLastResult(),
- "[%s] Propagating because of creating a new WifiBssInfo fails.", GetErrorMessage(GetLastResult()));
-
- pBssInfoList->Add(*pBssInfo);
-
- return true;
-}
-
-bool
-_WifiSystemAdapter::OnWifiEachAccessPointChecked(wifi_ap_h pApHandle, void* pUserData)
-{
- wifi_connection_state_e apState = WIFI_CONNECTION_STATE_DISCONNECTED;
- WifiConnectionState* pLocalState = static_cast<WifiConnectionState*>(pUserData);
- bool isContinued = true;
-
- int err = wifi_ap_get_connection_state(pApHandle, &apState);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_get_connection_state() is 0x%x.", err);
-
- switch (apState)
- {
- case WIFI_CONNECTION_STATE_ASSOCIATION:
- *pLocalState = WIFI_CONN_STATE_ASSOCIATING;
- isContinued = false;
- break;
- case WIFI_CONNECTION_STATE_CONFIGURATION:
- *pLocalState = WIFI_CONN_STATE_CONFIGURING;
- isContinued = false;
- break;
- case WIFI_CONNECTION_STATE_CONNECTED:
- *pLocalState = WIFI_CONN_STATE_CONNECTED;
- isContinued = false;
- break;
- case WIFI_CONNECTION_STATE_DISCONNECTED:
- default:
- *pLocalState = WIFI_CONN_STATE_NOT_CONNECTED;
- break;
- }
-
- return isContinued;
-}
-
-void
-_WifiSystemAdapter::OnWifiScanCompleted(wifi_error_e errorCode, void *pUserData)
-{
- LinkedList* pBssInfoList = null;
- result r = E_FAILURE;
- _WifiConvertErrorResult(errorCode == WIFI_ERROR_NONE, r, E_SUCCESS);
-
- pBssInfoList = new (std::nothrow) LinkedList(SingleObjectDeleter);
- SysTryReturnVoidResult(NID_NET_WIFI, pBssInfoList != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
- int err = wifi_foreach_found_aps(OnWifiEachAccessPointFound, pBssInfoList);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_foreach_found_aps() is 0x%x.", err);
-
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_SCAN_COMPLETED],[result:%s]", GetErrorMessage(r));
- pMgrEvtListener->OnWifiScanCompleted(pBssInfoList, r);
- }
-
- delete pBssInfoList;
- delete pEnum;
-}
-
-void
-_WifiSystemAdapter::OnWifiBackgroundScanResultUpdated(wifi_error_e errorCode, void* pUserData)
-{
- if (errorCode == WIFI_ERROR_NONE)
- {
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_SCAN_COMPLETED]");
- pMgrEvtListener->OnWifiSystemScanResultUpdated();
- }
-
- delete pEnum;
- }
-}
-
-result
-_WifiSystemAdapter::Connect(const WifiBssInfo& targetApInfo)
-{
- result r = E_SUCCESS;
- int err = WIFI_ERROR_NONE;
-
- wifi_ap_h pApHandle;
- wifi_security_type_e securityType;
- const _WifiBssInfoImpl* pBssInfoImpl = _WifiBssInfoImpl::GetInstance(targetApInfo);
- const WifiSecurityInfo* pSecurityInfo = targetApInfo.GetSecurityInfo();
- const _WifiSecurityInfoImpl* pSecurityInfoImpl = _WifiSecurityInfoImpl::GetInstance(*pSecurityInfo);
-
- pApHandle = static_cast <wifi_ap_h> (pBssInfoImpl->GetBssHandle());
-
- if(pApHandle == null)
- {
- SysLog(NID_NET_WIFI, "It's Hidden AP");
-
- // Sets SSID
- unique_ptr<char[]> pSsidTemp(_StringConverter::CopyToCharArrayN(targetApInfo.GetSsid()));
- SysTryReturnResult(NID_NET_WIFI, pSsidTemp != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- err = wifi_ap_create(pSsidTemp.get(), &pApHandle);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_create() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- _WifiConvertErrorResult(err == WIFI_ERROR_OUT_OF_MEMORY, r, E_OUT_OF_MEMORY);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to create handle of ap.");
-
- // Sets Authentication Type
- securityType = _WifiUtility::ConvertSecurityType(pSecurityInfo->GetAuthenticationType());
- err = wifi_ap_set_security_type(pApHandle, securityType);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_set_security_type() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to set authenticatino type.");
-
- // Sets Network Key
- unique_ptr<char[]> pKeyTemp(_StringConverter::CopyToCharArrayN(pSecurityInfoImpl->GetNetworkKey()));
- SysTryReturnResult(NID_NET_WIFI, pKeyTemp != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- err = wifi_ap_set_passphrase(pApHandle,pKeyTemp.get());
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_set_passphrase() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to set network key.");
- }
- else
- {
- SysTryReturnResult(NID_NET_WIFI, !IsConnected(pApHandle), E_INVALID_STATE,
- "There is already connected to the same access point.");
-
- unique_ptr<char[]> pKeyTemp;
- const char* pSecurityKey = null;
- if (pSecurityInfoImpl->GetNetworkKey().IsEmpty())
- {
- switch (targetApInfo.GetSecurityInfo()->GetEncryptionType())
- {
- case WIFI_ENCRYPTION_NONE:
- break;
-
- case WIFI_ENCRYPTION_WEP:
- pSecurityKey = reinterpret_cast <const char*>(pSecurityInfoImpl->GetNetworkKeyWep());
- break;
-
- case WIFI_ENCRYPTION_TKIP:
- pSecurityKey = reinterpret_cast <const char*>(pSecurityInfoImpl->GetNetworkKeyTkip());
- break;
-
- case WIFI_ENCRYPTION_AES:
- pSecurityKey = reinterpret_cast <const char*>(pSecurityInfoImpl->GetNetworkKeyAes());
- break;
-
- case WIFI_ENCRYPTION_TKIP_AES_MIXED:
- pSecurityKey = reinterpret_cast <const char*>(pSecurityInfoImpl->GetNetworkKeyTkip());
-
- if (strlen(pSecurityKey) == 0)
- {
- pSecurityKey = reinterpret_cast <const char*>(pSecurityInfoImpl->GetNetworkKeyAes());
- }
- break;
- default:
- break;
- }
- }
- else
- {
- if (targetApInfo.GetSecurityInfo()->GetEncryptionType() != WIFI_ENCRYPTION_NONE)
- {
- pKeyTemp.reset(_StringConverter::CopyToCharArrayN(pSecurityInfoImpl->GetNetworkKey()));
- SysTryReturnResult(NID_NET_WIFI, pKeyTemp != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
- pSecurityKey = pKeyTemp.get();
- }
- }
-
- err = wifi_ap_set_passphrase(pApHandle, pSecurityKey);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_set_passphrase() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to set network key.");
- }
-
- if (pSecurityInfoImpl->GetAuthenticationType() == WIFI_AUTHENTICATION_WPA ||
- pSecurityInfoImpl->GetAuthenticationType() == WIFI_AUTHENTICATION_WPA2)
- {
- wifi_eap_type_e eapType = _WifiUtility::ConvertEapType(pSecurityInfoImpl->GetEapType());
- err = wifi_ap_set_eap_type(pApHandle, eapType);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_set_eap_type() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- _WifiConvertErrorResult(err == WIFI_ERROR_INVALID_PARAMETER, r, E_INVALID_ARG);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to set eap type.");
-
- wifi_eap_auth_type_e eapAuthType = _WifiUtility::ConvertEapAuthType(pSecurityInfoImpl->GetEapType());
- err = wifi_ap_set_eap_auth_type(pApHandle, eapAuthType);
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_set_eap_auth_type() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- _WifiConvertErrorResult(err == WIFI_ERROR_INVALID_PARAMETER, r, E_INVALID_ARG);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to set eap authentication type.");
-
- err = wifi_ap_set_eap_passphrase(pApHandle, pSecurityInfoImpl->GetEapUserId(), pSecurityInfoImpl->GetEapPassword());
- SysTryLog(NID_NET_WIFI, err == WIFI_ERROR_NONE, "Failed result from wifi_ap_set_eap_passphrase() is 0x%x.", err);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
- _WifiConvertErrorResult(err == WIFI_ERROR_INVALID_PARAMETER, r, E_INVALID_ARG);
- SysTryReturnResult(NID_NET_WIFI, r == E_SUCCESS, r, "Failed to set eap authentication type.");
- }
-
- err = wifi_connect(pApHandle, OnWifiConnected, null);
- _WifiConvertErrorResult(err != WIFI_ERROR_NONE, r, E_FAILURE);
-
- return E_SUCCESS;
-}
-
-void
-_WifiSystemAdapter::OnWifiRssiLevelChanged(wifi_rssi_level_e rssiLevel, void *pUserData)
-{
- long rssi = _WifiUtility::ConvertLeveltoRssiValue(rssiLevel);
- _IWifiManagerEventListener* pMgrEvtListener = null;
- IEnumeratorT<_IWifiManagerEventListener*>* pEnum = null;
- _WifiSystemAdapter* pAdapter = _WifiSystemAdapter::GetInstance();
- pEnum = pAdapter->__mgrEvtListenerList.GetEnumeratorN();
-
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetCurrent(pMgrEvtListener);
-
- SysLog(NID_NET_WIFI, "Fire event [WIFI_EVENT_RSSI_LEVEL_CHANGED]");
- pMgrEvtListener->OnWifiRssiChanged(rssi);
- }
-
- delete pEnum;
-}
-
-const char*
-_WifiSystemAdapter::GetStringOfConnectionState(wifi_connection_state_e state)
-{
- const char* pStateStr[] =
- {
- "DISCONNECTED",
- "ASSOCIATION",
- "CONFIGURATION",
- "CONNECTED",
- };
-
- return pStateStr[state];
-}
-
-} } } // Tizen::Net::Wifi
return pBssInfo.release();
}
+result
+_WifiUtility::GetWifiBssInfoFromApHandle(wifi_ap_h& pApHandle, WifiBssInfo* pBssInfo)
+{
+ unique_ptr<WifiBssInfo> pBssInfoTemp;
+ _WifiBssInfoImpl* pBssInfoImpl = null;
+ result r = E_SUCCESS;
+ int apRes = WIFI_ERROR_NONE;
+
+ WifiSecurityInfo secuInfo;
+ _WifiSecurityInfoImpl* pSecuInfoImpl = null;
+
+ wifi_ip_config_type_e ipType = WIFI_IP_CONFIG_TYPE_NONE;
+ NetAddressScheme netIpScheme = NET_ADDRESS_SCHEME_NONE;
+ char* pAddrStr = null;
+ unique_ptr<IpAddress> pAddress;
+ wifi_proxy_type_e proxyType = WIFI_PROXY_TYPE_DIRECT;
+ NetProxyType netProxyType = NET_PROXY_TYPE_NONE;
+
+ pBssInfoTemp.reset(_WifiBssInfoImpl::CreateWifiBssInfoN());
+ SysTryReturnResult(NID_NET_WIFI, pBssInfoTemp != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ pBssInfoImpl = _WifiBssInfoImpl::GetInstance(*pBssInfoTemp);
+ pBssInfoImpl->SetBssHandle(pApHandle);
+
+ // SSID
+ char* pSsid = null;
+ apRes = wifi_ap_get_essid(pApHandle, &pSsid);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the SSID of the AP has failed. [0x%08X].", apRes);
+ pBssInfoImpl->SetSsid(String(pSsid));
+ free(pSsid);
+
+ // BSSID
+ char* pBssid = null;
+ apRes = wifi_ap_get_bssid(pApHandle, &pBssid);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the BSSID of the AP has failed. [0x%08X].", apRes);
+ pBssInfoImpl->SetBssId(ConvertMacAddress(pBssid));
+ free(pBssid);
+
+ // Security type - Authentication type & Encryption type
+ wifi_security_type_e secType;
+ apRes = wifi_ap_get_security_type(pApHandle, &secType);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the security type of the AP has failed. [0x%08X].", apRes);
+
+ wifi_encryption_type_e encType;
+ apRes = wifi_ap_get_encryption_type(pApHandle, &encType);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the encryption type of the AP has failed. [0x%08X].", apRes);
+
+ SysLog(NID_NET_WIFI, "SSID : %ls security type : %d encryption type : %d", pBssInfoImpl->GetSsid().GetPointer(), secType, encType);
+
+ pSecuInfoImpl = _WifiSecurityInfoImpl::GetInstance(secuInfo);
+ pSecuInfoImpl->SetAuthenticationType(ConvertAuthType(secType, encType));
+ pSecuInfoImpl->SetEncryptionType(ConvertEncryptionType(encType));
+ pBssInfoImpl->SetSecurityInfo(secuInfo);
+
+ // BSS Type
+ pBssInfoImpl->SetBssType(WIFI_BSS_TYPE_INFRASTRUCTURE);
+
+ // Radio Channel
+ int frequency = -1;
+ apRes = wifi_ap_get_frequency(pApHandle, &frequency);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the frequency band of the AP has failed. [0x%08X].", apRes);
+ pBssInfoImpl->SetRadioChannel(ConvertRadioChannel(frequency));
+
+ // RSSI
+ int rssi = -1;
+ apRes = wifi_ap_get_rssi(pApHandle, &rssi);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the RSSI value of the AP has failed. [0x%08X].", apRes);
+ pBssInfoImpl->SetRssi(ConvertPercentagetoRssiValue(rssi));
+
+ // Data Rate
+ int dataRate = -1;
+ apRes = wifi_ap_get_max_speed(pApHandle, &dataRate);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the MAX speed of the AP has failed. [0x%08X].", apRes);
+ pBssInfoImpl->SetDataRate(dataRate);
+
+ // Known.
+ bool isKnown = false;
+ apRes = wifi_ap_is_favorite(pApHandle, &isKnown);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Checking the AP is a known device has failed. [0x%08X].", apRes);
+ pBssInfoImpl->SetKnown(isKnown);
+
+ // IP Address Scheme. Only IPv4 as the address family is taken into consideration for now.
+ apRes = wifi_ap_get_ip_config_type(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &ipType);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE && ipType != WIFI_IP_CONFIG_TYPE_NONE, E_OPERATION_FAILED,
+ "Getting the IP address scheme to AP has failed. [0x%08X].", apRes);
+ netIpScheme = (ipType == WIFI_IP_CONFIG_TYPE_STATIC) ? NET_ADDRESS_SCHEME_STATIC : NET_ADDRESS_SCHEME_DYNAMIC;
+ pBssInfoImpl->SetLocalAddressScheme(netIpScheme);
+
+ if (netIpScheme == NET_ADDRESS_SCHEME_STATIC)
+ {
+ // IP Address. Only IPv4 as the address family is taken into consideration for now.
+ apRes = wifi_ap_get_ip_address(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the IP address to AP has failed. [0x%08X].", apRes);
+ pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+ r = GetLastResult();
+ free(pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, E_OPERATION_FAILED,
+ "Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+ pBssInfoImpl->SetLocalAddress(pAddress.release()); // ignore result
+
+ // Subnet Mask. Only IPv4 as the address family is taken into consideration for now.
+ apRes = wifi_ap_get_subnet_mask(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the subnet mask to AP has failed. [0x%08X].", apRes);
+ pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+ r = GetLastResult();
+ free(pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, E_OPERATION_FAILED,
+ "Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+ pBssInfoImpl->SetSubnetMaskAddress(pAddress.release()); // ignore result
+
+ // Default Gateway Address. Only IPv4 as the address family is taken into consideration for now.
+ apRes = wifi_ap_get_gateway_address(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the default gateway address to AP has failed. [0x%08X].", apRes);
+ pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+ r = GetLastResult();
+ free(pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, E_OPERATION_FAILED,
+ "Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+ pBssInfoImpl->SetDefaultGatewayAddress(pAddress.release()); // ignore result
+
+ // Primary DNS Address. Only IPv4 as the address family is taken into consideration for now.
+ apRes = wifi_ap_get_dns_address(pApHandle, 1, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the primary DNS address to AP has failed. [0x%08X].", apRes);
+ pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+ r = GetLastResult();
+ free(pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, E_OPERATION_FAILED,
+ "Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+ pBssInfoImpl->SetPrimaryDnsAddress(pAddress.release()); // ignore result
+
+ // Secondary DNS Address. Only IPv4 as the address family is taken into consideration for now.
+ apRes = wifi_ap_get_dns_address(pApHandle, 2, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the secondary DNS address to AP has failed. [0x%08X].", apRes);
+ pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+ r = GetLastResult();
+ free(pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, E_OPERATION_FAILED,
+ "Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+ pBssInfoImpl->SetSecondaryDnsAddress(pAddress.release()); // ignore result
+ }
+
+ // Proxy Type.
+ apRes = wifi_ap_get_proxy_type(pApHandle, &proxyType);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the proxy type to AP has failed. [0x%08X].", apRes);
+ netProxyType = (proxyType == WIFI_PROXY_TYPE_MANUAL) ? NET_PROXY_TYPE_MANUAL : NET_PROXY_TYPE_NONE;
+ pBssInfoImpl->SetProxyType(netProxyType);
+
+ if (netProxyType != NET_PROXY_TYPE_NONE)
+ {
+ // Proxy Address. Only IPv4 as the address family is taken into consideration for now.
+ apRes = wifi_ap_get_proxy_address(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+ SysTryReturnResult(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, E_OPERATION_FAILED,
+ "Getting the proxy address to AP has failed. [0x%08X].", apRes);
+ pBssInfoImpl->SetProxyAddress(String(pAddrStr)); // ignore result
+ free(pAddrStr);
+ }
+
+ *pBssInfo = *pBssInfoTemp.get();
+
+ return E_SUCCESS;
+}
+
+
void
_WifiUtility::WifiApClone(void*& pDestHandle, void* pSrcHandle)
{
r = TransExceptionsExclusive(r, E_FAILURE, E_OUT_OF_MEMORY);
SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Failed to construct a new BSS info list.", GetErrorMessage(r));
+ SysLog(NID_NET_WIFI, "Scan results : %d", count);
for (int i = 0; i < count; i++)
{
const WifiBssInfo* pSrcBssInfo = dynamic_cast<const WifiBssInfo*>(pSrcList->GetAt(i));
WifiBssInfo* pDescBssInfo = new (std::nothrow) WifiBssInfo(*pSrcBssInfo);
SysTryReturn(NID_NET_WIFI, pDescBssInfo != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+ SysLog(NID_NET_WIFI, "#%d SSID : %ls", i, pDescBssInfo->GetSsid().GetPointer());
+
r = pDescList->Add(*pDescBssInfo);
r = TransExceptionsExclusive(r, E_FAILURE, E_OUT_OF_MEMORY);
SysTryReturn(NID_NET_WIFI, r == E_SUCCESS, null, r, "[%s] Failed to add a new BSS info to the list.", GetErrorMessage(r));