From: Yongjin Kim Date: Tue, 19 May 2015 00:15:03 +0000 (+0900) Subject: init Service Federation X-Git-Tag: submit/tizen/20150619.054729~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=48a020102bfc8c3906de99d5ac6865fc8cc0966b;p=archive%2Fplatform%2Fcore%2Fconvergence%2Fservice-federation.git init Service Federation Change-Id: I7ec38bae112733d9a548fc367ce0950d1c1a2129 Signed-off-by: Yongjin Kim --- diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..4b35d5a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,37 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(service-federation) + +SET(CMAKE_SKIP_BUILD_RPATH TRUE) +SET(VERSION_MAJOR 1) +SET(VERSION "${VERSION_MAJOR}.1.0") + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Debug") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") + +MESSAGE("") +MESSAGE(">>> current directory: ${CMAKE_CURRENT_SOURCE_DIR}") +MESSAGE(">>> Build type: ${CMAKE_BUILD_TYPE}") + + +########################################################## +# Define Manager +########################################################## +ADD_SUBDIRECTORY(common) +ADD_SUBDIRECTORY(svcbox) +ADD_SUBDIRECTORY(svcflow) + +########################################################## +# Define Test App +########################################################## +ADD_SUBDIRECTORY(test) + +########################################################## +# Define Install Files +########################################################## + +CONFIGURE_FILE(service-federation.pc.in service-federation.pc @ONLY) +INSTALL(FILES ${CMAKE_BINARY_DIR}/service-federation.pc DESTINATION lib/pkgconfig) + +# LICENSE file +INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE.APLv2 DESTINATION /usr/share/license/service-federation) diff --git a/LICENSE.APLv2 b/LICENSE.APLv2 new file mode 100644 index 0000000..9443128 --- /dev/null +++ b/LICENSE.APLv2 @@ -0,0 +1,204 @@ +Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..eec59a3 --- /dev/null +++ b/NOTICE @@ -0,0 +1,3 @@ +Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved. +Except as noted, this software is licensed under Apache License, Version 2. +Please, see the LICENSE.APLv2 file for Apache License, Version 2 terms and conditions. diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt new file mode 100644 index 0000000..96fbac4 --- /dev/null +++ b/common/CMakeLists.txt @@ -0,0 +1,56 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(usf-common) + +SET(CMAKE_SKIP_BUILD_RPATH TRUE) + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Debug") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") + +MESSAGE("") +MESSAGE(">>> current directory: ${CMAKE_CURRENT_SOURCE_DIR}") +MESSAGE(">>> Build type: ${CMAKE_BUILD_TYPE}") + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VISIBILITY} -fvisibility=hidden") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--gc-sections -fPIE") + +########################################################## +# Define Core Lib +########################################################## + +SET(COMMON-LIB "usf-common") +SET(COMMON-SRCS + ${CMAKE_SOURCE_DIR}/common/usf_common.c +) + +INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/common +) + +INCLUDE(FindPkgConfig) +pkg_check_modules(common_pkgs REQUIRED dlog glib-2.0) + +FOREACH(flag ${common_pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +#message(">>>[${COMMON-LIB}] extra_cflags ${EXTRA_CFLAGS}") +#message(">>>[${COMMON-LIB}] common_pkgs_cflags ${common_pkgs_CFLAGS}") +#message(">>>[${COMMON-LIB}] result ${CMAKE_C_FLAGS}") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") + +ADD_LIBRARY(${COMMON-LIB} SHARED ${COMMON-SRCS}) +TARGET_LINK_LIBRARIES(${COMMON-LIB} ${common_pkgs_LDFLAGS}) +SET_TARGET_PROPERTIES(${COMMON-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${COMMON-LIB} PROPERTIES VERSION ${VERSION}) + +INSTALL(TARGETS ${COMMON-LIB} DESTINATION lib COMPONENT RuntimeLibraries) + +SET(SVCFEDERATION-COMMON-HEADERS + ${CMAKE_SOURCE_DIR}/include/service_federation.h +) + +INSTALL(FILES ${SVCFEDERATION-COMMON-HEADERS} DESTINATION include/service-federation) diff --git a/common/usf_common.c b/common/usf_common.c new file mode 100644 index 0000000..7a62a3a --- /dev/null +++ b/common/usf_common.c @@ -0,0 +1,6 @@ +#include "service_federation.h" + +int service_federation_create() +{ + return 0; +} diff --git a/common/usf_common.h b/common/usf_common.h new file mode 100644 index 0000000..e69de29 diff --git a/include/service_federation.h b/include/service_federation.h new file mode 100644 index 0000000..2e12dc0 --- /dev/null +++ b/include/service_federation.h @@ -0,0 +1,61 @@ +/* + * Service Federation + * + * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __SERVICE_FEDERATION_H__ +#define __SERVICE_FEDERATION_H__ + +#ifndef API +#define API __attribute__ ((visibility("default"))) +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +/** + * @file service_federation.h + */ + +/** + * @ingroup + * @defgroup + * + * @brief + * + * @section + * \#include + * + *
+ * @{ + */ + +API int service_federation_create(); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __SERVICE_FEDERATION_H__ */ diff --git a/packaging/service-federation.spec b/packaging/service-federation.spec new file mode 100644 index 0000000..637273a --- /dev/null +++ b/packaging/service-federation.spec @@ -0,0 +1,71 @@ +Name: service-federation +Summary: Service Federation Framework for Convergence +Version: 0.0.1 +Release: 1 +Group: System/Libraries +License: Apache-2.0 +Source0: %{name}-%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(gthread-2.0) +BuildRequires: pkgconfig(capi-appfw-application) + +%description +Service Federation Framework Library/Binary package + +%package -n service-federation-devel +Summary: Headers for Service Federation Framework +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description -n service-federation-devel +This package contains the header and pc files of Service Federation. + +%prep +%setup -q + +%build +export CFLAGS="${CFLAGS} -fPIC -Wall -g -fvisibility=hidden -fdata-sections -ffunction-sections" +export CXXFLAGS="${CXXFLAGS} -fPIC -Wall -g -fvisibility=hidden" +export LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--rpath=%{_prefix}/lib -Wl,--as-needed" + +%if 0%{?sec_build_binary_debug_enable} +export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" +export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" +%endif + +cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +%make_install + +mkdir -p %{buildroot}/usr/share/license +cp LICENSE.APLv2 %{buildroot}/usr/share/license/service-federation +cp LICENSE.APLv2 %{buildroot}/usr/share/license/service-federation-devel + +%post -n service-federation +/sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files -n service-federation +%manifest service-federation.manifest +%defattr(-,system,system,-) +%{_libdir}/lib*.so.* +%{_bindir}/usf-test +/usr/share/license/%{name} + +%files -n service-federation-devel +%defattr(-,system,system,-) +%{_libdir}/lib*.so +%{_libdir}/pkgconfig/service-federation.pc +%{_includedir}/service-federation/*.h +/usr/share/license/%{name}-devel diff --git a/service-federation.manifest b/service-federation.manifest new file mode 100644 index 0000000..52182c4 --- /dev/null +++ b/service-federation.manifest @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + diff --git a/service-federation.pc.in b/service-federation.pc.in new file mode 100644 index 0000000..a74b35d --- /dev/null +++ b/service-federation.pc.in @@ -0,0 +1,9 @@ +prefix=/usr +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: service-federation library +Description: service-federation library 1.0 +Version: $version +Libs: -L${libdir} -lusf-common -lsvcbox -lsvcflow +Cflags: -I${includedir}/service-federation diff --git a/svcbox/CMakeLists.txt b/svcbox/CMakeLists.txt new file mode 100644 index 0000000..5efaea8 --- /dev/null +++ b/svcbox/CMakeLists.txt @@ -0,0 +1,51 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(svcbox) + +SET(CMAKE_SKIP_BUILD_RPATH TRUE) + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Debug") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") + +MESSAGE("") +MESSAGE(">>> current directory: ${CMAKE_CURRENT_SOURCE_DIR}") +MESSAGE(">>> Build type: ${CMAKE_BUILD_TYPE}") + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VISIBILITY} -fvisibility=hidden") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--gc-sections -fPIE") + +########################################################## +# Define Core Lib +########################################################## + +SET(SVCBOX-LIB "svcbox") +SET(SVCBOX-SRCS + ${CMAKE_SOURCE_DIR}/svcbox/svcbox.c +) + +INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/common + ${CMAKE_SOURCE_DIR}/svcbox +) + +INCLUDE(FindPkgConfig) +pkg_check_modules(svcbox_pkgs REQUIRED dlog glib-2.0 capi-appfw-application) + +FOREACH(flag ${svcbox_pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +#message(">>>[${SVCBOX-LIB}] extra_cflags ${EXTRA_CFLAGS}") +#message(">>>[${SVCBOX-LIB}] svcbox_pkgs_cflags ${svcbox_pkgs_CFLAGS}") +#message(">>>[${SVCBOX-LIB}] result ${CMAKE_C_FLAGS}") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") + +ADD_LIBRARY(${SVCBOX-LIB} SHARED ${SVCBOX-SRCS}) +TARGET_LINK_LIBRARIES(${SVCBOX-LIB} ${svcbox_pkgs_LDFLAGS} usf-common) +SET_TARGET_PROPERTIES(${SVCBOX-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${SVCBOX-LIB} PROPERTIES VERSION ${VERSION}) + +INSTALL(TARGETS ${SVCBOX-LIB} DESTINATION lib COMPONENT RuntimeLibraries) diff --git a/svcbox/svcbox.c b/svcbox/svcbox.c new file mode 100644 index 0000000..9bd3831 --- /dev/null +++ b/svcbox/svcbox.c @@ -0,0 +1,11 @@ +#include "svcbox.h" + +int svcbox_connect() +{ + return 0; +} + +int svcbox_disconnect() +{ + return 0; +} diff --git a/svcbox/svcbox.h b/svcbox/svcbox.h new file mode 100644 index 0000000..292ef64 --- /dev/null +++ b/svcbox/svcbox.h @@ -0,0 +1,469 @@ +/* + * Service Box + * + * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __TIZEN_CONVERGENCE_SERVICE_BOX_H__ +#define __TIZEN_CONVERGENCE_SERVICE_BOX_H__ + +#ifndef API +#define API __attribute__ ((visibility("default"))) +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include +#include + +/** + * @file svcbox.h + */ + +/** + * @ingroup + * @defgroup + * + * @brief + * + * @section + * \#include + * + *
+ * @{ + */ + +/** + * @brief Enumerations of error code for Service Box + */ +typedef enum _svcbox_result_e +{ + SVCBOX_RESULT_SUCCEEDED = 0, +} svcbox_result_e; + +/** + * @brief Enumerations of error code for Service Box + */ +typedef enum _svcbox_service_spec_type_e +{ + OAUTH_1_0 = 0, + OAUTH_2_0 = 1, + VCARD_2_1 = 2, + VCARD_3_0 = 3, +} svcbox_service_spec_type_e; + +/** +* @brief Describes profile list about Service Box +*/ +typedef struct _svcbox_profiles_s +{ + int list_len; +} svcbox_profiles_s; + +/** +* @brief The handle for profile list of Service Box +*/ +typedef svcbox_profiles_s *svcbox_profiles_h; + +/** +* @brief Describes profile information about Service Box +*/ +typedef struct _svcbox_profile_info_s +{ + char *uri; +} svcbox_profile_info_s; + +/** +* @brief The handle for profile information of Service Box +*/ +typedef svcbox_profile_info_s *svcbox_profile_info_h; + +/** +* @brief Describes service list about Service Box +*/ +typedef struct _svcbox_services_s +{ + int list_len; +} svcbox_services_s; + +/** +* @brief The handle for service list of Service Box +*/ +typedef svcbox_services_s *svcbox_services_h; + +/** +* @brief Describes service information about Service Box +*/ +typedef struct _svcbox_service_info_s +{ + char *uri; +} svcbox_service_info_s; + +/** +* @brief The handle for profile information of Service Box +*/ +typedef svcbox_service_info_s *svcbox_service_info_h; + +/** +* @brief Callback for svcbox_profiles_list_foreach_profile_info API +* +* @param[in] profile_info specifies profile information handle +* @param[in] user_data specifies user_data of svcbox_profiles_list_foreach_profile_info() +* @return void. +* @pre svcbox_profiles_list_foreach_profile_info() will invoke this callback. +* @see +*/ +typedef void (*svcbox_profile_info_cb)(svcbox_profile_info_h profile_info, + void *user_data); + +/** +* @brief Callback for svcbox_services_list_foreach_service_info API +* +* @param[in] profile_info specifies service information handle +* @param[in] user_data specifies user_data of svcbox_services_list_foreach_service_info() +* @return void. +* @pre svcbox_services_list_foreach_service_info() will invoke this callback. +* @see +*/ +typedef void (*svcbox_service_info_cb)(svcbox_service_info_h service_info, + void *user_data); + +/*================================================================================================== + FUNCTION PROTOTYPES +==================================================================================================*/ + +/** +* @brief Connects Service Box +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_connect(); + +/** +* @brief Disconnects Service Box +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_disconnect(); + +/** +* @brief Creates Profile List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profiles_list_create(svcbox_profiles_h *profiles); + +/** +* @brief Destroies Profile List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profiles_list_destroy(svcbox_profiles_h profiles); + +/** +* @brief Adds Profile Information in Profile List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profiles_list_add(svcbox_profile_info_h profile_info); + +/** +* @brief Removes Profile Information in Profile List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profiles_list_remove(svcbox_profile_info_h profile_info); + +/** +* @brief Retrieves Profile Information of Profile List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profiles_list_foreach_profile_info(svcbox_profiles_h profiles, + svcbox_profile_info_cb callback, + void *user_data); + +/** +* @brief Creates Profile Information +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profile_info_create(svcbox_profile_info_h *profile_info); + +/** +* @brief Destroies Profile Information +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profile_info_destroy(svcbox_profile_info_h profile_info); + +/** +* @brief Sets Profile URI +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profile_info_set_uri(svcbox_profile_info_h profile_info, + const char *uri); + +/** +* @brief Gets Profile URI +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profile_info_get_uri(svcbox_profile_info_h profile_info, + char **uri); + +/** +* @brief Sets Profile Root Path +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profile_info_set_root_path(svcbox_profile_info_h profile_info, + const char *path); + +/** +* @brief Gets Profile Root Path +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_profile_info_get_root_path(svcbox_profile_info_h profile_info, + char **path); + +/** +* @brief Creates Service List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_services_list_create(svcbox_services_h *services); + +/** +* @brief Destroies Service List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_services_list_destroy(svcbox_services_h services); + +/** +* @brief Adds Service Information in Service List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_services_list_add(svcbox_service_info_h service_info); + +/** +* @brief Removes Service Information in Service List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_services_list_remove(svcbox_service_info_h service_info); + +/** +* @brief Retrieves Service Information of Service List +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_services_list_foreach_service_info(svcbox_services_h services, + svcbox_service_info_cb callback, + void *user_data); + +/** +* @brief Creates Service Information +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_create(svcbox_service_info_h *service_info); + +/** +* @brief Destroies Service Information +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_destroy(svcbox_service_info_h service_info); + +/** +* @brief Sets Service URI +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_set_uri(svcbox_service_info_h service_info, + const char *uri); + +/** +* @brief Gets Service URI +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_get_uri(svcbox_service_info_h service_info, + char **uri); + +/** +* @brief Sets Service Root Path +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_set_root_path(svcbox_service_info_h service_info, + const char *path); + +/** +* @brief Gets Service Root Path +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_get_root_path(svcbox_service_info_h service_info, + char **path); + +/** +* @brief Sets Service Name +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_set_name(svcbox_service_info_h service_info, + const char *name); + +/** +* @brief Gets Service Name +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_get_name(svcbox_service_info_h service_info, + char **name); + +/** +* @brief Sets Service Spec +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_set_spec(svcbox_service_info_h service_info, + svcbox_service_spec_type_e type); + +/** +* @brief Gets Service Spec +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_get_spec(svcbox_service_info_h service_info, + svcbox_service_spec_type_e *type); + +/** +* @brief Sets Service Spec Value +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_set_spec_value(svcbox_service_info_h service_info, + const char *key, + const char *value); + +/** +* @brief Gets Service Spec Value +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_get_spec_value(svcbox_service_info_h service_info, + const char *key, + char **value); + +/** +* @brief Sets Service App Control +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_set_app_control(svcbox_service_info_h service_info, + app_control_h app_control); + +/** +* @brief Gets Service App Control +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcbox_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcbox_service_info_get_app_control(svcbox_service_info_h service_info, + app_control_h *app_control); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __TIZEN_CONVERGENCE_SERVICE_BOX_H__ */ diff --git a/svcflow/CMakeLists.txt b/svcflow/CMakeLists.txt new file mode 100644 index 0000000..688563d --- /dev/null +++ b/svcflow/CMakeLists.txt @@ -0,0 +1,52 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(svcflow) + +SET(CMAKE_SKIP_BUILD_RPATH TRUE) + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Debug") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") + +MESSAGE("") +MESSAGE(">>> current directory: ${CMAKE_CURRENT_SOURCE_DIR}") +MESSAGE(">>> Build type: ${CMAKE_BUILD_TYPE}") + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VISIBILITY} -fvisibility=hidden") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--gc-sections -fPIE") + +########################################################## +# Define Core Lib +########################################################## + +SET(SVCFLOW-LIB "svcflow") +SET(SVCFLOW-SRCS + ${CMAKE_SOURCE_DIR}/svcflow/svcflow.c +) + +INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/common + ${CMAKE_SOURCE_DIR}/svcbox + ${CMAKE_SOURCE_DIR}/svcflow +) + +INCLUDE(FindPkgConfig) +pkg_check_modules(svcflow_pkgs REQUIRED dlog glib-2.0 capi-appfw-application) + +FOREACH(flag ${svcflow_pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +#message(">>>[${SVCFLOW-LIB}] extra_cflags ${EXTRA_CFLAGS}") +#message(">>>[${SVCFLOW-LIB}] svcflow_pkgs_cflags ${svcflow_pkgs_CFLAGS}") +#message(">>>[${SVCFLOW-LIB}] result ${CMAKE_C_FLAGS}") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") + +ADD_LIBRARY(${SVCFLOW-LIB} SHARED ${SVCFLOW-SRCS}) +TARGET_LINK_LIBRARIES(${SVCFLOW-LIB} ${svcflow_pkgs_LDFLAGS} usf-common svcbox) +SET_TARGET_PROPERTIES(${SVCFLOW-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${SVCFLOW-LIB} PROPERTIES VERSION ${VERSION}) + +INSTALL(TARGETS ${SVCFLOW-LIB} DESTINATION lib COMPONENT RuntimeLibraries) diff --git a/svcflow/svcflow.c b/svcflow/svcflow.c new file mode 100644 index 0000000..385b024 --- /dev/null +++ b/svcflow/svcflow.c @@ -0,0 +1,11 @@ +#include "svcflow.h" + +int svcflow_connect() +{ + return 0; +} + +int svcflow_disconnect() +{ + return 0; +} diff --git a/svcflow/svcflow.h b/svcflow/svcflow.h new file mode 100644 index 0000000..9fbbd20 --- /dev/null +++ b/svcflow/svcflow.h @@ -0,0 +1,326 @@ +/* + * Service Flow + * + * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __TIZEN_CONVERGENCE_SERVICE_FLOW_H__ +#define __TIZEN_CONVERGENCE_SERVICE_FLOW_H__ + +#ifndef API +#define API __attribute__ ((visibility("default"))) +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include "svcbox.h" + +/** + * @file svcflow.h + */ + +/** + * @ingroup + * @defgroup + * + * @brief + * + * @section + * \#include + * + *
+ * @{ + */ + +/** + * @brief Enumerations of result code for Service Flow + */ +typedef enum _svcflow_result_e +{ + SVCFLOW_RESULT_SUCCEEDED = 0, +} svcflow_result_e; + +/** +* @brief Describes service group about Service Flow +*/ +typedef struct _svcflow_service_group_s +{ + int list_len; +} svcflow_service_group_s; + +/** +* @brief The handle for service group of Service Flow +*/ +typedef svcflow_service_group_s *svcflow_service_group_h; + +/** +* @brief Describes service control about Service Flow +*/ +typedef struct _svcflow_service_control_s +{ + char *uri; +} svcflow_service_control_s; + +/** +* @brief The handle for service control of Service Flow +*/ +typedef svcflow_service_control_s *svcflow_service_control_h; + +/** +* @brief Callback for svcflow_service_control_{transfer/defer/notify}_launch_request API +* +* @param[in] reply specifies reply handle of service control +* @param[in] user_data specifies user_data of svcflow_profiles_list_foreach_profile_info() +* @return void. +* @pre svcflow_service_control_{transfer/defer/notify}_launch_request() will invoke this callback. +* @see +*/ +typedef void (*svcflow_service_control_reply_cb)(svcflow_service_control_h reply, + svcflow_result_e result, + void *user_data); + +/*================================================================================================== + FUNCTION PROTOTYPES +==================================================================================================*/ + +/** +* @brief Connects Service Flow +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_connect(); + +/** +* @brief Disconnects Service Flow +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_disconnect(); + +/** +* @brief Creates Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_group_create(svcflow_service_group_h *service_group); + +/** +* @brief Destroies Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_group_destroy(svcflow_service_group_h service_group); + +/** +* @brief Adds Service Information in Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_group_add(svcflow_service_group_h service_group, + svcbox_service_info_h service_info); + +/** +* @brief Removes Service Information in Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_group_remove(svcflow_service_group_h service_group, + svcbox_service_info_h service_info); + +/** +* @brief Creates Service Control +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_create(svcflow_service_control_h *service_control); + +/** +* @brief Destroies Service Control +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_destroy(svcflow_service_control_h service_control); + +/** +* @brief Sets Service Control URI +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_set_uri(svcflow_service_control_h service_control, + const char *uri); + +/** +* @brief Gets Service Control URI +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_get_uri(svcflow_service_control_h service_control, + char **uri); + +/** +* @brief Sets Service Control Name +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_set_name(svcflow_service_control_h service_control, + const char *name); + +/** +* @brief Gets Service Control Name +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_get_name(svcflow_service_control_h service_control, + char **name); + +/** +* @brief Sets Publication Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_set_publication_group(svcflow_service_control_h service_control, + svcflow_service_group_h service_group); + +/** +* @brief Gets Publication Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_get_publication_group(svcflow_service_control_h service_control, + svcflow_service_group_h *service_group); + +/** +* @brief Sets Subscription Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_set_subscription_group(svcflow_service_control_h service_control, + svcflow_service_group_h service_group); + +/** +* @brief Gets Subscription Service Group +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_get_subscription_group(svcflow_service_control_h service_control, + svcflow_service_group_h *service_group); + +/** +* @brief Transfers Launch Request +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_transfer_launch_request(svcflow_service_control_h service_control, + svcflow_service_control_reply_cb callback, + void *user_data); + +/** +* @brief Transfers Termination Request +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_transfer_termination_request(svcflow_service_control_h service_control); + +/** +* @brief Defers Launch Request +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_defer_launch_request(svcflow_service_control_h service_control, + svcflow_service_control_reply_cb callback, + void *user_data); + +/** +* @brief Defers Termination Request +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_defer_termination_request(svcflow_service_control_h service_control); + +/** +* @brief Notifies Launch Request +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_notify_launch_request(svcflow_service_control_h service_control, + svcflow_service_control_reply_cb callback, + void *user_data); + +/** +* @brief Notifies Termination Request +* +* @param[in] +* @return 0 on success, otherwise a negative error value +* @retval error code defined in svcflow_result_e - SVCBOX_RESULT_SUCCEEDED if Successful +*/ +int svcflow_service_control_notify_termination_request(svcflow_service_control_h service_control); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __TIZEN_CONVERGENCE_SERVICE_BOX_H__ */ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..49ee562 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,43 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(usf-test) + +SET(CMAKE_SKIP_BUILD_RPATH TRUE) + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Debug") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") + +MESSAGE("") +MESSAGE(">>> current directory: ${CMAKE_CURRENT_SOURCE_DIR}") +MESSAGE(">>> Build type: ${CMAKE_BUILD_TYPE}") + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VISIBILITY} -fvisibility=hidden") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--gc-sections") + +SET(TEST-EXE "usf-test") +SET(TEST-SRCS + ${CMAKE_SOURCE_DIR}/test/test.c +) + +INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/include +) + +INCLUDE(FindPkgConfig) +pkg_check_modules(test_pkgs REQUIRED dlog glib-2.0) + +FOREACH(flag ${test_pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +#message(">>>[${TEST-EXE}] extra_cflags ${EXTRA_CFLAGS}") +#message(">>>[${TEST-EXE}] test_pkgs_cflags ${test_pkgs_CFLAGS}") +#message(">>>[${TEST-EXE}] result ${CMAKE_C_FLAGS}") + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") + +ADD_EXECUTABLE(${TEST-EXE} ${TEST-SRCS}) +TARGET_LINK_LIBRARIES(${TEST-EXE} ${test_pkgs_LDFLAGS} usf-common svcbox svcflow) +INSTALL(TARGETS ${TEST-EXE} DESTINATION bin) diff --git a/test/test.c b/test/test.c new file mode 100644 index 0000000..7fb1ab9 --- /dev/null +++ b/test/test.c @@ -0,0 +1,6 @@ +#include + +int main() +{ + return 0; +}