From 695f04bfd792551833d24e1ec45febab7b25f214 Mon Sep 17 00:00:00 2001 From: SangYoun Kwak Date: Wed, 19 Jun 2024 11:25:01 +0900 Subject: Split required functions for public 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 --- src/Makefile.am | 4 +- src/tzplatform_config.h | 425 +--------------------------------------- src/tzplatform_config_private.h | 420 +++++++++++++++++++++++++++++++++++++++ src/tzplatform_config_public.h | 72 +++++++ 4 files changed, 498 insertions(+), 423 deletions(-) create mode 100644 src/tzplatform_config_private.h create mode 100644 src/tzplatform_config_public.h diff --git a/src/Makefile.am b/src/Makefile.am index 7c362a3..b2ee852 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 diff --git a/src/tzplatform_config.h b/src/tzplatform_config.h index 96cb1d8..26c98c0 100644 --- a/src/tzplatform_config.h +++ b/src/tzplatform_config.h @@ -21,430 +21,11 @@ * Jean-Benoit Martin * */ + #ifndef LIBTIZEN_PLATFORM_WRAPPER #define LIBTIZEN_PLATFORM_WRAPPER -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -//================================================================================= -//======================== 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 - 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 - 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 - 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 - 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 +#include #endif /* LIBTIZEN_PLATFORM_WRAPPER */ - diff --git a/src/tzplatform_config_private.h b/src/tzplatform_config_private.h new file mode 100644 index 0000000..6302f3f --- /dev/null +++ b/src/tzplatform_config_private.h @@ -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 + * Stéphane Desneux + * Jean-Benoit Martin + * + */ +#ifndef LIBTIZEN_PLATFORM_WRAPPER_PRIVATE +#define LIBTIZEN_PLATFORM_WRAPPER_PRIVATE + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +//================================================================================= +//======================== 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 + 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 + 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 + 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 + 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 index 0000000..4d194fa --- /dev/null +++ b/src/tzplatform_config_public.h @@ -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 + * Stéphane Desneux + * Jean-Benoit Martin + * + */ +#ifndef LIBTIZEN_PLATFORM_WRAPPER_PUBLIC +#define LIBTIZEN_PLATFORM_WRAPPER_PUBLIC + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +//================================================================================= +//======================== 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 */ + -- cgit v1.2.3