application migration guide - bada c++ application …...application migration guide - bada c++...

58
Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0. For details, see the Content License. Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Upload: others

Post on 02-Jun-2020

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License.

Application Migration Guide - bada C++ Application with bada 2.0 to

Tizen Native Application

Page 2: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 2| Page

1. Converting a bada Application to Tizen Native Application .......................... 5

1.1. System Migration ...................................................................................................................... 7

1.1.1. Case Sensitivity ........................................................................................................ 7

1.1.2. enum Type Size ........................................................................................................ 7

1.1.3. wchar_t Type Size ................................................................................................. 7

1.1.4. Member Variable Initialization .................................................................................. 7

1.1.5. malloc() Allocation ................................................................................................ 7

1.1.6. Non-local and Non-POD Objects ............................................................................. 8

1.1.7. Strong Two-phase Construction Mechanism Check ................................................ 8

1.1.8. Pure Virtual Method Implementation ........................................................................ 8

1.1.9. LLVM Compiler ......................................................................................................... 8

1.1.10. Additional Exception Handling .......................................................................... 8

1.2. File Management Migration ...................................................................................................... 8

1.3. UI Migration ............................................................................................................................ 10

1.3.1. Supporting the HD Resolution ................................................................................ 10

1.3.2. Handling Hardware Menu and Back Keys ............................................................. 13

1.3.3. Drawing UI Controls ............................................................................................... 16

1.3.4. Handling UI Control Changes ................................................................................. 18

1.3.5. Handling Font Changes .......................................................................................... 21

1.3.6. Theme .................................................................................................................... 22

1.3.7. Application Icons .................................................................................................... 22

1.4. Feature Migration .................................................................................................................... 23

1.4.1. Server APIs ............................................................................................................ 23

1.4.2. App ......................................................................................................................... 23

1.4.3. Ad Controls ............................................................................................................. 26

1.4.4. Base – Collections .................................................................................................. 26

1.4.5. Commerce .............................................................................................................. 27

1.4.6. Content - Database Synchronization ..................................................................... 27

1.4.7. Graphics ................................................................................................................. 27

1.4.8. Io ............................................................................................................................. 28

1.4.9. Locations ................................................................................................................ 29

1.4.10. Media .............................................................................................................. 29

1.4.11. Messaging ...................................................................................................... 30

Table of Contents

Page 3: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 3| Page

1.4.12. Network ........................................................................................................... 30

1.4.13. Security ........................................................................................................... 30

1.4.14. Social .............................................................................................................. 30

1.4.15. UI .................................................................................................................... 32

1.4.16. Uix ................................................................................................................... 33

2. API and Privilege Checker .............................................................................. 34

2.1. Using the API and Privilege Checker ..................................................................................... 34

2.2. Solving Privilege Issues .......................................................................................................... 35

2.3. Solving Compatibility Issues ................................................................................................... 36

2.4. Solving Deprecation Issues .................................................................................................... 37

Appendix A. Automatic Changes by the Converting Tool .............................. 38

A.1. Icon Size ................................................................................................................................. 38

A.2. Application Framework Code Changes .................................................................................. 38

A.3. Manifest File Change .............................................................................................................. 39

A.4. Resource Directory Changes ................................................................................................. 39

A.5. Header File Name Changes ................................................................................................... 39

Appendix B. Changing Non-local and Non-POD Objects to Alternative APIs 41

Appendix C. Removed APIs............................................................................... 46

Appendix D. const Removed from Listener and Provider Arguments ......... 58

Page 4: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 4| Page

Overview

This document is a guide on how to efficiently migrate your bada C++ applications to Tizen native applications. To develop a Tizen native application, you must use the Tizen SDK that supports Tizen native APIs.

Note:

The OSP-compatible Tizen application is created by converting a bada application using the migration tool in Tizen with the OSP-compatible mode option. The conversion with the OSP-compatible mode option requires less effort than a conversion to a Tizen native application without the OSP-compatible mode option. Though the converted application can run in a Tizen device, some newly-supported Tizen features cannot be used.

The legacy bada API version 2.0 is called ‘bada 2.0’.

The bada C++ applications can be migrated to Tizen native applications as follows:

bada C++ application with bada 1.x to OSP-compatible Tizen application

bada C++ application with bada 2.0 to OSP-compatible Tizen application

bada C++ application with bada 2.0 to Tizen native application

This guide describes how to migrate the bada application with bada 2.0 to the Tizen native application. For the other

migration options, see the guides under the ‘tizen-sdk/documentation’ folder.

To run your existing bada C++ application on a Tizen device, you must convert your application project to a Tizen native project with the migration tool and rebuild it.

Page 5: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 5| Page

1. Converting a bada Application to Tizen Native Application

You can use the new features provided in Tizen by converting your existing bada application to the Tizen native application without the compatibility mode option. The conversion inserts some code that applies to the changed application framework, and changes the application information automatically for the Tizen native application.

To convert a bada C++ application project:

1. In the IDE, select File > Import > Tizen > Import bada Project and click Next.

2. Select your existing bada C++ application project and click Finish. Do not the select the Enable the compatibility mode check box. A converted Tizen native application project is created.

Page 6: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 6| Page

The following manual migration tasks must be performed:

System migration

File management migration

UI migration

Feature migration

3. To build your converted application project, do one of the following:

In the Project Explorer, select your Tizen application project and press the F10 key.

In the Project Explorer, select your Tizen application project and go to Project > Build Project in the IDE menu.

The build fails if there is any removed or changed API in your application. Update the removed or changed code in your application by referring to the following information:

Native API Reference in IDE Help Contents

Appendix C. Removed APIs

Appendix D. const Removed from Listener and Provider Arguments

Page 7: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 7| Page

4. Right click your application project and select Properties and select C/C++ Build > Tizen Settings > API Privilege options. Check API and Privilege Checker results by building the application. If there are errors in the results, make sure that the APIs and application privileges have been used properly in the application.

5. Test and repackage the application. Note: If you are using the Tizen Emulator for the first time, you must create a new emulator configuration using the Emulator Manager.

6. Register the upgraded application on the Tizen Store when the Tizen device is released.

Perform the following system migration tasks:

1.1.1. Case Sensitivity

The bada platform is case-insensitive, while the Tizen platform is not. If you have any case-insensitive code in your

bada C++ application, especially for the file or directory names, make it case-sensitive. For example, “Fui.h” and

“Fbase.h” cannot be built in the Tizen SDK.

1.1.2. enum Type Size

In bada 2.0, an enum type object is the smallest data type that can hold the values of all the enumerators. However,

in Tizen, the enum type size is at least as wide as that of the int type.

1.1.3. wchar_t Type Size

In bada 2.0, the wchar_t type size is 2 bytes. In Tizen, this has changed to 4 bytes as per the Linux ABI (Application

Binary Interface) specification. If your bada C++ application has hard-coded sources as 2 instead of

sizeof(wchar_t), change them to sizeof(wchar_t).

1.1.4. Member Variable Initialization

Newly allocated memory is not initialized automatically in Tizen, unlike in bada 2.0, which initialized all instances to zero. This means that all member variables of a new class instance have garbage values, and you must initialize them in the class constructor to prevent unexpected error cases.

1.1.5. malloc() Allocation

In bada 2.0, the malloc() method with the size parameter set to zero returns a null address. In Tizen, this method

returns a valid address pointer allocated with zero. If you added the exception check code by null value after calling

malloc()with the size parameter as zero, this change should be considered.

1.1. System Migration

Page 8: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 8| Page

1.1.6. Non-local and Non-POD Objects

Non-local and non-POD objects are known to be harmful in application development since they tend to cause mysterious bugs. This is due to their partially specified order of construction and destruction as per the C++ standards.

Many non-local and non-POD objects were have been provided since bada 1.0 to ease programming, but for the stability, their usage is not allowed in Tizen to avoid dependency management complexities.

Non-local and non-POD objects are provided in Tizen only for source level compatibility with OSP-compatible applications, and will be removed in the near future. To avoid problems, convert your applications to Tizen native applications without the compatibility mode,and use PODs or alternative APIs corresponding to the respective non-local and non-POD objects as defined in Appendix B. Changing Non-local and Non-POD Objects to Alternative APIs.

1.1.7. Strong Two-phase Construction Mechanism Check

Two-phase construction classes must be constructed before uses by calling one of Construct() method(s) once

and only once right after calling one of constructor(s). This idiom had been violated frequently which caused bugs. In Tizen, your application is aborted at an early stage if two-phase construction classes are wrongly constructed. This

behavior is different from bada 2.0, in which related APIs return E_INVALID_STATE.

1.1.8. Pure Virtual Method Implementation

In bada, when the application does not implement the pure virtual method of the parent class, the link error is not reported properly due to its supported link option. In Tizen, the compiler produces the link error for the pure virtual method implementation. If you see the error, make sure that you implement the pure virtual method.

1.1.9. LLVM Compiler

The default compiler has been changed from GCC to LLVM/Clang. LLVM/Clang is stricter than GCC, and can disallow incorrect code that GCC has allowed. For details, see LLVM Language Compatibility.

1.1.10. Additional Exception Handling

In Tizen, some APIs return additional exceptions, such as E_UNSUPPORTED_OPERATION. If you meet unexpected operation in your application, check the API Reference of the API and add the handling code for the additional exception.

File Management

The file management is changed in Tizen. All applications must apply the changes directory paths.

In bada 2.0, applications should access its own files using specific path prefix such as /Home or /Res and access

media files using path prefix of /Media or /Storagecard/Media.

1.2. File Management Migration

Page 9: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 9| Page

In Tizen, an application can access its own files using path getters such as GetAppDataPath() or

GetAppResourcePath() methods in the Tizen::App::App class and access media files using the

GetMediaPath() or GetExternalStoragePath() methods in the Tizen::System::Environment class.

In Tizen, the directory paths are changed as defined in the following table. The old directory path that is used in the bada application must be updated.

Table 1: Changed directory paths in Tizen

bada 2.0 directory path Tizen directory path /Home Use the data directory path that can be obtained with the following code:

String dataDir = Tizen::App::App::GetInstance()-

>GetAppDataPath();

/Res Use the resource directory path that can be obtained with the following code: String resDir = Tizen::App::App::GetInstance()-

>GetAppResourcePath();

/Home/Share Use the shared directory path that can be obtained with the following code: Tizen::App::App::GetInstance()->GetAppSharedPath();

/Home/Share2 Removed. /Share Change the code as follows:

Tizen::App::AppManager::GetAppSharedPath(L”{AppId}”);

/Share2 Removed. /Share/AppControl Removed.

Use the following the shared directory path or the /tmp directory: Tizen::App::AppManager::GetAppSharedPath(L”{AppId}”);

/HomeExt

Removed. Use the following method: Tizen::System::Environment::GetExternalStoragePath();

/HomeExt/Share

/HomeExt/Share2

/ShareExt

/Share2Ext

/Clipboard Removed. /Media Use the following method:

Tizen::System::Environment::GetMediaPath();

In Tizen, the permission of the media directory is read/write, unlike in bada, where it is read-only.

/Storagecard/Media Use the following method: Tizen::System::Environment::GetExternalStoragePath();

In Tizen, the permission of the external media directory is read/write, unlike in bada, where it is read-only.

If you use a Tizen directory path, use one of the following methods instead of the static full path. These methods reduce the migration related tasks in the future.

Tizen::App::App::GetAppRootPath()

Tizen::App::App::GetAppDataPath()

Tizen::App::App::GetAppResourcePath()

Tizen::App::App::GetAppSharedPath()

Page 10: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 10| Page

Tizen::App::AppManager::GetAppSharedPath()

Tizen::System::Environment::GetMediaPath()

Tizen::System::Environment::GetExternalStoragePath()

Tizen supports relative paths.

Open source or 3rd party library APIs having path string as input argument

In general, the type of file or directory path string is const char* which requires modifications.

Refer to the following example:

bada int fd = open(“/Home/sample.txt”, O_CREAT | O_RDWR);

Tizen

String filePath = Tizen::App::App::GetInstance()->GetAppDataPath() +

L"sample.txt";

ByteBuffer* pBuf = Tizen::Base::Utility::StringUtil::StringToUtf8N(filePath);

inf fd = open(static_cast< const char* >(pBuf->GetPointer()), O_CREAT |

O_RDWR );

delete pBuf;

To ensure that the application UI is displayed properly in Tizen, consider the following tasks:

1.3.1. Supporting the HD Resolution

Tizen currently supports the WVGA and HD resolutions. WVGA, HVGA, and WQVGA resolution bada applications need to consider the new screen size during application migration. The HD resolution has a different aspect ratio as compared to bada-supported resolutions. Also, even if the screen size is roughly similar, the pixels in an HD resolution screen are packed much more densely than in other resolutions. Take these factors into account when designing HD-optimized applications.

1.3. UI Migration

Page 11: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 11| Page

Figure 1: Various aspect ratios of different resolutions

You must consider the denser screen and different aspect when you migrate your application from bada. If these issues are ignored, some parts of the screen may be left blank or may be hidden due to the ratio difference, and bitmap resources may appear distorted due to scaling. The following sections provide guidelines to resolve these issues.

Logical Coordinates

Tizen supports a width-oriented logical coordinate system to guarantee application compatibility regardless of the resolution difference. Hence, you can create an application that is compatible with WQVGA, WVGA, or HVGA screens using a common logical coordinate system, which has a width of 480 (as per the Tizen definition).

While you can continue to use this 480 value, it is better to specify a more precise coordinate system because the width of the HD screen, which is 720 physical pixels, is greater than the logical coordinate. Tizen supports 2 base resolutions of 480 and 720. Regardless of the actual screen resolution, the width of a screen is considered to be logically 480 or 720. When the width is thus defined, the height differs depending on the screen aspect ratio. Due to the differing height, avoid specifying absolute coordinates, and instead use the logical coordinates with the following methods:

GetBounds() for the UI controls

GetClientAreaBounds() for Tizen::Ui::Controls::Form or Tizen::Ui::Controls::Popup

classes

The following figure illustrates logical coordinates. For a WVGA resolution, when the width in the logical coordinates is defined as 720, even though a WVGA screen is physically 480x800 pixels, it is represented as 720x1200 logical pixels.

Page 12: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 12| Page

Figure 2: Different logical coordinates of the WVGA and HD screens

WVGA Application Migration

To migrate a WVGA application, use the following guidelines to change your application to be optimal for HD.

Note: You can keep the base resolution as the WVGA default of 480, but changing it to 720 allows for more precise layouting.

1. Add new image files to the screen-density-xhigh folder.

You can load images classified per density using the AppResource::GetBitmapN() method.

Tip: To add image files with Windows Explorer: 1. Run the Windows Explorer. 2. Move to the application project folder.

3. Create the screen-density-xhigh folder under the res folder, if it does not exist.

4. Add image files for the extra high density screen to the res/screen-density-xhigh folder.

2. Multiply all coordinates in the source codes by 1.5 (expansion to scale from 480 to 720).

3. In the Application Project > Properties, set the base resolution property of the Form resources to 720.

4. Change the base resolution property of each XML Form from the UI Builder to 720.

UI Control-related Problems

Since the HD screen in logical coordinates is greater than the WVGA screen height, you must arrange UI controls independent of the screen resolution. Use the layout manager to arrange UI controls optimally.

Page 13: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 13| Page

If the parent container size or the device orientation is changed, a layout places the UI controls in ideal positions according to the rules you can specify in the code.

Depending on the desired screen layout, you can use the following layouts:

Relative layout

Vertical box layout

Horizontal box layout

Grid layout

A layout can be nested inside another layout. With the layout feature, you can make the UI controls fully occupy the

client area without using the GetClientAreaBounds()method of the Tizen::Ui::Controls::Form or Popup

class. If you want to match the width of the child control with that of the Form, which is the parent of the child control,

you can set the width fit policy (or height fit policy) of the child control as FIT_POLICY_PARENT. The UI framework

automatically adjusts the child control’s width or height to fit the client area size.

Many applications based on the WVGA resolution have the bottom area empty when they are displayed on a HD

screen. This problems can be solved by arranging the UI controls by using the GetClientAreaBounds() method

of the Tizen::Ui::Controls::Form or Tizen::Ui::Controls::Popup class and specifying the dimensions

of the child controls to fully take up the area from the returned bounds.

Figure 3: Different client area bounds by screen size

If an Tizen::Ui::Controls::ListView instance is placed at the center of the screen and the ListView size

can be changed, the height must be adjusted to be equal to the actual height of the client area.

1.3.2. Handling Hardware Menu and Back Keys

In Tizen 2.2, the hardware Menu and Back keys are a mandatory part of Tizen. Some UX revisions and application changes are required to support this addition.

Page 14: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 14| Page

In Tizen 2.1, the footer provided a soft back button and the IFormBackEventListener for handling the button.

With the support for hardware Back keys in Tizen 2.2, the support for the back button in the footer is removed.

However, the Form’s IFormBackEventListener is still triggered when the hardware Back key is pressed, so you

can use the same listener without any code modification.

Similarly, a new event listener, IFormMenuEventListener, has been added for handling the hardware Menu key.

You can handle both hardware keys using the Form’s listeners, or you can handle them using the key event listeners.

Along with the hardware Menu key support, the recommended UX for showing the menu has changed from the

ContextMenu to the behavior provided by the OptionMenu class. The application no longer needs to handle the

positioning of the menu, as the menu is now fixed to the bottom of the screen.

To properly support the Menu key, perform the following changes:

Modify event handling

Use the IFormMenuEventListener interface (new for Tizen 2.2) and the IFormBackEventListener

interface to handle key presses.

class HWKeyForm

: public Tizen::Ui::Controls::IFormBackEventListener

, public Tizen::Ui::Controls::IFormMenuEventListener

{

public:

// IFormBackEventListener

virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);

// IFormMenuEventListener

virtual void OnFormMenuRequested(Tizen::Ui::Controls::Form& source);

};

Modify the footer UI handling

Do not use the Footer::SetBackButton() method to enable back buttons in the footer.

result HWKeyForm::OnInitializing(void)

{

Footer* pFooter = GetFooter();

pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);

pFooter->SetBackButton(); // Not needed anymore

__pMenu = new (std::nothrow) OptionMenu();

__pMenu->Construct();

__pMenu->AddItem(L"item 0", ID_CONTEXT_ITEM+0);

__pMenu->AddActionEventListener(*this);

__pMenu->SetShowState(false);

SetFormBackEventListener(this);

SetFormMenuEventListener(this);

return r;

}

Change the menu control

Page 15: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 15| Page

The ContextMenu class has some style differences with the new menu in Tizen 2.2, so change the

ContextMenu object to an OptionMenu (new in Tizen 2.2) object. From the API point of view, the only difference

between the old ContextMenu and the new OptionMenu is that the ContextMenu requires anchor position to

be specified by the application, while the OptionMenu handles positioning automatically.

In Tizen 2.1:

__pMenu = new (std::nothrow) ContextMenu();

__pMenu->Construct(anchor point, style);

__pMenu->AddItem(L"item 0", ID_CONTEXT_ITEM+0);

__pMenu->AddActionEventListener(*this);

__pMenu->SetShowState(false);

In Tizen 2.2:

__pMenu = new (std::nothrow) OptionMenu();

__pMenu->Construct();

__pMenu->AddItem(L"item 0", ID_CONTEXT_ITEM+0);

__pMenu->AddActionEventListener(*this);

__pMenu->SetShowState(false);

Footer with Additional Buttons

If the footer of your Tizen 2.1 application has other buttons in addition to the Menu and Back buttons, the other buttons remain in the footer after the migration, so there is no change to the client area. In this case, no additional changes are required.

Figure 4: Migration when the footer has additional buttons

Page 16: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 16| Page

Footer with only Menu and Back Buttons

If the footer of your Tizen 2.1 application is only used for the Menu and Back buttons, remove the footer as it no longer provides any functionality. The application can use the freed area as client area. Handling the hardware Menu and Back keys does not require a footer.

Figure 5: Migration when the footer only has Menu and Back buttons

Applications without a Form

In the case of applications without a Form, such as full-screen GL game applications, handle the Menu and Back

keys can by adding the IKeyEventListener or the IPropagatedKeyEventListener to the Frame. This is

possible because the Menu and Back keys are treated just like normal keys, KEY_MENU and KEY_BACK, respectively.

1.3.3. Drawing UI Controls

One of the major changes in Tizen is in the UI drawing mechanism. Unlike the bada UI, which supports only synchronous control drawing and screen update, the Tizen UI supports both synchronous and asynchronous control drawing. More importantly, asynchronous drawing is now the basic mechanism of the UI framework.

The Tizen::Ui::Control::Invalidate(bool recursive) method which causes control drawing and screen

update in an asynchronous way is newly introduced in Tizen. The OnDraw() callback method for the invalidated

control is called only when the UI framework considers it to be the necessary time for a screen update and not every

time the Invalidate() method is called. In addition, slight behavior changes have been introduced in the

Tizen::Ui::Control::Draw() and Tizen::Ui::Control::Show() methods: the Draw() method

immediately triggers control drawing, and makes sure that the screen is asynchronously updated, while the Show()

method triggers control drawing and screen update immediately.

Triggering Drawing

Using asynchronous drawing provides higher optimization scope to the UI framework and reduces unnecessary

screen updates, which are very CPU-expensive operations. Use the Invalidate() method instead of the Draw()

or Show() method to update the UI controls. In most cases, it is enough to simply replace the Draw() and Show()

methods in Tizen applications with the Invalidate() method. You are not required to call the Show() method after

Page 17: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 17| Page

calling the Invalidate() method, because the UI framework takes responsibility for the screen update of

invalidated controls.

The OnDraw() event handler is not called immediately when the Invalidate() method is called (unlike with the

Draw() and Show() methods). If you have placed application logic unrelated to control drawing in the OnDraw()

event handler, consider moving the application logic out of the event handler to a proper method As you change from

Draw()/Show() to Invalidate() style, OnDraw() is not called as often as it is called in bada.

Note that invoking the Invalidate() method more than once in an event handler updates the screen only once.

This is because the OnDraw()event handler is called a total of one time for an invalidated control, prior to the screen

update. For example, if an application tries changing the background color of the Form instance to red, green, and

blue sequentially in the OnActionPerformed() event handler, as shown in the box below. The result is that the

background is only painted blue, because the OnDraw() event handler is called once and the background color ends

up being blue, which is the last defined value for the background color.

You can avoid the issue with the Show() method, as described in the following section.

Using Draw()

The Osp::Ui::Control::Draw() method in bada changes the z-order of the control by raising it to the topmost

among siblings, whereas the Tizen::Ui::Control::Draw() method in Tizen does not change the z-order of the

control. Do not overlap controls.

Using Show()

Although the basic UI drawing mechanism is the asynchronous control drawing and screen update, the

Tizen::Ui::Show() method can be called to trigger UI drawing immediately. Since the Show() method invokes

the OnDraw() event handler first and then updates the screen, there is no need to call the Draw() method explicitly.

Use with care. Since the show() method is used to update the screen, which is a very expensive operation, it must

be used with discretion. If you call it several times for one event, it can degrade the application performance.

The Show() method is also required when the application has its own loop and the screen needs to be updated in

that loop (like in the Form background color example in the previous section). Since the UI framework cannot decide

when to invoke the screen update, the application must do the screen update without UI framework intervention by

using the Show() method.

void MyForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)

{

// Other actions

SetBackgroundColor(Color(255, 0, 0, 255));

Invalidate(false);

SetBackgroundColor(Color(0, 255, 0, 255));

Invalidate(false);

SetBackgroundColor(Color(0, 0, 255, 255));

Invalidate(false);

}

Page 18: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 18| Page

1.3.4. Handling UI Control Changes

In Tizen, the look and feel of various UI controls has changed. The following figure highlights some of the changes (note that the UI is not yet final, so this information is subject to change in future revisions).

Figure 6: UI changes from bada to Tizen

[bada control look] [Tizen control look]

[bada header and footer] [Tizen header and footer]

The following sections describe the most important changes in Tizen in detail.

Page 19: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 19| Page

Header and Footer Style

The height of the header has been reduced from 111 to 96 when in portrait mode, and the client size has also changed accordingly. Therefore, applications should check if all layouts of controls work well in the new client area size.

In addition to the above changes, new header and footer styles with taller height have been added in Tizen 2.2

(HEADER_STYLE_TAB_LARGE and FOOTER_STYLE_TAB_LARGE).

Figure 7: The height of headers in Tizen 2.1

Figure 8: The height of headers in Tizen 2.2

You can also see that there have been some GUI tweaks in, for example, the color and the positioning of the tab items inside the header. These changes do not directly affect the API, so minimal changes are required. However, since the look and feel of your application can change, make sure that your application works well with the renewed GUI of Tizen 2.2.

Popup

The Popup control client area is smaller in Tizen than in bada. To accommodate this difference, a slight application

layout change may be required. The most generic way to code for these changes is to create a ScrollPanel that

fits the available client area, and add controls to the ScrollPanel.

Page 20: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 20| Page

Annex Location

The location of some annex style (in the CheckButton or ListView controls) is moved from the right side of the

control to the left. Check all UI controls related to the annex and make sure that the icon and text in each UI control line up consistently.

Figure 9: Annex location change

[bada check style]

[Tizen check style]

ContextMenu

The CONTEXT_MENU_STYLE_ICON is deprecated. Instead, use the CONTEXT_MENU_STYLE_GRID style. This style

supports icons and text on multiple lines.

Figure 10: Multi-line context menu

To set and get the anchor position, use the Tizen::Ui::Controls::ContextMenu::SetAnchorPosition()

and GetAnchorPostion() methods instead of the GetPosition() and SetPosition() methods of the

ContextMenu class.

Page 21: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 21| Page

EditTime and EditDate

The EditTime and EditDate controls have a modified UI, and a new set-up for changing the current values.

Figure 11: New EditTime and EditDate UI

[bada full screen style] [Tizen pop-up style]

1.3.5. Handling Font Changes

The font has changed in Tizen. The new font called TizenSans is slightly larger and wider than the earlier font. The

font in the SDK and actual target device are not guaranteed to be the same and so you must not depend on the precise look or size of the fonts shown in the Emulator.

In bada, the font size cannot be larger than the setting height because all the glyph data are inside the em-box which is the theoretical box or square around a font character of a given 'size', as designed by the font designer. In Tizen, this restriction is removed. To avoid the situation where the top or bottom areas of the text are cut off due to this change, leave enough space at the top and bottom when you draw text.

Page 22: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 22| Page

Figure 12: Font changes

[bada font] [Tizen font]

1.3.6. Theme

In Tizen, there is no support for a system-wide, user configurable theme. For each application, you can select black or white theme, which cannot be changed by the user. In the near future, an app-specific custom theme will also be made available. Since each application chooses the theme to use, there is no longer the need to rely on

SYSTEM_COLOR variables to check for color. These non-POD objects are no longer allowed in Tizen. For more

information on the full list of deprecated system color variables, see Appendix B. Changing Non-local and Non-POD Objects to Alternative APIs.

Most bada applications rely on a black themed UI control set. By selecting the ‘Black’ theme in the manifest.xml,

the applications can continue to specify this theme in order to minimize color-related cosmetic issues.

1.3.7. Application Icons

Applications can include various icons using the manifest.xml editor in the IDE. The types of icons and sizes have changed from bada, and by default, applications migrated to Tizen include the default icons, which can be easily changed from the IDE.

Figure 13: Tizen application icons

Page 23: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 23| Page

Some of your application features may require migration. Remove application features which have been removed in Tizen If the removed feature is provided in another namespace or class, you can change the feature to use the changed namespace or class.

The following sections describe the required feature migration, and provide bug fix information for different operations that can affect your application.

1.4.1. Server APIs

The APIs that use the bada Server are not operated in Tizen, even though no build errors are created. These APIs must be removed in Tizen applications.

1.4.2. App

Handling Platform Application Control Changes

In Tizen, the concept of the provider ID is removed and replaced by the application ID for application control resolution. To specify the platform-provided application control, aliased application ID is supported and can be used instead of the provider ID. The platform application controls must be used as literals as the following table.

Table 2: Changed platform application controls

OSP-compatible application (variable) Tizen native application (literal)

Operation

ID

APPCONTROL_ADD L”http://tizen.org/appcontrol/operation/add”

APPCONTROL_CAPTURE L ”

http://tizen.org/appcontrol/operation/createcontent”

APPCONTROL_DEFAULT L”http://tizen.org/appcontrol/operation/main”

APPCONTROL_EDIT L”http://tizen.org/appcontrol/operation/edit”

APPCONTROL_PICK L”http://tizen.org/appcontrol/operation/pick”

APPCONTROL_PLAY L”http://tizen.org/appcontrol/operation/view”

APPCONTROL_VIEW L”http://tizen.org/appcontrol/operation/view”

APPCONTROL_OPERATION_ADD L”http://tizen.org/appcontrol/operation/add”

APPCONTROL_OPERATION_CALL L”http://tizen.org/appcontrol/operation/call”

APPCONTROL_OPERATION_CAPTURE L ”

http://tizen.org/appcontrol/operation/createcontent”

APPCONTROL_OPERATION_COMPOSE L”http://tizen.org/appcontrol/operation/compose”

APPCONTROL_OPERATION_CONFIGURE L”http://tizen.org/appcontrol/operation/configure”

APPCONTROL_OPERATION_CROP L”http://tizen.org/appcontrol/operation/crop”

APPCONTROL_OPERATION_DEFAULT L”http://tizen.org/appcontrol/operation/main”

APPCONTROL_OPERATION_DIAL L”http://tizen.org/appcontrol/operation/dial”

APPCONTROL_OPERATION_EDIT L”http://tizen.org/appcontrol/operation/edit”

APPCONTROL_OPERATION_MAIN L”http://tizen.org/appcontrol/operation/main”

APPCONTROL_OPERATION_PICK L”http://tizen.org/appcontrol/operation/pick”

APPCONTROL_OPERATION_PLAY L”http://tizen.org/appcontrol/operation/view”

APPCONTROL_OPERATION_RECORD L ”

http://tizen.org/appcontrol/operation/createcontent”

APPCONTROL_OPERATION_SHARE L”http://tizen.org/appcontrol/operation/share”

APPCONTROL_OPERATION_VIEW L”http://tizen.org/appcontrol/operation/view”

1.4. Feature Migration

Page 24: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 24| Page

Provider

ID

APPCONTROL_AUDIO L”tizen.musicplayer”

APPCONTROL_BROWSER L”tizen.internet”

APPCONTROL_CALENDAR L”tizen.calendar”

APPCONTROL_CALL L”tizen.phone”

APPCONTROL_CAMERA L”tizen.camera”

APPCONTROL_CONTACT L”tizen.contacts”

APPCONTROL_EMAIL L”tizen.email”

APPCONTROL_IMAGE L”tizen.imageviewer”

APPCONTROL_MEDIA L”tizen.filemanager”

APPCONTROL_MESSAGE L”tizen.messages”

APPCONTROL_SETTINGS L”tizen.settings”

APPCONTROL_VIDEO L”tizen.videoplayer”

APPCONTROL_PROVIDER_AUDIO L”tizen.musicplayer”

APPCONTROL_PROVIDER_BLUETOOTH L”tizen.bluetooth”

APPCONTROL_PROVIDER_BROWSER L”tizen.internet”

APPCONTROL_PROVIDER_CALENDAR L”tizen.calendar”

APPCONTROL_PROVIDER_CALL L”tizen.phone”

APPCONTROL_PROVIDER_CAMERA L”tizen.camera”

APPCONTROL_PROVIDER_CERTIFICAT

E_MANAGER

L”tizen.certificatemanager”

APPCONTROL_PROVIDER_CONTACT L”tizen.contacts”

APPCONTROL_PROVIDER_EMAIL L”tizen.email”

APPCONTROL_PROVIDER_IMAGE L”tizen.imageviewer”

APPCONTROL_PROVIDER_MEDIA L”tizen.filemanager”

APPCONTROL_PROVIDER_MESSAGE L”tizen.messages”

APPCONTROL_PROVIDER_SETTINGS L”tizen.settings”

APPCONTROL_PROVIDER_VIDEO L”tizen.videoplayer”

Sign-in AppControl

The following constants related to the Sign-in AppControl are removed.

Osp::App::APPCONTROL_SIGNIN

Osp::App::APPCONTROL_PROVIDER_SIGNIN

Osp::App::APPCONTROL_OPERATION_SIGNIN

Osp::App::OPERATION_SIGNIN

Application Launch and Control Request

The workflows of the following application launching cases are changed in Tizen:

Normal application launch

Conditional application launch

Application control start request from other application

Page 25: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 25| Page

In bada 2.0, the Osp::Application::OnUserEventReceivedN() event handler is invoked if the normal or

conditional application launch, or an application control request is received. The application must parse the array list to identify what the request is, as shown in the following code:

void MyApplication::OnUserEventReceivedN(RequestId reqId, IList* pArgs)

{

if (reqId == AppLaunchRequestId && pArgs != null)

{

if (pArgs->GetAt(0) == APP_LAUNCH_NORMAL)

{

// Normal application launch

}

else if (pArgs->GetAt(0) == APP_LAUNCH_CONDITIONAL)

{

// Conditional application launch

}

else

{

// Application control request

}

}

}

In the Osp::Application::OnAppInitializing()event handler, the application can get the same information

by invoking the Osp::Application::GetAppArgumentListN() method.

In Tizen, the normal application launch request is classified as a special kind of application control request with the

L”http://tizen.org/appcontrol/operation/main” operation ID, and it can be checked in the

Tizen::App::IAppControlProviderEventListener interface. The conditional application launch can be

checked in the Tizen::App::IAppLaunchConditionEventListener interface, as shown in the following code:

void MyApplication::OnAppInitializing(AppRegistry& appRegistry)

{

//...

AppControlProviderManager::GetInstance()->

SetAppControlProviderEventListener(this);

AppManager::GetInstance()->SetAppLaunchConditionEventListener(this);

}

void MyApplication::OnAppControlRequestReceived (RequestId reqId,

const String& opId,

const String* pUriData,

const String* pDataType,

const IMap* pArgs)

{

if (opId == L”http://tizen.org/appcontrol/operation/main”)

{

// Normal launch

}

else

{

// Application control launch

}

}

Page 26: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 26| Page

void MyApplication::OnAppLaunchConditionMetN(const String& condition,

Object* pExtra, IList* pArgs)

{

// Conditional application request

}

The listeners in the above code snippet are invoked in the following order:

Tizen::App::OnAppInitializing()

Tizen::App::IAppControlProviderEventListener::OnAppControlRequestReceived() or Tizen::App::IAppLaunchConditionEventListener::OnAppLaunchConditionMetN()

Tizen::App::UiApp::OnForeground() or Tizen::App::App::OnAppInitialized() when

initializing the application

1.4.3. Ad Controls

The Osp::Ads::Controls namespace is removed. Alternative APIs will be provided in the near future.

1.4.4. Base – Collections

In bada 2.0, manual actions are needed to clean the containing elements of a collection before destroying the

elements.

In Tizen, you can define a custom element deleter, which cleans up automatically when the collection is destroyed.

The following code shows a list collection example in different versions, when the MyClass::CleanUp() method

must be called before destroying the MyClass instance.

In bada 2.0:

ArrayList list;

// Call MyClass::CleanUp() using an enumerator

IEnumerator* pEnum = list.GetEnumeratorN();

Object* pItem = null;

MyClass* pMyClass = null;

while (pEnum->MoveNext() == E_SUCCESS)

{

pItem = pEnum->GetCurrent();

pMyClass = dynamic_cast< MyClass* >(pItem);

pMyClass->CleanUp();

}

// Destroy all elements

Page 27: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 27| Page

list.RemoveAll(true);

In Tizen:

// Define the custom element deleter, MyClassDeleter

void

MyClassDeleter(Object* pObj)

{

// Check for null as necessary

if (pObj != null)

{

MyClass* pMyClass = dynamic_cast< MyClass* >(pObj);

pMyClass->CleanUp();

delete pObj;

}

}

// Set the element deleter to MyClassDeleter

ArrayList list(MyClassDeleter);

// Destructor of ArrayList calls RemoveAll(), which in turn calls MyClassDeleter()

// When the ArrayList instance goes out of scope,

// all containing elements are automatically cleaned up

}

1.4.5. Commerce

The Osp::Commerce::Store namespace is removed. Alternative APIs will be provided in the near future.

1.4.6. Content - Database Synchronization

In bada 2.0, the content database is not synchronized automatically even if physical files exist in the media directory.

The content database is only synchronized if the Osp::Content::ContentManager::CreateContent()

method is called.

In Tizen, the database is automatically synchronized if a physical file is created, updated, or deleted in the media directory.

1.4.7. Graphics

Bitmap Capture

In bada 2.0, the Bitmap instance is initialized by copying a rectangular area of the screen. Even when the

application runs in the background, the foreground screen can be captured.

Page 28: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 28| Page

In Tizen, the behavior of the Tizen::Graphics::Bitmap::Construct(const Rectangle&) method is clearly

defined. It initializes the Bitmap instance by copying a Frame (the rectangular area of the application) which implies

that you can capture only the content of your application.

result Osp::Graphics::Canvas::Show(void)

In Tizen, the Tizen::Graphics::Canvas::Show() method gives the E_UNSUPPORTED_OPERATION exception

in case of Memory Canvas that is created by the Tizen::Graphics::Canvas::Construct() method and is not

associated with any particular Window.

To avoid the exception, use Window Canvas that is retrieved from a UI control instead of Memory Canvas with the following two methods:

Drawing 2D primitives to Window Canvas

Copying the Memory Canvas buffer for 2D primitives to Window Canvas

BUG FIX: Constructor of Osp::Graphics::Bitmap by ByteBuffer

The ByteBuffer input parameter of the Osp::Graphics::Bitmap::Construct(const ByteBuffer&, …)

method must not be changed due to the const keyword. In bada 2.0, there is a bug that causes the buffer position of

the ByteBuffer instance to point to the last current index after the Osp::Graphics::Bitmap::Construct()

method is called. This is now fixed and the ByteBuffer is not changed.

1.4.8. Io

Osp::Io::File

The following methods are removed in Tizen:

result Construct(const Osp::Base::String &filePath, const Osp::Base::String

&openMode, bool secureMode, bool createParentDirectories)

result Construct(const Osp::Base::String &filePath, const Osp::Base::String

&openMode, bool secureMode, const Osp::Base::ByteBuffer &key, bool

createParentDirectories)

Instead of them, use the following method:

result Construct(const Tizen::Base::String &filePath, const char* pOpenMode, const

Tizen::Base::ByteBuffer &key)

Osp::Io::Database

The following methods are removed in Tizen:

result Construct(const Osp::Base::String &databasePath, long openMode, bool

secureMode, long option)

-result Construct(const Osp::Base::String &databasePath, long openMode, bool

secureMode, const Osp::Base::ByteBuffer &key, long option)

Page 29: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 29| Page

Instead of them, use the following method:

result Construct(const Tizen::Base::String &databasePath, const char* pOpenMode,

const Tizen::Base::ByteBuffer &key)

Osp::Io::Registry

The following methods are removed in Tizen:

result Construct(const Osp::Base::String &regPath, long openMode, bool secureMode,

long option)

result Construct(const Osp::Base::String &regPath, long openMode, bool secureMode,

const Osp::Base::ByteBuffer &key, long option)

Instead of them, use the following method:

result Construct(const Tizen::Base::String &regPath, const char* pOpenMode, const

Tizen::Base::ByteBuffer &key)

Osp::Io::SerialPort

Though commans sent by the host device in bada are compatible in Tizen, you must change them to Tizen commands of the host device to upgrade your application in Tizen continuously. For Tizen commands, see “Tizen Native App Programming > Programming Guide > Io: Input, Output, and Data Handling > Serial Port Communication” in Tizen IDE Help Contents.

1.4.9. Locations

Most features of the Osp::Locations::Controls and Osp::Locatinos::Services namespaces are removed. Alternative APIs will be provided in the near future.

1.4.10. Media

OpenAL Library Name

The OpenAL’s library name is changed from ‘libfreealut’ to ‘libalut’. In the Properties > C/C++ Build >

Settings > C++ Linker -> Libraries(-l), change the library name from freealut to alut.

Buffer management in AudioOut::WriteBuffer(const Osp::Base::ByteBuffer &userData)

In bada 2.0, the Osp::Media::AudioOut::WriteBuffer() copies the input buffer to an internal buffer, for caller

to reuse the input buffer after calling WriteBuffer().

In Tizen the input buffer is added to the queue without copying its data. Therefore, the caller must not delete or overwrite the input buffer until the Tizen::Media::IAudioOutEventListener::OnAudioOutBufferEndReached(Tizen::Media::AudioOu

t &src) is called. If the caller overwrites the input buffer with other audio data after

Tizen::Media::AudioOut::WriteBuffer() method, it may result in a jitter sound. If the caller deletes the

input buffer, then the application may crash.

BUG FIX: Exception Handling in Osp::Media::Player::OpenXxx()

Page 30: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 30| Page

If your application handles the E_UNSUPPORTED_FORMAT or E_UNSUPPORTED_CODEC exceptions after calling the

following methods in bada 2.0, move the exception handling after the Osp::Media::Player::Play() method.

Osp::Player::OpenFile()

Osp::Media::Player::OpenBuffer()

Osp::Media::Player::OpenUrl()

In Tizen, these methods do not return those exceptions.

1.4.11. Messaging

BUG FIX: Osp::Messaging::RecipientList::GetHashCode()

A bug that gives different hash values for the same instance is fixed.

1.4.12. Network

Ad-hoc

The ad-hoc feature is removed. Instead of using this feature, use the Wi-Fi Direct™ classes in the Osp::Network::Wifi namespace that provide similar methods.

Osp::Net::Wife::WifiDirectGroupInfo

The following method is removed in Tizen:

result SetSsid(const Osp::Base::String &ssid)

1.4.13. Security

The Osp::Security::Crypto::Rc5Cipher class is removed. Alternative class such as

Osp::Security::Crypto::AesCipher class can be used for symmetric encryption algorithm.

1.4.14. Social

Addressbook (Osp::Social::Addressbook::Construct(const IRecordEventListener*))

The following changes are made:

In bada 2.0, the application is not notified of the changes that are made by itself. However, in Tizen, the application is notified of the changes that are by itself.

In bada 2.0, when a contact is added to or removed from a category, the application is only notified of the changes in the category. However, in Tizen, the application is notified of both the changes in the category as well as the changes in the contact.

CalEvent (Osp::Social::CalEvent::SetCategory())

Page 31: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 31| Page

In bada 2.0, if the category property of the CalEvent class is set to EVENT_CATEGORY_ANNIVERSARY, it is handled

as an ‘all day event’ even though the all-day event property is not set.

However, in Tizen, if the category property is set to EVENT_CATEGORY_ANNIVERSARY, the all-day event property is

set automatically.

Calendarbook

The following changes are made in the Calendarbook class:

Osp::Social::Calendarbook::Construct(const IRecordEventListener*)

In bada 2.0, the application is not notified of the changes that are made by itself. However, in Tizen, the application is notified of the changes that are by itself starting.

Osp::Social::Calendarbook::GetEventInstances() and Osp::Social::Calendarbook::GetEventInstancesN()

In Tizen, the system limits the maximum number of the recurring events that are generated by the event recurrence rule. If the ‘until’ property of the recurrence is set to too distant a date compared to the event’s start date, many recurring events are generated. This is the same when the recurrence count value is large. In this case, the system limits the number of event instances created.

Type of RecordId

In bada 2.0, the type of RecordId was long long. However, in Tizen, the type of RecordId is int. If an

application used long long type instead of RecordId, this change must be considered.

Social Services

The Osp::Social::Services namespace is removed.

The features related to the following classes are removed.

Osp::Social::Services::BuddyService

Osp::Social::Services::ProfileService

Osp::Social::Services::PrivacyManager

The classes related to Osp::Social::Services::SnsGateway, and their APIs, have been deprecated and are

provided with the Samsung::SnsGateway namespace in the SnsGateway add-on SDK. To use the SnsGateway features:

1. Install the SnsGateway add-on SDK. The installation method is the same as for the migration tool add-on SDK.

2. Import a bada application project and convert it to Tizen application project.

3. Add the http://tizen.org/privilege/web.service and http://tizen.org/privilege/http

privileges to the application in the manifest editor.

4. Replace existing ‘Tizen::Social::Services’ instances with ‘Samsung::SnsGateway’.

Page 32: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 32| Page

5. Include the ‘SamsungSnsGateway.h’ file. If the ‘FSocialServices.h’ or ‘FSclSvc*.h’ files are included,

remove them.

6. In the Project Explorer view, right-click the project and select Properties > C/C++ Build > Tizen Settings > Framework, and check samsung-snsgateway-sdk.

In case of Facebook and Twitter features, alternative APIs will be provided in the near future.

1.4.15. UI

Frame and Form

In bada, there is a maximum number of Frames and Forms that the application can construct. In Tizen, the number

is limited only by the available memory.

Flash

The Osp::Ui::Control::Flash class and its related classes are removed. Alternative APIs will be provided in

the near future.

Osp::Ui::Control::OnInitializing() and OnTerminating()

The Osp::Ui::Control::OnInitializing() method is no longer called when you call the AddControl()

method, but it is called if the control is successfully attached to the internal tree of containers and controls. If the

application has created a parent container and added your control to the container, the OnInitializing method of

your control will be called not after AddControl() to the parent container, but when the parent container itself is

also successfully added to its container, all the way up to the Frame.

The Osp::Ui::Control::OnTerminating() method is called prior to removal of its child controls. While the

UI framework will take care of actually removing and deleting the child controls, the application has the option of doing this removal itself, or making use of the controls prior to its deletion.

Osp::Ui::Control::Draw()

In bada 2.0, the Draw() method draws child controls in a recursive way regardless of the visibility of the parent. In

Tizen, the Draw() method stops drawing at the control which is not visible while issuing control drawing recursively

to the leaf controls.

Osp::Ui::Control::GetCanvasN()

In bada, the Osp::Ui::Control::GetCanvasN() method becomes available after the controls are constructed,

whereas in Tizen, the method can work after the controls are constructed and successfully attached to the internal

tree of containers and controls. The Tizen::Ui::Control::OnInitializing() event handler is called when

the control gets attached to the internal tree, and the GetCanvasN() method works after the OnInitializing()

event handler is called.

Osp::Ui::Container::GetControl()

In bada 2.0, the GetControl() method searches for itself first and then child controls. In Tizen, it searches for the

child controls only.

Page 33: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 33| Page

1.4.16. Uix

Face

The following classes are removed in Tizen. For the face feature, use the Tizen::Uix::Vision namespace.

Osp::Uix::FaceXxxxx

Haptic, Weather

Haptic and Weather features are removed in Tizen.

Speech-To-Text(STT), Text-To_Speech(TTS)

The following classes and related enumerations are removed in Tizen. For speech features, use the Tizen::Uix::Speech namespace.

Osp::Uix::SpeechToText

Osp::Uix::ISpeechToTextEventListener

Osp::Uix::TextToSpeech

Osp::Uix::ITextToSpeechEventListener

Sensor

The following classes are removed in Tizen. For the sensor feature, use the Tizen::Uix::Sensor namespace.

Osp::Uix::SensorData

Osp::Uix::SensorManager

Osp::Uix::ISensorEventListener

Page 34: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 34| Page

2. API and Privilege Checker

In Tizen, some features are changed due to the following issues:

Privilege

If there are APIs that have a changed privilege in your application, the manifest.xml file must be updated.

You can check improper privileges in the API and Privilege Checker and solve them through the native API Reference.

Compatibility You can check for APIs with compatibility issues while using the API and Privilege Checker. Make sure you follow the compatibility description of the native API Reference.

Deprecated API For deprecated APIs, you can check them with the API and Privilege Checker. To ease application maintenance, do not use deprecated APIs. For more information of the deprecated APIs, see the native API Reference.

The API and Privilege Checker helps you to check whether you are using the Tizen APIs properly. Before building your application, select C/C++ Build > Tizen Settings > API Privilege Checker in your application project Properties and select the items that you want the tool to check.

2.1. Using the API and Privilege Checker

Page 35: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 35| Page

Figure 14: API and Privilege Checker

If the tool detects any issues, they are shown in the Problems view after the build is completed. To solve issues for each API, see the information in the native API Reference.

The following alarms with the specific API in the Problems view after building your application point to privilege issues:

Undefined privilege alarm

Unused privilege alarm

Check the manifest.xml file and update it to use the API. In the IDE, you can select and update privileges. The

following figure shows how the privilege information is given in the native API Reference.

2.2. Solving Privilege Issues

Page 36: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 36| Page

Figure 15: Privilege information in the native API reference

2.3. Solving Compatibility Issues

The following alarm with the specific API in the Problems view after building your application points to a compatibility issue:

Compatibility alarm

Check the compatibility details of the API in the native API Reference, as illustrated in the following figure.

Figure 16: Compatibility information in the native API reference

Note: The compatibility alarm does not disappear after updating your application code. It just gives you the notification.

Page 37: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 37| Page

2.4. Solving Deprecation Issues

The following alarm with the specific API in the Problems view after building your application points to the use of deprecated APIs:

Deprecated API alarm

Update your application code based on the information in the native API Reference. The update is not mandatory, but makes your application maintenance easier in the long run.

Figure 17: Deprecation information in the native API reference

Page 38: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 38| Page

Appendix A. Automatic Changes by the Converting Tool

The following sections describe changes that the migration tool provides automatically when bada applications are converted to Tizen native applications.

The Tizen IDE adds the mainmenu.png icon file in the /icons/screen-density-xhigh directory and the added

icon file is described in <icon> element with Section=”MainMenu” and Type=”Xhigh”.

A.2. Application Framework Code Changes

The Tizen IDE adds some code automatically to build and run your application when it converts the bada C++ application project to the Tizen native application project.

Tizen::App::Application class

The Tizen::App::Application class is changed to the Tizen::App::UiApp class.

class BasicApp

public Tizen::App::UiApp,

public Tizen::System::IScreenEventListener

{

public:

static Tizen::App::UiApp* CreateInstance(void)

}

OnAppInitializing()

In Tizen, the following code has to be added in the OnAppInitializing() event handler to create a frame.

bool

BasicApp::OnAppInitializing(void)

{

// Create a Frame

Frame* pBasicAppFrame = new Frame();

pBasicAppFrame->Construct();

pBasicAppFrame->SetName(L"BasicApp");

AddFrame(*pBasicAppFrame);

// Create a form

BasicAppForm* pBasicAppForm = new BasicAppForm();

pBasicAppForm->Initialize();

// Add the form to the frame

pBasicAppFrame->AddControl(*pBasicAppForm);

A.1. Icon Size

Page 39: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 39| Page

// Set the current form

pBasicAppFrame->SetCurrentForm(*pBasicAppForm);

// Draw the form

pBasicAppForm->Draw();

return true;

}

A.3. Manifest File Change

In a Tizen application project, the application information is registered in the manifest.xml file only, while a bada

application project has its information in both the manifest.xml and application.xml files.

A.4. Resource Directory Changes

The resource folder names have been changed in Tizen. The following table defines the details you need to handle the application resources.

Table 3: Changed resource directories

bada Project Tizen Project

Home folder /Home /data

Icon folder /Inc /inc

Include folder /Icons /icons

Resource folder /Res /res

Resource folder /Res /res

/ScreenDensity-Low /screen-density-low

/ScreenDensity-Middle /screen-density-middle

/ScreenDensity-High /screen-density-high

/ScreenSize-Normal /screen-size-normal

Source folder /Src /src

A.5. Header File Name Changes

The following headers are changed in Tizen. Since umbrella headers are used in the application code, if the following headers are used in your bada application, change them to umbrella headers of their namespaces.

FBaseChar.h -> FBase.h

FBaseRtThreadIRunnable.h -> FBase.h

FBaseRtThreadMonitor.h -> FBase.h

FBaseRtThreadMutex.h -> FBase.h

Page 40: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 40| Page

FBaseRtThreadSemaphore.h -> FBase.h

FBaseRtThreadThread.h -> FBase.h

FCntConstants.h -> FContent.h

FMediaAudioCommon.h -> FMedia.h

FMediaAudioRecorderCommon.h -> FMedia.h

FMediaCameraCommon.h -> FMedia.h

FMediaCapabilityCommon.h -> FMedia.h

FMediaImageCommon.h -> FMedia.h

FMediaImageUtilTypes.h -> FMedia.h

FMediaPlayerCommon.h -> FMedia.h

FMediaRecorderCommon.h -> FMedia.h

FMediaToneCommon.h -> FMedia.h

FMediaVideoRecorderCommon.h -> FMedia.h

FMsgCommon.h -> FMessaging.h

FNetIP4Address.h -> FNet.h

FNetIPAddress.h -> FNet.h

FNetIPHostEntry.h -> FNet.h

FSocialTypes.h -> FSocial.h

FTelEnum.h -> FTelephony.h

Page 41: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 41| Page

Appendix B. Changing Non-local and Non-POD Objects to Alternative APIs

The non-local and non-POD objects should be changed to alternative API as the following table.

Table 4: Alternative APIs for non-local and non-POD objects

Existing Non-local and Non-POD objects Alternative APIs in Tizen

Name Type Name Type

Osp::App::APP_LAUNCH_NORMAL Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to 1.4.3. App > Application Launch and Control Request section

-

Osp::App::APP_LAUNCH_CONDITIONA

L

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to 1.4.3. App > Application Launch and Control Request section

-

Osp::App::APPCONTROL_AUDIO Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_BROWSER Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_BT Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_CALENDAR Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_CALL Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_CAMERA Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_CONTACT Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_DIAL Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_EMAIL Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_IMAGE Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_MEDIA Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_MESSAGE Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Page 42: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 42| Page

Osp::App::APPCONTROL_SETTINGS Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_TODO Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_VIDEO Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_ADD Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_CAPTURE Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_DEFAULT Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_EDIT Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_PICK Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_PLAY Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_SIGNOUT Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::OPERATION_VIEW Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_A

UDIO

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_B

LUETOOTH

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_B

ROWSER

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_C

ALENDAR

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_C

ALL

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_C

AMERA

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_C

ERTIFICATE_MANAGER

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_C

ONTACT

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Page 43: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 43| Page

Osp::App::APPCONTROL_PROVIDER_E

MAIL

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_I

MAGE

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_I

MAGE_EDITOR

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_M

EDIA

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_M

ESSAGE

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_S

ETTINGS

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_PROVIDER_V

IDEO

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

ADD

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

CALL

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

CAPTURE

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

COMPOSE

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

CONFIGURE

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

CROP

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

DEFAULT

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

DIAL

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

EDIT

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

MAIN

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

PICK

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

PLAY

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Page 44: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 44| Page

Osp::App::APPCONTROL_OPERATION_

RECORD

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

SHARE

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::App::APPCONTROL_OPERATION_

VIEW

Osp::Base::Str

ing

Alternative API is NOT provided. Please, refer to Table 2: Changed platform application controls

-

Osp::Base::UuId::INVALID_UUID Osp::Base::UuI

d GetInvalidUuId(void)

Tizen::Base::Uu

Id

Osp::Graphics::Color::COLOR_BLA

CK

Osp::Graphics:

:Color GetColor(COLOR_ID_BLACK)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_BLU

E

Osp::Graphics:

:Color GetColor(COLOR_ID_BLUE)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_CYA

N

Osp::Graphics:

:Color GetColor(COLOR_ID_CYAN)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_GRE

EN

Osp::Graphics:

:Color GetColor(COLOR_ID_GREEN)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_GRE

Y

Osp::Graphics:

:Color GetColor(COLOR_ID_GREY)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_MAG

ENTA

Osp::Graphics:

:Color GetColor(COLOR_ID_MAGENTA)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_RED Osp::Graphics:

:Color GetColor(COLOR_ID_RED)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_VIO

LET

Osp::Graphics:

:Color GetColor(COLOR_ID_VIOLET)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_WHI

TE

Osp::Graphics:

:Color GetColor(COLOR_ID_WHITE)

Tizen::Graphics

::Color

Osp::Graphics::Color::COLOR_YEL

LOW

Osp::Graphics:

:Color GetColor(COLOR_ID_YELLOW)

Tizen::Graphics

::Color

Osp::Net::Http::FILE_PART_DEFAU

LT_MIME_TYPE

Osp::Base::Str

ing

HTTP_FILE_PART_DEFAULT_MIM

E_TYPE wchar_t[]

Osp::Net::Http::STRING_PART_DEF

AULT_MIME_TYPE

Osp::Base::Str

ing

HTTP_STRING_PART_DEFAULT_M

IME_TYPE wchar_t[]

Osp::Net::Nfc::NDEF_RTD_SMART_P

OSTER

Osp::Base::Str

ing NFC_NDEF_RTD_SMART_POSTER wchar_t[]

Osp::Net::Nfc::NDEF_RTD_TEXT Osp::Base::Str

ing NFC_NDEF_RTD_TEXT wchar_t[]

Osp::Net::Nfc::NDEF_RTD_URI Osp::Base::Str

ing NFC_NDEF_RTD_URI wchar_t[]

Osp::Social::IM_AIM Osp::Base::Str

ing IM_ADDRESS_AIM wchar_t[]

Osp::Social::IM_GTALK Osp::Base::Str

ing IM_ADDRESS_GTALK wchar_t[]

Osp::Social::IM_ICQ Osp::Base::Str

ing IM_ADDRESS_ICQ wchar_t[]

Osp::Social::IM_JABBER Osp::Base::Str

ing IM_ADDRESS_JABBER wchar_t[]

Osp::Social::IM_MSN Osp::Base::Str

ing IM_ADDRESS_MSN wchar_t[]

Osp::Social::IM_QQ Osp::Base::Str

ing IM_ADDRESS_QQ wchar_t[]

Osp::Social::IM_SKYPE Osp::Base::Str

ing IM_ADDRESS_SKYPE wchar_t[]

Osp::Social::IM_YAHOO Osp::Base::Str

ing IM_ADDRESS_YAHOO wchar_t[]

Page 45: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 45| Page

Osp::Ui::Controls::FAST_SCROLL_

SEARCH_ICON_INDEX

Osp::Base::Str

ing

FAST_SCROLL_SEARCH_ICON_IN

DEX_STRING wchar_t*

Osp::Ui::Controls::SYSTEM_COLOR

_BACKGROUND

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_BODY_TEXT

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_FOREGROUND

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_FORM_BACKGROUND

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_FORM_GROUP_BACKGROUND

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_GROUP_ITEM_TEXT

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_LIST_BACKGROUND

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_LIST_ITEM_HIGHLIGHTED_TEXT

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_LIST_ITEM_PRESSED_TEXT

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_LIST_ITEM_TEXT

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_POPUP_BACKGROUND

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Osp::Ui::Controls::SYSTEM_COLOR

_TITLE_TEXT

Osp::Graphics:

:Color

Alternative API is NOT provided. Please, refer to 1.3.5 Theme

-

Page 46: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 46| Page

Appendix C. Removed APIs

Namespace Class Method

Osp::Ads All classes -

Osp::App Osp::App::AppType

Osp::App::Application Osp::App::GetAppSecret(void)

Osp::App::IPackageEventLi

stener

Osp::App::IpackageEventListener::OnPackageInstallCompleted(

const Osp::Base::String&,

Osp::App::PackageManager::PackageType,

Osp::App::PackageErrorType)

Osp::App::IpackageEventLi

stener

Osp::App::IpackageEventListener::OnPackageInstalling(const

Osp::Base::String&, Osp::App::PackageManager::PackageType,

int, int)

Osp::App::PackageInfo Osp::App::PackageInfo::PackageInfo(void)

Osp::App::PackageManager

Osp::App::PackageManager::IsAppInstalled(const

Osp::Base::String&)

Osp::Base Osp::Base::Runtime::Timer Osp::Base::Runtime::Timer::Construct(const

Osp::Base::Runtime::ItimerEventListener&, bool)

Osp::Commerce

All classes -

Osp::Content Osp::Content::ContentInfo Osp::Content::ContentInfo::MakeThumbnail(Osp::Base::String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::DeleteContentInfo(Osp::Ba

se::String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::GetContentFileSize(Osp::C

ontent::ContentType, Osp::Base::String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::GetContentType(Osp::Base:

:String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::GetSystemAudioMetaN(Osp::

Base::String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::GetSystemImageMetaN(Osp::

Base::String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::GetSystemVideoMetaN(Osp::

Base::String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::IsContentCreated(Osp::Bas

e::String)

Osp::Content::ContentMana

gerUtil

Osp::Content::ContentManagerUtil::RegisterDirectory(Osp::Ba

se::String)

Osp::Content::ContentTran

sfer

Osp::Content::ContentTransfer::OmaDownload(Osp::Content::Do

wnloadDescriptor, Osp::Base::String, bool, RequestId,

Osp::Content::IcontentTransferListener, int)

Osp::Content::ContentTran

sfer

Osp::Content::ContentTransfer::Upload(Osp::Base::String,

Osp::Base::String, bool, Osp::Base::Utility::Uri,

RequestId)

Osp::Content::ContentTran

sferInfo

Osp::Content::ContentTransferInfo::GetContentTransferType(v

oid)

Osp::Content::ContentTran

sferInfo

Osp::Content::ContentTransferInfo::GetDownloadDescriptor(vo

id)

Osp::Content::ContentTran

sferInfo Osp::Content::ContentTransferInfo::GetSourcePath(void)

Osp::Content::ContentTran

sferInfo

Osp::Content::ContentTransferInfo::SetContentTransferStatus

(Osp::Content::ContentTransferStatus)

Osp::Content::DownloadDes

criptor Osp::Content::DownloadDescriptor::~DownloadDescriptor(void)

Osp::Content::DownloadDes

criptor Osp::Content::DownloadDescriptor::DownloadDescriptor(void)

Osp::Content::DownloadDes Osp::Content::DownloadDescriptor::DownloadDescriptor(Osp::C

Page 47: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 47| Page

criptor ontent::DownloadDescriptor)

Osp::Content::DownloadDes

criptor Osp::Content::DownloadDescriptor::GetDescription(void)

Osp::Content::DownloadDes

criptor

Osp::Content::DownloadDescriptor::GetField(Osp::Content::Do

wnloadDescriptorField)

Osp::Content::DownloadDes

criptor Osp::Content::DownloadDescriptor::GetName(void)

Osp::Content::DownloadDes

criptor Osp::Content::DownloadDescriptor::GetSize(void)

Osp::Content::DownloadDes

criptor Osp::Content::DownloadDescriptor::GetType(void)

Osp::Content::DownloadDes

criptor

Osp::Content::DownloadDescriptor::operator=(Osp::Content::D

ownloadDescriptor)

Osp::Content::DownloadDes

criptor

Osp::Content::DownloadDescriptor::ParseString(Osp::Base::St

ring)

Osp::Content::IcontentTra

nsferListener

Osp::Content::IcontentTransferListener::OnContentUploadComp

leted(RequestId, result, Osp::Base::String,

Osp::Base::String)

Osp::Content::IcontentTra

nsferListener

Osp::Content::IcontentTransferListener::OnDownloadDescripto

rReceived(RequestId, Osp::Content::DownloadDescriptor)

Osp::Content::IRemoteCont

entManagerListener

Osp::Content::IremoteContentManagerListener::OnContentCreat

ed(RequestId, Osp::Base::String, result, Osp::Base::String,

Osp::Base::String)

Osp::Content::IRemoteCont

entManagerListener

Osp::Content::IremoteContentManagerListener::OnContentDelet

ed(RequestId, result, Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entManagerListener

Osp::Content::IremoteContentManagerListener::OnContentInfoR

eceivedN(RequestId, Osp::Content::RemoteContentInfo,

result, Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entManagerListener

Osp::Content::IremoteContentManagerListener::OnContentStatu

sReceived(RequestId, Osp::Content::RemoteContentStatus,

result, Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entManagerListener

Osp::Content::IremoteContentManagerListener::OnContentUpdat

ed(RequestId, result, Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entSearchListener

Osp::Content::IremoteContentSearchListener::OnCategoriesRec

eivedN(RequestId, Osp::Base::Collection::Ilist, result,

Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entSearchListener

Osp::Content::IremoteContentSearchListener::OnContentTypesR

eceivedN(RequestId, Osp::Base::Collection::Ilist, result,

Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entSearchListener

Osp::Content::IremoteContentSearchListener::OnRemoteContent

SearchResultReceivedN(RequestId,

Osp::Base::Collection::Ilist, int, int, int, int, result,

Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entSharingListener

Osp::Content::IremoteContentSharingListener::OnAddUsersToAc

lReceived(RequestId, result, Osp::Base::String,

Osp::Base::String)

Osp::Content::IRemoteCont

entSharingListener

Osp::Content::IremoteContentSharingListener::OnGetAccessLev

elReceived(RequestId, Osp::Social::Services::AccessLevel,

result, Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entSharingListener

Osp::Content::IremoteContentSharingListener::OnGetUsersInAc

lReceivedN(RequestId, Osp::Base::Collection::Ilist, result,

Osp::Base::String, Osp::Base::String)

Osp::Content::IRemoteCont

entSharingListener

Osp::Content::IremoteContentSharingListener::OnRemoveAllUse

rsFromAclReceived(RequestId, result, Osp::Base::String,

Osp::Base::String)

Osp::Content::IRemoteCont

entSharingListener

Osp::Content::IremoteContentSharingListener::OnRemoveUsersF

romAclReceived(RequestId, result, Osp::Base::String,

Osp::Base::String)

Osp::Content::IRemoteCont

entSharingListener

Osp::Content::IremoteContentSharingListener::OnSetAccessLev

elReceived(RequestId, result, Osp::Base::String,

Osp::Base::String)

Page 48: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 48| Page

Osp::Content::RemoteCateg

ory Osp::Content::RemoteCategory::~RemoteCategory(void)

Osp::Content::RemoteCateg

ory Osp::Content::RemoteCategory::GetId(void)

Osp::Content::RemoteCateg

ory Osp::Content::RemoteCategory::GetName(void)

Osp::Content::RemoteCateg

ory Osp::Content::RemoteCategory::GetParentId(void)

Osp::Content::RemoteCateg

ory Osp::Content::RemoteCategory::HasChildCategory(void)

Osp::Content::RemoteCateg

ory

Osp::Content::RemoteCategory::RemoteCategory(Osp::Content::

RemoteCategory)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::~RemoteContentInfo(void)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::Construct(Osp::Base::Strin

g, Osp::Base::Utility::Uri, int, Osp::Base::Utility::Uri,

int)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::GetAdditionalAttributes(vo

id)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetAuthor(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetCategory(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetContentId(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetContentName(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetContentPath(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetContentSize(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetContentType(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetDateTime(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetDescription(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetKeyword(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetLanguage(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetProvider(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetRating(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetShortDescription(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetStatus(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetThumbnailPath(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetThumbnailSize(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::GetUserId(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::IsDrmProtected(void)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::RemoteContentInfo(void)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::RemoteContentInfo(Osp::Con

tent::RemoteContentInfo)

Page 49: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 49| Page

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetAdditionalAttributes(Os

p::Base::Collection::Imap)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetAuthor(Osp::Base::Strin

g)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetCategory(Osp::Base::Str

ing)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetContentName(Osp::Base::

String)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetDescription(Osp::Base::

String)

Osp::Content::RemoteConte

ntInfo Osp::Content::RemoteContentInfo::SetDrmProtected(bool)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetKeyword(Osp::Base::Stri

ng)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetLanguage(Osp::Base::Str

ing)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetProvider(Osp::Base::Str

ing)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetRating(Osp::Base::Strin

g)

Osp::Content::RemoteConte

ntInfo

Osp::Content::RemoteContentInfo::SetShortDescription(Osp::B

ase::String)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::~RemoteContentManager(v

oid)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::Construct(Osp::Content:

:IremoteContentManagerListener)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::CreateContent(Osp::Cont

ent::RemoteContentInfo, RequestId)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::DeleteContent(Osp::Base

::String, RequestId)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::GetContentInfo(Osp::Bas

e::String, RequestId)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::GetContentStatus(Osp::B

ase::String, RequestId)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::RemoteContentManager(vo

id)

Osp::Content::RemoteConte

ntManager

Osp::Content::RemoteContentManager::UpdateContent(Osp::Cont

ent::RemoteContentInfo, RequestId)

Osp::Content::RemoteConte

ntSearch

Osp::Content::RemoteContentSearch::~RemoteContentSearch(voi

d)

Osp::Content::RemoteConte

ntSearch

Osp::Content::RemoteContentSearch::Construct(Osp::Content::

IRemoteContentSearchListener)

Osp::Content::RemoteConte

ntSearch

Osp::Content::RemoteContentSearch::GetCategoryList(RequestI

d, Osp::Content::RemoteCategory)

Osp::Content::RemoteConte

ntSearch

Osp::Content::RemoteContentSearch::GetContentTypeList(Reque

stId)

Osp::Content::RemoteConte

ntSearch

Osp::Content::RemoteContentSearch::RemoteContentSearch(void

)

Osp::Content::RemoteConte

ntSearch

Osp::Content::RemoteContentSearch::Search(Osp::Base::String

, RequestId, int, int, Osp::Base::Collection::IList,

Osp::Base::String, Osp::Base::SortOrder)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::~RemoteContentSharing(v

oid)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::AddUsersToAcl(Osp::Base

::String, Osp::Base::Collection::IList, RequestId)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::Construct(Osp::Content:

:IRemoteContentSharingListener)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::GetAccessLevel(Osp::Bas

e::String, RequestId)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::GetUsersInAcl(Osp::Base

::String, RequestId)

Page 50: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 50| Page

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::RemoteContentSharing(vo

id)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::RemoveAllUsersFromAcl(O

sp::Base::String, RequestId)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::RemoveUsersFromAcl(Osp:

:Base::String, Osp::Base::Collection::IList, RequestId)

Osp::Content::RemoteConte

ntSharing

Osp::Content::RemoteContentSharing::SetAccessLevel(Osp::Bas

e::String, Osp::Social::Services::AccessLevel, RequestId)

Osp::Io Osp::Io::ChannelManager Osp::Io::ChannelManager::SetChannelEventListener(const

Osp::Io::IChannelEventListener)

Osp::Io::IChannelEventLis

tener

Osp::Io::IChannelEventListener::OnChannelCreated(const

Osp::App::AppId&, Osp::Io::ChannelType)

Osp::Io::IChannelEventLis

tener

Osp::Io::IChannelEventListener::OnChannelDeleted(const

Osp::App::AppId&, Osp::Io::ChannelType)

Osp::Io::Database Osp::Io::Database::Construct (const Osp::Base::String&, long, bool, long)

Osp::Io::Database

Osp::Io::Database::Construct(const

Osp::Base::String&, long, bool, const

Osp::Base::ByteBuffer&, long)

Osp::Io::Database Osp::Io::Database::ConvertToSecureDatabase(const

Osp::Base::String&, const Osp::Base::String&)

Osp::Io::File Osp::Io::File::Construct(const Osp::Base::String&, const

Osp::Base::String&, bool, bool)

Osp::Io::File

Osp::Io::File::Construct(const String&, const

Osp::Base::String&, bool, const Osp::Base::ByteBuffer&,

bool)

Osp::Io::File Osp::Io::File::ConvertToSecureFile(const

Osp::Base::String&, const Osp::Base::String&)

Osp::Io::File Osp::Io::File::IsEncrypted(const Osp::Base::String&

filePath)

Osp::Io::File Osp::Io::File::IsEncrypted(const Osp::Base::String&

filePath)

Osp::Io::Registry Osp::Io::Registry::Construct(const Osp::Base::String&,

long, bool, long)

Osp::Io::Registry

Osp::Io::Registry::Construct(const

Osp::Base::String&, long, bool, const

Osp::Base::ByteBuffer&, long)

Osp::Io::Registry Osp::Io::Registry::ConvertToSecureRegistry(const

Osp::Base::String&, const Osp::Base::String&)

Osp::Locations::Controls

All classes

-

Osp::Locations::Services

All classes -

Osp::Media Osp::Media::AudioRecorder Osp::Media::AudioRecorder::GetMaxRecordingSize(void)

Osp::Media::AudioRecorder Osp::Media::AudioRecorder::SetMaxRecordingSize(int)

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::~DrmConstraintInfo(void)

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::DrmConstraintInfo(void)

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::GetAccumulatedTime(void)

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::GetEndTime(void)

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::GetInterval(void)

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::GetLeftCounter(void)

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::GetOriginalCounter(void)

Osp::Media::DrmConstraint Osp::Media::DrmConstraintInfo::GetStartTime(void)

Page 51: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 51| Page

Info

Osp::Media::DrmConstraint

Info Osp::Media::DrmConstraintInfo::GetTimedCount(int&, int&)

Osp::Media::DrmInfo Osp::Media::DrmInfo::~DrmInfo(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::Construct(const Osp::Base::String&)

Osp::Media::DrmInfo Osp::Media::DrmInfo::DrmInfo(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetContentAuthor(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetContentCopyright(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetContentDescription(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetContentIconUri(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetContentInfoUrl(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetContentTitle(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetContentType(void)

Osp::Media::DrmInfo

Osp::Media::DrmInfo::GetDrmConstraintInfo(Osp::Media::DrmPe

rmissionType, Osp::Media::DrmConstraintInfo&)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetDrmMethodType(void)

Osp::Media::DrmInfo

Osp::Media::DrmInfo::GetDrmRightStatus(Osp::Media::DrmPermi

ssionType, Osp::Media::DrmRightStatus&)

Osp::Media::DrmInfo Osp::Media::DrmInfo::GetDrmType(void)

Osp::Media::DrmInfo Osp::Media::DrmInfo::IsDrmFile(void)

Osp::Media::ImageBuffer Osp::Media::ImageBuffer::Construct(int width, int height,

MediaPixelFormat pixelFormat)

Osp::Media::ImageBuffer Osp::Media::ImageBuffer::Construct(byte* data, int width,

int height, MediaPixelFormat pixelFormat)

Osp::Media::ImageBuffer Osp::Media::ImageBuffer::Lock(byte* &data, int &length,

MediaPixelFormat &pixelFormat)

Osp::Media::ImageBuffer Osp::Media::ImageBuffer::Unlock(void)

Osp::Media::VideoRecorder Osp::Media::VideoRecorder::GetMaxRecordingSize(void)

Osp::Media::VideoRecorder Osp::Media::VideoRecorder::SetMaxRecordingSize(int)

Osp::Net Osp::Net::NetFastDormancy Osp::Net::NetFastDormancy::~NetFastDormancy(void)

Osp::Net::NetFastDormancy Osp::Net::NetFastDormancy::Construct(void)

Osp::Net::NetFastDormancy

Osp::Net::NetFastDormancy::Construct(const

Osp::Net::NetConnection&)

Osp::Net::NetFastDormancy Osp::Net::NetFastDormancy::NetFastDormancy(void)

Osp::Net::NetFastDormancy Osp::Net::NetFastDormancy::Start(void)

Osp::Net::NetFastDormancy Osp::Net::NetFastDormancy::Stop(void)

Osp::Net::Wifi::AdhocPeer

Info Osp::Net::Wifi::AdhocPeerInfo::~AdhocPeerInfo(void)

Osp::Net::Wifi::AdhocPeer

Info Osp::Net::Wifi::AdhocPeerInfo::AdhocPeerInfo(void)

Osp::Net::Wifi::AdhocPeer

Info Osp::Net::Wifi::AdhocPeerInfo::GetAddress(void)

Osp::Net::Wifi::AdhocPeer

Info Osp::Net::Wifi::AdhocPeerInfo::GetName(void)

Osp::Net::Wifi::AdhocPeer

Info Osp::Net::Wifi::AdhocPeerInfo::GetUpdatedTime()

Osp::Net::Wifi::AdhocPeer

Info

Osp::Net::Wifi::AdhocPeerInfo::SetAddress(Osp::Net::IpAddre

ss)

Page 52: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 52| Page

Osp::Net::Wifi::AdhocPeer

Info Osp::Net::Wifi::AdhocPeerInfo::SetName(Osp::Base::String)

Osp::Net::Wifi::AdhocPeer

Info

Osp::Net::Wifi::AdhocPeerInfo::SetUpdatedTime(Osp::Base::Da

teTime)

Osp::Net::Wifi::AdhocServ

ice Osp::Net::Wifi::AdhocService::~AdhocService(void)

Osp::Net::Wifi::AdhocServ

ice

Osp::Net::Wifi::AdhocService::AdhocService(const

Osp::Net::Wifi::IAdhocServiceEventListener&)

Osp::Net::Wifi::AdhocServ

ice Osp::Net::Wifi::AdhocService::GetNeighborsN(void)

Osp::Net::Wifi::AdhocServ

ice

Osp::Net::Wifi::AdhocService::SendBroadcastMessage(const

Osp::Base::String&)

Osp::Net::Wifi::AdhocServ

ice

Osp::Net::Wifi::AdhocService::SendUnicastMessage(const

Osp::Base::String&, const Osp::Base::String&)

Osp::Net::Wifi::AdhocServ

ice

Osp::Net::Wifi::AdhocService::SendUnicastMessage(const

Osp::Net::IpAddress&, const Osp::Base::String&)

Osp::Net::Wifi::AdhocServ

ice

Osp::Net::Wifi::AdhocService::SetPeerName(const

Osp::Base::String&)

Osp::Net::Wifi::AdhocServ

ice

Osp::Net::Wifi::AdhocService::StartAdhocService(const

Osp::Base::String&, const Osp::Base::String&,

Osp::Net::Wifi::WifiRadioChannel, bool)

Osp::Net::Wifi::AdhocServ

ice Osp::Net::Wifi::AdhocService::StopAdhocService(void)

Osp::Net::Wifi::IAdhocSer

viceEventListener

Osp::Net::Wifi::IAdhocServiceEventListener::~IAdhocServiceE

ventListener(void)

Osp::Net::Wifi::IAdhocSer

viceEventListener

Osp::Net::Wifi::IAdhocServiceEventListener::OnAdhocServiceS

tarted(const Osp::Net::NetConnection, result)

Osp::Net::Wifi::IAdhocSer

viceEventListener

Osp::Net::Wifi::IAdhocServiceEventListener::OnAdhocServiceS

topped(result)

Osp::Net::Wifi::IAdhocSer

viceEventListener

Osp::Net::Wifi::IAdhocServiceEventListener::OnMessageReceiv

ed(const Osp::Base::String&, const Osp::Base::String&)

Osp::Net::Wifi::WifiDirec

tGroupInfo

Osp::Net::Wifi::WifiDirectGroupInfo::SetSsid(const

Osp::Base::String&)

Osp::Security

Osp::Security::Cert::X509

CertificatePathValidation

Parameter

All APIs

Osp::Security::Crypto::Rc

5Cipher Osp::Security::Crypto::Rc5Cipher::~Rc5Cipher(void)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::Construct(const

Osp::Base::String&, enum CipherOperation)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::DecryptN(const

Osp::Base::ByteBuffer&)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::EncryptN(const

Osp::Base::ByteBuffer&)

Osp::Security::Crypto::Rc

5Cipher Osp::Security::Crypto::Rc5Cipher::FinalizeN(void)

Osp::Security::Crypto::Rc

5Cipher Osp::Security::Crypto::Rc5Cipher::Initialize(void)

Osp::Security::Crypto::Rc

5Cipher Osp::Security::Crypto::Rc5Cipher::Rc5Cipher(void)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::SetInitialVector(const

Osp::Base::ByteBuffer&)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::SetKey(const

Osp::Security::ISecretKey&)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::UnwrapN(const

Osp::Base::ByteBuffer&)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::UpdateN(const

Osp::Base::ByteBuffer&)

Osp::Security::Crypto::Rc

5Cipher

Osp::Security::Crypto::Rc5Cipher::WrapN(const

Osp::Base::ByteBuffer&)

Osp::Social - MIN_USER_ID_QUERY_LENGTH

Page 53: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 53| Page

- Osp::Social::CalEventPropertyId

- Osp::Social::CalTodoPropertyId

Osp::Social::Addressbook Osp::Social::Addressbook::GetCategoryIdsN(void)

Osp::Social::Addressbook Osp::Social::Addressbook::GetContactIdsN(void)

Osp::Social::Addressbook Osp::Social::Addressbook::SearchContactsByUserIdN(const

UserId&)

Osp::Social::Calendarbook

Osp::Social::Addressbook::GetEventCount(const

Osp::Base::DateTime&, const Osp::Base::DateTime&, const

Osp::Locales::TimeZone&, unsigned long) const

Osp::Social::Calendarbook

Osp::Social::Addressbook::GetEventCount(const

Osp::Base::DateTime&, const Osp::Base::DateTime&, unsigned

long) const

Osp::Social::Calendarbook Osp::Social::Calendarbook::GetEventIdsN(unsigned long)

Osp::Social::Calendarbook

Osp::Social::Calendarbook::GetEventInstances(const

Osp::Base::DateTime&, const Osp::Base::DateTime&, int, int,

unsigned long, RequestId&, const

Osp::Social::IRecordListener&)

Osp::Social::Calendarbook

Osp::Social::Calendarbook::GetEventInstancesN(const

Osp::Base::DateTime&, const Osp::Base::DateTime&, int, int,

unsigned long)

Osp::Social::Calendarbook Osp::Social::Calendarbook::GetEventsN(const

Osp::Base::DateTime&, const Osp::Base::DateTime& end, const

Osp::Locales::TimeZone&, int, int, unsigned long) const

Osp::Social::Calendarbook Osp::Social::Calendarbook::GetEventsN(const

Osp::Base::DateTime&, const Osp::Base::DateTime&, int, int,

unsigned long) const

Osp::Social::Calendarbook Osp::Social::Calendarbook::GetTodoIdsN(unsigned long,

unsigned long)

Osp::Social::CalEvent Osp::Social::CalEvent::GetInstanceN(const

Osp::Social::RecurrenceId&)

Osp::Social::CalEvent Osp::Social::CalEvent::GetInstancesN(void)

Osp::Social::CalEvent Osp::Social::CalEvent::GetTimeStamp(void)

Osp::Social::CalEvent Osp::Social::CalEvent::SetTimeStamp(const

Osp::Base::DateTime&)

Osp::Social::Category Osp::Social::Category::GetAccountId(void) const

Osp::Social::CategoryChan

geInfo Osp::Social::CategoryChangeInfo::GetAccountId(void) const

Osp::Social::Contact Osp::Social::Contact::GetAccountId(void) const

Osp::Social::ContactChang

eInfo Osp::Social::ContactChangeInfo::GetAccountId(void) const

Osp::Social::Services

All classes -

Osp::Test All classes -

Osp::Ui Osp::Ui::FocusManager Osp::Ui::FocusMansger::SetCurrentFocusOwner(Control*)

Osp::Ui::Flash All classes -

Osp::Uix Osp::Uix::Haptic Osp::Uix::Haptic::CloseDevice(void)

Osp::Uix::Haptic Osp::Uix::Haptic::Construct(void)

Osp::Uix::Haptic Osp::Uix::Haptic::GetDeviceCapability(HapticDeviceCapabilit

yTypes, int&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetDeviceCapability(HapticDeviceCapabilit

yTypes, Osp::Base::String&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetDeviceCount(void) const

Page 54: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 54| Page

Osp::Uix::Haptic Osp::Uix::Haptic::GetDeviceProperty(HapticDevicePropertyTyp

es, bool&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetDeviceProperty(HapticDevicePropertyTyp

es, int&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetDeviceProperty(HapticDevicePropertyTyp

es, Osp::Base::String&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetDeviceState(HapticDeviceState&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetEffectCount(const

Osp::Base::ByteBuffer&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetEffectDuration(const

Osp::Base::ByteBuffer&, int, int&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetEffectIndexFromName(const

Osp::Base::ByteBuffer&, const Osp::Base::String&, int&)

const

Osp::Uix::Haptic Osp::Uix::Haptic::GetEffectName(const

Osp::Base::ByteBuffer&, int, Osp::Base::String&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetEffectState(int effectHandle,

HapticEffectState&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetEffectType(const

Osp::Base::ByteBuffer&, int, HapticEffectTypes&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetInfiniteDuration(void) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetMagSweepEffectDefinition(const

Osp::Base::ByteBuffer&, int, HapticMagSweepEffect&) const

Osp::Uix::Haptic Osp::Uix::Haptic::GetPeriodicEffectDefinition(const

Osp::Base::ByteBuffer&, int, HapticPeriodicEffect&) const

Osp::Uix::Haptic Osp::Uix::Haptic::Haptic(void)

Osp::Uix::Haptic Osp::Uix::Haptic::ModifyPlayingMagSweepEffect(int, const

HapticMagSweepEffect&)

Osp::Uix::Haptic Osp::Uix::Haptic::ModifyPlayingPeriodicEffect(int, const

HapticPeriodicEffect&)

Osp::Uix::Haptic Osp::Uix::Haptic::OpenDevice(int)

Osp::Uix::Haptic Osp::Uix::Haptic::PausePlayingEffect(int)

Osp::Uix::Haptic Osp::Uix::Haptic::PlayEffect(const Osp::Base::ByteBuffer&,

int, int&)

Osp::Uix::Haptic Osp::Uix::Haptic::PlayEffectRepeat(const

Osp::Base::ByteBuffer&, int, unsigned char, int&)

Osp::Uix::Haptic Osp::Uix::Haptic::PlayMagSweepEffect(const

HapticMagSweepEffect&, int&)

Osp::Uix::Haptic Osp::Uix::Haptic::PlayPeriodicEffect(const

HapticPeriodicEffect&, int&)

Osp::Uix::Haptic Osp::Uix::Haptic::ResumePausedEffect(int)

Osp::Uix::Haptic Osp::Uix::Haptic::SetDeviceProperty(HapticDevicePropertyTyp

es, int)

Osp::Uix::Haptic Osp::Uix::Haptic::SetDeviceProperty(HapticDevicePropertyTyp

es, const Osp::Base::String&)

Osp::Uix::Haptic Osp::Uix::Haptic::SetDeviceProperty(HapticDevicePropertyTyp

es, bool)

Osp::Uix::Haptic Osp::Uix::Haptic::StopAllPlayingEffects(void)

Osp::Uix::Haptic Osp::Uix::Haptic::StopPlayingEffect(int)

Osp::Uix::Haptic Osp::Uix::Haptic::~Haptic(void)

Osp::Uix::HapticMagSweepE

ffect

-

Osp::Uix::HapticPeriodicE

ffect -

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::CurrentWeather(void)

Page 55: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 55| Page

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::GetCondition(void)

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::GetHumidity(void)

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::GetLocation(Osp::Base::String&)

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::GetPressure(void)

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::GetTemperature(float&, float&,

float&)

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::GetWind(float&, float&)

Osp::Uix::CurrentWeather Osp::Uix::CurrentWeather::~CurrentWeather(void)

Osp::Uix::IWeatherEventLi

stener

Osp::Uix::IWeatherEventListener::OnCurrentWeatherReceived(C

urrentWeather&, result)

Osp::Uix::IWeatherEventLi

stener

Osp::Uix::IWeatherEventListener::OnWeatherForecastReceived(

Osp::Base::Collection::IList*, result)

Osp::Uix::WeatherForecast Osp::Uix::WeatherForecast::GetCondition(void)

Osp::Uix::WeatherForecast Osp::Uix::WeatherForecast::GetDate(Osp::Base::DateTime&)

Osp::Uix::WeatherForecast Osp::Uix::WeatherForecast::GetLocation(Osp::Base::String&)

Osp::Uix::WeatherForecast Osp::Uix::WeatherForecast::GetTemperature(float&, float&)

Osp::Uix::WeatherForecast Osp::Uix::WeatherForecast::WeatherForecast(void)

Osp::Uix::WeatherForecast Osp::Uix::WeatherForecast::~WeatherForecast(void)

Osp::Uix::WeatherSensor Osp::Uix::WeatherSensor::Construct(const

IWeatherEventListener&)

Osp::Uix::WeatherSensor Osp::Uix::WeatherSensor::RequestCurrentWeather(const

Osp::Base::String)

Osp::Uix::WeatherSensor Osp::Uix::WeatherSensor::RequestCurrentWeather(float,

float)

Osp::Uix::WeatherSensor Osp::Uix::WeatherSensor::RequestWeatherForecast(float,

float)

Osp::Uix::WeatherSensor Osp::Uix::WeatherSensor::RequestWeatherForecast(const

Osp::Base::String)

Osp::Uix::WeatherSensor Osp::Uix::WeatherSensor::WeatherSensor(void)

Osp::Uix::WeatherSensor Osp::Uix::WeatherSensor::~WeatherSensor(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Cancel(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Construct(const

ISpeechToTextEventListener&)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::GetCurrentGrammar(void) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::GetCurrentLocale(void) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::GetSupportedLocalesN(void) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Initialize(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::IsLocaleSupported(const

Osp::Locales::Locale&) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::IsProfanityFilterEnabled(void)

const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::IsPunctuationOverrideEnabled(void)

const

Osp::Uix::SpeechToText IsSilenceDetectionEnabled(void) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetGrammar(Osp::Base::String&)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetLocale(const

Osp::Locales::Locale&)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetProfanityFilterEnabled(bool)

Page 56: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 56| Page

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetPunctuationOverrideEnabled(bool)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetSilenceDetectionEnabled(bool)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SpeechToText(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Start(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Stop(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::~SpeechToText(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Cancel(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Construct(const

ISpeechToTextEventListener&)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::GetCurrentGrammar(void) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::GetCurrentLocale(void) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::GetSupportedLocalesN(void) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Initialize(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::IsLocaleSupported(const

Osp::Locales::Locale&) const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::IsProfanityFilterEnabled(void)

const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::IsPunctuationOverrideEnabled(void)

const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::IsSilenceDetectionEnabled(void)

const

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetGrammar(Osp::Base::String&)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetLocale(const

Osp::Locales::Locale&)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetProfanityFilterEnabled(bool)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetPunctuationOverrideEnabled(bool)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SetSilenceDetectionEnabled(bool)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::SpeechToText(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Start(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::Stop(void)

Osp::Uix::SpeechToText Osp::Uix::SpeechToText::~SpeechToText(void)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::Construct(const

ITextToSpeechEventListener&)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::GetCurrentLocale(void) const

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::GetMaxWordCount(void) const

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::GetSpeechRate(void) const

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::GetSupportedLocalesN(void) const

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::GetVoiceType(void) const

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::Initialize(void)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::IsLocaleSupported(const

Osp::Locales::Locale&) const

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::Pause(void)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::Resume(void)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::SetLocale(const

Osp::Locales::Locale&)

Page 57: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 57| Page

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::SetSpeechRate(TextToSpeechSpeechRat

e)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::SetVoiceType(TextToSpeechVoiceType)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::Speak(const Osp::Base::String&)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::Stop(void)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::TextToSpeech(void)

Osp::Uix::TextToSpeech Osp::Uix::TextToSpeech::~TextToSpeech(void)

Osp::Uix::ISpeechToTextEv

entListener

Osp::Uix::ISpeechToTextEventListener::OnSpeechToTextComplet

ed(Osp::Base::String&, SpeechToTextWarning)

Osp::Uix::ISpeechToTextEv

entListener

Osp::Uix::ISpeechToTextEventListener::OnSpeechToTextErrorOc

curred(SpeechToTextError)

Osp::Uix::ISpeechToTextEv

entListener

Osp::Uix::ISpeechToTextEventListener::OnSpeechToTextInitial

ized(void)

Osp::Uix::ISpeechToTextEv

entListener

Osp::Uix::ISpeechToTextEventListener::OnSpeechToTextRecordi

ngStatusChanged(SpeechToTextRecordingStatus)

Osp::Uix::ISpeechToTextEv

entListener

Osp::Uix::ISpeechToTextEventListener::~ISpeechToTextEventLi

stener(void)

Osp::Uix::ITextToSpeechEv

entListener

Osp::Uix::ITextToSpeechEventListener::OnTextToSpeechErrorOc

curred(TextToSpeechError)

Osp::Uix::ITextToSpeechEv

entListener

Osp::Uix::ITextToSpeechEventListener::OnTextToSpeechStatusC

hanged(TextToSpeechStatus)

Osp::Uix::ITextToSpeechEv

entListener

Osp::Uix::ITextToSpeechEventListener::~ITextToSpeechEventLi

stener(void)

Osp::Web Osp::Web::Controls::PageN

avigationList

Osp::Web::Controls::PageNavigationList::CreateInstanceN(voi

d)

Osp::Web::Controls::Web Osp::Web::Controls::Web::Pause(void)

Osp::Web::Controls::Web Osp::Web::Controls::Web::Resume(void)

Osp::Web::WebHistory Osp::Web::WebHistory::RemoveItem(int)

Page 58: Application Migration Guide - bada C++ Application …...Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application Except as noted, this content

Application Migration Guide - bada C++ Application with bada 2.0 to Tizen Native Application

Except as noted, this content - excluding the Code Examples - is licensed under Creative Commons Attribution 3.0 and all of the Code Examples contained herein are licensed under Flora 1.0.

For details, see the Content License. . 58| Page

Appendix D. const Removed from Listener

and Provider Arguments

The const keyword can create problems of constness inconsistency and rvalue-incompatible member methods in

the arguments of the following Tizen APIs that use the listener or provider as an argument, as well as in the arguments of methods that have similar patterns:

Construct()

SetXxxListener()

AddXxxListener()

RemoveXxxListener()

Every event handler virtual member method of the listener classes is declared as a non-const member method, and you can modify the state of the implementation listener class freely. However, the modifications lead to the constness

inconsistency between the const argument of upper APIs and non-const member methods of the listener classes.

If a listener instance of XxxListener() is used as the const reference argument of upper APIs (as shown below),

it can be bound to an rvalue (or temporary) object:

AddXxxListener(XxxListener());

Even though the code is allowed, the implementations of the AddXxxListener() method remember the instance

as a non-const pointer, which is dangerous, because the temporal object is destroyed right after returning from the

AddXxxListener() method. Actually, the AddXXXListener() method is supposed to do that because the non-

const listener event handler is called back later.

For this reason, check that no removed const keywords from the Tizen APIs are used in your applications.