Tizen 2.1 base
[sdk/ide/native-sample.git] / samples / native / cpp / Sample / Tizen C++ / RockPaperScissors / RockPaperScissors / project / src / RockPaperScissorsEntry.cpp
1 //
2 // Tizen C++ SDK
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.tizenopensource.org/license
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * This file contains the Tizen application entry point.
20  */
21
22 #include <new>
23 #include "RockPaperScissors.h"
24
25 using namespace Osp::Base;
26 using namespace Osp::Base::Collection;
27
28 #ifdef __cplusplus
29 extern "C"
30 {
31 #endif // __cplusplus
32
33
34 _EXPORT_ int OspMain(int argc, char *pArgv[]);
35 #ifdef _PROFILE
36 extern void start_profile (void);
37 extern void end_profile (void);
38 #else
39 #define start_profile()
40 #define end_profile()
41 #endif
42
43
44 /**
45  * The entry function of Tizen application called by the operating system.
46  */
47 int
48 OspMain(int argc, char *pArgv[])
49 {
50         result r = E_SUCCESS;
51
52         AppLog("Application started.");
53         ArrayList args;
54         args.Construct();
55         for (int i = 0; i < argc; i++)
56         {
57                 args.Add(*(new (std::nothrow) String(pArgv[i])));
58         }
59
60         start_profile();
61         r = Osp::App::Application::Execute(RockPaperScissors::CreateInstance, &args);
62         TryLog(r == E_SUCCESS, "[%s] Application execution failed", GetErrorMessage(r));
63         end_profile();
64
65         args.RemoveAll(true);
66         AppLog("Application finished.");
67
68         return static_cast<int>(r);
69 }
70 #ifdef __cplusplus
71 }
72 #endif // __cplusplus