Merged from Tizen2.2 30/13530/1 accepted/tizen/mobile/20131216.220438 submit/tizen/20131209.075925
authordukan.kim <dukan.kim@samsung.com>
Mon, 9 Dec 2013 06:54:20 +0000 (15:54 +0900)
committerdukan.kim <dukan.kim@samsung.com>
Mon, 9 Dec 2013 06:56:38 +0000 (15:56 +0900)
Change-Id: I6aa5b88fa4ac3e9a6236f782c0ee2d0260f8dfb2
Signed-off-by: dukan.kim <dukan.kim@samsung.com>
38 files changed:
CMakeLists.txt
inc/FNetBluetooth.h
inc/FNetBtBluetoothDevice.h
inc/FNetBtBluetoothHealth.h
inc/FNetBtBluetoothManager.h
inc/FNetBtBluetoothOppClient.h
inc/FNetBtBluetoothOppServer.h
inc/FNetBtBluetoothSppAcceptor.h
inc/FNetBtBluetoothSppInitiator.h
inc/FNetBtBluetoothTypes.h
inc/FNetBtIBluetoothDeviceEventListener.h
inc/FNetBtIBluetoothHealthEventListener.h
inc/FNetBtIBluetoothManagerEventListener.h
inc/FNetBtIBluetoothOppClientEventListener.h
inc/FNetBtIBluetoothOppServerEventListener.h
inc/FNetBtIBluetoothSppAcceptorEventListener.h
inc/FNetBtIBluetoothSppInitiatorEventListener.h
osp-bluetooth.pc.in
packaging/osp-bluetooth.spec
src/FNetBt_BluetoothConnectionEvent.cpp [deleted file]
src/FNetBt_BluetoothConnectionEvent.h [deleted file]
src/FNetBt_BluetoothConnectionEventArg.cpp [deleted file]
src/FNetBt_BluetoothConnectionEventArg.h [deleted file]
src/FNetBt_BluetoothGapSystemAdapter.cpp
src/FNetBt_BluetoothGapSystemAdapter.h [changed mode: 0644->0755]
src/FNetBt_BluetoothHdpSystemAdapter.cpp
src/FNetBt_BluetoothHdpSystemAdapter.h [changed mode: 0644->0755]
src/FNetBt_BluetoothIpcProxy.cpp
src/FNetBt_BluetoothIpcProxy.h [changed mode: 0644->0755]
src/FNetBt_BluetoothManagerImpl.cpp
src/FNetBt_BluetoothOppServerImpl.cpp
src/FNetBt_BluetoothOppSystemAdapter.cpp
src/FNetBt_BluetoothOppSystemAdapter.h [changed mode: 0644->0755]
src/FNetBt_BluetoothSppSystemAdapter.cpp
src/FNetBt_BluetoothSppSystemAdapter.h [changed mode: 0644->0755]
src/inc/FNetBt_BluetoothManagerImpl.h
src/inc/FNetBt_BluetoothOppServerImpl.h [changed mode: 0644->0755]
src/inc/FNetBt_IBluetoothConnectionEventListener.h [deleted file]

index a04d661..146baec 100755 (executable)
@@ -9,17 +9,17 @@ INCLUDE_DIRECTORIES(
        src
        src/inc
        /usr/include/chromium
-       /usr/include/glib-2.0
-  /usr/lib/glib-2.0/include
+       /usr/include/glib-2.0 
+       /usr/lib/glib-2.0/include
        /usr/include/system
        /usr/include/network
        /usr/include/osp
        /usr/include/osp/app
        /usr/include/osp/base
-       /usr/include/osp/io
+       /usr/include/osp/io     
        /usr/include/osp/net
-       /usr/include/osp/security
-       /usr/include/osp/system
+       /usr/include/osp/security       
+       /usr/include/osp/system 
 )
 
 SET (${this_target}_SOURCE_FILES
@@ -32,8 +32,6 @@ SET (${this_target}_SOURCE_FILES
     src/FNetBtBluetoothSppInitiator.cpp
     src/FNetBtBluetoothHealth.cpp
     src/FNetBt_BluetoothAdapterUtility.cpp
-    src/FNetBt_BluetoothConnectionEvent.cpp
-    src/FNetBt_BluetoothConnectionEventArg.cpp
     src/FNetBt_BluetoothDeviceEvent.cpp
     src/FNetBt_BluetoothDeviceEventArg.cpp
     src/FNetBt_BluetoothDeviceImpl.cpp
@@ -83,22 +81,39 @@ TARGET_LINK_LIBRARIES(${this_target} "-lpthread" )
 TARGET_LINK_LIBRARIES(${this_target} "-L/usr/lib/osp -losp-appfw -losp-net" )
 TARGET_LINK_LIBRARIES(${this_target} "-lcapi-network-bluetooth" )
 
-SET_TARGET_PROPERTIES(${this_target}
-       PROPERTIES
+SET_TARGET_PROPERTIES(${this_target} 
+       PROPERTIES 
        VERSION ${FULLVER}
        SOVERSION ${MAJORVER}
        CLEAN_DIRECT_OUTPUT 1
        )
 
-INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp
-                               FILES_MATCHING PATTERN "*.so*"
-                               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ADD_CUSTOM_COMMAND(TARGET ${this_target}
+    POST_BUILD
+               COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} 
+               COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${MAJORVER}
+               COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
+               COMMENT "strip ${this_target}"
+               )   
+
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp 
+                               FILES_MATCHING PATTERN "*.so*" 
+                               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                                          
+                                                                               GROUP_EXECUTE GROUP_READ
+                                                                               WORLD_EXECUTE WORLD_READ)
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/debug/ DESTINATION lib/osp/debug 
+                               FILES_MATCHING PATTERN "*.so*" 
+                               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                                          
                                                                                GROUP_EXECUTE GROUP_READ
                                                                                WORLD_EXECUTE WORLD_READ)
 
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/inc/ DESTINATION include/osp FILES_MATCHING PATTERN "*.h")
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/src/inc/ DESTINATION include/osp/net FILES_MATCHING PATTERN "*.h")
 
+SET(PC_NAME ${this_target})
+SET(VERSION ${FULLVER})
+SET(PC_LDFLAGS -l${this_target})
+
 # pkgconfig file
 CONFIGURE_FILE(${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${this_target}.pc DESTINATION lib/pkgconfig)
\ No newline at end of file
index 6c611e3..1ea0688 100755 (executable)
@@ -44,20 +44,20 @@ namespace Tizen { namespace Net
 {
 /**
  * @namespace   Tizen::Net::Bluetooth
- * @brief       This namespace contains the classes and interfaces for %Bluetooth services.
+ * @brief       This namespace contains classes and interfaces for %Bluetooth services.
  * @since       2.0
  *
  * @remarks     @b Header @b %file: @b \#include @b <FNet.h> @n
- *              @b Library : @b osp-bluetooth @n
+ *              @b Library: @b osp-bluetooth
+ *
+ * The %Bluetooth namespace contains classes and interfaces for %Bluetooth services that provide mechanisms for
+ * peer-to-peer communication that involves connecting, sending, and receiving data over a %Bluetooth connection. It
+ * consists of submodules that support different profiles such as GAP, OPP, and SPP.
  *
- * The %Bluetooth namespace contains the classes and interfaces for %Bluetooth services that provide the mechanisms for
- * peer-to-peer communication involving connecting, sending, and receiving data over a %Bluetooth connection. It
- * consists of the submodules that support different profiles such as GAP, OPP, and SPP.
- * @n
  * For more information on the %Bluetooth namespace features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
  *
- * The following diagram illustrates the relationships between the classes within the %Bluetooth namespace.
+ * The following diagram illustrates the relationships between the classes belonging to the %Bluetooth namespace.
  * @image html net_bluetooth_using_the_apis_classdiagram.png
  *
  */
index f1806dc..e698290 100755 (executable)
@@ -79,14 +79,14 @@ public:
         *
         * @param[in]   address                 The %Bluetooth device address
         * @param[in]   deviceName              The name of the device
-        * @param[in]   majorClassType          The major class type of a %Bluetooth device
-        * @param[in]   minorClassType          The minor class type of a %Bluetooth device
+        * @param[in]   majorClassType          The major class type of the %Bluetooth device
+        * @param[in]   minorClassType          The minor class type of the %Bluetooth device
         * @param[in]   serviceClassList        The service class type list
         * @param[in]   serviceList             The service type list
         * @remarks
-        *              - The @c serviceClassList parameter consists of Bluetooth::BluetoothServiceClassType values, which
+        *              - The @c serviceClassList consists of Bluetooth::BluetoothServiceClassType values, which
         *                are joined by the logical OR operator.
-        *              - The @c serviceList parameter consists of Bluetooth::BluetoothServiceType values which are joined
+        *              - The @c serviceList consists of Bluetooth::BluetoothServiceType values which are joined
         *                by the logical OR operator.
         * @endif
         */
@@ -99,7 +99,7 @@ public:
         *
         * @since 2.0
         *
-        * @param[in]   value                   An instance of %BluetoothDevice
+        * @param[in]   value                   An instance of %BluetoothDevice to copy
         */
        BluetoothDevice(const BluetoothDevice& value);
 
@@ -111,23 +111,23 @@ public:
        virtual ~BluetoothDevice(void);
 
        /**
-        * Gets the address of a %Bluetooth device which consists of @c 6 bytes.
+        * Gets the address of the %Bluetooth device which consists of @c 6 bytes.
         *
         * @since       2.0
         *
-        * @return      The address of a %Bluetooth device
+        * @return      The address of the %Bluetooth device
         */
        const Tizen::Base::ByteBuffer* GetAddress(void) const;
 
        /**
-        * Sets the address of a %Bluetooth device.
+        * Sets the address of the %Bluetooth device.
         *
         * @since 2.0
         *
         * @return      An error code
-        * @param[in]   address                 An address of the %Bluetooth device
+        * @param[in]   address                 The address of the %Bluetooth device
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_INVALID_ARG           The specified address is invalid. @n
+        * @exception   E_INVALID_ARG           The specified input parameter is invalid. @n
         *                                      The size of the address should be @c 6 bytes.
         * @remarks     Setting the address of the %BluetoothDevice instance which is obtained from the paired list does not
         *              affect the information of the paired list in the system.
@@ -187,7 +187,7 @@ public:
         *
         * @since       2.0
         *
-        * @return      The service class of the device
+        * @return      The service class of the %Bluetooth device
         */
        unsigned long GetServiceClassList(void) const;
 
@@ -218,7 +218,7 @@ public:
         *
         * @return      @c true if both the instances are equal, @n
         *              else @c false
-        * @param[in]   obj                    The object to compare
+        * @param[in]   obj        The object to compare
         */
        virtual bool Equals(const Tizen::Base::Object& obj) const;
 
@@ -236,18 +236,19 @@ public:
         *
         * @brief <i> [Deprecated]  </i>
         * @deprecated  This method is deprecated because the type of AppControl result has changed. Instead of using this
-        *              method, GetInstanceFromAppControlResultN(const Tizen::Base::Collection::IMap&) is
+        *              method, the GetInstanceFromAppControlResultN(const Tizen::Base::Collection::IMap&) method is
         *              recommended.
         *
         * @since       2.0
         *
-        * @return      The %Bluetooth device containing the specified information extracted from the input data if successful, @n
-        *              else @c null
+        * @return      The %Bluetooth device that contains the specified information extracted from the input data, @n
+        *              else @c null if it fails
         * @param[in]   appControlResult        The data list, which is the result of the %Bluetooth AppControl
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_INVALID_ARG           The specified list contains an invalid value. @n
-        *                                      The result of %Bluetooth AppControl is only permitted to be used as an input
-        *                                      argument.
+        * @exception   E_INVALID_ARG           Either of the following conditions has occurred:
+        *                                      - The specified list contains an invalid value.
+        *                                      - The result of %Bluetooth AppControl is only permitted to be used as an input
+        *                                        argument.
         * @remarks     The specific error code can be accessed using the GetLastResult() method.
         */
        static BluetoothDevice* GetInstanceFromAppControlResultN(const Tizen::Base::Collection::IList& appControlResult);
@@ -257,13 +258,14 @@ public:
         *
         * @since       2.1
         *
-        * @return      The %Bluetooth device containing the specified information extracted from the input data if successful, @n
-        *              else @c null
+        * @return      The %Bluetooth device that contains the specified information extracted from the input data, @n
+        *              else @c null if it fails
         * @param[in]   appControlResult        The data map, which is the result of the %Bluetooth AppControl
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_INVALID_ARG           The specified map contains an invalid value. @n
-        *                                      The result of %Bluetooth AppControl is only permitted to be used as an input
-        *                                      argument.
+        * @exception   E_INVALID_ARG           Either of the following conditions has occurred:
+        *                                      - The specified map contains an invalid value.
+        *                                      - The result of %Bluetooth AppControl is only permitted to be used as an input
+        *                                        argument.
         * @remarks     The specific error code can be accessed using the GetLastResult() method.
         * @see         <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_bluetooth.htm">Bluetooth
         *              AppControl</a>.
index 0e335c9..c9971c6 100755 (executable)
@@ -42,28 +42,31 @@ class _BluetoothHealthImpl;
 
 /**
  * @class   BluetoothHealth
- * @brief   This class provides the methods to handle the %Bluetooth Health Device Profile (HDP), such as the
+ * @brief   This class provides methods to handle the %Bluetooth Health Device Profile (HDP), such as
  *          establishing a connection and exchanging data through the data channel.
  * @since 2.0
  *
  * @final   This class is not intended for extension.
  *
- * This %BluetoothHealth class provides the methods to handle the %Bluetooth Health Device Profile (HDP), which is a
+ * This %BluetoothHealth class provides methods to handle the %Bluetooth Health Device Profile (HDP), which is a
  * profile that defines the requirements for qualified %Bluetooth healthcare and fitness (referred to as 'health')
  * device implementations. @n
- * This class allows Sink device such as mobile phone to establish a connection and exchange data to Source devices
+ * This class allows a sink device such as a mobile phone to establish a connection and exchange data to source devices
  * such as blood pressure monitors, weight scales, glucose meters, thermometers, and pulse oximeters.
  *
  * For more information on the class features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
+ *
+ * The following diagram illustrates the interactions between this class and the application.
+ * @image html net_bluetooth_health_sequence_diagram.png
  */
 class _OSP_EXPORT_ BluetoothHealth
        : public Tizen::Base::Object
 {
 public:
        /**
-        * The object is not fully constructed after this constructor is called. For full construction, the Construct()
-        * method must be called right after calling this constructor.
+        * 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
         */
@@ -83,7 +86,7 @@ public:
         * @feature     %http://tizen.org/feature/network.bluetooth
         *
         * @return      An error code
-        * @param[in]   listener                The event listener for the %BluetoothHealth @n
+        * @param[in]   listener                The event listener for %BluetoothHealth @n
         *                                      The specified listener must be allocated at heap, not stack.
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_OUT_OF_MEMORY         The memory is insufficient.
@@ -98,9 +101,9 @@ public:
        result Construct(IBluetoothHealthEventListener& listener);
 
        /**
-        * Starts %Bluetooth health as a role of sink with the specified data type. @n
-        * One %BluetoothHealth instance supports only a sink role with the specific data type at one time and only one
-        * sink role for the specific data type can be enabled system-widely. @n
+        * Starts %BluetoothHealth as a role of sink with the specified data type. @n
+        * One %BluetoothHealth instance supports only one sink role with the specific data type at one time and only one
+        * sink role for the specific data type can be enabled system-wide. @n
         * For providing sink roles with various data types, make multiple %BluetoothHealth instances with different data types.
         *
         * @since 2.0
@@ -109,25 +112,25 @@ public:
         *
         * @return      An error code
         * @param[in]   dataType                The type of data used in communication which is defined in ISO/IEEE
-        *                                      11073-20601 and represents type of health device such as thermometer,
+        *                                      11073-20601 and represents the type of health device such as thermometer,
         *                                      heart rate monitor, weight scale, and so on
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_INVALID_STATE         %Bluetooth is not activated.
         * @exception   E_IN_PROGRESS           The sink role with the specified data type has already started.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the sink role already started with another data type.
+        *                                      For example, the sink role has already started with another data type.
         * @exception   E_SERVICE_UNAVAILABLE   The sink role with the specified data type is currently busy with another
         *                                      instance or application.
         * @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
         * @exception   E_OPERATION_FAILED      The method has failed.
         */
        result StartAsSink(int dataType);
 
        /**
-        * Stops %Bluetooth health as a role of sink. @n
-        * The %Stop() method disconnects all established channels before stop.
+        * Stops %BluetoothHealth as a role of sink. @n
+        * The %Stop() method disconnects all established channels before stopping %BluetoothHealth.
         *
         * @since 2.0
         * @privlevel   public
@@ -140,13 +143,13 @@ public:
         *                                      operation. @n
         *                                      For example, the sink role is not started yet.
         * @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
         * @exception   E_OPERATION_FAILED      The method has failed.
         */
        result Stop(void);
 
        /**
-        * Connects to a new channel with a remote health device which has source role. @n
+        * Connects to a new channel with a remote health device which has source role. @n
         * The %ConnectToSource() method establishes a channel after the source device accepts the request.
         *
         * @since 2.0
@@ -162,10 +165,10 @@ public:
         *                                      For example, the sink role is not started yet.
         * @exception   E_DEVICE_BUSY           The pairing and connection process is in progress.
         * @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
         * @exception   E_OPERATION_FAILED      The method has failed.
         * @remarks     If the local device is not paired with the specified target device, the pairing process starts
-        *              internally before the connect request is sent.
+        *              internally before the connection request is sent.
         * @see         IBluetoothHealthEventListener::OnHealthConnected()
         */
        result ConnectToSource(const BluetoothDevice& remoteDevice);
@@ -173,7 +176,7 @@ public:
        /**
         * Disconnects the connection which has the specified channel ID. @n
         * After calling the %Disconnect() method, the IBluetoothHealthEventListener::OnHealthDisconnected() method is called regardless of
-        * whether this method is called during connection or before connection is established.
+        * whether this method is called during the connection or before the connection is established.
         *
         * @since 2.0
         * @privlevel   public
@@ -181,15 +184,15 @@ public:
         *
         * @return      An error code
         * @param[in]   channelId               The ID of the specified channel to disconnect @n
-        *                                      The ID can be obtained by IBluetoothHealthEventListener::OnHealthConnected()
-        *                                      after the specific channel is established.
+        *                                      The ID can be obtained by the IBluetoothHealthEventListener::OnHealthConnected()
+        *                                      method after the specific channel is established.
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_INVALID_STATE         %Bluetooth is not activated.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, there is no connection with the specified channel ID.
         * @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
         * @exception   E_OPERATION_FAILED      The method has failed.
         */
        result Disconnect(int channelId);
@@ -203,8 +206,8 @@ public:
         *
         * @return      An error code
         * @param[in]   channelId               The ID of the specified channel on which the data is sent @n
-        *                                      The ID can be obtained by IBluetoothHealthEventListener::OnHealthConnected()
-        *                                      after the specific channel is established.
+        *                                      The ID can be obtained by the IBluetoothHealthEventListener::OnHealthConnected()
+        *                                      method after the specific channel is established.
         * @param[in]   buffer                  The data to send
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_INVALID_STATE         %Bluetooth is not activated.
@@ -213,7 +216,7 @@ public:
         *                                      For example, there is no connection with the specified channel ID.
         * @exception   E_INVALID_ARG           The input buffer has no data.
         * @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
         * @exception   E_OPERATION_FAILED      The operation has failed.
         * @see         IBluetoothHealthEventListener::OnHealthDataReceived()
         */
index 1999c50..36b9e0a 100755 (executable)
@@ -49,23 +49,26 @@ class _BluetoothManagerImpl;
 
 /**
  * @class   BluetoothManager
- * @brief   This class is used to obtain information about the local device or the paired devices, and to configure
+ * @brief   This class is used to obtain information about a local device or a paired device and also helps configure
  *          the %Bluetooth stack.
  * @since   2.0
  *
- * The %BluetoothManager class is used to obtain information about the local device or the paired devices and to configure the
+ * The %BluetoothManager class is used to obtain information about a local device or a paired device and also helps configure the
  * %Bluetooth stack.
  *
  * For more information on the class features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
+ *
+ * The following diagram illustrates the interactions between this class and the application.
+ * @image html net_bluetooth_manager_sequence_diagram.png
  */
 class _OSP_EXPORT_ BluetoothManager
        : public Tizen::Base::Object
 {
 public:
        /**
-        * The object is not fully constructed after this constructor is called. For full construction, the Construct()
-        * method must be called right after calling this constructor.
+        * 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
         */
@@ -113,7 +116,7 @@ public:
         *                                      For example, %Bluetooth is already activated.
         * @exception   E_OUT_OF_MEMORY         The memory is insufficient.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @see         IBluetoothManagerEventListener::OnBluetoothActivated()
         */
@@ -131,10 +134,10 @@ public:
         * @exception   E_IN_PROGRESS           The %Bluetooth 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 %Bluetooth is already deactivated.
+        *                                      For example, %Bluetooth is already deactivated.
         * @exception   E_OUT_OF_MEMORY         The memory is insufficient.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @see         IBluetoothManagerEventListener::OnBluetoothDeactivated()
         */
@@ -146,14 +149,14 @@ public:
         *
         * @brief <i> [Deprecated]  </i>
         * @deprecated  This method is deprecated because multiple clients as well as multiple SPP servers with unique
-        *              service UUIDs are supported. In case of OPP server, invoke
-        *              BluetoothOppServer::StartService() directly without checking OPP server's availability.
-        *              If a new OPP server is not available, the method returns the E_SERVICE_UNAVAILABLE exception.
+        *              service UUIDs are supported. In case of the OPP server, invoke
+        *              BluetoothOppServer::StartService() directly without checking the OPP server's availability.
+        *              If a new OPP server is not available, the method returns the @c E_SERVICE_UNAVAILABLE exception.
         * @since       2.0
         *
         * @return      @c true if the specified type of connection is available, @n
         *              else @c false
-        * @param[in]   type                    The connection type
+        * @param[in]   type            The connection type
         *
         * @endif
         */
@@ -165,7 +168,7 @@ public:
         *
         * @brief <i> [Deprecated]  </i>
         * @deprecated  This method is deprecated because the return value of this method is a dangling pointer if this
-        *              instance of %BluetoothManager is deleted. In addition to this, the %BluetoothDevice class
+        *              instance of %BluetoothManager is deleted. In addition to this, the BluetoothDevice class
         *              represents only remote devices since Tizen. Instead of using this method, the GetLocalDeviceAddress()
         *              and GetLocalDeviceName() methods are recommended.
         * @since       2.0
@@ -185,8 +188,8 @@ public:
         * @since       2.0
         *
         * @return      The local %Bluetooth device address @n
-        *              The address is expressed as a @c 6 byte hexadecimal value delimited by colons. @n
-        *              For example, "00:3D:47:EF:8A:03".
+        *              The address is expressed as a @c 6 byte hexadecimal value delimited by colons, @n
+        *              for example, "00:3D:47:EF:8A:03".
         */
        Tizen::Base::String GetLocalDeviceAddress(void) const;
 
@@ -204,7 +207,7 @@ public:
         * Gets the operational mode of the %Bluetooth unit.
         *
         * @brief <i> [Deprecated]  </i>
-        * @deprecated  %BluetoothDeviceStateType is deprecated. Therefore, this method is also deprecated, because the
+        * @deprecated  BluetoothDeviceStateType is deprecated. Therefore, this method is also deprecated, because the
         *              return value of this method is of type %BluetoothDeviceStateType. Instead of using this method, the
         *              IsActivated() and GetDiscoverableMode() methods are recommended.
         *
@@ -246,26 +249,26 @@ public:
         * @page        BluetoothManagerGetDiscoverableModePage Compatibility for GetDiscoverableMode()
         *
         * @section     BluetoothManagerGetDiscoverableModePageIssueSection Issues
-        *              Implementation of this method in API versions prior to 2.0 has the following issue: @n
+        *              Implementation of this method in %Tizen API versions prior to 2.0 has the following issue: @n
         *
         *              -# The always discoverable mode and the discoverable mode with a certain amount of time cannot be
-        *              differentiated. BT_DISC_MODE_DISCOVERABLE of BluetoothDiscoverableMode means both.
+        *              differentiated. ::BT_DISC_MODE_DISCOVERABLE of BluetoothDiscoverableMode means both.
         *
         * @section     BluetoothManagerGetDiscoverableModePageSolutionSection Resolutions
-        *              The issue mentioned above is resolved in API version 2.0, and it is recommended to use API version
-        *              3.0 or above. @n
+        *              The issue mentioned above is resolved in %Tizen API version 2.0, and it is recommended to use %Tizen
+        *              API version 3.0 or above. @n
         *
-        *              -# The new element, BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE, is added into BluetoothDiscoverableMode
-        *              in API version 2.0, Therefore, BT_DISC_MODE_DISCOVERABLE means the always discoverable mode and
-        *              BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE means the discoverable mode with a certain amount of time.
+        *              -# The new element, ::BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE, is added into BluetoothDiscoverableMode
+        *              in %Tizen API version 2.0, therefore, ::BT_DISC_MODE_DISCOVERABLE means the always discoverable mode and
+        *              @c BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE means the discoverable mode with a certain amount of time.
         * @endif
         */
 
        /**
         * Gets the remaining time, in seconds, until the discoverable mode is changed from
-        * ::BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE to be ::BT_DISC_MODE_NOT_DISCOVERABLE. @n
-        * The %GetRemainingTimeAsDiscoverable() method is valid only if the current discoverable mode is @c
-        * BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE.
+        * ::BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE to ::BT_DISC_MODE_NOT_DISCOVERABLE. @n
+        * The %GetRemainingTimeAsDiscoverable() method is valid only if the current discoverable mode is
+        * @c BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE.
         *
         * @since 2.0
         *
@@ -285,7 +288,7 @@ public:
        bool IsDiscoveryInProgress(void) const;
 
        /**
-        * Sets a name of the local device. @n
+        * Sets the name of the local device. @n
         * The searching device detects the local devices in close proximity based on the specified device name, and the
         * name is only valid while an application is active.
         *
@@ -300,7 +303,7 @@ public:
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_INVALID_ARG           The specified device name is an empty string.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @remarks     This method does not affect the system settings.
         */
@@ -319,11 +322,11 @@ public:
         *                                      The specified duration is adopted only if the specified @c mode is
         *                                      @c BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE.
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_INVALID_ARG           The specified @c seconds should be greater than 0 if the specified @c mode
+        * @exception   E_INVALID_ARG           The specified @c seconds should be greater than @c 0 if the specified @c mode 
         *                                      is @c BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE.
         * @exception   E_INVALID_OPERATION     %Bluetooth is not 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
+        * @exception   E_USER_NOT_CONSENTED    The user has blocked the application from calling this method. @b Since: @b 2.1
         * @exception   E_SYSTEM                A system error has occurred.
         * @see         IBluetoothManagerEventListener::OnBluetoothDiscoverableModeChanged()
         */
@@ -357,7 +360,7 @@ public:
         *              is recommended.
         * @since       2.0
         *
-        * @return      The instance of %BluetoothDevice containing the specified address, @n
+        * @return      An instance of BluetoothDevice that contains the specified address, @n
         *              else @c null if the search is not successful
         * @param[in]   deviceAddress           The address to locate
         * @exception   E_SUCCESS               The method is successful.
@@ -368,11 +371,11 @@ public:
        const BluetoothDevice* GetPairedDeviceByAddress(const Tizen::Base::ByteBuffer& deviceAddress) const;
 
        /**
-        * Gets an element that matches a %Bluetooth address.
+        * Gets the element that matches a %Bluetooth address.
         *
         * @since       2.0
         *
-        * @return      The instance of %BluetoothDevice containing the specified address, @n
+        * @return      An instance of BluetoothDevice that contains the specified address, @n
         *              else @c null if the search is not successful
         * @param[in]   deviceAddress           The address to locate
         * @exception   E_SUCCESS               The method is successful.
@@ -387,7 +390,7 @@ public:
         *
         * @since       2.0
         *
-        * @return      A list containing the matching devices, @n
+        * @return      The list that contains the matching devices, @n
         *              else @c null if the search is not successful
         * @param[in]   deviceName              The name of the device to locate
         * @exception   E_SUCCESS               The method is successful.
@@ -404,15 +407,15 @@ public:
         * @brief <i> [Deprecated]  </i>
         * @deprecated  This method is deprecated because the return value of this method is a dangling pointer, if this
         *              instance of %BluetoothManager is deleted. In addition to this, it is also an invalid pointer if the
-        *              paired device list is updated internally. Instead of using this method, GetPairedDeviceListN() and
-        *              Tizen::Base::Collection::IList::GetAt() are recommended.
+        *              paired device list is updated internally. Instead of using this method, the GetPairedDeviceListN() and
+        *              Tizen::Base::Collection::IList::GetAt() methods are recommended.
         * @since       2.0
         *
-        * @return      The instance of %BluetoothDevice at the specified index, @n
+        * @return      An instance of BluetoothDevice at the specified index, @n
         *              else @c null if there is no element
         * @param[in]   index                   The index in the list
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_OBJ_NOT_FOUND         The specified index is not found in the paired device list.
+        * @exception   E_OBJ_NOT_FOUND         The specified input parameter is not found in the paired device list.
         * @remarks     The specific error code can be accessed using the GetLastResult() method.
         * @endif
         */
@@ -429,8 +432,8 @@ public:
         *              GetPairedDeviceListN() is recommended.
         * @since       2.0
         *
-        * @return      A pointer to the paired device list on success, @n
-        *              else @c null
+        * @return      A pointer to the paired device list, @n
+        *              else @c null if it fails
         * @exception   E_SUCCESS               The method is successful.
         * @remarks     The specific error code can be accessed using the GetLastResult() method.
         * @endif
@@ -442,8 +445,8 @@ public:
         *
         * @since       2.0
         *
-        * @return      A pointer to the paired device list on success, @n
-        *              else @c null
+        * @return      A pointer to the paired device list, @n
+        *              else @c null if it fails
         * @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.
@@ -475,10 +478,10 @@ public:
         * @return      An error code
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_IN_PROGRESS           The device discovery process is in progress.
-        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of this
+        * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @see         IBluetoothDeviceEventListener::OnBluetoothDiscoveryStarted()
         * @see         IBluetoothDeviceEventListener::OnBluetoothRemoteDeviceFoundN()
@@ -496,11 +499,11 @@ public:
         * @return      An error code
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_IN_PROGRESS           The termination of the device discovery process is in progress.
-        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of this
+        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, the discovery has not started as yet.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @see         IBluetoothDeviceEventListener::OnBluetoothDiscoveryDone()
         */
@@ -514,15 +517,15 @@ public:
         * @privilege   %http://tizen.org/privilege/bluetooth.gap
         *
         * @return      An error code
-        * @param[in]   pairedDevice            A remote device that is already paired with the local device
+        * @param[in]   pairedDevice            The remote device that is already paired with the local device
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_IN_PROGRESS           The retrieving is in progress.
-        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of this
+        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, the discovery is in progress.
         * @exception   E_NOT_PAIRED            The input device is not found in the paired device list.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @remarks     The target remote device should be a paired device.
         * @see         IBluetoothDeviceEventListener::OnBluetoothServiceListReceived()
@@ -539,15 +542,15 @@ public:
         * @return      An error code
         * @param[in]   remoteDevice            The remote %Bluetooth device to pair with
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of this
+        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the %Bluetooth is not activated.
-        * @exception   E_DEVICE_BUSY           The device cannot be approached because other operation is in progress.
+        *                                      For example, %Bluetooth is not activated.
+        * @exception   E_DEVICE_BUSY           The device cannot be approached because another operation is in progress.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @remarks     IBluetoothDeviceEventListener::OnBluetoothPaired() is called if the pairing is successful, @n
-        *              IBluetoothDeviceEventListener::OnBluetoothPairingFailed() if the pairing has failed.
+        *              otherwise IBluetoothDeviceEventListener::OnBluetoothPairingFailed() is called if the pairing has failed.
         */
        result Pair(const BluetoothDevice& remoteDevice);
 
@@ -560,20 +563,20 @@ public:
         *
         * @return      An error code
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of this
+        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, the pairing process is not in progress.
         * @exception   E_IN_PROGRESS           The termination of the pairing process is in progress.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
-        * @remarks     If the canceling of the pairing process is successful, @n
+        * @remarks     If the cancelling of the pairing process is successful, @n
         *              IBluetoothDeviceEventListener::OnBluetoothPairingFailed() is called with @c E_OPERATION_CANCELED.
         */
        result CancelPair(void);
 
        /**
-        * Unpairs with a paired device. @n
+        * Unpairs a paired device. @n
         * The process of unpairing is to remove a specified device from the paired device list. No notification is
         * transmitted to the remote device. @n
         * The %Unpair() method is synchronous. Only when the result of this method is @c E_SUCCESS, the unpaired event is fired.
@@ -585,13 +588,13 @@ public:
         * @return      An error code
         * @param[in]   pairedDevice            The paired device to unpair
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of this
+        * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the %Bluetooth is not activated, or retrieving the service
+        *                                      For example, %Bluetooth is not activated, or retrieving the service
         *                                      list is in progress.
         * @exception   E_NOT_PAIRED            The input device is not found in the paired device list.
         * @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
         * @exception   E_SYSTEM                A system error has occurred.
         * @see         IBluetoothDeviceEventListener::OnBluetoothUnpaired()
         */
index 522b46d..5232a6a 100755 (executable)
@@ -49,17 +49,20 @@ class _BluetoothOppClientImpl;
  *
  * The %BluetoothOppClient class provides methods to handle the %Bluetooth Object Push Profile (OPP) client, such as the outgoing
  * connection requests.
- * @n
+ * 
  * For more information on the class features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
+ *
+ * The following diagram illustrates the interactions between this class and the application.
+ * @image html net_bluetooth_oppclient_sequence_diagram.png
  */
 class _OSP_EXPORT_ BluetoothOppClient
        : public Tizen::Base::Object
 {
 public:
        /**
-        * The object is not fully constructed after this constructor is called. For full construction, the Construct() method
-        * must be called right after calling this constructor.
+        * 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
         */
@@ -109,13 +112,13 @@ public:
         *
         * @return      An error code
         * @param[in]   remoteDevice                The remote OPP server
-        * @param[in]   filePath                    The path of the source file
+        * @param[in]   filePath                    The path to the source file
         * @exception   E_SUCCESS                   The method is successful.
         * @exception   E_INVALID_STATE             This instance is in an invalid state. @n
         *                                          For example, %Bluetooth is not activated.
         * @exception   E_IN_PROGRESS               The push process is in progress.
         * @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
         * @exception   E_SERVICE_UNAVAILABLE       The OPP service is unavailable.
         * @exception   E_INACCESSIBLE_PATH         The specified @c filePath is inaccessible.
         * @exception   E_REMOTE_DEVICE_NOT_FOUND   The input device is not found. @n
@@ -130,7 +133,7 @@ public:
        /**
         * Cancels the file push request in progress. @n
         * If the %CancelPush() method is called before the OPP server accepts the push request, the
-        * IBluetoothOppClientEventListener::OnOppPushResponded() method is called and its result @c E_SYSTEM is thrown. @n
+        * IBluetoothOppClientEventListener::OnOppPushResponded() method is called and @c E_SYSTEM is thrown. @n
         * If this method is called during the file transfer, the IBluetoothOppClientEventListener::OnOppTransferDone()
         * method is called with @c isCompleted as @c false.
         *
@@ -144,24 +147,24 @@ public:
         *                                      For example, %Bluetooth is not activated.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the push request is not sent or accepted by a remote device.
+        *                                      For example, the push request is not sent or accepted by the remote device.
         * @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
         * @exception   E_FAILURE               The method has failed.
         */
        result CancelPush(void);
 
        /**
-        * Sets the minimum interval of invocation of IBluetoothOppClientEventListener::OnOppTransferInProgress() in
+        * Sets the minimum interval for the invocation of IBluetoothOppClientEventListener::OnOppTransferInProgress() in
         * percentage. @n
         * The default value is @c 5.
         *
         * @since       2.0
         *
         * @return      An error code
-        * @param[in]   percent                 The minimum period of progress interval as a percentage value
+        * @param[in]   percent                 The minimum period of the progress interval as a percentage value
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_OUT_OF_RANGE          The value of an argument is outside the valid range defined by the method.
+        * @exception   E_OUT_OF_RANGE          The specified input parameter is outside the valid range defined by the method.
         */
        result SetMinProgressInterval(int percent);
 
index 786fd1e..2a042ac 100755 (executable)
@@ -51,14 +51,17 @@ class _BluetoothOppServerImpl;
  *
  * For more information on the class features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
+ *
+ * The following diagram illustrates the interactions between this class and the application.
+ * @image html net_bluetooth_oppserver_sequence_diagram.png
  */
 class _OSP_EXPORT_ BluetoothOppServer
        : public Tizen::Base::Object
 {
 public:
        /**
-        * The object is not fully constructed after this constructor is called. For full construction, the Construct()
-        * method must be called right after calling this constructor.
+        * 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
         */
@@ -87,7 +90,7 @@ public:
         *                                      Application Filtering</a>.
         * @exception   E_SYSTEM                A system error has occurred.
         * @remarks     Before calling this method, check whether the feature is supported by
-        *                      Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+        *              Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
         */
        result Construct(IBluetoothOppServerEventListener& listener);
 
@@ -107,9 +110,9 @@ public:
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, the service is not started yet or a push request is not
-        *                                      received from a remote device.
+        *                                      received from the remote device.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothOppClientEventListener::OnOppPushResponded()
         */
@@ -130,9 +133,9 @@ public:
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, the service is not started yet or a push request is not
-        *                                      received from a remote device.
+        *                                      received from the remote device.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothOppClientEventListener::OnOppPushResponded()
         */
@@ -155,9 +158,13 @@ public:
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, trying to change the path on Push transition is prohibited.
-        * @exception   E_INACCESSIBLE_PATH     The specified @c dstPath is inaccessible.
+        *                                      For example, trying to change the path on Push transition is prohibited.
+        * @exception   E_INACCESSIBLE_PATH     The specified input parameter is inaccessible.
         * @exception   E_FAILURE               The method has failed.
+        * @remarks
+        *              - The destination path is either a media directory or an external storage directory.
+        *              - Use Tizen::System::Environment::GetMediaPath() to access the media directory and
+        *                Tizen::System::Environment::GetExternalStoragePath() to access the external storage directory.
         */
        result SetDestinationPath(const Tizen::Base::String& dstPath);
 
@@ -182,13 +189,17 @@ public:
         *                                      For example, %Bluetooth is not activated.
         * @exception   E_IN_PROGRESS           The service has already started.
         * @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
         * @exception   E_SERVICE_UNAVAILABLE   The OPP service is unavailable.
-        * @exception   E_INACCESSIBLE_PATH     The specified @c dstPath is inaccessible.
+        * @exception   E_INACCESSIBLE_PATH     The specified input parameter is inaccessible.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, The stop process is in progress.
+        *                                      For example, the stop process is in progress.
         * @exception   E_FAILURE               The method has failed.
+        * @remarks
+        *              - The destination path is either a media directory or an external storage directory.
+        *              - Use Tizen::System::Environment::GetMediaPath() to access the media directory and
+        *                Tizen::System::Environment::GetExternalStoragePath() to access the external storage directory.
         */
        result StartService(const Tizen::Base::String& dstPath);
 
@@ -208,14 +219,14 @@ public:
         *                                      operation. @n
         *                                      For example, the service is not started as yet.
         * @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
         * @exception   E_IN_PROGRESS           The stop process is in progress.
         * @exception   E_FAILURE               The method has failed.
         */
        result StopService(void);
 
        /**
-        * Stops the file transfer in progress which was started by the client. @n
+        * Stops the file transfer in progress which is started by the client. @n
         * If the %StopTransfer() method is called during the file transfer, the IBluetoothOppServerEventListener::OnOppTransferDone()
         * method is called with @c isCompleted as @c false.
         *
@@ -231,22 +242,22 @@ public:
         *                                      operation. @n
         *                                      For example, the file transfer is not in progress.
         * @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
         * @exception   E_OPERATION_FAILED      The operation has failed.
         */
        result StopTransfer(void);
 
        /**
-        * Sets the minimum interval of invocation of IBluetoothOppServerEventListener::OnOppTransferInProgress() in
+        * Sets the minimum interval for the invocation of IBluetoothOppServerEventListener::OnOppTransferInProgress() in
         * percentage. @n
         * The default value is @c 5.
         *
         * @since       2.0
         *
         * @return      An error code
-        * @param[in]   percent                 The minimum period of progress interval as a percentage value
+        * @param[in]   percent                 The minimum period of the progress interval as a percentage value
         * @exception   E_SUCCESS               The method is successful.
-        * @exception   E_OUT_OF_RANGE          The value of the argument is outside the valid range defined by the method.
+        * @exception   E_OUT_OF_RANGE          The specified input parameter is outside the valid range defined by the method.
         * @see         IBluetoothOppServerEventListener::OnOppTransferInProgress()
         */
        result SetMinProgressInterval(int percent);
index 3cc96ac..4d0ee93 100755 (executable)
@@ -43,23 +43,26 @@ class _BluetoothSppAcceptorImpl;
 
 /**
  * @class   BluetoothSppAcceptor
- * @brief   This class provides the methods to handle the %Bluetooth Serial Port Profile (SPP) acceptor, such as an
+ * @brief   This class provides methods to handle the %Bluetooth Serial Port Profile (SPP) acceptor, such as an
  *          incoming connection request.
  * @since   2.0
  *
- * The %BluetoothSppAcceptor class provides the methods to handle the %Bluetooth Serial Port Profile (SPP) acceptor, such as an
+ * The %BluetoothSppAcceptor class provides methods to handle the %Bluetooth Serial Port Profile (SPP) acceptor, such as an
  * incoming connection request.
  *
  * For more information on the class features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
+ *
+ * The following diagram illustrates the interactions between this class and the application.
+ * @image html net_bluetooth_sppacceptor_sequence_diagram.png
  */
 class _OSP_EXPORT_ BluetoothSppAcceptor
        : public Tizen::Base::Object
 {
 public:
        /**
-        * The object is not fully constructed after this constructor is called. For full construction, the Construct()
-        * method must be called right after calling this constructor.
+        * 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
         */
@@ -79,7 +82,7 @@ public:
         * @feature     %http://tizen.org/feature/network.bluetooth
         *
         * @return      An error code
-        * @param[in]   listener                The event listener for SPP acceptor
+        * @param[in]   listener                The event listener for the SPP acceptor
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_OUT_OF_MEMORY         The memory is insufficient.
         * @exception   E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature.
@@ -108,9 +111,9 @@ public:
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, the service is not started yet or the connection request is
-        *                                      not yet received from a remote device.
+        *                                      not yet received from the remote device.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothSppInitiatorEventListener::OnSppConnectionResponded()
         */
@@ -131,9 +134,9 @@ public:
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
         *                                      For example, the service is not started yet or the connection request is
-        *                                      not yet received from a remote device.
+        *                                      not yet received from the remote device.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothSppInitiatorEventListener::OnSppConnectionResponded()
         */
@@ -152,10 +155,10 @@ public:
         *                                      For example, this instance has not been constructed as yet or %Bluetooth is
         *                                      not activated.
         * @exception   E_IN_PROGRESS           The service has already started.
-        * @exception   E_ALREADY_CONNECTED     The connection with an SPP initiator has already been established.
+        * @exception   E_ALREADY_CONNECTED     The connection with the SPP initiator has already been established.
         * @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_SERVICE_UNAVAILABLE   The SPP service with the specified UUId is unavailable.
+        * @exception   E_USER_NOT_CONSENTED    The user has blocked the application from calling this method. @b Since: @b 2.1
+        * @exception   E_SERVICE_UNAVAILABLE   The SPP service with the specified UUID is unavailable.
         * @exception   E_FAILURE               The method has failed.
         */
        result StartService(void);
@@ -168,17 +171,17 @@ public:
         * @privilege   %http://tizen.org/privilege/bluetooth.spp
         *
         * @return      An error code
-        * @param[in]   serviceUuid             The UUID of SPP service
+        * @param[in]   serviceUuid             The UUID of the SPP service
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_INVALID_STATE         This instance is in an invalid state. @n
         *                                      For example, this instance has not been constructed as yet or %Bluetooth is
         *                                      not activated.
         * @exception   E_INVALID_ARG           The specified input parameter is invalid.
         * @exception   E_IN_PROGRESS           The service has already started.
-        * @exception   E_ALREADY_CONNECTED     The connection with an SPP initiator has already been established.
+        * @exception   E_ALREADY_CONNECTED     The connection with the SPP initiator has already been established.
         * @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_SERVICE_UNAVAILABLE   The SPP service with the specified UUId is unavailable.
+        * @exception   E_USER_NOT_CONSENTED    The user has blocked the application from calling this method. @b Since: @b 2.1
+        * @exception   E_SERVICE_UNAVAILABLE   The SPP service with the specified UUID is unavailable.
         * @exception   E_FAILURE               The method has failed.
         */
        result StartService(const Tizen::Base::UuId& serviceUuid);
@@ -200,7 +203,7 @@ public:
         *                                      operation. @n
         *                                      For example, the service is not started yet.
         * @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
         * @exception   E_FAILURE               The method has failed.
         */
        result StopService(void);
@@ -219,10 +222,10 @@ public:
         *                                      not activated.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the service is not started yet or a connection with a remote
+        *                                      For example, the service is not started yet or a connection with the remote
         *                                      device is not established.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothSppAcceptorEventListener::OnSppDisconnected()
         * @see         IBluetoothSppInitiatorEventListener::OnSppDisconnected()
@@ -245,12 +248,12 @@ public:
         *                                      not activated.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the service is not started yet or a connection with a remote
+        *                                      For example, the service is not started yet or a connection with the remote
         *                                      device is not established.
-        * @exception   E_INVALID_ARG           The specified @c buffer is empty.
+        * @exception   E_INVALID_ARG           The specified input parameter is empty.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothSppInitiatorEventListener::OnSppDataReceived()
         */
index 333c585..2c696db 100755 (executable)
@@ -44,23 +44,26 @@ class _BluetoothSppInitiatorImpl;
 
 /**
  * @class   BluetoothSppInitiator
- * @brief   This class provides the methods to handle the %Bluetooth Serial Port Profile (SPP) initiator, such as the
+ * @brief   This class provides methods to handle the %Bluetooth Serial Port Profile (SPP) initiator, such as the
  *          outgoing connection requests.
  * @since   2.0
  *
- * The %BluetoothSppInitiator class provides the methods to handle the %Bluetooth Serial Port Profile (SPP) initiator, such as
+ * The %BluetoothSppInitiator class provides methods to handle the %Bluetooth Serial Port Profile (SPP) initiator, such as
  * the outgoing connection requests.
  *
  * For more information on the class features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
+ *
+ * The following diagram illustrates the interactions between this class and the application.
+ * @image html net_bluetooth_sppinitiator_sequence_diagram.png
  */
 class _OSP_EXPORT_ BluetoothSppInitiator
        : public Tizen::Base::Object
 {
 public:
        /**
-        * The object is not fully constructed after this constructor is called. For full construction, the Construct()
-        * method must be called right after calling this constructor.
+        * 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
         */
@@ -108,9 +111,9 @@ public:
         *                                          For example, this instance has not been constructed as yet or
         *                                          %Bluetooth is not activated.
         * @exception   E_IN_PROGRESS               The connection process is in progress.
-        * @exception   E_ALREADY_CONNECTED         The connection with an SPP acceptor has already been established.
+        * @exception   E_ALREADY_CONNECTED         The connection with the SPP acceptor has already been established.
         * @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
         * @exception   E_SERVICE_UNAVAILABLE       The SPP connection is unavailable.
         * @exception   E_REMOTE_DEVICE_NOT_FOUND   The input device is not found. @n
         *                                          This exception is currently not in use.
@@ -131,16 +134,16 @@ public:
         *
         * @return      An error code
         * @param[in]   remoteDevice                The remote device to connect
-        * @param[in]   serviceUuid                 The UUID of SPP service to connect
+        * @param[in]   serviceUuid                 The UUID of the SPP service to connect
         * @exception   E_SUCCESS                   The method is successful.
         * @exception   E_INVALID_STATE             This instance is in an invalid state. @n
         *                                          For example, this instance has not been constructed as yet or
         *                                          %Bluetooth is not activated.
         * @exception   E_INVALID_ARG               A specified input parameter is invalid.
         * @exception   E_IN_PROGRESS               The connection process is in progress.
-        * @exception   E_ALREADY_CONNECTED         The connection with an SPP acceptor has already been established.
+        * @exception   E_ALREADY_CONNECTED         The connection with the SPP acceptor has already been established.
         * @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
         * @exception   E_SERVICE_UNAVAILABLE       The SPP connection is unavailable.
         * @exception   E_REMOTE_DEVICE_NOT_FOUND   The input device is not found. @n
         *                                          This exception is currently not in use.
@@ -154,9 +157,9 @@ public:
        /**
         * Disconnects the current connection. @n
         * If the %Disconnect() method is called before the SPP acceptor accepts the connection request, the
-        * IBluetoothSppInitiatorEventListener::OnSppConnectionResponded() method and its result @c E_SYSTEM is thrown. @n
-        * If this method is called on connection, the IBluetoothSppInitiatorEventListener::OnSppDisconnected() method and
-        * its result @c E_SUCCESS is thrown.
+        * IBluetoothSppInitiatorEventListener::OnSppConnectionResponded() method is called and @c E_SYSTEM is thrown. @n
+        * If this method is called on a connection, the IBluetoothSppInitiatorEventListener::OnSppDisconnected() method is called
+        * and @c E_SUCCESS is thrown.
         *
         * @since       2.0
         * @privlevel   public
@@ -169,10 +172,10 @@ public:
         *                                      not activated.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the connection request is not sent or a connection with a
+        *                                      For example, the connection request is not sent or a connection with the
         *                                      remote device is not established yet.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothSppAcceptorEventListener::OnSppDisconnected()
         */
@@ -194,12 +197,12 @@ public:
         *                                      not activated.
         * @exception   E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified
         *                                      operation. @n
-        *                                      For example, the connection request is not sent or a connection with a
+        *                                      For example, the connection request is not sent or a connection with the
         *                                      remote device is not established yet.
-        * @exception   E_INVALID_ARG           The argument has no data.
+        * @exception   E_INVALID_ARG           The specified input parameter has no data.
         * @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
         * @exception   E_FAILURE               The method has failed.
         * @see         IBluetoothSppAcceptorEventListener::OnSppDataReceived()
         */
index 4d82e93..b5c7388 100755 (executable)
@@ -17,7 +17,7 @@
 
 /**
  * @file    FNetBtBluetoothTypes.h
- * @brief   This is the header file for the enumerations in the Bluetooth namespace.
+ * @brief   This is the header file for the enumerations in the %Bluetooth namespace.
  *
  * This header file contains the declarations and descriptions of the enumerations in the Bluetooth namespace.
  */
@@ -51,7 +51,7 @@ enum BluetoothDeviceStateType
 
 /**
  * @enum        BluetoothDiscoverableMode
- * Defines the discoverable mode of the local %Bluetooth device.
+ * Defines the discoverable modes of the local %Bluetooth device.
  *
  * @since       2.0
  */
@@ -59,7 +59,7 @@ enum BluetoothDiscoverableMode
 {
        BT_DISC_MODE_NOT_DISCOVERABLE,          /**< The mode NOT DISCOVERABLE by other devices */
        BT_DISC_MODE_DISCOVERABLE,              /**< The mode DISCOVERABLE by other devices     */
-       BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE  /**< The mode DISCOVERABLE by other devices during a certain amount of time */
+       BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE  /**< The mode DISCOVERABLE by other devices for a certain amount of time */
 };
 
 /**
@@ -70,11 +70,7 @@ enum BluetoothDiscoverableMode
  */
 enum BluetoothConnectionType
 {
-       BT_CONNECTION_GENERIC,              /**< The GENERIC CONNECTION
-                                            *   @if OSPDEPREC
-                                            *   @deprecated    This enum field is deprecated.
-                                            *   @endif
-                                            */
+       BT_CONNECTION_GENERIC,              /**< @if OSPDEPREC The GENERIC CONNECTION @deprecated This enum field is deprecated. @endif */
        BT_CONNECTION_SPP_ACCEPTOR,         /**< The SPP ACCEPTOR CONNECTION  */
        BT_CONNECTION_SPP_INITIATOR,        /**< The SPP INITIATOR CONNECTION */
        BT_CONNECTION_OPP_SERVER,           /**< The OPP SERVER CONNECTION    */
@@ -84,26 +80,24 @@ enum BluetoothConnectionType
 
 /**
  * @enum        BluetoothHealthDataChannelType
- * Defines the transmission type of %BluetoothHealth data channel.
+ * Defines the transmission type of the BluetoothHealth data channel.
  *
  * @since 2.0
  */
 enum BluetoothHealthDataChannelType
 {
-       BT_HEALTH_DATA_CHANNEL_NONE,         /**< The any type of data channel */
-       BT_HEALTH_DATA_CHANNEL_RELIABLE,    /**< The data channel type for transmitting data with the reliable manner of
-                                            *   which the confidence in the exchange is at its highest (for example, measurement
-                                            *   and alert information)
-                                            */
-       BT_HEALTH_DATA_CHANNEL_STREAMING    /**< The data channel type for transmitting data when the timeliness of the
+       BT_HEALTH_DATA_CHANNEL_NONE,        /**< No type of data channel */
+       BT_HEALTH_DATA_CHANNEL_RELIABLE,    /**< The data channel type for transmitting data in a reliable manner such
+                                            *   that the confidence in the exchange is at its highest (for example, measurement
+                                            *   and alert information) */
+       BT_HEALTH_DATA_CHANNEL_STREAMING    /**< The data channel type for transmitting data where the timeliness of the
                                             *   delivery of each frame is more important than the reliable delivery of
-                                            *   every frame (for example, an ECG waveform, where low latency is critical)
-                                            */
+                                            *   every frame (for example, an ECG waveform, where low latency is critical) */
 };
 
 /**
  * @enum        BluetoothServiceClassType
- * Defines the service class type (part of the class of the device), returned from the device discovery.
+ * Defines the service class types (part of the class of the device) returned by the device discovery.
  *
  * @since        2.0
  */
@@ -124,7 +118,7 @@ enum BluetoothServiceClassType
 
 /**
  * @enum        BluetoothMajorDeviceClassType
- * Defines the major device class (part of the class of the device).
+ * Defines the major device class types (part of the class of the device).
  *
  * @since        2.0
  */
@@ -142,7 +136,7 @@ enum BluetoothMajorDeviceClassType
 
 /**
  * @enum        BluetoothMinorDeviceClassType
- * Defines the minor device class (part of the class of the device).
+ * Defines the minor device class types (part of the class of the device).
  *
  * @since        2.0
  */
@@ -180,7 +174,7 @@ enum BluetoothMinorDeviceClassType
 
 /**
  * @enum        BluetoothServiceType
- * Defines the %Bluetooth service type.
+ * Defines the %Bluetooth service types.
  *
  * @since       2.0
  */
@@ -215,13 +209,9 @@ enum BluetoothServiceType
        BT_SVC_DID_SERVICE = 0x04000000,           /**< The device identification profile service type      */
        BT_SVC_HDP_SERVICE = 0x08000000,           /**< The health device profile service type              */
        BT_SVC_MAP_SERVICE = 0x10000000,           /**< The message access profile service type             */
-       BT_SVC_ALL_SERVICE = 0x01FFFFFF,           /**< The All-services-supported-by-BTA service type
-                                                   *   @if OSPDEPREC
-                                                   *   @deprecated    This enum field is deprecated.
-                                                   *   @endif
-
-                                                */
-       BT_SVC_NONE = 0                            /**< The No service or unknown service type              */
+       BT_SVC_ALL_SERVICE = 0x01FFFFFF,           /**< @if OSPDEPREC The All-services-supported-by-BTA service type @deprecated    This enum field is deprecated.
+                                                                                                     @endif */
+       BT_SVC_NONE = 0                            /**< No service or unknown service type                  */
 };
 
 /**
index 2f578f1..3050dfd 100755 (executable)
@@ -35,11 +35,11 @@ class BluetoothDevice;
 
 /**
  * @interface   IBluetoothDeviceEventListener
- * @brief       This interface implements the listener for %Bluetooth remote device events.
+ * @brief       This interface implements the listener for the %Bluetooth remote device events.
  *
  * @since       2.0
  *
- * The %IBluetoothDeviceEventListener interface specifies the methods used to create notifications for the different
+ * The %IBluetoothDeviceEventListener interface specifies methods used to create notifications for different
  * kinds of %Bluetooth remote device events, including device discovery, service discovery, and pairing of the devices.
  * When a %Bluetooth device event is generated, one of these methods is called.
  *
@@ -51,8 +51,8 @@ class _OSP_EXPORT_ IBluetoothDeviceEventListener
 {
 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
         */
@@ -89,20 +89,20 @@ public:
         *
         * @param[in]   isCompleted         Set to @c true if the device discovery process is successfully completed, @n
         *                                  else @c false @n
-        *                                  For example, the discovery is canceled.
+        *                                  For example, the discovery is cancelled
         * @see         BluetoothManager::CancelDiscovery()
         */
        virtual void OnBluetoothDiscoveryDone(bool isCompleted) = 0;
 
        /**
-        * Called when a service list is received from a remote device using the service discovery process.
+        * Called when the service list is received from a remote device using the service discovery process.
         *
         * @since       2.0
         *
         * @param[in]   targetDevice                The remote device that sends its service list
         * @param[in]   serviceList                 The service list that is received @n
         *                                          The specified service list consists of Bluetooth::BluetoothServiceType
-        *                                          values which are joined by OR operator.
+        *                                          values which are joined by the OR operator.
         * @param[in]   r                           The result of receiving the service list
         * @exception   E_SUCCESS                   The method is successful.
         * @exception   E_REMOTE_SERVICE_NOT_FOUND  The service list of the remote device is not found.
@@ -120,19 +120,19 @@ public:
         * @since       2.0
         *
         * @param[in]   pairedDevice      The device to pair with the local device @n
-        *                                The specified device may have no service list value and elements in the service
-        *                                UUID list because retrieving the service list from the remote device fails. @n
+        *                                The specified device may have no service list value or elements in the service
+        *                                UUID list if retrieving the service list from the remote device fails. @n
         *                                In that case, call BluetoothManager::RetrieveServiceList() to get the service
         *                                list from the paired device.
         */
        virtual void OnBluetoothPaired(const BluetoothDevice& pairedDevice) = 0;
 
        /**
-        * Called when the already paired device is unpaired with this local device.
+        * Called when the already paired device is unpaired from this local device.
         *
         * @since       2.0
         *
-        * @param[in]   unpairedDevice      The device to unpair with the local device
+        * @param[in]   unpairedDevice      The device to unpair from the local device
         */
        virtual void OnBluetoothUnpaired(const BluetoothDevice& unpairedDevice) = 0;
 
@@ -142,10 +142,10 @@ public:
         * @since 2.0
         *
         * @param[in]   r                           The error result of the pairing request @n
-        *                                          One of the following exception is thrown.
-        * @exception   E_OPERATION_CANCELED        The pairing operation is canceled explicitly.
-        * @exception   E_TIMEOUT                   The pairing request has timed out because the remote device does not
-        *                                          respond within @c 60 seconds.
+        *                                          One of the following exceptions is thrown.
+        * @exception   E_OPERATION_CANCELED        The pairing operation is cancelled explicitly.
+        * @exception   E_TIMEOUT                   The pairing request has timed out because the remote device has not
+        *                                          responded within @c 60 seconds.
         * @exception   E_OPERATION_FAILED          The operation has failed.
         * @see         BluetoothManager::Pair()
         * @see         BluetoothManager::CancelPair()
index 8fbf42f..9c32d9c 100755 (executable)
@@ -43,8 +43,8 @@ class BluetoothDevice;
  * @brief       This interface provides a listener for the %BluetoothHealth events.
  * @since 2.0
  *
- * The %IBluetoothHealthEventListener interface specifies the methods used for creating notifications about the
- * different kinds of BluetoothHealth events. When a %BluetoothHealth event is generated, one of these methods is called.
+ * The %IBluetoothHealthEventListener interface specifies methods used for creating notifications for
+ * different kinds of BluetoothHealth events. When a BluetoothHealth event is generated, one of these methods is called.
  *
  * For more information on the class features, see
  * <a href="../org.tizen.native.appprogramming/html/guide/net/bluetooth_namespace.htm">Bluetooth Guide</a>.
@@ -54,8 +54,8 @@ class _OSP_EXPORT_ IBluetoothHealthEventListener
 {
 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
         */
@@ -67,15 +67,15 @@ public:
         * @since 2.0
         *
         * @param[in]   channelId           The channel ID of the established connection, @n
-        *                                  else an invalid ID (@c -1) if the method is not successful
+        *                                  else an invalid ID (@c -1) if the method fails
         * @param[in]   dataType            The type of data used in the established connection which is defined in
-        *                                  ISO/IEEE 11073-20601 and represents type of health device such as thermometer,
-        *                                  heart rate monitor, weight scale, and so on
+        *                                  ISO/IEEE 11073-20601 and represents the type of health device such as a thermometer,
+        *                                  a heart rate monitor, a weight scale, and so on
         * @param[in]   channelType         The data channel type of the established connection
         * @param[in]   pRemoteDevice       The remote health device to connect with the local device, @n
-        *                                  else @c null if the method is not successful
+        *                                  else @c null if the method fails
         * @param[in]   r                   The result of the connection request @n
-        *                                  One of the following exception is thrown.
+        *                                  One of the following exceptions is thrown.
         * @exception   E_SUCCESS           The connection is established successfully.
         * @exception   E_OPERATION_FAILED  The connection request has failed.
         */
@@ -89,18 +89,18 @@ public:
         *
         * @param[in]   channelId           The channel ID of the terminated connection
         * @param[in]   r                   The disconnection status @n
-        *                                  One of the following exception is thrown.
+        *                                  One of the following exceptions is thrown.
         * @exception   E_SUCCESS           The specified connection (channel) is terminated successfully.
         * @exception   E_OPERATION_FAILED  The method has failed to disconnect.
         */
        virtual void OnHealthDisconnected(int channelId, result r) = 0;
 
        /**
-        * Called to notify when the data has been received on the specified channel.
+        * Called to notify when the data is received on the specified channel.
         *
         * @since 2.0
         *
-        * @param[in]   channelId           The channel ID of the connection to receive data
+        * @param[in]   channelId           The channel ID of the connection on which to receive the data
         * @param[in]   buffer              The data to receive
         */
        virtual void OnHealthDataReceived(int channelId, Tizen::Base::ByteBuffer& buffer) = 0;
index 43f94eb..0123ce3 100755 (executable)
@@ -36,7 +36,7 @@ namespace Tizen { namespace Net { namespace Bluetooth
  *
  * @since       2.0
  *
- * The %IBluetoothManagerEventListener interface specifies the methods used for creating notifications about the
+ * The %IBluetoothManagerEventListener interface specifies methods used for creating notifications for
  * different kinds of BluetoothManager events. When a BluetoothManager event is generated, one of these methods is
  * called.
  *
@@ -48,8 +48,8 @@ class _OSP_EXPORT_ IBluetoothManagerEventListener
 {
 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
         */
@@ -82,7 +82,7 @@ public:
         *
         * @since 2.0
         *
-        * @param[in]   mode            The new discoverable mode to change
+        * @param[in]   mode            The discoverable mode to change
         */
        virtual void OnBluetoothDiscoverableModeChanged(BluetoothDiscoverableMode mode) {}
 
index 1284451..6b94855 100755 (executable)
@@ -36,7 +36,7 @@ namespace Tizen { namespace Net { namespace Bluetooth
  *
  * @since       2.0
  *
- * The %IBluetoothOppClientEventListener interface specifies the methods used for creating notifications about the
+ * The %IBluetoothOppClientEventListener interface specifies methods used for creating notifications for
  * different kinds of BluetoothOppClient events. When a BluetoothOppClient event is generated, one of these methods
  * is called.
  *
@@ -48,15 +48,15 @@ class _OSP_EXPORT_ IBluetoothOppClientEventListener
 {
 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 ~IBluetoothOppClientEventListener(void) {}
 
        /**
-        * Called when the OPP server responded to the push request.
+        * Called when the OPP server responds to a push request.
         *
         * @since       2.0
         *
@@ -64,7 +64,7 @@ public:
         * @exception   E_SUCCESS           The push request is accepted by the OPP server and the file transfer has begun.
         * @exception   E_REJECTED          The push request is rejected by the OPP server. @n
         *                                  This exception is currently not in use.
-        * @exception   E_TIMEOUT           The push request is out of time.
+        * @exception   E_TIMEOUT           The push request has timed out.
         * @exception   E_SYSTEM            A failure has occurred from the underlying system. @n
         *                                  This failure includes the rejection by the OPP server.
         */
index e9e051b..3bf6538 100755 (executable)
@@ -38,7 +38,7 @@ class BluetoothDevice;
  *
  * @since        2.0
  *
- * The %IBluetoothOppServerEventListener interface specifies the methods used for creating notifications about the
+ * The %IBluetoothOppServerEventListener interface specifies methods used for creating notifications for
  * different kinds of BluetoothOppServer events. When a BluetoothOppServer event is generated, one of these methods
  * is called.
  * @n
@@ -50,8 +50,8 @@ class _OSP_EXPORT_ IBluetoothOppServerEventListener
 {
 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
         */
@@ -62,7 +62,7 @@ public:
         *
         * @since       2.0
         *
-        * @param[in]   device          The remote device to request the connection
+        * @param[in]   device          The remote device to request for the connection
         */
        virtual void OnOppPushRequested(const BluetoothDevice& device) = 0;
 
index 7298a41..f310977 100755 (executable)
@@ -40,7 +40,7 @@ class BluetoothDevice;
  *
  * @since       2.0
  *
- * The %IBluetoothSppAcceptorEventListener interface specifies the methods used for creating notifications about the
+ * The %IBluetoothSppAcceptorEventListener interface specifies methods used for creating notifications for
  * different kinds of BluetoothSppAcceptor events. When a BluetoothSppAcceptor event is generated, one of these methods
  * is called.
  *
@@ -52,8 +52,8 @@ class _OSP_EXPORT_ IBluetoothSppAcceptorEventListener
 {
 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
         */
@@ -64,8 +64,8 @@ public:
         *
         * @since       2.0
         *
-        * @param[in]   device          The remote device to request the connection
-        * @remarks     If BluetoothSppAcceptor::SendData() is invoked in this callback, it does not work as expected.
+        * @param[in]   device          The remote device to request for the connection
+        * @remarks     If BluetoothSppAcceptor::SendData() is invoked in this callback, it does not work as expected.
         *              Therefore, it must be invoked outside this callback thread.
         */
        virtual void OnSppConnectionRequested(const BluetoothDevice& device) = 0;
index 806f22c..32c3579 100755 (executable)
@@ -36,8 +36,8 @@ namespace Tizen { namespace Net { namespace Bluetooth
  *
  * @since       2.0
  *
- * The %IBluetoothSppInitiatorEventListener interface specifies the methods used for creating notifications about the
- * different kinds of BluetoothSppInitiator events. When a %BluetoothSppInitiator event is generated, one of these
+ * The %IBluetoothSppInitiatorEventListener interface specifies methods used for creating notifications for
+ * different kinds of BluetoothSppInitiator events. When a BluetoothSppInitiator event is generated, one of these
  * methods is called.
  *
  * For more information on the class features, see
@@ -48,15 +48,15 @@ class _OSP_EXPORT_ IBluetoothSppInitiatorEventListener
 {
 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 ~IBluetoothSppInitiatorEventListener(void) {}
 
        /**
-        * Called to notify when an SPP acceptor responds to the connection request.
+        * Called to notify when an SPP acceptor responds to a connection request.
         *
         * @since       2.0
         *
index eb6c3b7..1ad6e07 100755 (executable)
@@ -10,5 +10,5 @@ Description: @PACKAGE_DESCRIPTION@
 Version: @VERSION@
 Requires: @PC_REQUIRED@ 
 Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir}
+Cflags: -I${includedir} -I${includedir}/net
 
index 7e96c78..f26403d 100755 (executable)
@@ -1,9 +1,12 @@
+%define debug_package %{nil}
+%define __strip /bin/true
+
 Name:          osp-bluetooth
 Summary:       osp bluetooth library
-Version:       1.2.1.0
+Version:       1.2.2.0
 Release:       2
 Group:         System/Libraries
-License:       TO_BE/FILLED_IN
+License:       Apache-2.0
 Source0:       %{name}-%{version}.tar.gz
 BuildRequires:  cmake
 BuildRequires:  pkgconfig(chromium)
@@ -17,8 +20,8 @@ BuildRequires:  pkgconfig(osp-net)
 BuildRequires:  osp-net-internal-devel
 
 # runtime requires
-Requires: osp-appfw
-Requires: osp-net
+Requires: osp-appfw 
+Requires: osp-net 
 
 %description
 osp bluetooth library
@@ -39,15 +42,34 @@ Requires:   %{name} = %{version}-%{release}
 %description internal-devel
 osp bluetooth library (Internal-DEV)
 
+%package debug
+Summary:    osp bluetooth library (Development)
+Group:      TO_BE/FILLED_IN
+Requires:   %{name} = %{version}-%{release}
+
+%description debug
+osp bluetooth library (DEV)
+
 %prep
 %setup -q
 
 %build
+%if 0%{?tizen_build_binary_release_type_eng}
+CXXFLAGS="$CXXFLAGS -D_SECURE_LOG"
+%endif
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 %ifarch %{ix86}
-CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_SECURE_LOG -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%if 0%{?simulator}
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%else
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ " cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%endif
 %else
+%if 0%{?tizen_build_binary_release_type_eng}
 CXXFLAGS="-O2 -g -pipe -Wall -fno-exceptions -Wformat -Wformat-security -Wl,--as-needed -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -D__SOFTFP__ -mthumb -Wa,-mimplicit-it=thumb -funwind-tables -D_OSP_DEBUG_ -D_SECURE_LOG -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%else
+CXXFLAGS="-O2 -g -pipe -Wall -fno-exceptions -Wformat -Wformat-security -Wl,--as-needed -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -D__SOFTFP__ -mthumb -Wa,-mimplicit-it=thumb -funwind-tables -D_OSP_DEBUG_ -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%endif
 %endif
 
 # Call make instruction with smp support
@@ -75,3 +97,6 @@ cp %{_builddir}/%{name}-%{version}/LICENSE.APLv2.0  %{buildroot}/usr/share/licen
 
 %files internal-devel
 %{_includedir}/osp/net/*.h
+
+%files debug
+%{_libdir}/osp/debug/*.so*
diff --git a/src/FNetBt_BluetoothConnectionEvent.cpp b/src/FNetBt_BluetoothConnectionEvent.cpp
deleted file mode 100644 (file)
index 1bf160c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// 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    FNetBt_BluetoothConnectionEvent.cpp
-// @brief   This is the implementation file for the _BluetoothDeviceEvent class.
-//
-
-#include <FBaseRtIEventListener.h>
-#include <FBaseSysLog.h>
-#include <FBaseRtIEventArg.h>
-#include "FNetBt_BluetoothConnectionEvent.h"
-#include "FNetBt_BluetoothConnectionEventArg.h"
-#include "FNetBt_IBluetoothConnectionEventListener.h"
-
-
-using namespace Tizen::Base;
-
-namespace Tizen { namespace Net { namespace Bluetooth
-{
-
-_BluetoothConnectionEvent::_BluetoothConnectionEvent(void)
-       : __listenerCount(0)
-{
-}
-
-_BluetoothConnectionEvent::~_BluetoothConnectionEvent(void)
-{
-}
-
-result
-_BluetoothConnectionEvent::Construct(void)
-{
-       return _Event::Initialize();
-}
-
-void
-_BluetoothConnectionEvent::FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg)
-{
-       _IBluetoothConnectionEventListener* pEventListener = dynamic_cast <_IBluetoothConnectionEventListener*>(&listener);
-       SysTryReturnVoidResult(NID_NET_BT, pEventListener != null, E_INVALID_ARG,
-                               "[E_INVALID_ARG] The listener argument is invalid.");
-
-       const _BluetoothConnectionEventArg* pEventArg = dynamic_cast <const _BluetoothConnectionEventArg*>(&arg);
-       SysTryReturnVoidResult(NID_NET_BT, pEventArg != null, E_INVALID_ARG, "[E_INVALID_ARG] The event argument is invalid type.");
-
-       _BluetoothConnectionEventType eventType = pEventArg->GetEventType();
-
-       switch (eventType)
-       {
-       case _BT_CONNECTION_EVENT_CONNECTED:
-               SysLog(NID_NET_BT, "Firing Bluetooth Connection state changed Event (Type: _BT_CONNECTION_EVENT_CONNECTED)");
-               pEventListener->OnBluetoothDeviceConnected(*pEventArg->GetRemoteAddress());
-               break;
-
-       case _BT_CONNECTION_EVENT_DISCONNECTED:
-               SysLog(NID_NET_BT, "Firing Bluetooth Connection state changed Event (Type: _BT_CONNECTION_EVENT_DISCONNECTED)");
-               pEventListener->OnBluetoothDeviceDisconnected(*pEventArg->GetRemoteAddress());
-               break;
-
-       default:
-               break;
-       }
-}
-
-} } } // Tizen::Net::Bluetooth
diff --git a/src/FNetBt_BluetoothConnectionEvent.h b/src/FNetBt_BluetoothConnectionEvent.h
deleted file mode 100644 (file)
index bbeb028..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// 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    FNetBt_BluetoothConnectionEvent.h
- * @brief   This is the header file for the _BluetoothConnectionEvent class.
- *
- * This header file contains the declarations of the _BluetoothConnectionEvent class.
- * The _BluetoothConnectionEvent class can call a method of a listener (IBluetoothConnectionEventListener object).
- * So, when a device event is occurred, listener instances can handle it appropriately.
- */
-#ifndef _FNET_BT_INTERNAL_BLUETOOTH_CONNECTION_EVENT_H_
-#define _FNET_BT_INTERNAL_BLUETOOTH_CONNECTION_EVENT_H_
-
-#include <FOspConfig.h>
-#include <FBaseResult.h>
-#include <FBaseRt_Event.h>
-
-// Forward declaration
-namespace Tizen { namespace Base { namespace Runtime
-{
-class IEventListener;
-class IEventArg;
-} } }
-
-namespace Tizen { namespace Net { namespace Bluetooth
-{
-
-//
-// @class   _BluetoothConnectionEvent
-// @brief   This class handles Bluetooth connection events.
-//
-class _BluetoothConnectionEvent
-       : public Tizen::Base::Runtime::_Event
-{
-public:
-       /**
-        * This is the default constructor.
-        */
-       _BluetoothConnectionEvent(void);
-
-       /**
-        * This is the class destructor.
-        */
-       virtual ~_BluetoothConnectionEvent(void);
-       result Construct(void);
-
-protected:
-       /**
-        * Checks the argument and finds out the type of event. After that, this method calls appropriate pListener's method.
-        *
-        * @return      A result code.
-        * @param[in]   pListener           An event listener related to this Bluetooth device event.
-        * @param[in]   arg                 An event argument including information to be passed to the event listeners
-        * @exception   E_SUCCESS           The method is successful.
-        * @exception   E_INVALID_ARG       The argument passed to a method contains invalid values.
-        * @exception   E_SYSTEM            A system error occurred.
-        */
-       virtual void FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg);
-
-private:
-       _BluetoothConnectionEvent(const _BluetoothConnectionEvent& value);
-       _BluetoothConnectionEvent& operator =(const _BluetoothConnectionEvent& rhs);
-
-private:
-       int __listenerCount;
-
-}; // _BluetoothConnectionEvent
-
-} } }
-#endif // _FNET_BT_INTERNAL_BLUETOOTH_CONNECTION_EVENT_H_
diff --git a/src/FNetBt_BluetoothConnectionEventArg.cpp b/src/FNetBt_BluetoothConnectionEventArg.cpp
deleted file mode 100644 (file)
index 5390071..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-// 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    FNetBt_BluetoothConnectionEventArg.cpp
-// @brief   This is the implementation file for the _BluetoothConnectionEventArg class.
-//
-
-#include <FBaseSysLog.h>
-#include "FNetBt_BluetoothConnectionEventArg.h"
-
-
-using namespace Tizen::Base;
-using namespace Tizen::Base::Collection;
-
-namespace Tizen { namespace Net { namespace Bluetooth
-{
-
-//
-// This is a class constructor for _BT_CONNECTION_EVENT_CONNECTED and _BT_CONNECTION_EVENT_DISCONNECTED event.
-//
-_BluetoothConnectionEventArg::_BluetoothConnectionEventArg(_BluetoothConnectionEventType type, const Tizen::Base::ByteBuffer& address)
-       : __evtType(type)
-       , __pRemoteAddress(null)
-{
-       __pRemoteAddress = new (std::nothrow) ByteBuffer();
-       __pRemoteAddress->Construct(address);
-}
-
-_BluetoothConnectionEventArg::~_BluetoothConnectionEventArg(void)
-{
-       delete __pRemoteAddress;
-}
-
-_BluetoothConnectionEventType
-_BluetoothConnectionEventArg::GetEventType(void) const
-{
-       return __evtType;
-}
-
-const ByteBuffer*
-_BluetoothConnectionEventArg::GetRemoteAddress(void) const
-{
-       return __pRemoteAddress;
-}
-
-} } } // Tizen::Net::Bluetooth
diff --git a/src/FNetBt_BluetoothConnectionEventArg.h b/src/FNetBt_BluetoothConnectionEventArg.h
deleted file mode 100644 (file)
index 154d88d..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// 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    FNetBt_BluetoothConnectionEventArg.h
- * @brief   This is the header file for the _BluetoothConnectionEventArg class.
- *
- * This header file contains the declarations of the _BluetoothConnectionEventArg class which includes information to be
- * passed to the event listeners
- */
-#ifndef _FNET_BT_INTERNAL_BLUETOOTH_CONNECTION_EVENT_ARG_H_
-#define _FNET_BT_INTERNAL_BLUETOOTH_CONNECTION_EVENT_ARG_H_
-
-#include <FBaseObject.h>
-#include <FOspConfig.h>
-#include <FBaseRtIEventArg.h>
-
-namespace Tizen { namespace Base
-{
-class ByteBuffer;
-} }
-
-namespace Tizen { namespace Net { namespace Bluetooth
-{
-
-/**
-  * @enum    _BluetoothConnectionEventType
-  * Type for specifying the type of _BluetoothConnectionEvent
-  */
-enum _BluetoothConnectionEventType
-{
-       _BT_CONNECTION_EVENT_CONNECTED,        /**< For notifying that the device is connected */
-       _BT_CONNECTION_EVENT_DISCONNECTED,     /**< For notifying that the device is disconnected */
-};
-
-/**
- * @class   _BluetoothConnectionEventArg
- * @brief   This class is used as an argument for callback methods of the _IBluetoothConnectionEventListener class.
- *
- * When a _BluetoothConnectionEvent occurs, the _BluetoothConnectionEvent finds a _IBluetoothConnectionEventListener instance
- * which is registered for the _BluetoothConnectionEvent and calls an appropriate method of the listener.
- * @see     _IBluetoothConnectionEventListener
- */
-class _BluetoothConnectionEventArg
-       : public Tizen::Base::Object
-       , public Tizen::Base::Runtime::IEventArg
-{
-public:
-
-       /**
-        * This is a class constructor for _BT_CONNECTION_EVENT_CONNECTED and _BT_CONNECTION_EVENT_DISCONNECTED event.
-        *
-        * @param[in]   address             the remote device address to be observed regarding connection
-        */
-       _BluetoothConnectionEventArg(_BluetoothConnectionEventType type, const Tizen::Base::ByteBuffer& address);
-
-       /**
-        * This is the class destructor.
-        */
-       ~_BluetoothConnectionEventArg(void);
-
-       /**
-        * Gets the type of this event.
-        *
-        * @return      The type of the event
-        */
-       _BluetoothConnectionEventType GetEventType(void) const;
-
-       /**
-        * Gets the remote device address.
-        *
-        * @return      the pointer of the remote device address which is a connected or disconnected device
-        */
-       const Tizen::Base::ByteBuffer* GetRemoteAddress(void) const;
-
-private:
-       _BluetoothConnectionEventArg(void);
-       _BluetoothConnectionEventArg(const _BluetoothConnectionEventArg& eventArg);
-       _BluetoothConnectionEventArg& operator =(const _BluetoothConnectionEventArg& rValue);
-
-private:
-       _BluetoothConnectionEventType __evtType;
-       Tizen::Base::ByteBuffer* __pRemoteAddress;
-
-}; // _BluetoothConnectionEventArg
-
-} } }
-#endif // _FNET_BT_INTERNAL_BLUETOOTH_CONNECTION_EVENT_ARG_H_
index de5faf3..2adf317 100755 (executable)
@@ -18,7 +18,6 @@
 // @brief       This is the implementation file for the _BluetoothGapSystemAdapter class.
 //
 
-#include <unique_ptr.h>
 #include <pthread.h>
 #include <FBaseByteBuffer.h>
 #include <FBaseUtilStringUtil.h>
@@ -66,27 +65,35 @@ _BluetoothGapSystemAdapter::_BluetoothGapSystemAdapter(void)
 
 _BluetoothGapSystemAdapter::~_BluetoothGapSystemAdapter(void)
 {
-       // unset all the system callback methods
-       bt_adapter_unset_state_changed_cb();
-       bt_adapter_unset_device_discovery_state_changed_cb();
-       bt_adapter_unset_visibility_mode_changed_cb();
-       bt_device_unset_bond_created_cb();
-       bt_device_unset_bond_destroyed_cb();
-       bt_device_unset_service_searched_cb();
-       bt_device_unset_connection_state_changed_cb();
 }
 
 void
 _BluetoothGapSystemAdapter::InitSingleton(void)
 {
        bool isConstructed = false;
-       static _BluetoothGapSystemAdapter inst;
+       std::unique_ptr<_BluetoothGapSystemAdapter> pInst;
 
-       isConstructed = inst.Construct();
+       pInst.reset(new (std::nothrow) _BluetoothGapSystemAdapter());
+       isConstructed = pInst->Construct();
        SysTryReturnVoidResult(NID_NET_BT, isConstructed == true, E_SYSTEM,
                        "[E_SYSTEM] Construction of _BluetoothGapSystemAdpater fails.");
 
-       __pInstance = &inst;
+       __pInstance = pInst.release();
+
+       std::atexit(DeinitializeSingleton);
+}
+
+void
+_BluetoothGapSystemAdapter::DeinitializeSingleton(void)
+{
+       // unset all the system callback methods
+       bt_adapter_unset_state_changed_cb();
+       bt_adapter_unset_device_discovery_state_changed_cb();
+       bt_adapter_unset_visibility_mode_changed_cb();
+       bt_device_unset_bond_created_cb();
+       bt_device_unset_bond_destroyed_cb();
+       bt_device_unset_service_searched_cb();
+       bt_device_unset_connection_state_changed_cb();
 }
 
 _BluetoothGapSystemAdapter*
@@ -493,7 +500,7 @@ _BluetoothGapSystemAdapter::StartDiscovery(void)
 {
        result r = E_SYSTEM;
 
-       if (bt_adapter_start_device_discovery() == BT_ERROR_NONE)
+       if (bt_adapter_start_discover_devices(BT_ADAPTER_DEVICE_DISCOVERY_BREDR) == BT_ERROR_NONE)
        {
                r = E_SUCCESS;
        }
old mode 100644 (file)
new mode 100755 (executable)
index 68d5798..5f87b08
@@ -23,6 +23,7 @@
 #ifndef _FNET_BT_INTERNAL_BLUETOOTH_GAP_SYSTEM_ADAPTER_H_
 #define _FNET_BT_INTERNAL_BLUETOOTH_GAP_SYSTEM_ADAPTER_H_
 
+#include <unique_ptr.h>
 #include <bluetooth.h>
 #include <FBaseObject.h>
 #include <FBaseResult.h>
@@ -300,7 +301,6 @@ public:
         */
        static void OnConnectionStateChanged(bool isConnected, const char* pRemoteAddress, void* pUserdata);
 
-
 private:
        _BluetoothGapSystemAdapter(void);
        ~_BluetoothGapSystemAdapter(void);
@@ -311,11 +311,13 @@ private:
        bool Construct(void);
 
        static void InitSingleton(void);
+       static void DeinitializeSingleton(void);
 
 private:
        Tizen::Base::Collection::LinkedListT<_IBluetoothManagerEventListener*> __mgrEvtListenerList;
        Tizen::Base::Collection::LinkedListT<_IBluetoothDeviceEventListener*> __devEvtListenerList;
        static _BluetoothGapSystemAdapter* __pInstance;
+       friend class std::default_delete<_BluetoothGapSystemAdapter>;
 
 }; // _BluetoothGapSystemAdapter
 
index 8045ae1..287a9fe 100755 (executable)
@@ -104,24 +104,32 @@ _BluetoothHdpSystemAdapter::_BluetoothHdpSystemAdapter(void)
 
 _BluetoothHdpSystemAdapter::~_BluetoothHdpSystemAdapter(void)
 {
-       // unregister the callback methods from the underlying layer
-       int err = bt_hdp_unset_connection_state_changed_cb();
-       SysLog(NID_NET_BT, "[0x%x] error in unregistering the connection state change callback method", err);
-
-       err = bt_hdp_unset_data_received_cb();
-       SysLog(NID_NET_BT, "[0x%x] error in unregistering the data received state change callback method", err);
 }
 
 void
 _BluetoothHdpSystemAdapter::InitSingleton(void)
 {
        bool r = false;
-       static _BluetoothHdpSystemAdapter inst;
+       std::unique_ptr<_BluetoothHdpSystemAdapter> pInst;
 
-       r = inst.Construct();
+       pInst.reset(new (std::nothrow) _BluetoothHdpSystemAdapter());
+       r = pInst->Construct();
        SysTryReturnVoidResult(NID_NET_BT, r == true, E_SYSTEM, "[E_SYSTEM] Propagating.");
 
-       __pInstance = &inst;
+       __pInstance = pInst.release();
+
+       std::atexit(DeinitializeSingleton);
+}
+
+void
+_BluetoothHdpSystemAdapter::DeinitializeSingleton(void)
+{
+       // unregister the callback methods from the underlying layer
+       int err = bt_hdp_unset_connection_state_changed_cb();
+       SysLog(NID_NET_BT, "[0x%x] error in unregistering the connection state change callback method", err);
+
+       err = bt_hdp_unset_data_received_cb();
+       SysLog(NID_NET_BT, "[0x%x] error in unregistering the data received state change callback method", err);
 }
 
 _BluetoothHdpSystemAdapter*
old mode 100644 (file)
new mode 100755 (executable)
index 22a55ad..2bdf2c3
@@ -148,6 +148,7 @@ private:
        bool Construct(void);
 
        static void InitSingleton(void);
+       static void DeinitializeSingleton(void);
 
 private:
        // hash map of HDP applications and the _BluetoothHealthImpl
@@ -157,6 +158,7 @@ private:
        // hash map of HDP channel Ids and the connected device address
        std::unique_ptr<Tizen::Base::Collection::HashMapT< int, Tizen::Base::String> > __pChannelAddressMap;
        static _BluetoothHdpSystemAdapter* __pInstance;
+       friend class std::default_delete<_BluetoothHdpSystemAdapter>;
 
 }; // _BluetoothHdpSystemAdapter
 
index c501d53..dd60dcb 100755 (executable)
@@ -68,12 +68,13 @@ void
 _BluetoothIpcProxy::InitSingleton(void)
 {
        result r = E_SUCCESS;
-       static _BluetoothIpcProxy inst;
+       std::unique_ptr<_BluetoothIpcProxy> pInst;
 
-       r = inst.Construct();
+       pInst.reset(new (std::nothrow) _BluetoothIpcProxy());
+       r = pInst->Construct();
        SysTryReturnVoidResult(NID_NET_BT, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       __pInstance = &inst;
+       __pInstance = pInst.release();
 }
 
 _BluetoothIpcProxy*
old mode 100644 (file)
new mode 100755 (executable)
index 567399e..9d54ba2
@@ -24,6 +24,7 @@
 #ifndef _FNET_BT_INTERNAL_BLUETOOTH_IPC_PROXY_H_
 #define _FNET_BT_INTERNAL_BLUETOOTH_IPC_PROXY_H_
 
+#include <unique_ptr.h>
 #include <FBaseObject.h>
 
 // Forward declaration
@@ -70,6 +71,7 @@ private:
 private:
        Tizen::Io::_IpcClient* __pIpcClient;
        static _BluetoothIpcProxy* __pInstance;
+       friend class std::default_delete<_BluetoothIpcProxy>;
 
 }; // _BluetoothIpcProxy
 
index 05b42d5..40f8587 100755 (executable)
@@ -33,8 +33,6 @@
 #include "FNetBt_BluetoothManagerEventArg.h"
 #include "FNetBt_BluetoothDeviceEvent.h"
 #include "FNetBt_BluetoothDeviceEventArg.h"
-#include "FNetBt_BluetoothConnectionEvent.h"
-#include "FNetBt_BluetoothConnectionEventArg.h"
 
 using namespace std;
 using namespace Tizen::Base;
@@ -49,9 +47,7 @@ _BluetoothManagerImpl::_BluetoothManagerImpl(void)
        , __pGapAdapter(null)
        , __pMgrEvent(null)
        , __pDevEvent(null)
-       , __pConEvent(null)
        , __pDevEvtListener(null)
-       , __pConEvtListener(null)
        , __pLocalDevice(null)
        , __pairedDeviceList()
        , __pairedDeviceMap()
@@ -78,6 +74,8 @@ _BluetoothManagerImpl::~_BluetoothManagerImpl(void)
                __pGapAdapter->UnregisterManagerEventListener(*this);
                __pGapAdapter->UnregisterDeviceEventListener(*this);
        }
+
+       delete __pLocalDevice;
 }
 
 result
@@ -86,7 +84,6 @@ _BluetoothManagerImpl::Construct(IBluetoothManagerEventListener& listener)
        result r = E_SUCCESS;
        unique_ptr<_BluetoothManagerEvent> pMgrEvent;
        unique_ptr<_BluetoothDeviceEvent> pDevEvent;
-       unique_ptr<_BluetoothConnectionEvent> pConEvent;
 
        r = __stateMutex.Create();
        SysTryReturnResult(NID_NET_BT, r == E_SUCCESS, E_SYSTEM, "Failed to create the state mutex.");
@@ -113,11 +110,6 @@ _BluetoothManagerImpl::Construct(IBluetoothManagerEventListener& listener)
        r = pDevEvent->Construct();
        SysTryReturnResult(NID_NET_BT, r == E_SUCCESS, E_SYSTEM, "Failed to construct the event.");
 
-       pConEvent.reset(new (std::nothrow) _BluetoothConnectionEvent());
-       SysTryReturnResult(NID_NET_BT, pConEvent != null, E_OUT_OF_MEMORY, "The memory is insufficient.");
-       r = pConEvent->Construct();
-       SysTryReturnResult(NID_NET_BT, r == E_SUCCESS, E_SYSTEM, "Failed to construct the event.");
-
        // add the IBluetoothManagerEventListener instance to a new created _BluetoothManagerEvent.
        r = pMgrEvent->AddListener(listener, true);
        SysTryReturnResult(NID_NET_BT, r == E_SUCCESS, E_SYSTEM,
@@ -167,7 +159,6 @@ _BluetoothManagerImpl::Construct(IBluetoothManagerEventListener& listener)
 
        __pMgrEvent = move(pMgrEvent);
        __pDevEvent = move(pDevEvent);
-       __pConEvent = move(pConEvent);
 
        return E_SUCCESS;
 }
@@ -394,6 +385,9 @@ _BluetoothManagerImpl::SetDiscoverableMode(BluetoothDiscoverableMode mode, int s
 {
        result r = E_SUCCESS;
 
+       SysTryReturnResult(NID_NET_BT, (mode != BT_DISC_MODE_TIME_LIMITED_DISCOVERABLE || seconds>0) , E_INVALID_ARG,
+                               "The seconds should be greater than 0");
+
        // Sets the discoverable mode through osp-connectivity-service.
        r = __pIpcProxy->SetDiscoverableMode((int)mode, seconds);
        SysTryReturnResult(NID_NET_BT, r != E_PRIVILEGE_DENIED && r != E_USER_NOT_CONSENTED, r,
@@ -707,34 +701,6 @@ _BluetoothManagerImpl::SetBluetoothDeviceListener(IBluetoothDeviceEventListener*
 }
 
 result
-_BluetoothManagerImpl::SetBluetoothConnectionListener(_IBluetoothConnectionEventListener* pListener)
-{
-       result r = E_SUCCESS;
-
-       SysTryReturnResult(NID_NET_BT, __pConEvtListener != pListener, E_SUCCESS, "the listener instance is already registered.");
-
-       if (__pConEvtListener != null)
-       {
-               // remove the previous IBluetoothDeviceEventListener instance from the _BluetoothDeviceEvent.
-               r = __pMgrEvent->RemoveListener(*__pConEvtListener);
-               SysTryReturnResult(NID_NET_BT, r == E_SUCCESS, E_SYSTEM, "Failed to remove the previous _IBluetoothConnectionEventListener.");
-               SysLog(NID_NET_BT, "Removing the previous _IBluetoothConnectionEventListener is successful.");
-               __pConEvtListener = null;
-       }
-
-       if (pListener != null)
-       {
-               // add the specified new IBluetoothDeviceEventListener instance to the _BluetoothDeviceEvent.
-               r = __pMgrEvent->AddListener(*pListener, true);
-               SysTryReturnResult(NID_NET_BT, r == E_SUCCESS, E_SYSTEM, "Failed to add the new _IBluetoothConnectionEventListener.");
-               SysLog(NID_NET_BT, "Adding the new _IBluetoothConnectionEventListener is successful.");
-               __pConEvtListener = pListener;
-       }
-
-       return r;
-}
-
-result
 _BluetoothManagerImpl::StartDiscovery(void)
 {
        SysLog(NID_NET_BT, "EntryPoint, [CurrentState:%s]", GetStringOfCurrentState());
@@ -1615,21 +1581,7 @@ _BluetoothManagerImpl::OnBluetoothDeviceConnected(const Tizen::Base::ByteBuffer&
 {
        SysLog(NID_NET_BT, "EntryPoint, [CurrentState:%s]", GetStringOfCurrentState());
 
-       bool isFired = false;
-
-       _BluetoothConnectionEventArg* pArg = new (std::nothrow) _BluetoothConnectionEventArg(_BT_CONNECTION_EVENT_CONNECTED, address);
-       if (pArg == null)
-       {
-               SysLogException(NID_NET_BT, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
-       }
-       else
-       {
-               __pConEvent->FireAsync(*pArg);
-               isFired = true;
-       }
-
-       SysLog(NID_NET_BT, "ExitPoint, [CurrentState:%s], [CONNECTED_Event:%s]",
-                               GetStringOfCurrentState(), isFired ? "Fired" : "NotFired");
+       // This callback is reserved for later use
 }
 
 void
@@ -1637,21 +1589,7 @@ _BluetoothManagerImpl::OnBluetoothDeviceDisconnected(const Tizen::Base::ByteBuff
 {
        SysLog(NID_NET_BT, "EntryPoint, [CurrentState:%s]", GetStringOfCurrentState());
 
-       bool isFired = false;
-
-       _BluetoothConnectionEventArg* pArg = new (std::nothrow) _BluetoothConnectionEventArg(_BT_CONNECTION_EVENT_DISCONNECTED, address);
-       if (pArg == null)
-       {
-               SysLogException(NID_NET_BT, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
-       }
-       else
-       {
-               __pConEvent->FireAsync(*pArg);
-               isFired = true;
-       }
-
-       SysLog(NID_NET_BT, "ExitPoint, [CurrentState:%s], [DISCONNECTED_Event:%s]",
-                               GetStringOfCurrentState(), isFired ? "Fired" : "NotFired");
+       // This callback is reserved for later use
 }
 
 result
index 814c0ac..91198c5 100755 (executable)
 // @brief   This is the implementation file for the _BluetoothOppServerImpl class.
 //
 
+#include <unistd.h>
 #include <FNetBtBluetoothTypes.h>
 #include <FNetBtBluetoothDevice.h>
 #include <FNetBtIBluetoothOppServerEventListener.h>
 #include <FBaseSysLog.h>
+#include <FBase_StringConverter.h>
 #include <FIo_FileImpl.h>
 #include <FApp_AppInfo.h>
 #include "FNetBt_BluetoothOppServerImpl.h"
@@ -217,25 +219,29 @@ _BluetoothOppServerImpl::SetDestinationPath(const Tizen::Base::String& dstPath)
 {
        result r = E_INVALID_OPERATION;
        String physicalPath;
+       unique_ptr<char[]> pConvertedDestPath;
+       int res;
 
        if ((__currentState != _BT_OPP_SVR_STATE_ON_TRANSFER) &&
                (__currentState != _BT_OPP_SVR_STATE_ON_STOPPING))
        {
                if (_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat())
                {
-                       if (Tizen::Io::_FileImpl::ConvertVirtualToPhysicalPath(dstPath, physicalPath) != E_SUCCESS)
-                       {
-                               r = E_INACCESSIBLE_PATH;
-                       }
-                       else
-                       {
-                               r = __pOppAdapter->SetOppReceivePath(physicalPath);
-                       }
+                       r = Tizen::Io::_FileImpl::ConvertVirtualToPhysicalPath(dstPath, physicalPath);
+                       SysTryReturn(NID_NET_BT, r == E_SUCCESS, E_INACCESSIBLE_PATH, E_INACCESSIBLE_PATH,
+                                               "[E_INACCESSIBLE_PATH]  the dstPath is inaccessible.");
                }
                else
                {
-                       r = __pOppAdapter->SetOppReceivePath(dstPath);
+                       physicalPath = dstPath;
                }
+
+               pConvertedDestPath.reset(_StringConverter::CopyToCharArrayN(physicalPath));
+               res = access(pConvertedDestPath.get(), W_OK);
+               SysTryReturn(NID_NET_BT, res == 0, E_INACCESSIBLE_PATH, E_INACCESSIBLE_PATH,
+                                       "[E_INACCESSIBLE_PATH]  the dstPath is inaccessible.");
+
+               r = __pOppAdapter->SetOppReceivePath(pConvertedDestPath.get());
        }
 
        if (r != E_SUCCESS)
@@ -271,6 +277,7 @@ _BluetoothOppServerImpl::StartService(const Tizen::Base::String& dstPath)
 
        result r = E_FAILURE;
        String physicalPath;
+       unique_ptr<char[]> pConvertedDestPath;
 
        __stateMutex.Acquire();
 
@@ -294,7 +301,14 @@ _BluetoothOppServerImpl::StartService(const Tizen::Base::String& dstPath)
                        physicalPath = dstPath;
                }
 
-               r = __pOppAdapter->StartOppServer(*this, physicalPath);
+               pConvertedDestPath.reset(_StringConverter::CopyToCharArrayN(physicalPath));
+               if (access(pConvertedDestPath.get(), W_OK) < 0)
+               {
+                       r = E_INACCESSIBLE_PATH;
+                       break;
+               }
+
+               r = __pOppAdapter->StartOppServer(*this, pConvertedDestPath.get());
 
                if (r == E_SUCCESS)
                {
index e3d126d..8da7199 100755 (executable)
@@ -58,9 +58,10 @@ _BluetoothOppSystemAdapter::~_BluetoothOppSystemAdapter(void)
 void
 _BluetoothOppSystemAdapter::InitSingleton(void)
 {
-       static _BluetoothOppSystemAdapter inst = _BluetoothOppSystemAdapter();
+       _BluetoothOppSystemAdapter* inst = null;
 
-       __pInstance = &inst;
+       inst = new (std::nothrow) _BluetoothOppSystemAdapter();
+       __pInstance = inst;
 }
 
 _BluetoothOppSystemAdapter*
@@ -83,11 +84,10 @@ _BluetoothOppSystemAdapter::GetInstance(void)
 }
 
 result
-_BluetoothOppSystemAdapter::StartOppServer(const _BluetoothOppServerImpl& impl, const Tizen::Base::String& dstPath)
+_BluetoothOppSystemAdapter::StartOppServer(const _BluetoothOppServerImpl& impl, const char* pDstPath)
 {
        unique_ptr<char[]> pUuidStr;
        bool isUsed = false;
-       unique_ptr<char[]> pConvertedDestPath;
        result r = E_SUCCESS;
        int ret = BT_ERROR_NONE;
 
@@ -96,16 +96,17 @@ _BluetoothOppSystemAdapter::StartOppServer(const _BluetoothOppServerImpl& impl,
        ret = bt_adapter_is_service_used(pUuidStr.get() , &isUsed);
        SysTryReturnResult(NID_NET_BT, (ret == BT_ERROR_NONE) && !isUsed, E_SERVICE_UNAVAILABLE, "OPP Server is not available. [0x%08X]", ret);
 
-       pConvertedDestPath.reset(_StringConverter::CopyToCharArrayN(dstPath));
-       SysTryReturnResult(NID_NET_BT, pConvertedDestPath != null, E_INACCESSIBLE_PATH, "The file path is invalid.");
-
-       ret = bt_opp_server_initialize_by_connection_request(pConvertedDestPath.get(), &OnOppServerConnectionRequested, null);
+       ret = bt_opp_server_initialize_by_connection_request(pDstPath, &OnOppServerConnectionRequested, null);
        SysLog(NID_NET_BT, "Starting the OPP Server %s. [0x%-04X]", ret == BT_ERROR_NONE ? "is successful" : "fails", ret);
 
        if (ret == BT_ERROR_NONE)
        {
                __pOppServerImpl = const_cast <_BluetoothOppServerImpl*>(&impl);
        }
+       else if (ret == BT_ERROR_INVALID_PARAMETER)
+       {
+               r = E_INACCESSIBLE_PATH;
+       }
        else
        {
                r = E_FAILURE;
@@ -132,16 +133,12 @@ _BluetoothOppSystemAdapter::StopOppServer(void)
 }
 
 result
-_BluetoothOppSystemAdapter::SetOppReceivePath(const Tizen::Base::String& dstPath)
+_BluetoothOppSystemAdapter::SetOppReceivePath(const char* pDstPath)
 {
-       char* pConvertedDestPath = NULL;
        result r = E_FAILURE;
        int ret = BT_ERROR_NONE;
 
-       pConvertedDestPath = _StringConverter::CopyToCharArrayN(dstPath);
-       SysTryReturnResult(NID_NET_BT, pConvertedDestPath != null, E_INACCESSIBLE_PATH, "The file path is invalid.");
-
-       ret = bt_opp_server_set_destination(pConvertedDestPath);
+       ret = bt_opp_server_set_destination(pDstPath);
        SysLog(NID_NET_BT, "Setting the receive path of the OPP Server %s. [0x%08X]",
                        ret == BT_ERROR_NONE ? "is successful" : "fails", ret);
 
@@ -149,8 +146,11 @@ _BluetoothOppSystemAdapter::SetOppReceivePath(const Tizen::Base::String& dstPath
        {
                r = E_SUCCESS;
        }
+       else if (ret == BT_ERROR_INVALID_PARAMETER)
+       {
+               r = E_INACCESSIBLE_PATH;
+       }
 
-       delete[] pConvertedDestPath;
        return r;
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index 05ca2d3..b5dafa4
@@ -68,13 +68,13 @@ public:
         *
         * @return      An error code
         * @param[in]   impl                    The instance of _BluetoothOppServerImpl to be registered
-        * @param[in]   dstPath                 The new destination file path
+        * @param[in]   pDstPath                The new destination file path
         * @exception   E_SUCCESS               The method is successful.
         * @exception   E_SERVICE_UNAVAILABLE   OPP Server service is not available because the number of registered instances
         *                                      are exceeded to the max number.
         * @exception   E_SYSTEM                A system error has occurred.
         */
-       result StartOppServer(const _BluetoothOppServerImpl& impl, const Tizen::Base::String& dstPath);
+       result StartOppServer(const _BluetoothOppServerImpl& impl, const char* pDstPath);
 
        /**
         * Stop the running OPP server and unset the registered instance of _BluetoothOppServerImpl class.
@@ -90,12 +90,12 @@ public:
         * Sets the destination path of the file to be received.
         *
         * @return       An error code
-        * @param[in]    dstPath                The new destination file path
+        * @param[in]    pDstPath               The new destination file path
         * @exception    E_SUCCESS              The method is successful.
         * @exception    E_INACCESSIBLE_PATH    The specified @c path contains an invalid value.
         * @exception    E_FAILURE              The method failed.
         */
-       result SetOppReceivePath(const Tizen::Base::String& dstPath);
+       result SetOppReceivePath(const char* pDstPath);
 
        /**
         * Accepts an OPP Push request from a remote device.
index 3358546..9bc582d 100755 (executable)
@@ -114,22 +114,30 @@ _BluetoothSppSystemAdapter::_BluetoothSppSystemAdapter(void)
 
 _BluetoothSppSystemAdapter::~_BluetoothSppSystemAdapter(void)
 {
-       // unregister the callback methods from the underlying layer
-       (void) bt_socket_unset_connection_state_changed_cb();
-       (void) bt_socket_unset_data_received_cb();
-       (void) bt_socket_unset_connection_requested_cb();
 }
 
 void
 _BluetoothSppSystemAdapter::InitSingleton(void)
 {
        bool r = false;
-       static _BluetoothSppSystemAdapter inst;
+       std::unique_ptr<_BluetoothSppSystemAdapter> pInst;
 
-       r = inst.Construct();
+       pInst.reset(new (std::nothrow) _BluetoothSppSystemAdapter());
+       r = pInst->Construct();
        SysTryReturnVoidResult(NID_NET_BT, r == true, E_SYSTEM, "[E_SYSTEM] Propagating.");
 
-       __pInstance = &inst;
+       __pInstance = pInst.release();
+
+       std::atexit(DeinitializeSingleton);
+}
+
+void 
+_BluetoothSppSystemAdapter::DeinitializeSingleton(void)
+{
+       // unregister the callback methods from the underlying layer
+       (void) bt_socket_unset_connection_state_changed_cb();
+       (void) bt_socket_unset_data_received_cb();
+       (void) bt_socket_unset_connection_requested_cb();
 }
 
 _BluetoothSppSystemAdapter*
old mode 100644 (file)
new mode 100755 (executable)
index d741a9c..a2ee53d
@@ -191,12 +191,14 @@ private:
        bool Construct(void);
 
        static void InitSingleton(void);
+       static void DeinitializeSingleton(void);
 
 private:
        std::unique_ptr< Tizen::Base::Collection::HashMapT<int, _IBluetoothSocketListener*> > __pServerSocketMap;
        std::unique_ptr< Tizen::Base::Collection::HashMapT<int, _IBluetoothSocketListener*> > __pSocketMap;
        std::unique_ptr< Tizen::Base::Collection::HashMapT<Tizen::Base::String, _IBluetoothSocketListener*> > __pClientSocketMap;
        static _BluetoothSppSystemAdapter* __pInstance;
+       friend class std::default_delete<_BluetoothSppSystemAdapter>;
 }; // _BluetoothSppSystemAdapter
 
 } } }
index 6602723..39e08bc 100755 (executable)
@@ -34,7 +34,6 @@
 #include <FBaseRtMutex.h>
 #include "FNetBt_IBluetoothManagerEventListener.h"
 #include "FNetBt_IBluetoothDeviceEventListener.h"
-#include "FNetBt_IBluetoothConnectionEventListener.h"
 
 
 namespace Tizen { namespace Net { namespace Bluetooth
@@ -46,7 +45,6 @@ class IBluetoothManagerEventListener;
 class IBluetoothDeviceEventListener;
 class _BluetoothManagerEvent;
 class _BluetoothDeviceEvent;
-class _BluetoothConnectionEvent;
 class _BluetoothIpcProxy;
 class _BluetoothGapSystemAdapter;
 
@@ -59,7 +57,6 @@ class _OSP_EXPORT_ _BluetoothManagerImpl
        : public Tizen::Base::Object
        , public _IBluetoothManagerEventListener
        , public _IBluetoothDeviceEventListener
-       , public _IBluetoothConnectionEventListener
 {
        /**
         * @enum    _BluetoothManagerStateType
@@ -375,16 +372,6 @@ public:
        result SetBluetoothDeviceListener(IBluetoothDeviceEventListener* pListener);
 
        /**
-        * Sets a Connection event listener.
-        *
-        * @return      An error code
-        * @param[in]   pListener                   The Connection event listener to be added
-        * @exception   E_SUCCESS                   The method is successful.
-        * @exception   E_SYSTEM                    A system error occurred.
-        */
-       result SetBluetoothConnectionListener(_IBluetoothConnectionEventListener* pListener);
-
-       /**
         * Starts a device discovery process.
         *
         * @return      An error code
@@ -512,9 +499,7 @@ private:
        _BluetoothGapSystemAdapter* __pGapAdapter;
        std::unique_ptr<_BluetoothManagerEvent> __pMgrEvent;
        std::unique_ptr<_BluetoothDeviceEvent> __pDevEvent;
-       std::unique_ptr<_BluetoothConnectionEvent> __pConEvent;
        const IBluetoothDeviceEventListener* __pDevEvtListener;
-       const _IBluetoothConnectionEventListener* __pConEvtListener;
        BluetoothDevice* __pLocalDevice;
        Tizen::Base::Collection::ArrayList __pairedDeviceList;        // for APIs prior to 2.0
        Tizen::Base::Collection::HashMap __pairedDeviceMap;
old mode 100644 (file)
new mode 100755 (executable)
index bb26a49..1fca2d9
@@ -128,6 +128,9 @@ public:
         *                                      For example, trying to change the path on Push transition is prohibited.
         * @exception   E_INACCESSIBLE_PATH     The specified @c dstPath is inaccessible.
         * @exception   E_FAILURE               The method has failed.
+        * @remarks     The destination path is either a media directory or an external storage directory.
+        *              Use Tizen::System::Environment::GetMediaPath() to access the media directory and
+        *              Tizen::System::Environment::GetExternalStoragePath() to access the external storage directory.
         */
        result SetDestinationPath(const Tizen::Base::String& dstPath);
 
@@ -145,6 +148,9 @@ public:
         *                                      For example, The stop process is in progress.
         * @exception   E_INACCESSIBLE_PATH     The specified @c dstPath is inaccessible.
         * @exception   E_SERVICE_UNAVAILABLE   OPP service is not available.
+        * @remarks     The destination path is either a media directory or an external storage directory.
+        *              Use Tizen::System::Environment::GetMediaPath() to access the media directory and
+        *              Tizen::System::Environment::GetExternalStoragePath() to access the external storage directory.
         */
        result StartService(const Tizen::Base::String& dstPath);
 
diff --git a/src/inc/FNetBt_IBluetoothConnectionEventListener.h b/src/inc/FNetBt_IBluetoothConnectionEventListener.h
deleted file mode 100644 (file)
index 7956f2e..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// 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    FNetBt_IBluetoothConnectionEventListener.h
- * @brief   This is the header file for the _IBluetoothConnectionEventListener interface.
- *
- * This header file contains the declaration of the _IBluetoothConnectionEventListener interface.
- *
- */
-#ifndef _FNET_BT_INTERNAL_IBLUETOOTH_CONNECTION_EVENT_LISTENER_H_
-#define _FNET_BT_INTERNAL_IBLUETOOTH_CONNECTION_EVENT_LISTENER_H_
-
-#include <FBaseRtIEventListener.h>
-
-namespace Tizen { namespace Base
-{
-class ByteBuffer;
-namespace Collection
-{
-class IList;
-}
-} }
-
-namespace Tizen { namespace Net { namespace Bluetooth
-{
-
-// forward declaration
-class BluetoothDevice;
-
-/**
-  * @interface   _IBluetoothConnectionEventListener
-  * @brief       This interface specifies the methods used for notifying the change of connection with local device
-  */
-class _OSP_EXPORT_ _IBluetoothConnectionEventListener
-       : public Base::Runtime::IEventListener
-{
-public:
-       /**
-        * This is the virtual destructor for this class.
-        */
-       virtual ~_IBluetoothConnectionEventListener(void) {}
-
-       /**
-        * Callback used to notify that the paired device is connected.
-        *
-        * @param[in]   isCompleted                 @c true, if the transfer is successfully completed @n
-        *                                          @c false, otherwise.
-        */
-       virtual void OnBluetoothDeviceConnected(const Tizen::Base::ByteBuffer& address) = 0;
-
-       /**
-        * Callback used to notify that the paired device is disconnected.
-        *
-        * @param[in]   isCompleted                 @c true, if the transfer is successfully completed @n
-        *                                          @c false, otherwise.
-        */
-       virtual void OnBluetoothDeviceDisconnected(const Tizen::Base::ByteBuffer& address) = 0;
-
-}; // _IBluetoothConnectionEventListener
-
-} } }
-#endif // _FNET_BT_INTERNAL_IBLUETOOTH_CONNECTION_EVENT_LISTENER_H_