From: Junghoon Park Date: Mon, 27 Nov 2017 11:30:27 +0000 (+0900) Subject: Add interfaces for rpc-port and rpc-port-parcel APIs X-Git-Tag: submit/tizen/20180312.233038~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f96d39c89bfb281ccade623aaa2ee4f6e720d1ed;p=platform%2Fcore%2Fappfw%2Frpc-port.git Add interfaces for rpc-port and rpc-port-parcel APIs Change-Id: If5066f2cc92b6d472553204222452c4eea6bf047 Signed-off-by: Junghoon Park --- diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5b10bcd --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,62 @@ +PROJECT(rpc-port CXX) +SET(this_target rpc-port) + +INCLUDE_DIRECTORIES ( + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/src + ) + +SET(${this_target}_requires "dlog bundle glib-2.0 gio-2.0 aul openssl capi-base-common pkgmgr-info gio-unix-2.0") + +INCLUDE(FindPkgConfig) +pkg_check_modules(${this_target} REQUIRED ${${this_target}_requires}) + +FOREACH(flag ${${this_target}_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wall" ) + +## SET C COMPILER FLAGS +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden") +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") + +## SET CPP COMPILER FLAGS +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -std=c++11") + +## Create Library +AUX_SOURCE_DIRECTORY(src SOURCES) +ADD_LIBRARY(${this_target} SHARED ${SOURCES}) + +## SET LINKER FLAGS +SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed -Wl,--no-undefined -Wl,--rpath=${LIB_INSTALL_DIR}") + +TARGET_LINK_LIBRARIES(${this_target} ${${this_target}_LDFLAGS}) + +SET_TARGET_PROPERTIES(${this_target} + PROPERTIES + VERSION ${FULLVER} + SOVERSION ${MAJORVER} + CLEAN_DIRECT_OUTPUT 1 + ) + +# pkgconfig file +SET(PC_NAME ${this_target}) +SET(VERSION ${FULLVER}) +SET(PC_REQUIRED ${${this_target}_requires}) + +## OUTPUT PATHS +SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output) +ADD_CUSTOM_COMMAND( + TARGET ${this_target} POST_BUILD + COMMAND ln -s ./librpc-port.so.${MAJORVER} ${LIBRARY_OUTPUT_PATH}/libcapi-rpc-port.so.${MAJORVER}) + +CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/${this_target}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) +CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/capi-${this_target}.pc.in ${CMAKE_SOURCE_DIR}/capi-${this_target}.pc @ONLY) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/capi-${this_target}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) + +INSTALL(TARGETS ${this_target} DESTINATION ${LIB_INSTALL_DIR}) + +INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/rpc-port FILES_MATCHING PATTERN "*.h") +INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION ${LIB_INSTALL_DIR} FILES_MATCHING PATTERN "*.so*") diff --git a/LICENSE.APLv2 b/LICENSE.APLv2 new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE.APLv2 @@ -0,0 +1,202 @@ + + 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..0e0f016 --- /dev/null +++ b/NOTICE @@ -0,0 +1,3 @@ +Copyright (c) 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 terms and conditions. diff --git a/capi-rpc-port.pc.in b/capi-rpc-port.pc.in new file mode 100644 index 0000000..70f43da --- /dev/null +++ b/capi-rpc-port.pc.in @@ -0,0 +1,13 @@ + +# Package Information for pkg-config + +prefix=@PREFIX@ +exec_prefix=/usr +libdir=@LIB_INSTALL_DIR@ +includedir=@INCLUDE_INSTALL_DIR@/rpc-port + +Name: capi-rpc-port +Description: @PACKAGE_DESCRIPTION@ +Version: @VERSION@ +Libs: -L${libdir} -lrpc-port +Cflags: -I${includedir} diff --git a/include/rpc-port-parcel.h b/include/rpc-port-parcel.h new file mode 100644 index 0000000..b353510 --- /dev/null +++ b/include/rpc-port-parcel.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2017 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 __RPC_PORT_PARCEL_INCLUDE_H__ +#define __RPC_PORT_PARCEL_INCLUDE_H__ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void *rpc_port_parcel_h; +typedef struct __rpc_port_parcelable { + void (*to)(rpc_port_parcel_h h, void *data); + void (*from)(rpc_port_parcel_h h, void *data); +} rpc_port_parcelable_t; + +int rpc_port_parcel_create(rpc_port_parcel_h *h); +int rpc_port_parcel_create_from_port(rpc_port_parcel_h *h, rpc_port_h port); +int rpc_port_parcel_send(rpc_port_parcel_h *h, rpc_port_h port); +int rpc_port_parcel_destroy(rpc_port_parcel_h h); +int rpc_port_parcel_write_byte(rpc_port_parcel_h h, char b); +int rpc_port_parcel_write_int16(rpc_port_parcel_h h, short i); +int rpc_port_parcel_write_int32(rpc_port_parcel_h h, int i); +int rpc_port_parcel_write_int64(rpc_port_parcel_h h, long long i); +int rpc_port_parcel_write_float(rpc_port_parcel_h h, float f); +int rpc_port_parcel_write_double(rpc_port_parcel_h h, double d); +int rpc_port_parcel_write_string(rpc_port_parcel_h h, const char *str); +int rpc_port_parcel_write_bool(rpc_port_parcel_h h, bool b); +int rpc_port_parcel_write_bundle(rpc_port_parcel_h h, bundle *b); +int rpc_port_parcel_write_array_count(rpc_port_parcel_h h, int count); +int rpc_port_parcel_write(rpc_port_parcel_h h, rpc_port_parcelable_t *parcelable, void *data); +int rpc_port_parcel_read_byte(rpc_port_parcel_h h, char *b); +int rpc_port_parcel_read_int16(rpc_port_parcel_h h, short *i); +int rpc_port_parcel_read_int32(rpc_port_parcel_h h, int *i); +int rpc_port_parcel_read_int64(rpc_port_parcel_h h, long long *i); +int rpc_port_parcel_read_float(rpc_port_parcel_h h, float *f); +int rpc_port_parcel_read_double(rpc_port_parcel_h h, double *d); +int rpc_port_parcel_read_string(rpc_port_parcel_h h, char **str); +int rpc_port_parcel_read_bool(rpc_port_parcel_h h, bool *b); +int rpc_port_parcel_read_bundle(rpc_port_parcel_h h, bundle **b); +int rpc_port_parcel_read_array_count(rpc_port_parcel_h h, int *count); +int rpc_port_parcel_read(rpc_port_parcel_h h, rpc_port_parcelable_t *parcelable, void *data); + +#ifdef __cplusplus +} +#endif + +#endif // __RPC_PORT_PARCEL_INCLUDE_H__ diff --git a/include/rpc-port.h b/include/rpc-port.h new file mode 100755 index 0000000..87db927 --- /dev/null +++ b/include/rpc-port.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2017 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 __RPC_PORT_INCLUDE_H__ +#define __RPC_PORT_INCLUDE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* common */ +typedef void *rpc_port_h; +int rpc_port_open(int fd, rpc_port_h *h); +int rpc_port_close(rpc_port_h h); +int rpc_port_read(rpc_port_h h, char *buf, unsigned int size); +int rpc_port_write(rpc_port_h h, char *buf, unsigned int size); + +/* proxy */ +typedef void (*rpc_port_proxy_connected_event_cb)(const char *ep, + const char *port_name, rpc_port_h port, void *data); +typedef void (*rpc_port_proxy_disconnected_event_cb)(const char *ep, + const char *port_name, void *data); +typedef void (*rpc_port_proxy_rejected_event_cb)(const char *ep, + const char *port_name, void *data); +typedef void *rpc_port_proxy_h; +int rpc_port_proxy_create(rpc_port_proxy_h *h); +int rpc_port_proxy_destroy(rpc_port_proxy_h h); +int rpc_port_proxy_connect(rpc_port_proxy_h h, const char *appid, + const char *port); + +int rpc_port_proxy_add_connected_event_cb(rpc_port_proxy_h h, + rpc_port_proxy_connected_event_cb cb, void *data); +int rpc_port_proxy_add_disconnected_event_cb(rpc_port_proxy_h h, + rpc_port_proxy_disconnected_event_cb cb, void *data); +int rpc_port_proxy_add_rejected_event_cb(rpc_port_proxy_h h, + rpc_port_proxy_rejected_event_cb cb, void *data); + +/* stub */ +typedef void *rpc_port_stub_h; +typedef void (*rpc_port_stub_connected_event_cb)(const char *sender, + void *data); +typedef void (*rpc_port_stub_disconnected_event_cb)(const char *sender, + void *data); +typedef void (*rpc_port_stub_received_event_cb)(const char *sender, + rpc_port_h port, void *data); +int rpc_port_stub_create(rpc_port_stub_h *h, const char *port_name); +int rpc_port_stub_destroy(rpc_port_stub_h h); +int rpc_port_stub_listen(rpc_port_stub_h h); +int rpc_port_stub_add_connected_event_cb(rpc_port_stub_h h, + rpc_port_stub_connected_event_cb cb, void *data); +int rpc_port_stub_add_disconnected_event_cb(rpc_port_stub_h h, + rpc_port_stub_disconnected_event_cb cb, void *data); +int rpc_port_stub_add_recevied_event_cb(rpc_port_stub_h h, + rpc_port_stub_received_event_cb cb, void *data); + +#ifdef __cplusplus +} +#endif + +#endif /* __RPC_PORT_INCLUDE_H__ */ diff --git a/packaging/rpc-port.manifest b/packaging/rpc-port.manifest new file mode 100644 index 0000000..75b0fa5 --- /dev/null +++ b/packaging/rpc-port.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/packaging/rpc-port.spec b/packaging/rpc-port.spec new file mode 100755 index 0000000..ecb09f4 --- /dev/null +++ b/packaging/rpc-port.spec @@ -0,0 +1,65 @@ +Name: rpc-port +Summary: RPC Port library +Version: 1.0.0 +Release: 0 +Group: Application Framework/Libraries +License: Apache-2.0 +Source0: %{name}-%{version}.tar.gz +Source1001: %{name}.manifest +BuildRequires: cmake +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(bundle) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(aul) +BuildRequires: pkgconfig(pkgmgr) +BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(openssl) + +Requires(post): /sbin/ldconfig +Requires(post): coreutils +Requires(postun): /sbin/ldconfig + +Provides: capi-rpc-port +Provides: libcapi-rpc-port.so.1 + +%description +RPC Port library package. + +%package devel +Summary: RPC Port library (Development) +Group: Application Framework/Development +Requires: %{name} = %{version}-%{release} + +%description devel +RPC Port library (Development) package. + +%prep +%setup -q +cp %{SOURCE1001} . + +%build +MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` +%cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER} +# Call make instruction with smp support +%__make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} + +%make_install + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%manifest %{name}.manifest +%attr(0644,root,root) %{_libdir}/lib%{name}.so.* +%attr(0644,root,root) %{_libdir}/libcapi-rpc-port.so.* +%license LICENSE.APLv2 + +%files devel +%{_includedir}/rpc-port/*.h +%{_libdir}/pkgconfig/*.pc +%{_libdir}/lib%{name}.so diff --git a/rpc-port.pc.in b/rpc-port.pc.in new file mode 100644 index 0000000..efbec14 --- /dev/null +++ b/rpc-port.pc.in @@ -0,0 +1,13 @@ + +# Package Information for pkg-config + +prefix=@PREFIX@ +exec_prefix=/usr +libdir=@LIB_INSTALL_DIR@ +includedir=@INCLUDE_INSTALL_DIR@/rpc-port + +Name: @PC_NAME@ +Description: @PACKAGE_DESCRIPTION@ +Version: @VERSION@ +Libs: -L${libdir} -lrpc-port +Cflags: -I${includedir} diff --git a/src/rpc_port.cc b/src/rpc_port.cc new file mode 100755 index 0000000..1a543ae --- /dev/null +++ b/src/rpc_port.cc @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2017 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. + */ + +#include + +#include "rpc-port.h" + +#undef RPC_API +#define RPC_API extern "C" __attribute__((visibility("default"))) + +RPC_API int rpc_port_open(int fd, rpc_port_h *h) { + return 0; +} + +RPC_API int rpc_port_close(rpc_port_h h) { + return 0; +} + +RPC_API int rpc_port_read(rpc_port_h h, char *buf, unsigned int size) { + return 0; +} + +RPC_API int rpc_port_write(rpc_port_h h, char *buf, unsigned int size) { + return 0; +} + +RPC_API int rpc_port_proxy_create(rpc_port_proxy_h *h) { + return 0; +} + +RPC_API int rpc_port_proxy_destroy(rpc_port_proxy_h h) { + return 0; +} + +RPC_API int rpc_port_proxy_connect(rpc_port_proxy_h h, const char *appid, + const char *port) { + return 0; +} + +RPC_API int rpc_port_proxy_add_connected_event_cb(rpc_port_proxy_h h, + rpc_port_proxy_connected_event_cb cb, void *data) { + return 0; +} + +RPC_API int rpc_port_proxy_add_disconnected_event_cb(rpc_port_proxy_h h, + rpc_port_proxy_disconnected_event_cb cb, void *data) { + return 0; +} + +RPC_API int rpc_port_proxy_add_rejected_event_cb(rpc_port_proxy_h h, + rpc_port_proxy_rejected_event_cb cb, void *data) { + return 0; +} + +RPC_API int rpc_port_stub_create(rpc_port_stub_h *h, const char *port_name) { + return 0; +} + +RPC_API int rpc_port_stub_destroy(rpc_port_stub_h h) { + return 0; +} + +RPC_API int rpc_port_stub_listen(rpc_port_stub_h h) { + return 0; +} + +RPC_API int rpc_port_stub_add_connected_event_cb(rpc_port_stub_h h, + rpc_port_stub_connected_event_cb cb, void *data) { + return 0; +} + +RPC_API int rpc_port_stub_add_disconnected_event_cb(rpc_port_stub_h h, + rpc_port_stub_disconnected_event_cb cb, void *data) { + return 0; +} + +RPC_API int rpc_port_stub_add_recevied_event_cb(rpc_port_stub_h h, + rpc_port_stub_received_event_cb cb, void *data) { + return 0; +} diff --git a/src/rpc_port_parcel.cc b/src/rpc_port_parcel.cc new file mode 100755 index 0000000..18953a1 --- /dev/null +++ b/src/rpc_port_parcel.cc @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2017 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. + */ + +#include "rpc-port-parcel.h" + +#undef RPC_API +#define RPC_API extern "C" __attribute__((visibility("default"))) + +RPC_API int rpc_port_parcel_create(rpc_port_parcel_h *h) { + return 0; +} + +RPC_API int rpc_port_parcel_create_from_port(rpc_port_parcel_h *h, + rpc_port_h port) { + return 0; +} + +RPC_API int rpc_port_parcel_send(rpc_port_parcel_h *h, rpc_port_h port) { + return 0; +} + +RPC_API int rpc_port_parcel_destroy(rpc_port_parcel_h h) { + return 0; +} + +RPC_API int rpc_port_parcel_write_byte(rpc_port_parcel_h h, char b) { + return 0; +} + +RPC_API int rpc_port_parcel_write_int16(rpc_port_parcel_h h, short i) { + return 0; +} + +RPC_API int rpc_port_parcel_write_int32(rpc_port_parcel_h h, int i) { + return 0; +} + +RPC_API int rpc_port_parcel_write_int64(rpc_port_parcel_h h, long long i) { + return 0; +} + +RPC_API int rpc_port_parcel_write_float(rpc_port_parcel_h h, float f) { + return 0; +} + +RPC_API int rpc_port_parcel_write_double(rpc_port_parcel_h h, double d) { + return 0; +} + +RPC_API int rpc_port_parcel_write_string(rpc_port_parcel_h h, const char *str) { + return 0; +} + +RPC_API int rpc_port_parcel_write_bool(rpc_port_parcel_h h, bool b) { + return 0; +} + +RPC_API int rpc_port_parcel_write_bundle(rpc_port_parcel_h h, bundle *b) { + return 0; +} + +RPC_API int rpc_port_parcel_write_array_count(rpc_port_parcel_h h, int count) { + return 0; +} + +RPC_API int rpc_port_parcel_write(rpc_port_parcel_h h, + rpc_port_parcelable_t *parcelable, void *data) { + return 0; +} + +RPC_API int rpc_port_parcel_read_byte(rpc_port_parcel_h h, char *b) { + return 0; +} + +RPC_API int rpc_port_parcel_read_int16(rpc_port_parcel_h h, short *i) { + return 0; +} + +RPC_API int rpc_port_parcel_read_int32(rpc_port_parcel_h h, int *i) { + return 0; +} + +RPC_API int rpc_port_parcel_read_int64(rpc_port_parcel_h h, long long *i) { + return 0; +} + +RPC_API int rpc_port_parcel_read_float(rpc_port_parcel_h h, float *f) { + return 0; +} + +RPC_API int rpc_port_parcel_read_double(rpc_port_parcel_h h, double *d) { + return 0; +} + +RPC_API int rpc_port_parcel_read_string(rpc_port_parcel_h h, char **str) { + return 0; +} + +RPC_API int rpc_port_parcel_read_bool(rpc_port_parcel_h h, bool *b) { + return 0; +} + +RPC_API int rpc_port_parcel_read_bundle(rpc_port_parcel_h h, bundle **b) { + return 0; +} + +RPC_API int rpc_port_parcel_read_array_count(rpc_port_parcel_h h, int *count) { + return 0; +} + +RPC_API int rpc_port_parcel_read(rpc_port_parcel_h h, + rpc_port_parcelable_t *parcelable, void *data) { + return 0; +}