Release version 1.9.12
[platform/core/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 <stdbool.h>
49 #include <appcore-common.h>
50
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54
55 int appcore_efl_init(const char *name, int *argc, char ***argv,
56                      struct appcore_ops *ops);
57
58 void appcore_efl_fini(void);
59
60
61 /**
62  * @par Description:
63  * This is a main function for EFL application on SLP platform. \n
64  * Refer to programming guide for the details.
65  *
66  * @par Purpose:
67  * To develop an application using EFL on this platform.
68  *
69  * @par Method of function operation:
70  * Initialize the EFL, internationalization, and notifications
71  * for receiving system events such as rotation, low battery, etc.\n
72  * And, start an ecore mainloop.
73  *
74  * @param[in] name Application name
75  * @param[in] argc A count of the arguments
76  * @param[in] argv An array of pointers to the strings which are those arguments
77  * @param[in] ops Appcore operations
78  *
79  * @return 0 on success, -1 on error (<I>errno</I> set)
80  *
81  * @par Errors:
82  * EALREADY - mainloop already started \n
83  * EINVAL - one of parameters is NULL \n
84  * ECANCELED - create() callback returns error (none zero value) \n
85  *
86  * @par Corner cases/exceptions:
87  * If <I>ops</I> has no callback function, this function just starts a mainloop.
88  *
89  * @par Known issues/bugs:
90  * If <I>errno</I> set another value, check the <I>dlog</I> message.
91  * This doesn't care internal <I>errno</I> set.
92  *
93  * @pre None.
94  * @post None.
95  * @see None.
96  * @remarks None.
97  *
98  * @par Sample code:
99  * @code
100 #include <appcore-efl.h>
101
102 static int _create(void *);
103 static int _reset(bundle *, void *);
104
105 int main(int argc, char *argv[])
106 {
107         int r;
108         const char *name;
109         struct appcore_ops ops = {
110                 .create = _create,
111                 .reset = _reset,
112                 ...
113         };
114
115         ...
116
117         r = appcore_efl_main(name, &argc, &argv, &ops);
118         if (r) {
119                 // add exception handling
120                 perror("Appcore EFL main");
121         }
122 }
123  * @endcode
124  *
125  */
126 int appcore_efl_main(const char *name, int *argc, char ***argv,
127                      struct appcore_ops *ops);
128
129 int appcore_set_system_resource_reclaiming(bool enable);
130
131 #ifdef __cplusplus
132 }
133 #endif
134 /**
135  * @}
136  */
137 /**
138  * @}
139  */
140 #endif /* __APPCORE_ELF_H__ */