Merge "Fix the misused argument for collection." into tizen_2.2
authorHokwon Song <hokwon.song@samsung.com>
Wed, 5 Jun 2013 07:48:23 +0000 (16:48 +0900)
committerGerrit Code Review <gerrit2@kim11>
Wed, 5 Jun 2013 07:48:23 +0000 (16:48 +0900)
16 files changed:
CMakeLists.txt
osp-system-server.pc.in [new file with mode: 0755]
packaging/osp-appfw.spec
src/CMakeLists.txt
src/app/FApp_AppInfo.cpp
src/base/inc/FBaseInternalTypes.h
src/base/utility/FBaseUtil_IcuConverter.cpp
src/io/FIo_IpcClient.cpp
src/io/inc/FIo_IpcClient.h
src/server/inc/FIo_IpcServer.h
src/server/io/FIo_IpcServer.cpp
src/system-server/CMakeLists.txt [new file with mode: 0644]
src/system-server/system/FSys_SystemInfo.cpp [new file with mode: 0644]
src/system-server/system/FSys_SystemInfo.h [new file with mode: 0644]
src/system/FSysSystemInfo.cpp
src/system/FSys_SystemInfoImpl.cpp

index 0f3f5bb..5f7aa8d 100755 (executable)
@@ -20,10 +20,10 @@ ENDIF(SBS)
 
 ## Set Assembly Compiler
 #SET(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
-       
+
 SET(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
 ENABLE_LANGUAGE(ASM)
-       
+
 ## LIBRARY PATH
 LINK_DIRECTORIES (${LIBRARY_OUTPUT_PATH})
 
@@ -31,25 +31,31 @@ ADD_SUBDIRECTORY(src)
 
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/osp-appfw.pc DESTINATION lib/pkgconfig)
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/osp-appfw-server.pc DESTINATION lib/pkgconfig)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/osp-system-server.pc DESTINATION lib/pkgconfig)
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/common/etc/ld.so.conf.d/osp.conf DESTINATION ../etc/ld.so.conf.d)
 
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output/target/generic/root/usr/share/locale DESTINATION share)
-INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp 
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp
                FILES_MATCHING PATTERN "libosp-appfw.so*"
-               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                      
+               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
                     GROUP_EXECUTE GROUP_READ
                     WORLD_EXECUTE WORLD_READ)
-INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp-server 
-               FILES_MATCHING PATTERN "libosp-appfw-server.so*" 
-               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                      
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp-server
+               FILES_MATCHING PATTERN "libosp-appfw-server.so*"
+               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
                     GROUP_EXECUTE GROUP_READ
                     WORLD_EXECUTE WORLD_READ)
-INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/debug/ DESTINATION lib/osp/debug 
-               FILES_MATCHING PATTERN "*" PATTERN "libosp-appfw-server.so*" EXCLUDE
-               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                                          
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp-server
+               FILES_MATCHING PATTERN "libosp-system-server.so*"
+               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
+                    GROUP_EXECUTE GROUP_READ
+                    WORLD_EXECUTE WORLD_READ)
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/debug/ DESTINATION lib/osp/debug
+               FILES_MATCHING PATTERN "*" PATTERN "libosp-*-server.so*" EXCLUDE
+               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
                                        GROUP_EXECUTE GROUP_READ
                                        WORLD_EXECUTE WORLD_READ)
-                                       
+
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/common/opt/usr/share/.osp-compat/share DESTINATION ../opt/usr/share/.osp-compat)
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/common/usr/share/osp DESTINATION ../usr/share FILES_MATCHING PATTERN ".privilege-description.db")
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/common/usr/share/osp DESTINATION ../usr/share FILES_MATCHING PATTERN ".external-privilege.ini")
diff --git a/osp-system-server.pc.in b/osp-system-server.pc.in
new file mode 100755 (executable)
index 0000000..55148fe
--- /dev/null
@@ -0,0 +1,13 @@
+# Package Information for pkg-config
+
+prefix=@PREFIX@
+exec_prefix=/usr
+libdir=/usr/lib/osp-server
+includedir=/usr/include/osp/server
+
+Name: @PC_NAME@
+Description: @PACKAGE_DESCRIPTION@
+Version: @VERSION@
+Requires: @PC_REQUIRED@
+Libs: -L${libdir} @PC_LDFLAGS@ -losp-system-server
+Cflags: -I${includedir}
index 29febcc..e5ec007 100755 (executable)
@@ -19,6 +19,8 @@ BuildRequires:  pkgconfig(capi-system-info)
 BuildRequires:  pkgconfig(capi-system-power)
 BuildRequires:  pkgconfig(capi-system-runtime-info)
 BuildRequires:  pkgconfig(capi-system-system-settings)
+BuildRequires:  pkgconfig(capi-system-media-key)
+BuildRequires:  pkgconfig(capi-network-bluetooth)
 BuildRequires:  pkgconfig(tapi)
 BuildRequires:  pkgconfig(alarm-service)
 BuildRequires:  pkgconfig(appsvc)
@@ -166,6 +168,7 @@ chmod 444 /opt/usr/etc/clocale.list
 /usr/etc/*
 %{_libdir}/osp/libosp-appfw.so*
 %{_libdir}/osp-server/libosp-appfw-server.so*
+%{_libdir}/osp-server/libosp-system-server.so*
 
 %files devel
 %{_includedir}/osp/*.h
@@ -182,8 +185,10 @@ chmod 444 /opt/usr/etc/clocale.list
 %{_includedir}/osp/text/*
 %{_includedir}/osp/server/*
 %{_libdir}/pkgconfig/osp-appfw-server.pc
+%{_libdir}/pkgconfig/osp-system-server.pc
 
 %files debug
 %{_libdir}/osp/debug/libosp-appfw.so*
 %{_libdir}/osp-server/debug/libosp-appfw-server.so*
+%{_libdir}/osp-server/debug/libosp-system-server.so*
 
index 5470392..615c26a 100755 (executable)
@@ -40,6 +40,8 @@ pkg_check_modules(pkgs REQUIRED
        capi-system-device
        capi-system-power
        capi-system-system-settings
+       capi-system-media-key
+       capi-network-bluetooth
        security-server
 )
 
@@ -60,3 +62,4 @@ ADD_SUBDIRECTORY(text)
 ADD_SUBDIRECTORY(appfw)
 ADD_SUBDIRECTORY(osp-string)
 ADD_SUBDIRECTORY(server osp-appfw-server)
+ADD_SUBDIRECTORY(system-server osp-system-server)
index 45a0438..fa5626c 100644 (file)
@@ -341,7 +341,11 @@ _AppInfo::GetApiVersionFromStr(const char* pVer)
        String ver(pVer);
        ver.Trim();
 
-       if (ver == L"3.0")
+       if (ver == L"2.2")
+       {
+               return _API_VERSION_2_2;
+       }
+       else if (ver == L"2.1")
        {
                return _API_VERSION_2_1;
        }
@@ -367,7 +371,7 @@ _AppInfo::GetApiVersionFromStr(const char* pVer)
        }
        else
        {
-               return _API_VERSION_2_1;
+               return _API_VERSION_2_2;
        }
 }
 
index 4779017..d81e08d 100644 (file)
@@ -40,6 +40,7 @@ typedef enum
        _API_VERSION_1_2 = 120,     /**< Api version 1.2 */
        _API_VERSION_2_0 = 200,     /**< Api version 2.0 */
        _API_VERSION_2_1 = 210,     /**< Api version 2.1 */
+       _API_VERSION_2_2 = 220,     /**< Api version 2.2 */
        _API_VERSION_MAX = 65535
 } _ApiVersion;
 
index e808ffb..b974646 100644 (file)
@@ -241,7 +241,7 @@ WcharToUtf8N(const wchar_t* pValue)
        UChar* pResultStr = u_strFromWCS(pIcuStr.get(), icuStrCapacity, &outLen, pValue, len, &err);
        SysTryReturn(NID_BASE_UTIL, U_SUCCESS(err), null, E_INVALID_ARG, "[%s] u_strFromWCS() failed. pValue is %ls.", GetErrorMessage(E_INVALID_ARG), pValue);
 
-       int destCapacity = outLen * 2 + 1;
+       int destCapacity = len * 4 + 1;
        std::unique_ptr< char[] > pDst(new (std::nothrow) char[destCapacity]);
        SysTryReturn(NID_BASE_UTIL, pDst != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
 
index 6e1061f..70a77be 100644 (file)
@@ -493,9 +493,15 @@ _IpcClient::SendAsync(IPC::Message* pMessage)
                written = write(fd, (char*) pData, remain);
                if (written < 0)
                {
-                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
-
                        ReleaseFd(fd);
+
+                       if (errno == EAGAIN)
+                       {
+                               SysLogException(NID_IO, E_RESOURCE_UNAVAILABLE, "[E_RESOURCE_UNAVAILABLE] The socket buffer is full.");
+                               return E_RESOURCE_UNAVAILABLE;
+                       }
+
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
                        return E_SYSTEM;
                }
 
@@ -543,9 +549,15 @@ _IpcClient::SendSync(IPC::Message* pMessage)
                written = write(fd, (char*) pData, remain);
                if (written < 0)
                {
-                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
-
                        ReleaseFd(fd);
+
+                       if (errno == EAGAIN)
+                       {
+                               SysLogException(NID_IO, E_RESOURCE_UNAVAILABLE, "[E_RESOURCE_UNAVAILABLE] The socket buffer is full.");
+                               return E_RESOURCE_UNAVAILABLE;
+                       }
+
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
                        return E_SYSTEM;
                }
 
index 1cbd394..7616838 100644 (file)
@@ -103,6 +103,7 @@ public:
         * @param[in] message   The message to send
         * @exception E_SUCCESS         The method was successful.
         * @exception E_INVALID_STATE   The instance is in an invalid state.
+        * @exception E_RESOURCE_UNAVAILABLE    The socket buffer is full.
         * @exception E_OUT_OF_MEMORY   Insufficient memory.
         * @exception E_SYSTEM          A system error occurred.
         *
index bd90760..4084c58 100644 (file)
@@ -123,6 +123,7 @@ public:
         * @exception E_SUCCESS The method was successful.
         * @exception E_INVALID_ARG             The message is synchronous.
         * @exception E_INVALID_OPERATION       The client didn't set a listener.
+        * @exception E_RESOURCE_UNAVAILABLE    The socket buffer is full.
         * @exception E_OUT_OF_MEMORY   Insufficient memory.
         * @exception E_SYSTEM          A system error occurred.
         *
@@ -130,10 +131,10 @@ public:
         */
        result SendResponse(int clientId, const IPC::Message& message);
 
-       result Start(void);
-
        result SendResponse(int clientId, IPC::Message* pMessage);
 
+       result Start(void);
+
        bool Send(IPC::Message* msg);
 
 private:
index e2da083..6b5f53c 100644 (file)
@@ -726,8 +726,11 @@ _IpcServer::SendResponse(int client, IPC::Message* pMessage)
                ret = g_io_channel_write_chars(pClientInfo->pReverseChannel, (char*) pData, remain, &written, &pGError);
                if (ret != G_IO_STATUS_NORMAL)
                {
-                       SysLog(NID_IO, "Failed to send a response: %d", ret);
-                       SysTryCatch(NID_IO, ret != G_IO_STATUS_ERROR, , E_SYSTEM, "[E_SYSTEM] Error occurred during writing message to socket.");
+                       SysTryCatch(NID_IO, ret != G_IO_STATUS_AGAIN, , E_RESOURCE_UNAVAILABLE, "[E_RESOURCE_UNAVAILABLE] The socket buffer is full.");
+
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
+                       delete pMessage;
+                       return E_SYSTEM;
                }
 
                remain -= written;
@@ -773,8 +776,10 @@ _IpcServer::SendResponse(int client, const IPC::Message& message)
                ret = g_io_channel_write_chars(pClientInfo->pReverseChannel, (char*) pData, remain, &written, &pGError);
                if (ret != G_IO_STATUS_NORMAL)
                {
-                       SysLog(NID_IO, "Failed to send a response: %d", ret);
-                       SysTryCatch(NID_IO, ret != G_IO_STATUS_ERROR, , E_SYSTEM, "[E_SYSTEM] Error occurred during writing message to socket.");
+                       SysTryCatch(NID_IO, ret != G_IO_STATUS_AGAIN, , E_RESOURCE_UNAVAILABLE, "[E_RESOURCE_UNAVAILABLE] The socket buffer is full.");
+
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
+                       return E_SYSTEM;
                }
 
                remain -= written;
diff --git a/src/system-server/CMakeLists.txt b/src/system-server/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6a7a59d
--- /dev/null
@@ -0,0 +1,49 @@
+SET (this_target osp-system-server)
+
+INCLUDE_DIRECTORIES (
+       ${SLP_INCLUDE_DIRS}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_SOURCE_DIR}/inc
+       ${CMAKE_SOURCE_DIR}/src/system-server/inc
+       )
+
+SET (${this_target}_SOURCE_FILES
+       system/FSys_SystemInfo.cpp
+       )
+
+## SET EXTRA COMPILER FLAGS
+SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -fPIC -Wall" )
+
+## SET C COMPILER FLAGS
+SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
+
+## SET CPP COMPILER FLAGS
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
+SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
+
+## Create Library
+ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
+
+TARGET_LINK_LIBRARIES(${this_target} osp-appfw)
+
+SET_TARGET_PROPERTIES(${this_target}
+               PROPERTIES
+               VERSION ${FULLVER}
+               SOVERSION ${MAJORVER}
+               CLEAN_DIRECT_OUTPUT 1
+)
+ADD_CUSTOM_COMMAND(TARGET ${this_target}
+               POST_BUILD
+               COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} 
+               COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${MAJORVER}
+               COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
+               COMMENT "strip ${this_target}"
+)
+
+SET(PC_NAME ${this_target})
+SET(PC_REQUIRED ${pc_requires})
+SET(PC_LDFLAGS -l${this_target})
+
+# pkgconfig file
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
+
diff --git a/src/system-server/system/FSys_SystemInfo.cpp b/src/system-server/system/FSys_SystemInfo.cpp
new file mode 100644 (file)
index 0000000..dc07c77
--- /dev/null
@@ -0,0 +1,12 @@
+#include "FSys_SystemInfo.h"
+
+using namespace Tizen::System;
+
+_SystemInfo::_SystemInfo()
+{
+}
+
+_SystemInfo::~_SystemInfo()
+{
+}
+
diff --git a/src/system-server/system/FSys_SystemInfo.h b/src/system-server/system/FSys_SystemInfo.h
new file mode 100644 (file)
index 0000000..fe8200e
--- /dev/null
@@ -0,0 +1,14 @@
+#ifndef _FSYS_SYSTEM_INFO_H_
+#define _FSYS_SYSTEM_INFO_H_
+
+namespace Tizen { namespace System
+{
+class _SystemInfo
+{
+public:
+       _SystemInfo();
+       ~_SystemInfo();
+};
+
+}}
+#endif
index d6aa6ff..c147606 100644 (file)
@@ -176,6 +176,8 @@ SystemInfo::GetImei(String& imei)
        SysTryReturnResult(NID_SYS, *pResult == _SYSTEM_RESULT_OK, E_SYSTEM, "It is failed to get IMEI value.");
 
        imei = *pImei;
+       responseMessage.RemoveAll(true);
+
        return r;
 }
 
index 6b7542a..1909a85 100644 (file)
@@ -708,6 +708,7 @@ _SystemInfoImpl::GetImei(String& imei)
        SysTryReturnResult(NID_SYS, *pResult == _SYSTEM_RESULT_OK, E_SYSTEM, "It is failed to get IMEI value.");
 
        imei = *pImei;
+       responseMessage.RemoveAll(true);
        return r;
 }