a56fa256f7bc818e7aa04cc02c850d70b5194738
[framework/appfw/app-core.git] / include / appcore-efl.h
1 /*
2  *  app-core
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22
23
24 #ifndef __APPCORE_ELF_H__
25 #define __APPCORE_ELF_H__
26
27 /**
28  * @file    appcore-efl.h
29  * @version 1.1
30  * @brief   This file contains APIs of the Appcore EFL library
31  */
32
33 /**
34  * @addtogroup APPLICATION_FRAMEWORK
35  * @{
36  *
37  * @defgroup Appcore_EFL Appcore EFL
38  * @version  1.1
39  * @brief    A base library for EFL application based on Appcore
40  *
41  */
42
43 /**
44  * @addtogroup Appcore_EFL
45  * @{
46  */
47
48 #include <appcore-common.h>
49
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53
54 /**
55  * @par Description:
56  * This is a main function for EFL application on SLP platform. \n
57  * Refer to programming guide for the details.
58  *
59  * @par Purpose:
60  * To develop an application using EFL on this platform.
61  *
62  * @par Method of function operation:
63  * Initialize the EFL, internationalization, and notifications 
64  * for receiving system events such as rotation, low battery, etc.\n
65  * And, start an ecore mainloop.
66  *
67  * @param[in] name Application name
68  * @param[in] argc A count of the arguments
69  * @param[in] argv An array of pointers to the strings which are those arguments
70  * @param[in] ops Appcore operations
71  *
72  * @return 0 on success, -1 on error (<I>errno</I> set)
73  *
74  * @par Errors:
75  * EALREADY - mainloop already started \n
76  * EINVAL - one of parameters is NULL \n
77  * ECANCELED - create() callback returns error (none zero value) \n
78  *
79  * @par Corner cases/exceptions:
80  * If <I>ops</I> has no callback function, this function just starts a mainloop.
81  *
82  * @par Known issues/bugs:
83  * If <I>errno</I> set another value, check the <I>dlog</I> message.
84  * This doesn't care internal <I>errno</I> set.
85  *
86  * @pre None.
87  * @post None.
88  * @see None.
89  * @remarks None.
90  *
91  * @par Sample code:
92  * @code
93 #include <appcore-efl.h>
94
95 static int _create(void *);
96 static int _reset(bundle *, void *);
97
98 int main(int argc, char *argv[])
99 {
100         int r;
101         const char *name;
102         struct appcore_ops ops = {
103                 .create = _create,
104                 .reset = _reset,
105                 ...
106         };
107
108         ...
109
110         r = appcore_efl_main(name, &argc, &argv, &ops);
111         if (r) {
112                 // add exception handling
113                 perror("Appcore EFL main");
114         }
115 }
116  * @endcode
117  *
118  */
119 int appcore_efl_main(const char *name, int *argc, char ***argv,
120                      struct appcore_ops *ops);
121
122 #ifdef __cplusplus
123 }
124 #endif
125 /**
126  * @}
127  */
128 /**
129  * @}
130  */
131 #endif                          /* __APPCORE_ELF_H__ */