Init Tizen 2.2.1 2.2.1_release submit/tizen_2.2/20131107.105826
authorSehong Na <sehong.na@samsung.com>
Thu, 7 Nov 2013 10:58:14 +0000 (19:58 +0900)
committerSehong Na <sehong.na@samsung.com>
Thu, 7 Nov 2013 10:58:14 +0000 (19:58 +0900)
inc/FLocCoordinates.h
inc/FLocILocationProviderListener.h
inc/FLocLocation.h
inc/FLocLocationCriteria.h
inc/FLocLocationProvider.h
inc/FLocTypes.h
inc/FLocations.h
packaging/osp-locations.changes
packaging/osp-locations.spec
src/FLoc_LocationManager.cpp

index 186dc5e..6079e9e 100644 (file)
@@ -44,26 +44,26 @@ namespace Tizen { namespace Locations
 *
 * @final       This class is not intended for extension.
 *
-* The %Coordinates class represents a geographical point specified by latitude, longitude, and altitude values and provides
+* The %Coordinates class represents a geographical point specified by its latitude, longitude, and altitude values and provides the
 * geographic calculations between two points.
 *
-* The latitude and longitude in decimal degrees are sometimes represented in degrees, minutes, and seconds format. For example, 40.1874 degrees
-* can also be represented in "40:11.25"(40 degrees and 11.25 minutes) or "40:11:15.0" (40 degrees, 11 minutes and 15.0 seconds).
-* This class provides methods for converting a coordinate value to degrees and minutes or degrees, minutes, and seconds representation.
+* The latitude and longitude in decimal degrees are sometimes represented in the degrees, minutes, and seconds format. For example, 40.1874 degrees
+* can also be represented as "40:11.25"(40 degrees and 11.25 minutes) or "40:11:15.0" (40 degrees, 11 minutes and 15.0 seconds).
+* This class provides methods for converting a coordinate value to degrees and minutes, or degrees, minutes, and seconds.
 */
 class _OSP_EXPORT_ Coordinates
        : public Tizen::Base::Object
 {
 public:
-       /**
-       * Initializes an instance of %Coordinates with the values of latitude, longitude, and altitude to Not-a-Number. @n
+   /**
+    * Initializes an instance of %Coordinates with the values of latitude, longitude, and altitude to Not-a-Number. @n
        * An application should set values of the coordinates using Set() method to specify it.
        *
        * @since 2.0
        */
        Coordinates(void);
 
-       /**
+   /**
        * Copying of objects using this copy constructor is allowed.
        *
        * @since 2.0
@@ -72,93 +72,93 @@ public:
        */
        Coordinates(const Coordinates& rhs);
 
-       /**
+   /**
        * This destructor overrides Tizen::Base::Object::~Object().
        *
        * @since 2.0
        */
        virtual ~Coordinates(void);
 
-       /**
-       * Compares the calling instance with the specified instance for equality.
+   /**
+       * Compares the specified instance with the current instance for equality.
        *
        * @since 2.0
        *
-       * @return       @c true if all the fields in the objects are equal, @n
-       *                       else @c false
-       * @param[in]    rhs     The object to compare
+       * @return               @c true if all the fields in the objects are equal, @n
+       *                               else @c false
+       * @param[in]    rhs     The object to compare with the current instance
        */
        virtual bool Equals(const Tizen::Base::Object& rhs) const;
 
-       /**
-       * Gets the hash value of the calling instance.
+   /**
+       * Gets the hash value of the current instance.
        *
        * @since 2.0
        *
-       * @return       The hash value of the calling instance
+       * @return       The hash value of the current instance
        */
        virtual int GetHashCode(void) const;
 
-       /**
+   /**
        * Sets the latitude, longitude, and altitude values of the coordinates. @n
-       * An application should specify latitude and longitude values in the valid ranges of [-90.0, +90.0] and [-180.0, +180.0], respectively. @n
-       * Otherwise, the %Set() method returns an @c E_INVALID_ARG exception.
+       * An application should specify the latitude and longitude values within the valid ranges of [-90.0, +90.0] and [-180.0, +180.0], respectively. @n
+       * Otherwise, the %Set() method returns @c E_INVALID_ARG.
        *
-       * @since 2.0
+       * @since                2.0
        *
-       * @return       An error code
-       * @param[in]    latitude        The latitude of the coordinates in decimal degrees within the range [-90.0, +90.0]
-       * @param[in]    longitude       The longitude of the coordinates in decimal degrees within the range [-180.0, +180.0]
-       * @param[in]    altitude        The altitude of the coordinates in meters
-       * @exception    E_SUCCESS       This method is successful.
-       * @exception    E_INVALID_ARG   The specified @c latitude or @c longitude is invalid.
+       * @return               An error code
+       * @param[in]    latitude                The latitude of the coordinates in decimal degrees within the range [-90.0, +90.0]
+       * @param[in]    longitude               The longitude of the coordinates in decimal degrees within the range [-180.0, +180.0]
+       * @param[in]    altitude                The altitude of the coordinates in meters
+       * @exception    E_SUCCESS               This method is successful.
+       * @exception    E_INVALID_ARG   Either the specified @c latitude or the specified @c longitude is invalid.
        * @see          GetLatitude()
        * @see          GetLongitude()
        * @see          GetAltitude()
        */
        result Set(double latitude, double longitude, double altitude);
 
-       /**
+   /**
        * Sets the latitude value of the coordinates. @n
-       * An application should specify latitude value in the valid range of [-90.0, +90.0]. @n
-       * Otherwise, the %SetLatitude() method returns an @c E_INVALID_ARG exception.
+       * An application should specify the latitude value within the valid range of [-90.0, +90.0]. @n
+       * Otherwise, the %SetLatitude() method returns @c E_INVALID_ARG.
        *
        * @since 2.0
        *
-       * @return       An error code
-       * @param[in]    latitude        The latitude of the coordinates in decimal degrees within the range [-90.0, +90.0]
-       * @exception    E_SUCCESS       This method is successful.
+       * @return               An error code
+       * @param[in]    latitude                The latitude of the coordinates in decimal degrees within the range [-90.0, +90.0]
+       * @exception    E_SUCCESS               This method is successful.
        * @exception    E_INVALID_ARG   The specified @c latitude is invalid.
        * @see          GetLatitude()
        */
        result SetLatitude(double latitude);
 
-       /**
+   /**
        * Sets the longitude value of the coordinates. @n
-       * An application should specify longitude value in the valid range of [-180.0, +180.0]. @n
-       * Otherwise, the %SetLongitude() method returns an @c E_INVALID_ARG exception.
+       * An application should specify the longitude value within the valid range of [-180.0, +180.0]. @n
+       * Otherwise, the %SetLongitude() method returns @c E_INVALID_ARG.
        *
        * @since 2.0
        *
-       * @return       An error code
-       * @param[in]    longitude       The longitude of the coordinates in decimal degrees within the range [-180.0, +180.0]
-       * @exception    E_SUCCESS       This method is successful.
+       * @return               An error code
+       * @param[in]    longitude               The longitude of the coordinates in decimal degrees within the range [-180.0, +180.0]
+       * @exception    E_SUCCESS               This method is successful.
        * @exception    E_INVALID_ARG   The specified @c longitude is invalid.
        * @see          GetLongitude()
        */
        result SetLongitude(double longitude);
 
-       /**
+   /**
        * Sets the altitude value of the coordinates.
        *
        * @since 2.0
        *
        * @param[in]    altitude        The altitude of the coordinates in meters
-       * @see          GetAltitude()
+       * @see                  GetAltitude()
        */
        void SetAltitude(double altitude);
 
-       /**
+   /**
        * Gets the latitude value of the coordinates.
        *
        * @since 2.0
@@ -169,7 +169,7 @@ public:
        */
        double GetLatitude(void) const;
 
-       /**
+   /**
        * Gets the longitude value of the coordinates.
        *
        * @since 2.0
@@ -180,7 +180,7 @@ public:
        */
        double GetLongitude(void) const;
 
-       /**
+   /**
        * Gets the altitude value of the coordinates.
        *
        * @since 2.0
@@ -191,70 +191,70 @@ public:
        */
        double GetAltitude(void) const;
 
-       /**
+   /**
        * Calculates the azimuth value. @n
        * The coordinates are the starting point and @c dest is the destination for the azimuth calculation. @n
        * The azimuth is measured clockwise from true north based on the WGS84 ellipsoid model. @n
-       * The altitude value is not considered in calculation.
+       * The altitude value is not considered in the calculation.
        *
        * @since 2.0
        *
-       * @return       The azimuth value in decimal degrees within the range [0.0, +360.0], @n
-       *                       else @c NaN if the latitude or the longitude of two points has an @c NaN value
-       * @param[in]    dest The destination coordinates
+       * @return               The azimuth value in decimal degrees within the range [0.0, +360.0], @n
+       *                               else @c NaN if the latitude or the longitude of the two points has a @c NaN value
+       * @param[in]    dest    The destination coordinates
        */
        double GetAzimuth(const Coordinates& dest) const;
 
-       /**
+   /**
        * Calculates the geodetic distance for the given coordinates. @n
        * The distance calculation is based on the WGS84 ellipsoid model. @n
-       * The altitude value is not considered in calculation.
+       * The altitude value is not considered in the calculation.
        *
        * @since 2.0
        *
-       * @return       The distance for the given coordinates in meters, @n
-       *                       else @c NaN if the latitude or the longitude of two points has an @c NaN value
-       * @param[in]    to The destination coordinates
+       * @return               The distance for the given coordinates in meters, @n
+       *                               else @c NaN if the latitude or the longitude of the two points has a @c NaN value
+       * @param[in]    to              The destination coordinates
        */
        double GetDistanceTo(const Coordinates& to) const;
 
-       /**
-       * Converts the coordinate value into string. @n
-       * An application specifies formats like @c COORDINATE_FORMAT_DEGREE_MINUTE or @c COORDINATE_FORMAT_DEGREE_MINUTE_SECOND for the result string.
+   /**
+       * Converts the coordinate value into string. @n
+       * An application specifies formats like @c COORDINATE_FORMAT_DEGREE_MINUTE or @c COORDINATE_FORMAT_DEGREE_MINUTE_SECOND for the resultant string.
        *
        * @since 2.0
        *
-       * @return       An error code
-       * @param[in]    degree  The coordinate in degrees within the range [-180.0, +180.0]
-       * @param[in]    format  The desired format
-       * @param[out]   string  The converted result in string
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_INVALID_ARG   The specified @c degree or @c format is invalid.
+       * @return               An error code
+       * @param[in]    degree                  The coordinate in degrees within the range [-180.0, +180.0]
+       * @param[in]    format                  The desired format
+       * @param[out]   string                  The converted result as a string
+       * @exception    E_SUCCESS               The method is successful.
+       * @exception    E_INVALID_ARG   Either the specified @c degree or the specified @c format is invalid.
        * @see          Parse()
        */
        static result ToString(double degree, CoordinateFormat format, Tizen::Base::String& string);
 
-       /**
-       * Converts a string into coordinate degree. @n
-       * The @c string should be in @c COORDINATE_FORMAT_DEGREE_MINUTE or @c COORDINATE_FORMAT_DEGREE_MINUTE_SECOND format.
+   /**
+       * Converts a string into the coordinate degree. @n
+       * The @c string should be in the ::COORDINATE_FORMAT_DEGREE_MINUTE or ::COORDINATE_FORMAT_DEGREE_MINUTE_SECOND format.
        *
        * @since 2.0
        *
-       * @return       An error code
-       * @param[in]    string  The string in degree-minute or degree-minute-second representation
-       * @param[out]   degree  The converted result in decimal degrees
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_INVALID_ARG   The specified @c string is not in CoordinateFormat.
-       * @see          ToString()
+       * @return               An error code
+       * @param[in]    string                  The string in the degree-minute or degree-minute-second representation
+       * @param[out]   degree                  The converted result in decimal degrees
+       * @exception    E_SUCCESS               The method is successful.
+       * @exception    E_INVALID_ARG   The specified @c string is not in the coordinate format.
+       * @see  ToString()
        */
        static result Parse(const Tizen::Base::String& string, double& degree);
 
-       /**
+   /**
        * Copying of objects using this copy assignment operator is allowed.
        *
        * @since 2.0
        *
-       * @return       A reference to the current instance
+       * @return               A reference to the current instance
        * @param[in]    rhs     An instance of %Coordinates to assign
        */
        Coordinates& operator =(const Coordinates& rhs);
index 7435190..2128adc 100644 (file)
 //
 
 /**
-* @file                FLocILocationProviderListener.h
-* @brief       This is the header file for the %ILocationProviderListener interface.
-*
-* This header file contains the declarations of the %ILocationProviderListener interface.
-*/
+ * @file               FLocILocationProviderListener.h
+ * @brief      This is the header file for the %ILocationProviderListener interface.
+ *
+ * This header file contains the declarations of the %ILocationProviderListener interface.
+ */
 
 #ifndef _FLOC_ILOCATION_PROVIDER_LISTENER_H_
 #define _FLOC_ILOCATION_PROVIDER_LISTENER_H_
@@ -34,76 +34,76 @@ namespace Tizen { namespace Locations
 class Location;
 
 /**
-* @interface    ILocationProviderListener
-* @brief       This interface defines listener interfaces to get asynchronous notifications from the location provider.
-*
-* @since 2.0
-*
-* The %ILocationProviderListener interface defines listener interfaces to get asynchronous notifications from the location provider.
-* An application should implement this listener interface and construct the location provider with the listener
-* to get the asynchronous notifications for the location updates and region monitoring requests.
-*
-* @see         LocationProvider
-*/
+ * @interface    ILocationProviderListener
+ * @brief              This interface is a listener interface to get asynchronous notifications from the location provider.
+ *
+ * @since 2.0
+ *
+ * The %ILocationProviderListener interface is a listener interface to get asynchronous notifications from the location provider.
+ * An application should implement this listener interface and construct the location provider with the listener
+ * to get asynchronous notifications for location updates and region monitoring requests.
+ *
+ * @see                LocationProvider
+ */
 class _OSP_EXPORT_ ILocationProviderListener
        : virtual public Tizen::Base::Runtime::IEventListener
 {
 public:
-       /**
-       * 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.
+   /**
+       * 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 ~ILocationProviderListener(void)  {}
 
-       /**
+   /**
        * Called when the location update is running. @n
-       * The location update is started when an application calls the LocationProvider::StartLocationUpdatesByInterval() or LocationProvider::StartLocationUpdatesByDistance() methods. @n
+       * The location update is started when an application calls the LocationProvider::StartLocationUpdatesByInterval() or LocationProvider::StartLocationUpdatesByDistance() method. @n
        * Note that, the updated locations may not always fall into the requested accuracy level that the application has specified in the criteria. @n
-       * The application is able to filter out less accurate locations by checking the location accuracy with the Location::GetHorizontalAccuracy() method
+       * The application can filter out less accurate locations by checking the location accuracy with the Location::GetHorizontalAccuracy() method,
        * if it matters to the application. @n
-       * During updating locations, along with changes in the location's accuracy, changes in the service status are also notified.
+       * While updating locations, along with changes in the location's accuracy, changes in the service status are also notified.
        *
        * @since 2.0
        *
        * @param[in]    location        The location to update
-       * @remarks      An application should implement this method when it requests for the location updates and wants to handle the updated locations.
-       * @see          OnAccuracyChanged()
-       * @see          OnLocationUpdateStatusChanged()
+       * @remarks              An application should implement this method when it requests for location updates and wants to handle the updated locations.
+       * @see                  OnAccuracyChanged()
+       * @see                  OnLocationUpdateStatusChanged()
        */
        virtual void OnLocationUpdated(const Tizen::Locations::Location& location) { }
 
-       /**
+   /**
        * Called when the location provider detects a movement entering into the registered region. @n
-       * A region is registered for monitoring by calling LocationProvider::AddMonitoringRegion() and is identified by the region ID. @n
-       * While monitoring regions, the changes in the location's accuracy and the changes in the service status are notified.
+       * A region is registered for monitoring by calling the LocationProvider::AddMonitoringRegion() method and is identified by the region ID. @n
+       * While monitoring regions, along with changes in the location's accuracy, changes in the service status are also notified.
        *
        * @since 2.0
        *
-       * @param[in]    regionId        The ID for the registered region
-       * @remarks      An application should implement this method when it requests for the region monitoring and wants to handle the movement into the region.
+       * @param[in]    regionId        The ID of the registered region
+       * @remarks              An application should implement this method when it requests for region monitoring and wants to handle the movement entering into the region.
        * @see          OnAccuracyChanged()
        * @see          OnRegionMonitoringStatusChanged()
        */
        virtual void OnRegionEntered(Tizen::Locations::RegionId regionId) { }
 
-       /**
-       * Called when the location provider detects a movement leaving from the registered region. @n
-       * A region is registered for monitoring by calling LocationProvider::AddMonitoringRegion() and identified by the region ID. @n
-       * While monitoring regions, the changes in the location's accuracy and the changes in the service status are notified.
+   /**
+       * Called when the location provider detects a movement leaving the registered region. @n
+       * A region is registered for monitoring by calling the LocationProvider::AddMonitoringRegion() method and is identified by the region ID. @n
+       * While monitoring regions, along with changes in the location's accuracy, changes in the service status are also notified.
        *
        * @since 2.0
        *
        * @param[in]    regionId        The ID for the registered region
-       * @remarks      An application should implement this method when it requests the region monitoring and wants to handle the movement out of the region.
+       * @remarks              An application should implement this method when it requests for region monitoring and wants to handle the movement out of the region.
        * @see          OnAccuracyChanged()
        * @see          OnRegionMonitoringStatusChanged()
        */
        virtual void OnRegionLeft(Tizen::Locations::RegionId regionId) { }
 
-       /**
-       * Called when the service status of the location updates change. @n
+   /**
+       * Called when the service status of the location updates changes. @n
        * The status changes to @c LOC_SVC_STATUS_RUNNING, when the location provider successfully runs the requested service. @n
        * The status changes to @c LOC_SVC_STATUS_NOT_FIXED, when the location provider is not able to run the requested service because it
        * cannot fix the current location due to poor circumstances such as weak radio for positioning. @n
@@ -112,20 +112,20 @@ public:
        * @c LOC_SVC_STATUS_DENIED and the location provider stops all ongoing services to the application.  @n
        * In that case, the application might ask the user to grant permission to continue the aborted service
        * or to finalize all resources for the location provider. @n
-       * The status @c LOC_SVC_STATUS_PAUSED is displayed when the location provider pauses the ongoing service. This happens when the application requests for the location updates without keeping the location updates awake. The status will be changed to others
+       * The status @c LOC_SVC_STATUS_PAUSED is displayed when the location provider pauses the ongoing service. This happens when the application requests for location updates without keeping the location updates awake. The status is changed to others
        * once the location provider resumes the paused service. @n
-       * Note that, the application can get notifications about the location updates and accuracy changes
+       * Note that, the application can get notifications about location updates and accuracy changes
        * only when the service status is @c LOC_SVC_STATUS_RUNNING.
        *
        * @since 2.0
        *
        * @param[in]    status  The service status of the location updates
-       * @remarks      An application should implement this method when it requests for the location updates and wants to handle status changes of the service.
+       * @remarks              An application should implement this method when it requests for location updates and wants to handle status changes of the service.
        */
        virtual void OnLocationUpdateStatusChanged(Tizen::Locations::LocationServiceStatus status) { }
 
 
-       /**
+   /**
        * Called when the service status of the region monitoring changes. @n
        * The status changes to @c LOC_SVC_STATUS_RUNNING, when the location provider successfully runs the requested service. @n
        * The status changes to @c LOC_SVC_STATUS_NOT_FIXED, when the location provider is not able to run the requested service because it
@@ -134,23 +134,23 @@ public:
        * @c LOC_SVC_STATUS_DENIED and the location provider stops all ongoing services to the application. @n
        * In that case, the application might ask the user to grant permission to continue the aborted service
        * or to finalize all resources for the location provider. @n
-       * Note that, the application can get notifications about the movement around regions and accuracy changes
+       * Note that, the application can get notifications about the movement around regions and the accuracy changes
        * only when the service status is @c LOC_SVC_STATUS_RUNNING.
        *
        * @since 2.0
        *
        * @param[in]    status  The service status of the region monitoring
-       * @remarks      An application should implement this method when it requests for the region monitoring and wants to handle status changes of the service.
+       * @remarks              An application should implement this method when it requests for region monitoring and wants to handle the status changes of the service.
        */
        virtual void OnRegionMonitoringStatusChanged(Tizen::Locations::LocationServiceStatus status) { }
 
 
-       /**
+   /**
        * Called when the accuracy level of the location changes. @n
        * The location provider tries to provide accurate location services as specified in the criteria,
-       * but the location provided by location provider may not always fall into the requested accuracy level. @n
-       * The %OnAccuracyChanged() listener method is called whenever the current accuracy of the location provided by location provider is changed. @n
-       * The accuracy changes to @c LOC_ACCURACY_INVALID when the location provider is not running any services in @c LOC_SVC_STATUS_RUNNING
+       * but the location provided by the location provider may not always fall into the requested accuracy level. @n
+       * The %OnAccuracyChanged() listener method is called whenever the current accuracy of the location provided by the location provider is changed. @n
+       * The accuracy changes to @c LOC_ACCURACY_INVALID when the location provider is not running any services in the @c LOC_SVC_STATUS_RUNNING
        * status.
        *
        * @since 2.0
@@ -160,22 +160,13 @@ public:
        virtual void OnAccuracyChanged(Tizen::Locations::LocationAccuracy accuracy) = 0;
 
 protected:
-       //
-       //This method is for internal use only. Using this method can cause behavioral, security-related,
-       //and consistency-related issues in the application.
-       //
+       //Using this method can cause behavioral, security-related and consistency-related issues in the application.
        virtual void ILocationProviderListener_Reserved1(void) { }
 
-       //
-       //This method is for internal use only. Using this method can cause behavioral, security-related,
-       //and consistency-related issues in the application.
-       //
+       //Using this method can cause behavioral, security-related and consistency-related issues in the application.
        virtual void ILocationProviderListener_Reserved2(void) { }
 
-       //
-       //This method is for internal use only. Using this method can cause behavioral, security-related,
-       //and consistency-related issues in the application.
-       //
+       //Using this method can cause behavioral, security-related and consistency-related issues in the application.
        virtual void ILocationProviderListener_Reserved3(void) { }
 }; // ILocationProviderListener
 }} // Tizen::Locations
index 8163c27..080ae84 100644 (file)
@@ -38,25 +38,25 @@ namespace Tizen { namespace Locations
 class Coordinates;
 
 /**
-* @class       Location
-* @brief       This class contains and provides information about a location including its geographical coordinates, altitude, and so on.
-*
-* @since 2.0
-*
-* @final       This class is not intended for extension.
-*
-* The %Location class contains all information about a location that the location provider fixed at a certain moment.
-* It basically provides geographical coordinates and horizontal accuracy that gives the estimated error about the coordinates,
-* while the altitude, vertical accuracy, speed, and course at the location are optionally provided.
-* It also contains detailed and specific positioning information, such as satellites used to fix the location.
-*
-* An application obtains the %Location instances from LocationProvider.
-*/
+ * @class      Location
+ * @brief      This class provides information about a location including its geographical coordinates, altitude, and so on.
+ *
+ * @since 2.0
+ *
+ * @final      This class is not intended for extension.
+ *
+ * The %Location class contains information about a location fixed by the location provider at a certain moment.
+ * It basically provides the geographical coordinates and horizontal accuracy that determines the estimated error of the coordinates,
+ * while the altitude, vertical accuracy, speed, and course at the location are optionally provided.
+ * It also contains detailed and specific positioning information, such as the satellites used to fix the location.
+ *
+ * An application obtains the %Location instances from LocationProvider.
+ */
 class _OSP_EXPORT_ Location
        : public Tizen::Base::Object
 {
 public:
-       /**
+   /**
        * Copying of objects using this copy constructor is allowed.
        *
        * @since 2.0
@@ -65,34 +65,34 @@ public:
        */
        Location(const Location& rhs);
 
-       /**
-        * This destructor overrides Tizen::Base::Object::~Object().
-        *
-        * @since 2.0
-        */
+   /**
+       * This destructor overrides Tizen::Base::Object::~Object().
+       *
+       * @since 2.0
+       */
        virtual ~Location(void);
 
-       /**
-       * Compares the calling instance with the specified instance for equality.
+   /**
+       * Compares the specified instance with the current instance for equality.
        *
        * @since 2.0
        *
-       * @return       @c true if all the fields in the objects are equal, @n
-       *                       else @c false
-       * @param[in]    rhs     The object to compare
+       * @return               @c true if all the fields in the objects are equal, @n
+       *                               else @c false
+       * @param[in]    rhs             The object to compare
        */
        virtual bool Equals(const Tizen::Base::Object& rhs) const;
 
-       /**
-       * Gets the hash value of the calling instance.
+   /**
+       * Gets the hash value of the current instance.
        *
        * @since 2.0
        *
-       * @return       The hash value of the calling instance
+       * @return       The hash value of the current instance
        */
        virtual int GetHashCode(void) const;
 
-       /**
+   /**
        * Gets the horizontal accuracy.
        *
        * @since 2.0
@@ -102,7 +102,7 @@ public:
        */
        double GetHorizontalAccuracy(void) const;
 
-       /**
+   /**
        * Gets the vertical accuracy.
        *
        * @since 2.0
@@ -112,10 +112,10 @@ public:
        */
        double GetVerticalAccuracy(void) const;
 
-       /**
+   /**
        * Gets the course.
        *
-       * The course is the angle of moving direction measured clockwise from true north.
+       * The course is the angle of the moving direction measured clockwise from true north.
        *
        * @since 2.0
        *
@@ -124,7 +124,7 @@ public:
        */
        double GetCourse(void) const;
 
-       /**
+   /**
        * Gets the coordinates.
        *
        * @since 2.0
@@ -133,7 +133,7 @@ public:
        */
        Coordinates GetCoordinates(void) const;
 
-       /**
+   /**
        * Gets the ground speed.
        *
        * @since 2.0
@@ -143,7 +143,7 @@ public:
        */
        double GetSpeed(void) const;
 
-       /**
+   /**
        * Gets the timestamp when this location is fixed.
        *
        * @since 2.0
@@ -152,7 +152,7 @@ public:
        */
        Tizen::Base::DateTime GetTimestamp(void) const;
 
-       /**
+   /**
        * Gets the detailed positioning information.
        *
        * The detailed positioning information is queried using a key, and the %GetExtraInfo() method returns the information corresponding to the key.
@@ -161,21 +161,21 @@ public:
            <tr><td>location_method</td><td>Positioning technology used to fix this location. Possible values are "gps" and "network".</td></tr>
            <tr><td>satellite</td>
                    <td>GPS satellite information in the semicolon-separated satellite sentences.
-                   Each sentence forms "PRN, Elevation, Azimuth, SNR, Active" where PRN is a satellite ID, Elevation is in degree, Azimuth is in degree,
-                   SNR is a signal to nose ratio in dBHZ, and Active is @c 1, if the satellite is in use for positioning, or @c 0.
+                   Each sentence forms "PRN, Elevation, Azimuth, SNR, Active" where PRN is a satellite ID, Elevation is in degrees, Azimuth is in degrees,
+                   SNR is the signal to nose ratio in dBHZ, and Active is @c 1, if the satellite is being used for positioning, or @c 0.
                    For example, it can be "02, 40.0, 83.0, 35.0, 1; 15, 30.0, 65.0, 35.0, 0; 22, 80.0, 120.0, 40.0, 1;".</td>
            </tr></table>
        *
        * @since 2.0
        *
-       * @return         The information corresponding to the key, @n
-       *                 else an empty string if the @c key is invalid or the requested information is not available for this location
+       * @return        The information corresponding to the key, @n
+       *                else an empty string if the @c key is invalid or the requested information is not available for this location
        * @param[in]     key       The key to the positioning information
        */
        Tizen::Base::String GetExtraInfo(const Tizen::Base::String& key) const;
 
-       /**
-       * Checks the validity for this location.
+   /**
+       * Checks the validity of this location.
        *
        * @since 2.0
        *
@@ -184,13 +184,13 @@ public:
        */
        bool IsValid(void) const;
 
-       /**
+   /**
        * Copying of objects using this copy assignment operator is allowed.
        *
        * @since 2.0
        *
-       * @return       A reference to the current instance
-       * @param[in]    rhs     An instance of %Location to assign
+       * @return               A reference to the current instance
+       * @param[in]    rhs             An instance of %Location to assign
        */
        Location& operator =(const Location& rhs);
 
index f9cc06d..d33bf6f 100644 (file)
@@ -32,30 +32,30 @@ namespace Tizen { namespace Locations
 {
 
 /**
-* @class       LocationCriteria
-* @brief       This class provides methods to specify the service quality that an application wants for the location provider.
-*
-* @since 2.0
-*
-* @final       This class is not intended for extension.
-*
-* The %LocationCriteria class provides methods to specify the service quality that an application wants for the location provider.
-* The application specifies the location criteria based on its scenario and gives it to the location provider.
-*
-* The accuracy in the location criteria is for specifying the accuracy levels for the location provider.
-* The accuracy @c LOC_ACCURACY_ANY is for getting locations of any accuracy that the location provider provides.
-* The application can get more accurate locations as it takes higher accuracy levels from @c LOC_ACCURACY_ONE_KILOMETER,
-* @c LOC_ACCURACY_HUNDRED_METERS, @c LOC_ACCURACY_TEN_METERS, and @c LOC_ACCURACY_FINEST.
-* The application should be aware that higher accuracy levels makes the location provider run costly positioning systems more. Considering proper
-* accuracy levels helps the system to provide efficient services to the user.
-*
-* @see         LocationProvider
-*/
+ * @class      LocationCriteria
+ * @brief      This class provides methods to specify the service quality that an application wants for the location provider.
+ *
+ * @since 2.0
+ *
+ * @final      This class is not intended for extension.
+ *
+ * The %LocationCriteria class provides methods to specify the service quality that an application wants for the location provider.
+ * The application specifies the location criteria based on the scenario and gives it to the location provider.
+ *
+ * The accuracy in the location criteria is for specifying the accuracy levels for the location provider.
+ * The accuracy @c LOC_ACCURACY_ANY is for getting locations of any accuracy that the location provider provides.
+ * The application can get more accurate locations if it specifies higher accuracy levels such as @c LOC_ACCURACY_ONE_KILOMETER,
+ * @c LOC_ACCURACY_HUNDRED_METERS, @c LOC_ACCURACY_TEN_METERS, and @c LOC_ACCURACY_FINEST.
+ * The application should be aware that higher accuracy levels make the location provider run costly positioning systems more often. Considering proper
+ * accuracy levels helps the system provide efficient services to the user.
+ *
+ * @see                LocationProvider
+ */
 class _OSP_EXPORT_ LocationCriteria
        : public Tizen::Base::Object
 {
 public:
-       /**
+   /**
        * Initializes an instance of %LocationCriteria with the accuracy set to @c LOC_ACCURACY_ANY.
        *
        * @since 2.0
@@ -63,7 +63,7 @@ public:
        */
        LocationCriteria(void);
 
-       /**
+   /**
        * This is the copy constructor for the %LocationCriteria class. @n
        * Copying of objects using this copy constructor is allowed.
        *
@@ -73,47 +73,47 @@ public:
        */
        LocationCriteria(const LocationCriteria& rhs);
 
-       /**
+   /**
        * This destructor overrides Tizen::Base::Object::~Object().
        *
        * @since 2.0
        */
        virtual ~LocationCriteria(void);
 
-       /**
-       * Compares the calling instance with the specified instance for equality.
+   /**
+       * Compares the specified instance with the current instance for equality.
        *
        * @since 2.0
        *
-       * @return       @c true if all the fields in the objects are equal, @n
-       *                       else @c false
-       * @param[in]    rhs     The object to compare
+       * @return               @c true if all the fields in the objects are equal, @n
+       *                               else @c false
+       * @param[in]    rhs             The object to compare
        */
        virtual bool Equals(const Tizen::Base::Object& rhs) const;
 
-       /**
-       * Gets the hash value of the calling instance.
+   /**
+       * Gets the hash value of the current instance.
        *
        * @since 2.0
        *
-       * @return       The hash value of the calling instance
+       * @return       The hash value of the current instance
        */
        virtual int GetHashCode(void) const;
 
-       /**
+   /**
        * Sets the desired accuracy.
        *
        * @since 2.0
        *
-       * @return       An error code
-       * @param[in]    accuracy        The desired accuracy
-       * @exception    E_SUCCESS       The method is successful.
+       * @return               An error code
+       * @param[in]    accuracy                The desired accuracy
+       * @exception    E_SUCCESS               The method is successful.
        * @exception    E_INVALID_ARG   The specified @c accuracy is invalid.
        * @see          GetAccuracy()
        */
        result SetAccuracy(LocationAccuracy accuracy);
 
-       /**
+   /**
        * Gets the desired accuracy of this location criteria.
        *
        * @since 2.0
@@ -123,13 +123,13 @@ public:
        */
        LocationAccuracy GetAccuracy(void) const;
 
-       /**
+   /**
        * Copying of objects using this copy assignment operator is allowed.
        *
        * @since 2.0
        *
-       * @return       A reference to the current instance
-       * @param[in]    rhs     An instance of %LocationCriteria to assign
+       * @return               A reference to the current instance
+       * @param[in]    rhs             An instance of %LocationCriteria to assign
        */
        LocationCriteria& operator =(const LocationCriteria& rhs);
 
index 781171b..c613511 100644 (file)
@@ -35,27 +35,27 @@ class Location;
 class ILocationProviderListener;
 
 /**
-* @class       LocationProvider
-* @brief       This class provides methods to get locations and enable region monitoring.
-*
-* @since 2.0
-*
-* @final       This class is not intended for extension.
-*
-* The %LocationProvider class is a fundamental module that provides location-based services: location providing and region monitoring.
-* The location provider is constructed with a location criteria and offers the services trying to satisfy it in a best-effort manner.
-* An application gets locations by simply calling the GetLocation() method, or requesting asynchronous location updates with the
-* StartLocationUpdatesByInterval() and StartLocationUpdatesByDistance() methods. An application can also register regions by calling the
-* AddMonitoringRegion() method to be notified when moving into or out of regions. It gets asynchronous location updates and notifications
-* from the region monitoring by assigning a listener, which implements the ILocationProviderListener interface, to the location provider.
-*
-* @see         LocationCriteria
-*/
+ * @class      LocationProvider
+ * @brief      This class provides methods to get locations and enable region monitoring.
+ *
+ * @since 2.0
+ *
+ * @final      This class is not intended for extension.
+ *
+ * The %LocationProvider class is a fundamental module that provides location-based services, such as location providing and region monitoring.
+ * The location provider is constructed with a location criteria and offers services to satisfy it in a best-effort manner.
+ * An application gets locations by simply calling the GetLocation() method, or by requesting asynchronous location updates using the
+ * StartLocationUpdatesByInterval() and StartLocationUpdatesByDistance() methods. An application can also register regions by calling the
+ * AddMonitoringRegion() method to be notified when moving into or out of regions. It gets asynchronous location updates and notifications
+ * from the region monitoring service by assigning a listener, which implements the %ILocationProviderListener interface, for the location provider.
+ *
+ * @see                LocationCriteria
+ */
 class _OSP_EXPORT_ LocationProvider
        : public Tizen::Base::Object
 {
 public:
-       /**
+   /**
        * The object is not fully constructed after this constructor is called. @n
        * For full construction, the Construct() method must be called right after
        * calling this constructor.
@@ -64,190 +64,195 @@ public:
        */
        LocationProvider(void);
 
-       /**
+   /**
        * This destructor overrides Tizen::Base::Object::~Object().
        *
        * @since 2.0
        */
        virtual ~LocationProvider(void);
 
-       /**
+   /**
        * Initializes this instance of %LocationProvider with the specified @c criteria and @c listener. @n
-       * An application chooses the desired service quality based on its scenario and constructs the location provider with the specified
-       * @c criteria. The desired accuracy for locations is a configurable property of LocationCriteria. @n
-       * The location provider tries to provides locations and services based on the specified @c criteria. @n
-       * The @c listener is notified on asynchronous location updates or region monitoring events.
+       * An application chooses the desired service quality based on the scenario and constructs the location provider with the specified
+       * @c criteria. The desired accuracy for the location provision is a configurable property of LocationCriteria. @n
+       * The location provider tries to provide locations and services based on the specified @c criteria. @n
+       * The @c listener is notified about asynchronous location updates or region monitoring events.
        *
        * @since 2.0
        *
-       * @feature      %http://tizen.org/feature/location
-       * @return       An error code
-       * @param[in]    criteria        The desired location criteria
-       * @param[in]    listener        The listener to register
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_SYSTEM        A system error has occurred.
+       * @feature              %http://tizen.org/feature/location
+       * @return               An error code
+       * @param[in]    criteria                                  The desired location criteria
+       * @param[in]    listener                                  The listener to register
+       * @exception    E_SUCCESS                                 The method is successful.
+       * @exception    E_SYSTEM                                  A system error has occurred.
        * @exception    E_UNSUPPORTED_OPERATION   The Emulator or target device does not support the required feature. @b Since: @b 2.1
-       * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+       *                                                                                 For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
        * @remarks      Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
        */
        result Construct(const LocationCriteria& criteria, ILocationProviderListener& listener);
 
-       /**
-       * Requests the location updates service with the specific @c interval. @n
+   /**
+       * Requests the location updates service with the specified @c interval. @n
        * Once the location updates have started and the location provider has fixed the current location, the location is delivered
        * to the listener by calling the ILocationProviderListener::OnLocationUpdated() method. @n
-       * The location provider is trying to provide accurate locations as requested in the criteria, but locations updated by the location provider
-       * do not always fall into the requested accuracy level. It provides locations in low-grade accuracy if that is all it can offer
-       * or can not even provide locations when it hardly fixes the current location.  @n The location provider notifies the listener whenever the accuracy
+       * The location provider tries to provide accurate locations as requested in the criteria, but locations that are updated by the location provider
+       * do not always fall into the requested accuracy level. It provides locations with low-grade accuracy if that is all it can offer
+       * or does not even provide locations if it has hardly fixed the current location. @n The location provider notifies the listener whenever the accuracy
        * level of ongoing updates are changed by calling the ILocationProviderListener::OnAccuracyChanged() method. @n
-       * The location updates can be paused by the location provider when the application is unable to point locations out to the user
-       * for the moment. @n This is possible for the following situations:
-       *  - The application is not running in foreground.
+       * The location updates can be paused by the location provider when the application is unable to point out locations to the user
+       * at the moment. @n This is possible in the following situations:
+       *  - The application is not running in the foreground.
        *  - The screen is off.
        *
        * In this case, the location provider notifies the status @c LOC_SVC_STATUS_PAUSED to the listener. @n
-       * It resumes the paused location updates when the application gets out of the situations. @n
-       * To get the location updates all the time, the application should use the KeepLocationUpdateAwake() method. @n
-       * The change in the service status that the location provider is providing are notified to the listener
+       * It resumes the paused location updates when the application gets out of the situation. @n
+       * To get location updates all the time, the application should use the KeepLocationUpdateAwake() method. @n
+       * The change in the service status provided by the location provider is notified to the listener
        * by calling the ILocationProviderListener::OnLocationUpdateStatusChanged() method. @n
-       * If the location updates are already started by calling the StartLocationUpdatesByInterval() or StartLocationUpdatesByDistance() methods,
-       * the location provider cancels the prior request and restarts the updates with the specified parameter.
+       * If location updates are already started by calling the StartLocationUpdatesByInterval() or StartLocationUpdatesByDistance() method,
+       * the location provider cancels the previous request and restarts the updates with the specified parameter.
        *
-       * @since 2.0
+       * @since                2.0
        * @privlevel    public
-       * @privilege %http://tizen.org/privilege/location
+       * @privilege    %http://tizen.org/privilege/location
        *
-       * @return       An error code
-       * @param[in]    interval        The update interval in seconds
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_INVALID_ARG   The specified @c interval is less than @c 1.
-       * @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 using the location information.
+       * @return               An error code
+       * @param[in]    interval                                The update interval in seconds
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_INVALID_ARG                   The specified @c interval is less than @c 1.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       * @exception    E_USER_NOT_CONSENTED    The user has blocked the application from using the location information.
        * @see          StopLocationUpdates()
        */
        result StartLocationUpdatesByInterval(int interval);
 
-       /**
-       * Requests the location updates service with the specific @c distance filter. @n
+   /**
+       * Requests the location updates service with the specified @c distance filter. @n
        * Once the location updates have started, the initial location is delivered soon after it becomes available to the listener
        * by calling the ILocationProviderListener::OnLocationUpdated() method. @n Then the location provider updates subsequent locations
-       * when it changes over the specified @c distance. @n
-       * The location updates can be paused by the location provider when the application is unable to point locations out to the user
-       * for the moment. @n This is possible for the following situations:
-       *  - The application is not running in foreground.
+       * as they change over the specified @c distance. @n
+       * The location updates can be paused by the location provider when the application is unable to point out locations to the user
+       * at the moment. @n This is possible in the following situations:
+       *  - The application is not running in the foreground.
        *  - The screen is off.
        *
        * In this case, the location provider notifies the status @c LOC_SVC_STATUS_PAUSED to the listener. @n
-       * It resumes the paused location updates when the application gets out of the situations. @n
-       * To get the location updates all the time, the application should use the KeepLocationUpdateAwake() method. @n
+       * It resumes the paused location updates when the application gets out of the situation. @n
+       * To get location updates all the time, the application should use the KeepLocationUpdateAwake() method. @n
        * Along with the service status, the accuracy level that the location provider is currently providing
-       * is notified to the listener on changes by calling the ILocationProviderListener::OnLocationUpdateStatusChanged()
+       * is notified to the listener when changes occur by calling the ILocationProviderListener::OnLocationUpdateStatusChanged()
        * and ILocationProviderListener::OnAccuracyChanged() methods respectively. @n
-       * If the location updates are already started by calling the StartLocationUpdatesByInterval() or StartLocationUpdatesByDistance() methods,
-       * the location provider cancels the prior request and restarts the updates with the specified parameter.
+       * If the location updates are already started by calling the StartLocationUpdatesByInterval() or StartLocationUpdatesByDistance() method,
+       * the location provider cancels the previous request and restarts the updates with the specified parameter.
        *
        * @since 2.0
        * @privlevel    public
-       * @privilege %http://tizen.org/privilege/location
+       * @privilege    %http://tizen.org/privilege/location
        *
-       * @return       An error code
-       * @param[in]    distance        The distance in meters
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_INVALID_ARG   The specified @c distance is less than or equal to @c 0.0 or @c NaN.
-       * @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 using the location information.
+       * @return               An error code
+       * @param[in]    distance                                The distance in meters
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_INVALID_ARG                   Either of the following conditions has occurred:
+       *                                                                               - The specified @c distance is less than or equal to @c 0.0.
+       *                                                                               - The specified @c distance is @c NaN.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       * @exception    E_USER_NOT_CONSENTED    The user has blocked the application from using the location information.
        * @see          StopLocationUpdates()
        */
        result StartLocationUpdatesByDistance(double distance);
 
-       /**
+   /**
        * Stops the location updates.
        *
        * @since 2.0
        *
-       * @return       An error code
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_INVALID_OPERATION     The location updates has not been requested.
+       * @return               An error code
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_INVALID_OPERATION             The location updates have not been requested.
        * @see          StartLocationUpdatesByInterval()
        * @see          StartLocationUpdatesByDistance()
        */
        result StopLocationUpdates(void);
 
-       /**
-       * Keeps the location updates awake or not. @n
-       * The location provider can pause the ongoing location updates when the application is unable to point locations out to the user
-       * for the moment. @n This is possible for the following situations:
-       *  - The application is not running in foreground.
+   /**
+       * Keeps the location updates awake. @n
+       * The location provider can pause the ongoing location updates when the application is unable to point out locations to the user
+       * at the moment. @n This is possible in the following situations:
+       *  - The application is not running in the foreground.
        *  - The screen is off.
        *
-       * To get the location updates all the time, the application should use the StartLocationUpdatesByInterval() or
-       * StartLocationUpdatesByDistance() methods together with the %KeepLocationUpdateAwake() method turning the flag @c enable on. @n
-       * The application should be cautious about doing so since it can make the system awake
-       * during the location updates.
+       * To get location updates all the time, the application should use the StartLocationUpdatesByInterval() or
+       * StartLocationUpdatesByDistance() method along with the %KeepLocationUpdateAwake() method turning the flag @c enable on. @n
+       * The application should be cautious while doing so as it can make the system awake
+       * during location updates.
        *
        * @since 2.0
        * @privlevel    public
-       * @privilege %http://tizen.org/privilege/location and %http://tizen.org/privilege/power @n
-       *                               Both privileges are required.
+       * @privilege    %http://tizen.org/privilege/location and
+       *                               %http://tizen.org/privilege/power @n
+       *                               Both the privileges are required.
        *
-       * @return       An error code
-       * @param[in]    enable  Set to @c true to keep the location updates awake, @n
-       *                                                       else @c false
-       * @exception    E_SUCCESS       The method is successful.
-       * @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 using the location information. @b Since: @b 2.1
+       * @return               An error code
+       * @param[in]    enable                                  Set to @c true to keep the location updates awake, @n
+       *                                                                               else @c false
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       * @exception    E_USER_NOT_CONSENTED    The user has blocked the application from using the location information. @b Since: @b 2.1
        * @see          StartLocationUpdatesByInterval()
        * @see          StartLocationUpdatesByDistance()
        * @see          StopLocationUpdates()
        */
        result KeepLocationUpdateAwake(bool enable);
 
-       /**
+   /**
        * Adds a region for monitoring. @n
        * A region is defined by a center point and a radius. @n
-       * The location provider starts the region monitoring service until all regions are removed. When it detects a movement that crosses the
-       * boundary of a registered region, it notifies the application by calling ILocationProviderListener::OnRegionEntered() or
-       * ILocationProviderListener::OnRegionLeft() with the region identifier that is returned by the %AddMonitoringRegion() method. @n
+       * The location provider starts the region monitoring service until all the regions are removed. When it detects a movement that crosses the
+       * boundary of a registered region, it notifies the application by calling the ILocationProviderListener::OnRegionEntered() or
+       * ILocationProviderListener::OnRegionLeft() method with the region identifier that is returned by the %AddMonitoringRegion() method. @n
        * The altitude of @c regionCenter is not considered in monitoring. @n
        * Along with the service status, the accuracy level that the location provider is currently providing
-       * is notified to the listener on changes by calling the ILocationProviderListener::OnRegionMonitoringStatusChanged()
+       * is notified to the listener when changes occur by calling the ILocationProviderListener::OnRegionMonitoringStatusChanged()
        * and ILocationProviderListener::OnAccuracyChanged() methods respectively. @n
        * Note that, the monitoring service can sometimes makes the system awake by running costly positioning devices.
        *
        * @since 2.0
        * @privlevel    public
-       * @privilege %http://tizen.org/privilege/location and %http://tizen.org/privilege/power @n
-       *                               Both privileges are required.
+       * @privilege    %http://tizen.org/privilege/location and
+       *                               %http://tizen.org/privilege/power @n
+       *                               Both the privileges are required.
        *
-       * @return       An error code
-       * @param[in]    regionCenter    The center coordinate of the region
-       * @param[in]    radius  The monitoring radius in meters
-       * @param[out]   regionId        The ID for the registered region
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_INVALID_ARG   The @c radius is not in the supported monitoring radius range, which currently is [50, 100000] meters, @n
-       *                                                               else the @c radius or the latitude or the longitude of @c regionCenter is @c NaN
-       * @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 using the location information.
+       * @return               An error code
+       * @param[in]    regionCenter             The center coordinate of the region
+       * @param[in]    radius                           The monitoring radius in meters
+       * @param[out]   regionId                         The ID for the registered region
+       * @exception    E_SUCCESS                        The method is successful.
+       * @exception    E_INVALID_ARG            Either of the following conditions has occurred:
+       *                                                                        - The @c radius is not within the supported monitoring radius range, which is currently [50, 100000] meters, 
+       *                                                                        - Either the @c radius, latitude, or longitude of @c regionCenter is @c NaN
+       * @exception    E_PRIVILEGE_DENIED       The application does not have the privilege to call this method.
+       * @exception    E_USER_NOT_CONSENTED The user has blocked the application from using the location information.
        * @see          RemoveMonitoringRegion()
        * @see          RemoveAllMonitoringRegions()
        */
        result AddMonitoringRegion(const Coordinates& regionCenter, double radius, RegionId& regionId);
 
-       /**
+   /**
        * Removes the monitoring region.
        *
        * @since 2.0
        *
-       * @return       An error code
-       * @param[in]    regionId        The region ID to remove
-       * @exception    E_SUCCESS       The method is successful.
+       * @return               An error code
+       * @param[in]    regionId                The region ID to remove
+       * @exception    E_SUCCESS               The method is successful.
        * @exception    E_INVALID_ARG   The specified @c regionId is invalid.
        * @see          AddMonitoringRegion()
        */
        result RemoveMonitoringRegion(RegionId regionId);
 
-       /**
-       * Removes all regions that the location provider monitors.
+   /**
+       * Removes all the regions that the location provider monitors.
        *
        * @since 2.0
        *
@@ -255,30 +260,30 @@ public:
        */
        void RemoveAllMonitoringRegions(void);
 
-       /**
+   /**
        * Gets the current service status of the location updates. @n
        * The location updates service is started by calling the StartLocationUpdatesByInterval() or StartLocationUpdatesByDistance()
        * method. If an application has not made valid requests for the service, the %GetLocationUpdateStatus() method returns @c LOC_SVC_STATUS_IDLE. @n
-       * Otherwise, it returns the service status notified last by the ILocationProviderListener::OnLocationUpdateStatusChanged() listener method.
+       * Otherwise, it returns the service status last notified by the ILocationProviderListener::OnLocationUpdateStatusChanged() listener method.
        *
        * @since 2.0
        * @return       The current service status of the location updates
        */
        LocationServiceStatus GetLocationUpdateStatus(void) const;
 
-       /**
+   /**
        * Gets the current service status of the region monitoring. @n
        * The region monitoring service is started by calling the AddMonitoringRegion() method. @n
        * If an application has not made valid requests for the service, the %GetRegionMonitoringStatus() method returns @c LOC_SVC_STATUS_IDLE. @n
-       * Otherwise, it returns the service status notified last by the ILocationProviderListener::OnRegionMonitoringStatusChanged() listener method.
+       * Otherwise, it returns the service status last notified by the ILocationProviderListener::OnRegionMonitoringStatusChanged() listener method.
        *
        * @since 2.0
        * @return       The current status of the region monitoring service
        */
        LocationServiceStatus GetRegionMonitoringStatus(void) const;
 
-       /**
-       * Gets the accuracy level that the location provider is currently providing. @n
+   /**
+       * Gets the accuracy level that is currently provided by the location provider. @n
        * If an application has not made valid requests for location updates and region monitoring, the %GetCurrentAccuracy() method
        * returns @c LOC_ACCURACY_INVALID. @n
        * Otherwise, it returns the accuracy level last notified by the ILocationProviderListener::OnAccuracyChanged() listener method.
@@ -288,53 +293,53 @@ public:
        */
        LocationAccuracy GetCurrentAccuracy(void) const;
 
-       /**
-       * Gets a current location. @n
-       * An application can simply get the current location with the %GetLocation() method. @n
-       * The location provider runs and waits for positioning systems to fix the current location as requested in the criteria. @n
-       * If it is not fixed in some time, this method call is aborted and returns a location in low-grade accuracy or even
+   /**
+       * Gets the current location. @n
+       * An application can simply get the current location using the %GetLocation() method. @n
+       * The location provider runs and waits for the positioning system to fix the current location as requested in the criteria. @n
+       * If it is not fixed in some time, this method call is aborted and it returns a location with low-grade accuracy, else it returns
        * an invalid location with an @c E_LOCATION_UNAVAILABLE error.
        *
        * @since 2.0
        * @privlevel    public
-       * @privilege %http://tizen.org/privilege/location
+       * @privilege    %http://tizen.org/privilege/location
        *
-       * @feature      %http://tizen.org/feature/location
-       * @return       The current location
-       * @param[in]    criteria        The desired location criteria
-       * @exception    E_SUCCESS       The method is successful.
-       * @exception    E_LOCATION_UNAVAILABLE  The location provider fails to fix the current location.
-       * @exception    E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
-       * @exception    E_UNSUPPORTED_OPERATION   The Emulator or target device does not support the required feature.  @b Since: @b 2.1
+       * @feature              %http://tizen.org/feature/location
+       * @return               The current location
+       * @param[in]    criteria                                The desired location criteria
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_LOCATION_UNAVAILABLE  The location provider has failed to fix the current location.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       * @exception    E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature. @b Since: @b 2.1
        *                                                                               For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
-       * @exception    E_USER_NOT_CONSENTED    The user blocks an application from using the location information.
-       * @exception    E_SYSTEM        A system error has occurred.
+       * @exception    E_USER_NOT_CONSENTED    The user has blocked the application from using the location information.
+       * @exception    E_SYSTEM                                A system error has occurred.
        * @remarks      
-       *                       - This method call takes time as the location provider runs and waits for positioning system.
+       *                       - This method call takes time as the location provider runs and waits for the positioning system.
        *                       - The specific error code can be accessed using the GetLastResult() method.
        *                       - Before calling this method, check whether the feature is supported by 
        *                       Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
        */
        static Location GetLocation(const LocationCriteria& criteria);
 
-       /**
+   /**
        * Gets the last known location. @n
-       * The %GetLastKnownLocation() method returns the last location the system keeps. @n
-       * It is always a good idea to prefer using this method than requesting current locations
-       * since using the last location preserves the location provider from running costly positioning systems.
+       * The %GetLastKnownLocation() method returns the last location present in the system. @n
+       * It is always a good idea to prefer using this method than requesting current locations,
+       * as using the last location prevents the location provider from running costly positioning systems.
        *
        * @since 2.0
        * @privlevel    public
-       * @privilege %http://tizen.org/privilege/location
+       * @privilege    %http://tizen.org/privilege/location
        *
-       * @feature      %http://tizen.org/feature/location
-       * @return       The last location
-       * @exception    E_SUCCESS       The method is successful.
+       * @feature              %http://tizen.org/feature/location
+       * @return               The last location
+       * @exception    E_SUCCESS                               The method is successful.
        * @exception    E_LOCATION_UNAVAILABLE  The last location is unavailable.
-       * @exception    E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
-       * @exception    E_UNSUPPORTED_OPERATION   The Emulator or target device does not support the required feature.  @b Since: @b 2.1
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       * @exception    E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature.  @b Since: @b 2.1
        *                                                                               For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
-       * @exception    E_USER_NOT_CONSENTED    The user blocks an application from using the location information.
+       * @exception    E_USER_NOT_CONSENTED    The user has blocked the application from using the location information.
        * @remarks     
        *                       - The specific error code can be accessed using the GetLastResult() method.
        *                       - Before calling this method, check whether the feature is supported by 
index e24341f..f9059da 100644 (file)
 //
 
 /**
-* @file                FLocTypes.h
-* @brief       This is the header file for the types and constants in the Locations namespace.
-*
-* This header file contains the declarations for the types and constants in the Locations namespace.
-*/
+ * @file               FLocTypes.h
+ * @brief      This is the header file for the types and constants in the %Locations namespace.
+ *
+ * This header file contains the declarations for the types and constants in the Locations namespace.
+ */
 
 #ifndef _FLOC_TYPES_H_
 #define _FLOC_TYPES_H_
 namespace Tizen { namespace Locations
 {
 /**
-* A region ID that identifies a monitoring region registered to LocationProvider.
-*
-* @since 2.0
-*/
+ * A region ID that identifies a monitoring region registered to LocationProvider.
+ *
+ * @since 2.0
+ */
 typedef int RegionId;
 
 /**
-* @enum CoordinateFormat
-*
-* Defines the format for angle representation in degrees, minutes, and seconds.
-*
-* @since 2.0
-*/
+ * @enum CoordinateFormat
+ *
+ * Defines the format for the angle representation in degrees, minutes, and seconds.
+ *
+ * @since 2.0
+ */
 enum CoordinateFormat
 {
-       COORDINATE_FORMAT_DEGREE_MINUTE = 0, /**< The "DD:MM.mm" format, where DD is degrees, MM is minutes, and mm is decimal fraction of a minute */
-       COORDINATE_FORMAT_DEGREE_MINUTE_SECOND, /**< The "DD:MM:SS.ss" format, where DD is degrees, MM is minutes, SS is seconds, and ss is decimal fraction of a second */
+       COORDINATE_FORMAT_DEGREE_MINUTE = 0,    /**< The "DD:MM.mm" format, where DD is degrees, MM is minutes, and mm is the decimal fraction of a minute */
+       COORDINATE_FORMAT_DEGREE_MINUTE_SECOND, /**< The "DD:MM:SS.ss" format, where DD is degrees, MM is minutes, SS is seconds, and ss is the decimal fraction of a second */
 };
 
 /**
-* @enum        LocationAccuracy
-*
-* Defines the accuracy of the location.
-*
-* @since 2.0
-*/
+ * @enum       LocationAccuracy
+ *
+ * Defines the accuracy of the location.
+ *
+ * @since 2.0
+ */
 enum LocationAccuracy
 {
-       LOC_ACCURACY_INVALID = 0, /**< Invalid accuracy @n The location provider uses this value when the location is not available. */
-       LOC_ACCURACY_FINEST, /**< The accuracy of the location is the finest that the location provider provides */
-       LOC_ACCURACY_TEN_METERS, /**< The accuracy of the location is under 10 meters */
+       LOC_ACCURACY_INVALID = 0,        /**< Invalid accuracy @n The location provider uses this value when the location is not available */
+       LOC_ACCURACY_FINEST,             /**< The accuracy of the location is the finest possible value that the location provider provides */
+       LOC_ACCURACY_TEN_METERS,         /**< The accuracy of the location is under 10 meters */
        LOC_ACCURACY_HUNDRED_METERS, /**< The accuracy of the location is under 100 meters */
-       LOC_ACCURACY_ONE_KILOMETER, /**< The accuracy of the location is under 1 kilometer */
-       LOC_ACCURACY_ANY, /**< The accuracy of the location can be anything that the location provider provides */
+       LOC_ACCURACY_ONE_KILOMETER,  /**< The accuracy of the location is under 1 kilometer */
+       LOC_ACCURACY_ANY,                        /**< The accuracy of the location can be anything that the location provider provides */
 };
 
 /**
-* @enum        LocationServiceStatus
-*
-* Defines the location service status that the location provider provides.
-*
-* @since 2.0
-*/
+ * @enum       LocationServiceStatus
+ *
+ * Defines the location service status that the location provider provides.
+ *
+ * @since 2.0
+ */
 enum LocationServiceStatus
 {
-       LOC_SVC_STATUS_IDLE = 0, /**< The status of the location service is idle */
-       LOC_SVC_STATUS_RUNNING, /**< The location provider is successfully running the requested service */
-       LOC_SVC_STATUS_PAUSED, /**< The location provider has paused the location service */
-       LOC_SVC_STATUS_DENIED, /**< The location provider is unable to provide services because the user restricted the use of location service */
-       LOC_SVC_STATUS_NOT_FIXED, /**< The location provider is trying to run the service by fixing the current location */
+       LOC_SVC_STATUS_IDLE = 0,        /**< The status of the location service is idle */
+       LOC_SVC_STATUS_RUNNING,         /**< The location provider is successfully running the requested service */
+       LOC_SVC_STATUS_PAUSED,          /**< The location provider has paused the location service */
+       LOC_SVC_STATUS_DENIED,          /**< The location provider is unable to provide services because the user has restricted the use of the location service */
+       LOC_SVC_STATUS_NOT_FIXED,   /**< The location provider is trying to run the service by fixing the current location */
 };
 }} // Tizen::Locations
 #endif // _FLOC_TYPES_H_
index 858d2fc..3a8529e 100644 (file)
 
 /**
  * @namespace  Tizen::Locations
- * @brief              This namespace contains the classes and interfaces for the location-related information and services.
+ * @brief              This namespace contains classes and interfaces for location-related information and services.
  * @since 2.0
  *
  * @remarks            @b Header @b %file: @b \#include @b <FLocations.h> @n
- *                             @b Library : @b osp-locations
+ *                             @b Library: @b osp-locations
  *
- * The %Locations namespace contains the classes and interfaces for the location-related information and services.
+ * The %Locations namespace contains classes and interfaces for location-related information and services.
  *
  * For more information on the %Locations namespace features, see <a href="../org.tizen.native.appprogramming/html/guide/locations/locations_namespace.htm">Locations Guide</a>.
  *
index d21a7c3..daea9df 100644 (file)
@@ -1,3 +1,27 @@
-version: 1.2.2.1
-Author: Nandan S R (nandan.sr@samsung.com)
-Change: 1) In region Monitoring, use the core accuracy value, instead of LocationAccuracy enum. 2) During WPS positioning, when accuracy is not met by WPS and GPS is not available, the timer value changed to 10 sec if the requested accuracy is FINEST or TEN_METERS.
++[Version] osp-locations_1.2.2.3
++[Date] 10 Sep 2013
++[Title] Fix the problem where thread is blocked when error happens in OnStart
++[Issue#] P130901-00780
++[Problem] In Low battery case when navigation application is opened, crash occurs.
++[Cause] The thread is blocked when there is some problem in the OnStart as Monitor notify is not called.
++[Solution] Change SysTryReturn to SysTryCatch and handle the notify in Catch block.
++[Developer] Nandan SR (nandan.sr@samsung.com)
++==============================================================================
++[Version] osp-locations_1.2.2.2
++[Date] 05 Sep 2013
++[Title] Change the spec file related to secure logs
++[Issue#] N/A
++[Problem] N/A
++[Cause] N/A
++[Solution] Change the spec file
++[Developer] Nandan SR (nandan.sr@samsung.com)
++==============================================================================
++[Version] osp-locations_1.2.2.1
++[Date] 01 July 2014
++[Title] 1) In region Monitoring, use the core accuracy value, instead of LocationAccuracy enum. 2) During WPS positioning, when accuracy is not met by WPS and GPS is not available, the timer value changed to 10 sec if the requested accuracy is FINEST or TEN_METERS.
++[Issue#] N/A
++[Problem] Performance
++[Cause] Non usage of raw values
++[Solution] Use raw values and proper time out
++[Developer] Nandan SR (nandan.sr@samsung.com)
+===============================================================================
index d12f9f4..70fb6f5 100644 (file)
@@ -1,8 +1,9 @@
+%define debug_package %{nil}
 %define __strip /bin/true
 
 Name:          osp-locations
 Summary:       The Locations library of OSP
-Version:       1.2.2.1
+Version:       1.2.2.3
 Release:       2
 Group:         System/Libraries
 License:       Apache License, Version 2
@@ -52,11 +53,24 @@ The Locations library of OSP (DEV)
 %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} -DOBS=1 -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=x86
+%if 0%{?simulator}
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DOBS=1 -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=x86
+%else
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ " cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DOBS=1 -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=x86
+%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} -DOBS=1 -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=arm
+%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} -DOBS=1 -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=arm
+%endif
+
 %endif
 
 # Call make instruction with smp support
index 2a23afd..a3eb7ce 100644 (file)
@@ -1625,48 +1625,60 @@ _LocationManager::HandleLocationCheckTimerExpiry(void)
 bool
 _LocationManager::OnStart(void)
 {
+       SysLog(NID_LOC, "Location manager OnStart is called.");
        SysTryReturn(NID_LOC, __pInitMonitor, false, E_INVALID_STATE, "[E_INVALID_STATE] __pInitMonitor must not be null.");
 
        int res = -1;
+       result r = E_SUCCESS;
 
        std::unique_ptr< ArrayList, AllElementsDeleter > pLocInfoRequestList(new (std::nothrow) ArrayList(SingleObjectDeleter));
-       SysTryReturn(NID_LOC, pLocInfoRequestList != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-       result r = pLocInfoRequestList->Construct();
-       SysTryReturn(NID_LOC, r == E_SUCCESS, false, E_SYSTEM, "[E_SYSTEM] Failed to construct the Location Request list.");
-
        std::unique_ptr< ArrayList, AllElementsDeleter > pSyncLocInfoRequestList(new (std::nothrow) ArrayList(SingleObjectDeleter));
-       SysTryReturn(NID_LOC, pSyncLocInfoRequestList != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       std::unique_ptr< ArrayList, AllElementsDeleter > pAlarmInfoRequestList(new (std::nothrow) ArrayList(SingleObjectDeleter));
+       std::unique_ptr< Tizen::Locations::Location > pGpsLocation(_LocationImpl::GetLocationInstanceN());
+       std::unique_ptr< Tizen::Locations::Location > pWpsLocation(_LocationImpl::GetLocationInstanceN());
+       std::unique_ptr< Timer > pLocUpdateTimer(new (std::nothrow) Timer());
+       std::unique_ptr< Timer > pLocCheckTimer(new (std::nothrow) Timer());
+       std::unique_ptr< Timer > pLocMgrSubstateTimer(new (std::nothrow) Timer());
+
+       r = SettingInfo::AddSettingEventListener(*this);
+       SysTryCatch(NID_LOC, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to set the setting event listener.");
+
+       SysTryCatch(NID_LOC, pLocInfoRequestList != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       r = pLocInfoRequestList->Construct();
+       SysTryCatch(NID_LOC, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to construct the Location Request list.");
+
+       SysTryCatch(NID_LOC, pSyncLocInfoRequestList != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
        r = pSyncLocInfoRequestList->Construct();
-       SysTryReturn(NID_LOC, r == E_SUCCESS, false, E_SYSTEM, "[E_SYSTEM] Failed to construct the Sync Location Request list.");
+       SysTryCatch(NID_LOC, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to construct the Sync Location Request list.");
 
-       std::unique_ptr< ArrayList, AllElementsDeleter > pAlarmInfoRequestList(new (std::nothrow) ArrayList(SingleObjectDeleter));
-       SysTryReturn(NID_LOC, pAlarmInfoRequestList != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       SysTryCatch(NID_LOC, pAlarmInfoRequestList != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
        r = pAlarmInfoRequestList->Construct();
-       SysTryReturn(NID_LOC, r == E_SUCCESS, false, E_SYSTEM, "[E_SYSTEM] Failed to construct the Sync Location Request list.");
+       SysTryCatch(NID_LOC, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to construct the Sync Location Request list.");
 
-       unique_ptr< Tizen::Locations::Location > pGpsLocation(_LocationImpl::GetLocationInstanceN());
-       SysTryReturn(NID_LOC, pGpsLocation != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-       unique_ptr< Tizen::Locations::Location > pWpsLocation(_LocationImpl::GetLocationInstanceN());
-       SysTryReturn(NID_LOC, pWpsLocation != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       SysTryCatch(NID_LOC, pGpsLocation != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       SysTryCatch(NID_LOC, pWpsLocation != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+       SysTryCatch(NID_LOC, pLocUpdateTimer != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       SysTryCatch(NID_LOC, pLocCheckTimer != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       SysTryCatch(NID_LOC, pLocMgrSubstateTimer != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
 
-       std::unique_ptr< Timer > pLocUpdateTimer(new (std::nothrow) Timer());
        r = pLocUpdateTimer->Construct(*this);
-       SysTryReturn(NID_LOC, r == E_SUCCESS, false, E_SYSTEM, "[E_SYSTEM] Failed to construct the location update timer.");
-       std::unique_ptr< Timer > pLocCheckTimer(new (std::nothrow) Timer());
+       SysTryCatch(NID_LOC, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to construct the location update timer.");
+
        r = pLocCheckTimer->Construct(*this);
-       SysTryReturn(NID_LOC, r == E_SUCCESS, false, E_SYSTEM, "[E_SYSTEM] Failed to construct the location chek timer.");
-       std::unique_ptr< Timer > pLocMgrSubstateTimer(new (std::nothrow) Timer());
+       SysTryCatch(NID_LOC, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to construct the location chek timer.");
+
        r = pLocMgrSubstateTimer->Construct(*this);
-       SysTryReturn(NID_LOC, r == E_SUCCESS, false, E_SYSTEM, "[E_SYSTEM] Failed to construct the location manager sub state timer.");
+       SysTryCatch(NID_LOC, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to construct the location manager sub state timer.");
 
-       r = SettingInfo::AddSettingEventListener(*this);
-       SysTryReturn(NID_LOC, r == E_SUCCESS, false, E_SYSTEM, "[E_SYSTEM] Failed to set the setting event listener.");
+       SysLog(NID_LOC, "Now the core Location Managers will be created.");
 
        res = location_manager_create(LOCATIONS_METHOD_GPS, &__locMgrStatus.gpsHandler.handle);
        SysTryCatch(NID_LOC, res == 0, , E_SYSTEM, "[E_SYSTEM] Failed to create Native GPS Location provider.");
        res = location_manager_set_service_state_changed_cb(__locMgrStatus.gpsHandler.handle, GpsServiceUpdateCallback, this);
        SysTryCatch(NID_LOC, res == 0, , E_SYSTEM, "[E_SYSTEM] Failed to register service callback for Native GPS Location provider.");
 
+       SysLog(NID_LOC, "Core Location Managers created successfully.");
        res = location_manager_create(LOCATIONS_METHOD_WPS, &__locMgrStatus.wpsHandler.handle);
        SysTryCatch(NID_LOC, res == 0, , E_SYSTEM, "[E_SYSTEM] Failed to create Native WPS Location provider.");
        res = location_manager_set_service_state_changed_cb(__locMgrStatus.wpsHandler.handle, WpsServiceUpdateCallback, this);
@@ -1703,6 +1715,10 @@ CATCH:
        }
        SettingInfo::RemoveSettingEventListener(*this);
 
+       __pInitMonitor->Enter();
+       __pInitMonitor->Notify();
+       __pInitMonitor->Exit();
+
        return false;
 }