Split required functions for public 71/313071/2 accepted/tizen_unified accepted/tizen_unified_dev accepted/tizen_unified_toolchain accepted/tizen_unified_x accepted/tizen_unified_x_asan tizen accepted/tizen/unified/20240621.010358 accepted/tizen/unified/dev/20240701.072908 accepted/tizen/unified/toolchain/20240624.121711 accepted/tizen/unified/x/20240624.032059 accepted/tizen/unified/x/asan/20240625.092944
authorSangYoun Kwak <sy.kwak@samsung.com>
Wed, 19 Jun 2024 02:25:01 +0000 (11:25 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Wed, 19 Jun 2024 05:28:40 +0000 (14:28 +0900)
Functions below are separated as a header(tzplatform_config_public.h):
 * tzplatform_getenv
 * tzplatform_mkpath

Also, the rest of tzplatform_config.h is moved to a new header file
tzplatform_config_private.h.

tzplatform_config.h includes both tzplatform_config_private and
tzplatform_config_public so tzplatform_config.h can be used as before.

Change-Id: I0b0a5716d0f51eade75093326e3df452d6f632ba
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
src/Makefile.am
src/tzplatform_config.h
src/tzplatform_config_private.h [new file with mode: 0644]
src/tzplatform_config_public.h [new file with mode: 0644]

index 7c362a3..b2ee852 100644 (file)
@@ -28,6 +28,8 @@ libtzplatform_config_@LIBTZPLATFORM_CONFIG_VERSION@_la_SOURCES = \
        shared-api.h \
        tzplatform_config.sym \
        tzplatform_config.h \
+       tzplatform_config_private.h \
+       tzplatform_config_public.h \
        $(SRC_FROMTOOL)
 
 SRC_TOOL = \
@@ -70,7 +72,7 @@ libtzplatform_config_@LIBTZPLATFORM_CONFIG_VERSION@_la_LDFLAGS += -Wl,-O3
 libtzplatform_config_@LIBTZPLATFORM_CONFIG_VERSION@_la_LDFLAGS += -lpthread
 
 libtzplatform_config_includedir = $(includedir)/
-nobase_libtzplatform_config_include_HEADERS = tzplatform_variables.h tzplatform_config.h
+nobase_libtzplatform_config_include_HEADERS = tzplatform_variables.h tzplatform_config.h tzplatform_config_private.h tzplatform_config_public.h
 
 dist_sysconf_DATA=tizen-platform.conf
 
index 96cb1d8..26c98c0 100644 (file)
  *      Jean-Benoit Martin <jean-benoit.martin@open.eurogiciel.org>
  *
  */
+
 #ifndef LIBTIZEN_PLATFORM_WRAPPER
 #define LIBTIZEN_PLATFORM_WRAPPER
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/types.h>
-#include <tzplatform_variables.h>
-
-//=================================================================================
-//======================== COMMON APIs (No context) ===============================
-//=================================================================================
-
-/*
- Return the count of variables.
-*/
-extern
-int tzplatform_getcount();
-
-/*
- Return the name of the variable 'id' as a string.
- Return NULL if 'id' is invalid.
-*/
-extern
-const char* tzplatform_getname(enum tzplatform_variable id);
-
-/*
- Return the id of the variable of 'name'.
- Return _TZPLATFORM_VARIABLES_INVALID_ if 'name' doesn't match a
- valid variable name.
-*/
-extern
-enum tzplatform_variable tzplatform_getid(const char *name);
-
-//=================================================================================
-//====================== GLOBAL APIs (default global context) =====================
-//=================================================================================
-
-/*
- Enforces the removal of the previously evaluated tizen platform variables.
-
- Call this function in case of changing of user inside the application.
-*/
-extern
-void tzplatform_reset();
-
-/*
- Set the user used for UID/EUID/USER/EUSER computations.
- Using uid==(uid_t)-1 reset the context as if tzplatform_reset_user
- was called.
-
- Returns 0 if uid is valid or -1 if not valid.
-*/
-extern
-int tzplatform_set_user(uid_t uid);
-
-/*
-*/
-extern
-uid_t tzplatform_get_user();
-
-/*
- Reset the user context to use the values returned by
- getuid and geteuid.
-*/
-extern
-void tzplatform_reset_user();
-
-/*
- Return the read-only string value of the tizen plaform variable 'id'.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error or when 'id' isn't defined.
-*/
-extern
-const char* tzplatform_getenv(enum tzplatform_variable id);
-
-/*
- Return the integer value of the tizen plaform variable 'id'.
-*/
-extern
-int tzplatform_getenv_int(enum tzplatform_variable id);
-
-/*
- Return the string resulting of the concatenation of string value of the
- tizen plaform variable 'id' and the given string 'str'.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_mkstr(TZ_SYS_HOME,"-yes")
-
-       will return "/opt/home-yes"
-*/
-extern
-const char* tzplatform_mkstr(enum tzplatform_variable id, const char *str);
-
-/*
- Return the string resulting of the path-concatenation of string value of the
- tizen plaform variable 'id' and the given string 'path'.
-
- path-concatenation is the concatenation taking care of / characters.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_mkpath(TZ_SYS_HOME,"yes")
-
-       will return "/opt/home/yes"
-*/
-extern
-const char* tzplatform_mkpath(enum tzplatform_variable id, const char *path);
-
-/*
- Return the string resulting of the path-concatenation of string value of the
- tizen plaform variable 'id' and the given strings 'path' and 'path2'.
-
- path-concatenation is the concatenation taking care of / characters.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_mkpath3(TZ_SYS_HOME,"yes","no")
-
-       will return "/opt/home/yes/no"
-*/
-extern
-const char* tzplatform_mkpath3(enum tzplatform_variable id, const char *path,
-                               const char *path2);
-
-/*
- Return the string resulting of the path-concatenation of string value of the
- tizen plaform variable 'id' and the given strings 'path', 'path2' and 'path3'.
-
- path-concatenation is the concatenation taking care of / characters.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_mkpath4(TZ_SYS_HOME,"yes","no","/maybe")
-
-       will return "/opt/home/yes/no/maybe"
-*/
-extern
-const char* tzplatform_mkpath4(enum tzplatform_variable id, const char *path,
-                               const char *path2, const char *path3);
-
-/*
- Return the uid for a given user name, stored in variable <id>
- Retun -1 in case of error.
-
- Example:
-       if TZ_USER_NAME=="app" then calling:
-
-          tzplatform_getuid(TZ_USER_NAME)
-
-       will return the uid of the user 'app'
-*/
-extern
-uid_t tzplatform_getuid(enum tzplatform_variable id);
-
-/*
- Return the gid for a given user name, stored in variable <id>
- Retun -1 in case of error.
-
- Example:
-       if TZ_USER_NAME=="app" then calling:
-
-          tzplatform_getuid(TZ_USER_NAME)
-
-       will return the gid of the user 'app'
-*/
-extern
-gid_t tzplatform_getgid(enum tzplatform_variable id);
-
-//=================================================================================
-//============================ UID-based APIs =====================================
-//=================================================================================
-
-/*
- In the following APIs, a 'uid' parameter is added to the form of GLOBAL APIs.
-
- How-to-use is the same with GLOBAL APIs, but contexts are internally created and set for each uid.
-
- uid should be one of root(0), owner(5001), and so on.
-*/
-
-extern
-const char* tzplatform_uid_getenv(uid_t uid, enum tzplatform_variable id);
-
-extern
-const char* tzplatform_uid_mkpath(uid_t uid, enum tzplatform_variable id, const char *path);
-
-extern
-const char* tzplatform_uid_mkpath3(uid_t uid, enum tzplatform_variable id, const char *path,
-                               const char *path2);
-
-extern
-const char* tzplatform_uid_mkpath4(uid_t uid, enum tzplatform_variable id, const char *path,
-                               const char *path2, const char *path3);
-
-//=================================================================================
-//============================ CONTEXTUAL APIs ====================================
-//=================================================================================
-
-struct tzplatform_context;
-
-/*
- Creates a new platform 'context'.
- Return 0 in case of success or a negative value in case of error.
-*/
-extern
-int tzplatform_context_create(struct tzplatform_context **context);
-
-/*
- Destroys the platform 'context' previously created with 'tzplatform_context_create'.
- The destroyed context must not be used after calling this function.
-*/
-extern
-void tzplatform_context_destroy(struct tzplatform_context *context);
-
-/*
- Enforces the removal of the previously evaluated tizen platform variables.
-*/
-extern
-void tzplatform_context_reset(struct tzplatform_context *context);
-
-/*
- Set the user used for UID/EUID/USER/EUSER computations.
- Using uid==(uid_t)-1 reset the context as if tzplatform_context_reset_user
- was called.
-
- Returns 0 if uid is valid or -1 if not valid.
-*/
-extern
-int tzplatform_context_set_user(struct tzplatform_context *context, uid_t uid);
-
-/*
- Get the user set to the context.
-*/
-extern
-uid_t tzplatform_context_get_user(struct tzplatform_context *context);
-
-/*
- Reset the user context to use the values returned by
- getuid and geteuid.
-*/
-extern
-void tzplatform_context_reset_user(struct tzplatform_context *context);
-
-/*
- Return the read-only string value of the tizen plaform variable 'id'.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error or when 'id' isn't defined.
-*/
-extern
-const char* tzplatform_context_getenv(struct tzplatform_context *context,
-                                       enum tzplatform_variable id);
-
-/*
- Return the integer value of the tizen plaform variable 'id'.
-*/
-extern
-int tzplatform_context_getenv_int(struct tzplatform_context *context,
-                                       enum tzplatform_variable id);
-
-/*
- Return the string resulting of the concatenation of string value of the
- tizen plaform variable 'id' and the given string 'str'.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_context_mkstr(context, TZ_SYS_HOME,"-yes")
-
-       will return "/opt/home-yes"
-*/
-extern
-const char* tzplatform_context_mkstr(struct tzplatform_context *context,
-                                       enum tzplatform_variable id, const char *str);
-
-/*
- Return the string resulting of the path-concatenation of string value of the
- tizen plaform variable 'id' and the given string 'path'.
-
- path-concatenation is the concatenation taking care of / characters.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_context_mkpath(context, TZ_SYS_HOME,"yes")
-
-       will return "/opt/home/yes"
-*/
-extern
-const char* tzplatform_context_mkpath(struct tzplatform_context *context,
-                                       enum tzplatform_variable id, const char *path);
-
-/*
- Return the string resulting of the path-concatenation of string value of the
- tizen plaform variable 'id' and the given strings 'path' and 'path2'.
-
- path-concatenation is the concatenation taking care of / characters.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_context_mkpath3(context, TZ_SYS_HOME,"yes","no")
-
-       will return "/opt/home/yes/no"
-*/
-extern
-const char* tzplatform_context_mkpath3(struct tzplatform_context *context,
-                                       enum tzplatform_variable id, const char *path,
-                                       const char *path2);
-
-/*
- Return the string resulting of the path-concatenation of string value of the
- tizen plaform variable 'id' and the given strings 'path', 'path2' and 'path3'.
-
- path-concatenation is the concatenation taking care of / characters.
-
- The returned value is an allocated unique string that MUST not be freed.
-
- Can return NULL in case of internal error.
-
- Example:
-       if TZ_SYS_HOME == "/opt/home" then calling
-
-          tzplatform_context_mkpath4(context, TZ_SYS_HOME,"yes","no","/maybe")
-
-       will return "/opt/home/yes/no/maybe"
-*/
-extern
-const char* tzplatform_context_mkpath4(struct tzplatform_context *context,
-                                       enum tzplatform_variable id, const char *path,
-                                       const char *path2, const char *path3);
-
-/*
- Return the uid for a given user name, stored in variable <id>
- Retun -1 in case of error.
-
- Example:
-       if TZ_USER_NAME=="app" then calling:
-
-          tzplatform_context_getuid(context, TZ_USER_NAME)
-
-       will return the uid of the user 'app'
-*/
-extern
-uid_t tzplatform_context_getuid(struct tzplatform_context *context, enum tzplatform_variable id);
-
-/*
- Return the gid for a given user name, stored in variable <id>
- Retun -1 in case of error.
-
- Example:
-       if TZ_USER_NAME=="app" then calling:
-
-          tzplatform_context_getuid(context, TZ_USER_NAME)
-
-       will return the gid of the user 'app'
-*/
-extern
-gid_t tzplatform_context_getgid(struct tzplatform_context *context, enum tzplatform_variable id);
-
-
-/*
- Return 1 if given uid is in the system admin group (named "system")
- Return 0 if not
- Return -1 in case of error.
-
- Example:
-               tzplatform_has_system_group(1000)
-
-       will return 0 or 1 depends on right of given uid.
-
-   NOTE :
-   * If you pass the -1 value to this function it will take the current uid given
-   * by the POSIX function getuid();
-
-   *** WARNING : ***
-   * This is a temporary feature
-   * This will be managed by Cynara
-
-*/
-extern
-int tzplatform_has_system_group(uid_t uid);
-
-#ifdef __cplusplus
-}
-#endif
+#include <tzplatform_config_private.h>
+#include <tzplatform_config_public.h>
 
 #endif /* LIBTIZEN_PLATFORM_WRAPPER */
-
diff --git a/src/tzplatform_config_private.h b/src/tzplatform_config_private.h
new file mode 100644 (file)
index 0000000..6302f3f
--- /dev/null
@@ -0,0 +1,420 @@
+/*
+ * Copyright (C) 2013-2014 Intel Corporation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Authors:
+ *      José Bollo <jose.bollo@open.eurogiciel.org>
+ *      Stéphane Desneux <stephane.desneux@open.eurogiciel.org>
+ *      Jean-Benoit Martin <jean-benoit.martin@open.eurogiciel.org>
+ *
+ */
+#ifndef LIBTIZEN_PLATFORM_WRAPPER_PRIVATE
+#define LIBTIZEN_PLATFORM_WRAPPER_PRIVATE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/types.h>
+#include <tzplatform_variables.h>
+
+//=================================================================================
+//======================== COMMON APIs (No context) ===============================
+//=================================================================================
+
+/*
+ Return the count of variables.
+*/
+extern
+int tzplatform_getcount();
+
+/*
+ Return the name of the variable 'id' as a string.
+ Return NULL if 'id' is invalid.
+*/
+extern
+const char* tzplatform_getname(enum tzplatform_variable id);
+
+/*
+ Return the id of the variable of 'name'.
+ Return _TZPLATFORM_VARIABLES_INVALID_ if 'name' doesn't match a
+ valid variable name.
+*/
+extern
+enum tzplatform_variable tzplatform_getid(const char *name);
+
+//=================================================================================
+//====================== GLOBAL APIs (default global context) =====================
+//=================================================================================
+
+/*
+ Enforces the removal of the previously evaluated tizen platform variables.
+
+ Call this function in case of changing of user inside the application.
+*/
+extern
+void tzplatform_reset();
+
+/*
+ Set the user used for UID/EUID/USER/EUSER computations.
+ Using uid==(uid_t)-1 reset the context as if tzplatform_reset_user
+ was called.
+
+ Returns 0 if uid is valid or -1 if not valid.
+*/
+extern
+int tzplatform_set_user(uid_t uid);
+
+/*
+*/
+extern
+uid_t tzplatform_get_user();
+
+/*
+ Reset the user context to use the values returned by
+ getuid and geteuid.
+*/
+extern
+void tzplatform_reset_user();
+
+/*
+ Return the integer value of the tizen plaform variable 'id'.
+*/
+extern
+int tzplatform_getenv_int(enum tzplatform_variable id);
+
+/*
+ Return the string resulting of the concatenation of string value of the
+ tizen plaform variable 'id' and the given string 'str'.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_mkstr(TZ_SYS_HOME,"-yes")
+
+       will return "/opt/home-yes"
+*/
+extern
+const char* tzplatform_mkstr(enum tzplatform_variable id, const char *str);
+
+/*
+ Return the string resulting of the path-concatenation of string value of the
+ tizen plaform variable 'id' and the given strings 'path' and 'path2'.
+
+ path-concatenation is the concatenation taking care of / characters.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_mkpath3(TZ_SYS_HOME,"yes","no")
+
+       will return "/opt/home/yes/no"
+*/
+extern
+const char* tzplatform_mkpath3(enum tzplatform_variable id, const char *path,
+                               const char *path2);
+
+/*
+ Return the string resulting of the path-concatenation of string value of the
+ tizen plaform variable 'id' and the given strings 'path', 'path2' and 'path3'.
+
+ path-concatenation is the concatenation taking care of / characters.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_mkpath4(TZ_SYS_HOME,"yes","no","/maybe")
+
+       will return "/opt/home/yes/no/maybe"
+*/
+extern
+const char* tzplatform_mkpath4(enum tzplatform_variable id, const char *path,
+                               const char *path2, const char *path3);
+
+/*
+ Return the uid for a given user name, stored in variable <id>
+ Retun -1 in case of error.
+
+ Example:
+       if TZ_USER_NAME=="app" then calling:
+
+          tzplatform_getuid(TZ_USER_NAME)
+
+       will return the uid of the user 'app'
+*/
+extern
+uid_t tzplatform_getuid(enum tzplatform_variable id);
+
+/*
+ Return the gid for a given user name, stored in variable <id>
+ Retun -1 in case of error.
+
+ Example:
+       if TZ_USER_NAME=="app" then calling:
+
+          tzplatform_getuid(TZ_USER_NAME)
+
+       will return the gid of the user 'app'
+*/
+extern
+gid_t tzplatform_getgid(enum tzplatform_variable id);
+
+//=================================================================================
+//============================ UID-based APIs =====================================
+//=================================================================================
+
+/*
+ In the following APIs, a 'uid' parameter is added to the form of GLOBAL APIs.
+
+ How-to-use is the same with GLOBAL APIs, but contexts are internally created and set for each uid.
+
+ uid should be one of root(0), owner(5001), and so on.
+*/
+
+extern
+const char* tzplatform_uid_getenv(uid_t uid, enum tzplatform_variable id);
+
+extern
+const char* tzplatform_uid_mkpath(uid_t uid, enum tzplatform_variable id, const char *path);
+
+extern
+const char* tzplatform_uid_mkpath3(uid_t uid, enum tzplatform_variable id, const char *path,
+                               const char *path2);
+
+extern
+const char* tzplatform_uid_mkpath4(uid_t uid, enum tzplatform_variable id, const char *path,
+                               const char *path2, const char *path3);
+
+//=================================================================================
+//============================ CONTEXTUAL APIs ====================================
+//=================================================================================
+
+struct tzplatform_context;
+
+/*
+ Creates a new platform 'context'.
+ Return 0 in case of success or a negative value in case of error.
+*/
+extern
+int tzplatform_context_create(struct tzplatform_context **context);
+
+/*
+ Destroys the platform 'context' previously created with 'tzplatform_context_create'.
+ The destroyed context must not be used after calling this function.
+*/
+extern
+void tzplatform_context_destroy(struct tzplatform_context *context);
+
+/*
+ Enforces the removal of the previously evaluated tizen platform variables.
+*/
+extern
+void tzplatform_context_reset(struct tzplatform_context *context);
+
+/*
+ Set the user used for UID/EUID/USER/EUSER computations.
+ Using uid==(uid_t)-1 reset the context as if tzplatform_context_reset_user
+ was called.
+
+ Returns 0 if uid is valid or -1 if not valid.
+*/
+extern
+int tzplatform_context_set_user(struct tzplatform_context *context, uid_t uid);
+
+/*
+ Get the user set to the context.
+*/
+extern
+uid_t tzplatform_context_get_user(struct tzplatform_context *context);
+
+/*
+ Reset the user context to use the values returned by
+ getuid and geteuid.
+*/
+extern
+void tzplatform_context_reset_user(struct tzplatform_context *context);
+
+/*
+ Return the read-only string value of the tizen plaform variable 'id'.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error or when 'id' isn't defined.
+*/
+extern
+const char* tzplatform_context_getenv(struct tzplatform_context *context,
+                                       enum tzplatform_variable id);
+
+/*
+ Return the integer value of the tizen plaform variable 'id'.
+*/
+extern
+int tzplatform_context_getenv_int(struct tzplatform_context *context,
+                                       enum tzplatform_variable id);
+
+/*
+ Return the string resulting of the concatenation of string value of the
+ tizen plaform variable 'id' and the given string 'str'.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_context_mkstr(context, TZ_SYS_HOME,"-yes")
+
+       will return "/opt/home-yes"
+*/
+extern
+const char* tzplatform_context_mkstr(struct tzplatform_context *context,
+                                       enum tzplatform_variable id, const char *str);
+
+/*
+ Return the string resulting of the path-concatenation of string value of the
+ tizen plaform variable 'id' and the given string 'path'.
+
+ path-concatenation is the concatenation taking care of / characters.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_context_mkpath(context, TZ_SYS_HOME,"yes")
+
+       will return "/opt/home/yes"
+*/
+extern
+const char* tzplatform_context_mkpath(struct tzplatform_context *context,
+                                       enum tzplatform_variable id, const char *path);
+
+/*
+ Return the string resulting of the path-concatenation of string value of the
+ tizen plaform variable 'id' and the given strings 'path' and 'path2'.
+
+ path-concatenation is the concatenation taking care of / characters.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_context_mkpath3(context, TZ_SYS_HOME,"yes","no")
+
+       will return "/opt/home/yes/no"
+*/
+extern
+const char* tzplatform_context_mkpath3(struct tzplatform_context *context,
+                                       enum tzplatform_variable id, const char *path,
+                                       const char *path2);
+
+/*
+ Return the string resulting of the path-concatenation of string value of the
+ tizen plaform variable 'id' and the given strings 'path', 'path2' and 'path3'.
+
+ path-concatenation is the concatenation taking care of / characters.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_context_mkpath4(context, TZ_SYS_HOME,"yes","no","/maybe")
+
+       will return "/opt/home/yes/no/maybe"
+*/
+extern
+const char* tzplatform_context_mkpath4(struct tzplatform_context *context,
+                                       enum tzplatform_variable id, const char *path,
+                                       const char *path2, const char *path3);
+
+/*
+ Return the uid for a given user name, stored in variable <id>
+ Retun -1 in case of error.
+
+ Example:
+       if TZ_USER_NAME=="app" then calling:
+
+          tzplatform_context_getuid(context, TZ_USER_NAME)
+
+       will return the uid of the user 'app'
+*/
+extern
+uid_t tzplatform_context_getuid(struct tzplatform_context *context, enum tzplatform_variable id);
+
+/*
+ Return the gid for a given user name, stored in variable <id>
+ Retun -1 in case of error.
+
+ Example:
+       if TZ_USER_NAME=="app" then calling:
+
+          tzplatform_context_getuid(context, TZ_USER_NAME)
+
+       will return the gid of the user 'app'
+*/
+extern
+gid_t tzplatform_context_getgid(struct tzplatform_context *context, enum tzplatform_variable id);
+
+
+/*
+ Return 1 if given uid is in the system admin group (named "system")
+ Return 0 if not
+ Return -1 in case of error.
+
+ Example:
+               tzplatform_has_system_group(1000)
+
+       will return 0 or 1 depends on right of given uid.
+
+   NOTE :
+   * If you pass the -1 value to this function it will take the current uid given
+   * by the POSIX function getuid();
+
+   *** WARNING : ***
+   * This is a temporary feature
+   * This will be managed by Cynara
+
+*/
+extern
+int tzplatform_has_system_group(uid_t uid);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBTIZEN_PLATFORM_WRAPPER_PRIVATE */
+
diff --git a/src/tzplatform_config_public.h b/src/tzplatform_config_public.h
new file mode 100644 (file)
index 0000000..4d194fa
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2013-2014 Intel Corporation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Authors:
+ *      José Bollo <jose.bollo@open.eurogiciel.org>
+ *      Stéphane Desneux <stephane.desneux@open.eurogiciel.org>
+ *      Jean-Benoit Martin <jean-benoit.martin@open.eurogiciel.org>
+ *
+ */
+#ifndef LIBTIZEN_PLATFORM_WRAPPER_PUBLIC
+#define LIBTIZEN_PLATFORM_WRAPPER_PUBLIC
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <tzplatform_variables.h>
+
+//=================================================================================
+//======================== COMMON APIs (No context) ===============================
+//=================================================================================
+
+/*
+ Return the read-only string value of the tizen plaform variable 'id'.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error or when 'id' isn't defined.
+*/
+extern
+const char* tzplatform_getenv(enum tzplatform_variable id);
+
+/*
+ Return the string resulting of the path-concatenation of string value of the
+ tizen plaform variable 'id' and the given string 'path'.
+
+ path-concatenation is the concatenation taking care of / characters.
+
+ The returned value is an allocated unique string that MUST not be freed.
+
+ Can return NULL in case of internal error.
+
+ Example:
+       if TZ_SYS_HOME == "/opt/home" then calling
+
+          tzplatform_mkpath(TZ_SYS_HOME,"yes")
+
+       will return "/opt/home/yes"
+*/
+extern
+const char* tzplatform_mkpath(enum tzplatform_variable id, const char *path);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBTIZEN_PLATFORM_WRAPPER_PUBLIC */
+