add patch 2.2_release submit/tizen_2.2/20130816.014845
authorJinkun Jang <jinkun.jang@samsung.com>
Fri, 16 Aug 2013 01:48:35 +0000 (10:48 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Fri, 16 Aug 2013 01:48:35 +0000 (10:48 +0900)
20 files changed:
CMakeLists.txt
inc/FMsgCbsChannel.h
inc/FMsgEmailManager.h
packaging/osp-messaging.spec
src/FMsgCbsChannel.cpp
src/FMsg_CbsChannelImpl.cpp
src/FMsg_CbsChannelImpl.h
src/FMsg_EmailManagerImpl.cpp
src/FMsg_MessagingIpcProxy.cpp [new file with mode: 0644]
src/FMsg_MessagingIpcProxy.h [new file with mode: 0644]
src/FMsg_MessagingMessageTypes.cpp [new file with mode: 0644]
src/FMsg_MsgUtil.cpp
src/FMsg_MsgUtil.h
src/FMsg_SmsManagerImpl.cpp
src/FMsg_SmsManagerImpl.h
src/FMsg_SmsMmsCallbackHandler.cpp
src/FMsg_SmsMmsCallbackHandler.h
src/FMsg_WapPushManagerImpl.cpp
src/inc/FMsg_MessagingMessageTypes.h [new file with mode: 0644]
src/inc/FMsg_Types.h [moved from src/FMsg_Types.h with 100% similarity]

index c154a44..7b751ed 100644 (file)
@@ -8,6 +8,7 @@ INCLUDE_DIRECTORIES(
        inc
        src
        src/inc
+       /usr/include/chromium
        /usr/include/appfw
        /usr/include/glib-2.0 
        /usr/lib/glib-2.0/include
@@ -21,6 +22,7 @@ INCLUDE_DIRECTORIES(
        /usr/lib/dbus-1.0/include
        /usr/include/email-service
        /usr/include/libxml2
+       /usr/include/osp/io     
        )
 
 SET (${this_target}_SOURCE_FILES
@@ -71,6 +73,8 @@ SET (${this_target}_SOURCE_FILES
        src/FMsg_EtwsPrimaryNotificationImpl.cpp
        src/FMsg_MsgUtil.cpp
        src/FMsg_SmsMmsCallbackHandler.cpp
+       src/FMsg_MessagingMessageTypes.cpp
+       src/FMsg_MessagingIpcProxy.cpp
 )
 
 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
index dea3484..de1b940 100755 (executable)
-//\r
-// Open Service Platform\r
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
-//\r
-// Licensed under the Apache License, Version 2.0 (the License);\r
-// you may not use this file except in compliance with the License.\r
-// You may obtain a copy of the License at\r
-//\r
-//     http://www.apache.org/licenses/LICENSE-2.0\r
-//\r
-// Unless required by applicable law or agreed to in writing, software\r
-// distributed under the License is distributed on an "AS IS" BASIS,\r
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-// See the License for the specific language governing permissions and\r
-// limitations under the License.\r
-//\r
-/**\r
-* @file                        FMsgCbsChannel.h\r
-* @brief               This is the header file for the %CbsChannel class.\r
-*\r
-* This header file contains the declarations of the %CbsChannel class.\r
-*/\r
-\r
-#ifndef _FMSG_CBS_CHANNEL_H_\r
-#define _FMSG_CBS_CHANNEL_H_\r
-\r
-namespace Tizen { namespace Base\r
-{\r
-class String;\r
-} }\r
-\r
-#include <FBaseObject.h>\r
-\r
-namespace Tizen { namespace Messaging\r
-{\r
-class _CbsChannelImpl;\r
-\r
-/**\r
-* @class               CbsChannel\r
-* @brief               This class provides methods for handling a Cell Broadcast Service (CBS) channel.\r
-*\r
-* @since               2.0\r
-*\r
-* @final               This class is not intended for extension.\r
-*\r
-* The %CbsChannel class provides methods for handling a CBS channel. @n\r
-* It allows you to get and set the CBS channel information.\r
-*/\r
-class _OSP_EXPORT_ CbsChannel\r
-       : public Tizen::Base::Object\r
-{\r
-public:\r
-\r
-       /**\r
-       * This destructor overrides Tizen::Base::Object::~Object().\r
-       *\r
-       * @since                2.0\r
-       */\r
-       virtual ~CbsChannel(void);\r
-\r
-       /**\r
-       * Gets the range of a CBS channel.\r
-       *\r
-       * @since                2.0\r
-       *\r
-       * @return               An error code\r
-       * @param[out]   from                            The starting index of the message ID of the channel\r
-       * @param[out]   to                                      The last index of the message ID of the channel\r
-       * @exception    E_SUCCESS           The method is successful.\r
-       * @exception    E_INVALID_STATE         The range has not been set as yet.\r
-       * @exception    E_SYSTEM                        A system error has occurred.\r
-       * @remarks              In case of an error, this method sets the negative values for @c from and @c to. For example, @c -1.\r
-       */\r
-       result GetRange(int& from, int& to) const;\r
-\r
-       /**\r
-       * Gets the name of a CBS channel.\r
-       *\r
-       * @since                2.0\r
-       *\r
-       * @return               The name of the channel @n\r
-       *                       The name can be an empty string.\r
-       */\r
-       Tizen::Base::String GetName(void) const;\r
-\r
-       /**\r
-       * Checks whether a CBS channel is activated.\r
-       *\r
-       * @since                2.0\r
-       *\r
-       * @return               @c true if a CBS channel is activated, @n\r
-       *                               else @c false\r
-       */\r
-       bool IsActivated(void) const;\r
-\r
-       /**\r
-       * Activates the status of a CBS channel.\r
-       *\r
-       * @since                2.0\r
-       * @privlevel    platform\r
-       * @privilege    %http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       * @return               An error code\r
-       * @exception    E_SUCCESS                               The method is successful.\r
-       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.\r
-       * @exception    E_SYSTEM                                A system error has occurred.\r
-       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.\r
-       */\r
-       result Activate(void);\r
-\r
-       /**\r
-       * Deactivates the status of a CBS channel.\r
-       *\r
-       * @since                2.0\r
-       * @privlevel    platform\r
-       * @privilege    %http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       * @return               An error code\r
-       * @exception    E_SUCCESS                               The method is successful.\r
-       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.\r
-       * @exception    E_SYSTEM                                A system error has occurred.\r
-       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.\r
-       */\r
-       result Deactivate(void);\r
-\r
-       /**\r
-       * Updates the name of a CBS channel.\r
-       *\r
-       * @since                2.0\r
-       * @privlevel    platform\r
-       * @privilege    %http://tizen.org/privilege/cellbroadcast\r
-       \r
-       * @return               An error code\r
-       * @param[in]    name                                    The name of the CBS channel to update\r
-       * @exception    E_SUCCESS                               The method is successful.\r
-       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to update the CBS channel name.\r
-       * @exception    E_SYSTEM                                A system error has occurred.\r
-       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.\r
-       */\r
-       result UpdateName(const Tizen::Base::String& name);\r
-\r
-private:\r
-       /**\r
-       * This default constructor is intentionally declared as private so that only the platform can create an instance.\r
-       *\r
-       * @since                2.0\r
-       */\r
-       CbsChannel(void);\r
-\r
-       /**\r
-        * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.\r
-        *\r
-        * @param[in]   rhs                     An instance of %CbsChannel\r
-        */\r
-       CbsChannel(const CbsChannel& rhs);\r
-\r
-       /**\r
-        * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.\r
-        *\r
-        * @param[in]   rhs                             An instance of %CbsChannel\r
-        */\r
-       CbsChannel& operator =(const CbsChannel& rhs);\r
-\r
-       /**\r
-       * Initializes this instance of %CbsChannel with the specified parameters.\r
-       *\r
-       * @since                2.0\r
-       *\r
-       * @return               An error code\r
-       * @param[in]    from                            The starting index of the message ID of the channel\r
-       * @param[in]    to                                      The last index of the message ID of the channel\r
-       * @param[in]    name                            The name of the channel (can be an empty string)\r
-       * @exception    E_SUCCESS                       The method is successful.\r
-       * @exception    E_INVALID_ARG           Either of the following conditions has occurred: @n\r
-       *                                   - The specified @c to parameter is smaller than @c from. @n\r
-       *                                                                       - The specified @c to or @c from parameter is a negative value. @n\r
-       *                                                                       - The specified @c to parameter exceeds the limit (0xFFFF). @n\r
-       *                                                                       - The range (@c to - @c from) exceeds the limit (0xFFFF). @n\r
-       *                                                                       - The specified @c name string length is greater than @c 32. @n\r
-       * @exception    E_SYSTEM                        A system error has occurred.\r
-       */\r
-       result Construct(int from, int to, const Tizen::Base::String& name);\r
-\r
-private:\r
-       _CbsChannelImpl* __pCbsChannelImpl;\r
-\r
-       friend class _CbsChannelImpl;\r
-}; // CbsChannel\r
-\r
-} } // Tizen::Messaging\r
-#endif // _FMSG_CBS_CHANNEL_H_\r
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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.
+//
+/**
+* @file                        FMsgCbsChannel.h
+* @brief               This is the header file for the %CbsChannel class.
+*
+* This header file contains the declarations of the %CbsChannel class.
+*/
+
+#ifndef _FMSG_CBS_CHANNEL_H_
+#define _FMSG_CBS_CHANNEL_H_
+
+namespace Tizen { namespace Base
+{
+class String;
+} }
+
+#include <FBaseObject.h>
+
+namespace Tizen { namespace Messaging
+{
+class _CbsChannelImpl;
+
+/**
+* @class               CbsChannel
+* @brief               This class provides methods for handling a Cell Broadcast Service (CBS) channel.
+*
+* @since               2.0
+*
+* @final               This class is not intended for extension.
+*
+* The %CbsChannel class provides methods for handling a CBS channel. @n
+* It allows you to get and set the CBS channel information.
+*/
+class _OSP_EXPORT_ CbsChannel
+       : public Tizen::Base::Object
+{
+public:
+
+       /**
+       * This destructor overrides Tizen::Base::Object::~Object().
+       *
+       * @since                2.0
+       */
+       virtual ~CbsChannel(void);
+
+       /**
+       * Gets the range of a CBS channel.
+       *
+       * @since                2.0
+       *
+       * @return               An error code
+       * @param[out]   from                            The starting index of the message ID of the channel
+       * @param[out]   to                                      The last index of the message ID of the channel
+       * @exception    E_SUCCESS           The method is successful.
+       * @exception    E_INVALID_STATE         The range has not been set as yet.
+       * @exception    E_SYSTEM                        A system error has occurred.
+       * @remarks              In case of an error, this method sets the negative values for @c from and @c to. For example, @c -1.
+       */
+       result GetRange(int& from, int& to) const;
+
+       /**
+       * Gets the name of a CBS channel.
+       *
+       * @since                2.0
+       *
+       * @return               The name of the channel @n
+       *                       The name can be an empty string.
+       */
+       Tizen::Base::String GetName(void) const;
+
+       /**
+       * Checks whether a CBS channel is activated.
+       *
+       * @since                2.0
+       *
+       * @return               @c true if a CBS channel is activated, @n
+       *                               else @c false
+       */
+       bool IsActivated(void) const;
+
+       /**
+       * Activates the status of a CBS channel.
+       *
+       * @since                2.0
+       * @privlevel    platform
+       * @privilege    %http://tizen.org/privilege/cellbroadcast
+       *
+       * @return               An error code
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.
+       * @exception    E_SYSTEM                                A system error has occurred.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       */
+       result Activate(void);
+
+       /**
+       * Deactivates the status of a CBS channel.
+       *
+       * @since                2.0
+       * @privlevel    platform
+       * @privilege    %http://tizen.org/privilege/cellbroadcast
+       *
+       * @return               An error code
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.
+       * @exception    E_SYSTEM                                A system error has occurred.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       */
+       result Deactivate(void);
+
+       /**
+       * Updates the name of a CBS channel.
+       *
+       * @since                2.0
+       * @privlevel    platform
+       * @privilege    %http://tizen.org/privilege/cellbroadcast
+       
+       * @return               An error code
+       * @param[in]    name                                    The name of the CBS channel to update
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to update the CBS channel name.
+       * @exception    E_SYSTEM                                A system error has occurred.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       */
+       result UpdateName(const Tizen::Base::String& name);
+
+private:
+       /**
+       * This default constructor is intentionally declared as private so that only the platform can create an instance.
+       *
+       * @since                2.0
+       */
+       CbsChannel(void);
+
+       /**
+        * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
+        *
+        * @param[in]   rhs                     An instance of %CbsChannel
+        */
+       CbsChannel(const CbsChannel& rhs);
+
+       /**
+        * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
+        *
+        * @param[in]   rhs                             An instance of %CbsChannel
+        */
+       CbsChannel& operator =(const CbsChannel& rhs);
+
+       /**
+       * Initializes this instance of %CbsChannel with the specified parameters.
+       *
+       * @since                2.0
+       *
+       * @return               An error code
+       * @param[in]    from                            The starting index of the message ID of the channel
+       * @param[in]    to                                      The last index of the message ID of the channel
+       * @param[in]    name                            The name of the channel (can be an empty string)
+       * @exception    E_SUCCESS                       The method is successful.
+       * @exception    E_INVALID_ARG           Either of the following conditions has occurred: @n
+       *                                   - The specified @c to parameter is smaller than @c from. @n
+       *                                                                       - The specified @c to or @c from parameter is a negative value. @n
+       *                                                                       - The specified @c to parameter exceeds the limit (0xFFFF). @n
+       *                                                                       - The range (@c to - @c from) exceeds the limit (0xFFFF). @n
+       *                                                                       - The specified @c name string length is greater than @c 32. @n
+       * @exception    E_SYSTEM                        A system error has occurred.
+       */
+       result Construct(int from, int to, const Tizen::Base::String& name);
+
+private:
+       _CbsChannelImpl* __pCbsChannelImpl;
+
+       friend class _CbsChannelImpl;
+}; // CbsChannel
+
+} } // Tizen::Messaging
+#endif // _FMSG_CBS_CHANNEL_H_
index 53938f1..5de3f04 100755 (executable)
@@ -166,7 +166,6 @@ namespace Tizen { namespace Messaging
                * @exception    E_MAX_EXCEEDED                   The number of recipients has crossed the maximum limit (Maximum 20).
                * @exception    E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
                * @exception    E_USER_NOT_CONSENTED    The user blocks an application from calling this method. @b Since: @b 2.1
-               * @remarks              The value of the flag, @c saveToSentbox, is fixed to @c false in the emulator.
                * @see                  IEmailListener::OnEmailMessageSent()
                */
                result Send(const EmailMessage& message, const RecipientList& recipientList, bool saveToSentbox);
index 8fdf1da..7aead78 100644 (file)
@@ -1,3 +1,4 @@
+%define debug_package %{nil}
 %define __strip /bin/true
 
 Name:          osp-messaging
@@ -8,6 +9,7 @@ Group:          System/Libraries
 License:       Apache License, Version 2.0
 Source0:       %{name}-%{version}.tar.gz
 BuildRequires:  cmake
+BuildRequires:  pkgconfig(chromium)
 BuildRequires:  pkgconfig(capi-appfw-application)
 BuildRequires:  pkgconfig(msg-service)
 BuildRequires:  pkgconfig(push)
index 1853db5..fda2bea 100644 (file)
-//\r
-// Open Service Platform\r
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
-//\r
-// Licensed under the Apache License, Version 2.0 (the License);\r
-// you may not use this file except in compliance with the License.\r
-// You may obtain a copy of the License at\r
-//\r
-//     http://www.apache.org/licenses/LICENSE-2.0\r
-//\r
-// Unless required by applicable law or agreed to in writing, software\r
-// distributed under the License is distributed on an "AS IS" BASIS,\r
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-// See the License for the specific language governing permissions and\r
-// limitations under the License.\r
-//\r
-/**\r
- * @if VISPARTNER-OPERATOR\r
- *\r
- * @file               FMsgCbsChannel.cpp\r
- * @brief              This is the implementation file for the %CbsChannel class.\r
- *\r
- * @visibility partner-operator\r
- *\r
- * This file contains the implementation of the %CbsChannel class.\r
- *\r
- * @endif\r
-*/\r
-\r
-#include <FMsgCbsChannel.h>\r
-#include <FBaseSysLog.h>\r
-#include <FSec_AccessController.h>\r
-#include "FMsg_Types.h"\r
-#include "FMsg_CbsChannelImpl.h"\r
-\r
-using namespace Tizen::Base;\r
-using namespace Tizen::Messaging;\r
-using namespace Tizen::Security;\r
-\r
-namespace Tizen { namespace Messaging\r
-{\r
-\r
-CbsChannel::CbsChannel(void)\r
-{\r
-       __pCbsChannelImpl = new (std::nothrow) _CbsChannelImpl();\r
-       SysTryReturnVoidResult(NID_MSG, __pCbsChannelImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed.");\r
-}\r
-\r
-CbsChannel::CbsChannel(const CbsChannel& value)\r
-{\r
-       __pCbsChannelImpl = new (std::nothrow) _CbsChannelImpl(*(value.__pCbsChannelImpl));\r
-       SysTryReturnVoidResult(NID_MSG, __pCbsChannelImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed.");\r
-}\r
-\r
-CbsChannel::~CbsChannel(void)\r
-{\r
-       if (__pCbsChannelImpl)\r
-       {\r
-               delete __pCbsChannelImpl;\r
-       }\r
-       __pCbsChannelImpl = null;\r
-}\r
-\r
-CbsChannel&\r
-CbsChannel::operator =(const CbsChannel& rhs)\r
-{\r
-       if (this != &rhs)\r
-       {\r
-               *__pCbsChannelImpl = *(rhs.__pCbsChannelImpl);\r
-       }\r
-\r
-       return (*this);\r
-}\r
-\r
-result\r
-CbsChannel::Construct(int from, int to, const Tizen::Base::String& name)\r
-{\r
-       result r = E_SUCCESS;\r
-\r
-       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");\r
-\r
-       // argument check\r
-       SysTryReturnResult(NID_MSG, name.GetLength() <= MAX_CBS_CHANNEL_NAME_LENGTH, E_INVALID_ARG,\r
-                       "The length (%d) of channel name is too long.", name.GetLength());\r
-\r
-       SysTryReturnResult(NID_MSG,\r
-                       ((to >= 0) && (from >= 0) && (to >= from) && (to <= MAX_CBS_CHANNEL_LIMIT) && ((to - from) <= MAX_CBS_CHANNEL_RANGE)),\r
-                       E_INVALID_ARG, "Failed to add construct channel, invalid arguments. to:[%d], from:[%d]", to , from);\r
-\r
-       r = __pCbsChannelImpl->Construct(from, to, name);\r
-       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_INVALID_ARG, "Failed to construct CbsChannel");\r
-\r
-       return r;\r
-}\r
-\r
-result\r
-CbsChannel::UpdateName(const Tizen::Base::String& name)\r
-{\r
-       result r = E_SUCCESS;\r
-\r
-       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");\r
-\r
-       // checking privilege\r
-       r = _AccessController::CheckUserPrivilege(_PRV_CELLBROADCAST);\r
-       SysTryReturn(NID_MSG, r == E_SUCCESS, E_PRIVILEGE_DENIED, r = E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] Propagating.");\r
-\r
-       // argument check\r
-       SysTryReturn(NID_MSG, name.GetLength() <= MAX_CBS_CHANNEL_NAME_LENGTH, E_INVALID_ARG, r = E_INVALID_ARG,\r
-                       "[E_INVALID_ARG] invalid channel name.");\r
-\r
-       r = __pCbsChannelImpl->UpdateName(name);\r
-\r
-       return r;\r
-}\r
-\r
-result\r
-CbsChannel::Deactivate(void)\r
-{\r
-       result r = E_SUCCESS;\r
-\r
-       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");\r
-\r
-       // checking privilege\r
-       r = _AccessController::CheckUserPrivilege(_PRV_CELLBROADCAST);\r
-       SysTryReturn(NID_MSG, r == E_SUCCESS, E_PRIVILEGE_DENIED, r = E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] Propagating.");\r
-\r
-       r = __pCbsChannelImpl->Deactivate();\r
-       return r;\r
-}\r
-\r
-result\r
-CbsChannel::Activate(void)\r
-{\r
-       result r = E_SUCCESS;\r
-\r
-       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");\r
-\r
-       // checking privilege\r
-       r = _AccessController::CheckUserPrivilege(_PRV_CELLBROADCAST);\r
-       SysTryReturn(NID_MSG, r == E_SUCCESS, E_PRIVILEGE_DENIED, r = E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] Propagating.");\r
-\r
-       return __pCbsChannelImpl->Activate();\r
-}\r
-\r
-bool\r
-CbsChannel::IsActivated(void) const\r
-{\r
-       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");\r
-\r
-       return(__pCbsChannelImpl->IsActivated());\r
-}\r
-\r
-Tizen::Base::String\r
-CbsChannel::GetName(void) const\r
-{\r
-       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");\r
-\r
-       return(__pCbsChannelImpl->GetName());\r
-}\r
-\r
-result\r
-CbsChannel::GetRange(int& from, int& to) const\r
-{\r
-       result r = E_SUCCESS;\r
-\r
-       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");\r
-\r
-       r = __pCbsChannelImpl->GetRange(from, to);\r
-\r
-       return r;\r
-}\r
-\r
-} } // Tizen::Messaging\r
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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.
+//
+/**
+ * @if VISPARTNER-OPERATOR
+ *
+ * @file               FMsgCbsChannel.cpp
+ * @brief              This is the implementation file for the %CbsChannel class.
+ *
+ * @visibility partner-operator
+ *
+ * This file contains the implementation of the %CbsChannel class.
+ *
+ * @endif
+*/
+
+#include <FMsgCbsChannel.h>
+#include <FBaseSysLog.h>
+#include <FSec_AccessController.h>
+#include "FMsg_Types.h"
+#include "FMsg_CbsChannelImpl.h"
+#include "FMsg_MessagingIpcProxy.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Messaging;
+using namespace Tizen::Security;
+
+namespace Tizen { namespace Messaging
+{
+
+CbsChannel::CbsChannel(void)
+{
+       __pCbsChannelImpl = new (std::nothrow) _CbsChannelImpl();
+       SysTryReturnVoidResult(NID_MSG, __pCbsChannelImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+}
+
+CbsChannel::CbsChannel(const CbsChannel& value)
+{
+       __pCbsChannelImpl = new (std::nothrow) _CbsChannelImpl(*(value.__pCbsChannelImpl));
+       SysTryReturnVoidResult(NID_MSG, __pCbsChannelImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+}
+
+CbsChannel::~CbsChannel(void)
+{
+       if (__pCbsChannelImpl)
+       {
+               delete __pCbsChannelImpl;
+       }
+       __pCbsChannelImpl = null;
+}
+
+CbsChannel&
+CbsChannel::operator =(const CbsChannel& rhs)
+{
+       if (this != &rhs)
+       {
+               *__pCbsChannelImpl = *(rhs.__pCbsChannelImpl);
+       }
+
+       return (*this);
+}
+
+result
+CbsChannel::Construct(int from, int to, const Tizen::Base::String& name)
+{
+       result r = E_SUCCESS;
+
+       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");
+
+       // argument check
+       SysTryReturnResult(NID_MSG, name.GetLength() <= MAX_CBS_CHANNEL_NAME_LENGTH, E_INVALID_ARG,
+                       "The length (%d) of channel name is too long.", name.GetLength());
+
+       SysTryReturnResult(NID_MSG,
+                       ((to >= 0) && (from >= 0) && (to >= from) && (to <= MAX_CBS_CHANNEL_LIMIT) && ((to - from) <= MAX_CBS_CHANNEL_RANGE)),
+                       E_INVALID_ARG, "Failed to add construct channel, invalid arguments. to:[%d], from:[%d]", to , from);
+
+       r = __pCbsChannelImpl->Construct(from, to, name);
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_INVALID_ARG, "Failed to construct CbsChannel");
+
+       return r;
+}
+
+result
+CbsChannel::UpdateName(const Tizen::Base::String& name)
+{
+       result r = E_SUCCESS;
+
+       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");
+
+       // checking privilege
+       r = _AccessController::CheckUserPrivilege(_PRV_CELLBROADCAST);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, E_PRIVILEGE_DENIED, r = E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] Propagating.");
+
+       // argument check
+       SysTryReturn(NID_MSG, name.GetLength() <= MAX_CBS_CHANNEL_NAME_LENGTH, E_INVALID_ARG, r = E_INVALID_ARG,
+                       "[E_INVALID_ARG] invalid channel name.");
+
+       r = __pCbsChannelImpl->UpdateName(name);
+
+       return r;
+}
+
+result
+CbsChannel::Deactivate(void)
+{
+       result r = E_SUCCESS;
+
+       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");
+
+       // checking privilege
+       r = _AccessController::CheckUserPrivilege(_PRV_CELLBROADCAST);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, E_PRIVILEGE_DENIED, r = E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] Propagating.");
+
+       r = __pCbsChannelImpl->Deactivate();
+       return r;
+}
+
+result
+CbsChannel::Activate(void)
+{
+       result r = E_SUCCESS;
+
+       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");
+
+       // checking privilege
+       r = _AccessController::CheckUserPrivilege(_PRV_CELLBROADCAST);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, E_PRIVILEGE_DENIED, r = E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] Propagating.");
+
+       return __pCbsChannelImpl->Activate();
+}
+
+bool
+CbsChannel::IsActivated(void) const
+{
+       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");
+
+       return(__pCbsChannelImpl->IsActivated());
+}
+
+Tizen::Base::String
+CbsChannel::GetName(void) const
+{
+       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");
+
+       return(__pCbsChannelImpl->GetName());
+}
+
+result
+CbsChannel::GetRange(int& from, int& to) const
+{
+       result r = E_SUCCESS;
+
+       SysAssertf(__pCbsChannelImpl != null, "The CbsChannel instance is not constructed yet.");
+
+       r = __pCbsChannelImpl->GetRange(from, to);
+
+       return r;
+}
+
+} } // Tizen::Messaging
index 19b6303..6746094 100644 (file)
-//\r
-// Open Service Platform\r
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
-//\r
-// Licensed under the Apache License, Version 2.0 (the License);\r
-// you may not use this file except in compliance with the License.\r
-// You may obtain a copy of the License at\r
-//\r
-//     http://www.apache.org/licenses/LICENSE-2.0\r
-//\r
-// Unless required by applicable law or agreed to in writing, software\r
-// distributed under the License is distributed on an "AS IS" BASIS,\r
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-// See the License for the specific language governing permissions and\r
-// limitations under the License.\r
-//\r
-/**\r
- * @if VISPARTNER-OPERATOR\r
- *\r
- * @file               FMsg_CbsChannelImpl.cpp\r
- * @brief              This is the implementation file for the %_CbsChannelImpl class.\r
- *\r
- * @visibility partner-operator\r
- *\r
- * This file contains the implementation of the %_CbsChannelImpl class.\r
- *\r
- * @endif\r
- */\r
-\r
-#include <msg.h>\r
-#include <msg_transport.h>\r
-#include <msg_storage.h>\r
-#include <FMsgCbsChannel.h>\r
-#include <FBaseSysLog.h>\r
-#include <FBaseUtilStringUtil.h>\r
-#include <FBase_StringConverter.h>\r
-#include <FSec_AccessController.h>\r
-#include "FMsg_Types.h"\r
-#include "FMsg_CbsChannelImpl.h"\r
-#include "FMsg_SmsMmsCallbackHandler.h"\r
-\r
-using namespace Tizen::Base;\r
-using namespace Tizen::Messaging;\r
-using namespace Tizen::Security;\r
-\r
-namespace Tizen { namespace Messaging\r
-{\r
-\r
-_CbsChannelImpl::_CbsChannelImpl(void)\r
-       : __fromId(-1)\r
-       , __toId(-1)\r
-       , __channelName(L"")\r
-       , __isChannelEnable(false)\r
-{\r
-}\r
-\r
-_CbsChannelImpl::_CbsChannelImpl(const _CbsChannelImpl& value)\r
-{\r
-       __fromId = value.__fromId;\r
-       __toId = value.__toId;\r
-       __channelName = value.__channelName;\r
-       __isChannelEnable = value.__isChannelEnable;\r
-}\r
-\r
-_CbsChannelImpl::~_CbsChannelImpl(void)\r
-{\r
-}\r
-\r
-_CbsChannelImpl&\r
-_CbsChannelImpl::operator =(const _CbsChannelImpl& rhs)\r
-{\r
-       if (this != &rhs)\r
-       {\r
-               __fromId = rhs.__fromId;\r
-               __toId = rhs.__toId;\r
-               __channelName = rhs.__channelName;\r
-               __isChannelEnable = rhs.__isChannelEnable;\r
-       }\r
-\r
-       return (*this);\r
-}\r
-\r
-result\r
-_CbsChannelImpl::Construct(int from, int to, const Tizen::Base::String& name)\r
-{\r
-       __fromId = from;\r
-       __toId = to;\r
-       __channelName = name;\r
-       __isChannelEnable = false;\r
-\r
-       return E_SUCCESS;\r
-}\r
-\r
-CbsChannel*\r
-_CbsChannelImpl::GetCbsChannelN(int from, int to, const Tizen::Base::String& name)\r
-{\r
-       result r = E_SUCCESS;\r
-       CbsChannel* pCbsChannel = null;\r
-\r
-       pCbsChannel = new (std::nothrow) CbsChannel();\r
-       SysTryCatch(NID_MSG, pCbsChannel != null, r = E_OUT_OF_MEMORY, r, "memory allocation failed");\r
-\r
-       r = pCbsChannel->Construct(from, to, name);\r
-       SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "failed to construct channel.");\r
-\r
-       SetLastResult(GetLastResult());\r
-       return pCbsChannel;\r
-\r
-CATCH:\r
-       SetLastResult(GetLastResult());\r
-\r
-       if(pCbsChannel)\r
-       {\r
-               delete pCbsChannel;\r
-               pCbsChannel = null;\r
-       }\r
-\r
-       return null;\r
-}\r
-\r
-_CbsChannelImpl*\r
-_CbsChannelImpl::GetInstance(CbsChannel& cbsChannel)\r
-{\r
-       return cbsChannel.__pCbsChannelImpl;\r
-}\r
-\r
-result\r
-_CbsChannelImpl::UpdateName(const Tizen::Base::String& name)\r
-{\r
-       result r = E_SUCCESS;\r
-       ClearLastResult();\r
-\r
-       // save the setting\r
-       r = _SmsMmsCallbackHandler::GetInstance()->UpdateCbsChannel(__fromId, __toId, name, __isChannelEnable);\r
-       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to save the setting.");\r
-\r
-       __channelName = name;\r
-\r
-       return r;\r
-}\r
-\r
-result\r
-_CbsChannelImpl::Deactivate(void)\r
-{\r
-       result r = E_SUCCESS;\r
-       ClearLastResult();\r
-\r
-       // save the setting\r
-       r = _SmsMmsCallbackHandler::GetInstance()->UpdateCbsChannel(__fromId, __toId,  __channelName, false);\r
-       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to save the setting.");\r
-\r
-       __isChannelEnable = false;\r
-\r
-       return r;\r
-}\r
-\r
-result\r
-_CbsChannelImpl::Activate(void)\r
-{\r
-       result r = E_SUCCESS;\r
-       ClearLastResult();\r
-\r
-       // save the setting\r
-       r = _SmsMmsCallbackHandler::GetInstance()->UpdateCbsChannel(__fromId, __toId,  __channelName, true);\r
-       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to save the setting.");\r
-\r
-       __isChannelEnable = true;\r
-\r
-       return r;\r
-}\r
-\r
-bool\r
-_CbsChannelImpl::IsActivated(void) const\r
-{\r
-       return __isChannelEnable;\r
-}\r
-\r
-Tizen::Base::String\r
-_CbsChannelImpl::GetName(void) const\r
-{\r
-       return __channelName;\r
-}\r
-\r
-result\r
-_CbsChannelImpl::GetRange(int& from, int& to) const\r
-{\r
-       result r = E_SUCCESS;\r
-\r
-       from = __fromId;\r
-       to = __toId;\r
-\r
-       return r;\r
-}\r
-\r
-void \r
-_CbsChannelImpl::SetCbsChannelName(Tizen::Base::String channelName)\r
-{\r
-       __channelName = channelName;\r
-}\r
-\r
-void \r
-_CbsChannelImpl::SetCbsChannelState(bool isChannelEnable)\r
-{\r
-       __isChannelEnable = isChannelEnable;\r
-}\r
-\r
-} } // Tizen::Messaging\r
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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.
+//
+/**
+ * @if VISPARTNER-OPERATOR
+ *
+ * @file               FMsg_CbsChannelImpl.cpp
+ * @brief              This is the implementation file for the %_CbsChannelImpl class.
+ *
+ * @visibility partner-operator
+ *
+ * This file contains the implementation of the %_CbsChannelImpl class.
+ *
+ * @endif
+ */
+
+#include <msg.h>
+#include <msg_transport.h>
+#include <msg_storage.h>
+#include <FMsgCbsChannel.h>
+#include <FBaseSysLog.h>
+#include <FBaseUtilStringUtil.h>
+#include <FBase_StringConverter.h>
+#include <FSec_AccessController.h>
+#include "FMsg_Types.h"
+#include "FMsg_CbsChannelImpl.h"
+#include "FMsg_SmsMmsCallbackHandler.h"
+#include "FMsg_MessagingIpcProxy.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Messaging;
+using namespace Tizen::Security;
+
+namespace Tizen { namespace Messaging
+{
+
+_CbsChannelImpl::_CbsChannelImpl(void)
+       : __fromId(-1)
+       , __toId(-1)
+       , __channelName(L"")
+       , __isChannelEnable(false)
+{
+}
+
+_CbsChannelImpl::_CbsChannelImpl(const _CbsChannelImpl& value)
+{
+       __fromId = value.__fromId;
+       __toId = value.__toId;
+       __channelName = value.__channelName;
+       __isChannelEnable = value.__isChannelEnable;
+}
+
+_CbsChannelImpl::~_CbsChannelImpl(void)
+{
+}
+
+_CbsChannelImpl&
+_CbsChannelImpl::operator =(const _CbsChannelImpl& rhs)
+{
+       if (this != &rhs)
+       {
+               __fromId = rhs.__fromId;
+               __toId = rhs.__toId;
+               __channelName = rhs.__channelName;
+               __isChannelEnable = rhs.__isChannelEnable;
+       }
+
+       return (*this);
+}
+
+result
+_CbsChannelImpl::Construct(int from, int to, const Tizen::Base::String& name)
+{
+       __fromId = from;
+       __toId = to;
+       __channelName = name;
+       __isChannelEnable = false;
+
+       return E_SUCCESS;
+}
+
+CbsChannel*
+_CbsChannelImpl::GetCbsChannelN(int from, int to, const Tizen::Base::String& name)
+{
+       result r = E_SUCCESS;
+       CbsChannel* pCbsChannel = null;
+
+       pCbsChannel = new (std::nothrow) CbsChannel();
+       SysTryCatch(NID_MSG, pCbsChannel != null, r = E_OUT_OF_MEMORY, r, "memory allocation failed");
+
+       r = pCbsChannel->Construct(from, to, name);
+       SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "failed to construct channel.");
+
+       SetLastResult(GetLastResult());
+       return pCbsChannel;
+
+CATCH:
+       SetLastResult(GetLastResult());
+
+       if(pCbsChannel)
+       {
+               delete pCbsChannel;
+               pCbsChannel = null;
+       }
+
+       return null;
+}
+
+_CbsChannelImpl*
+_CbsChannelImpl::GetInstance(CbsChannel& cbsChannel)
+{
+       return cbsChannel.__pCbsChannelImpl;
+}
+
+result
+_CbsChannelImpl::UpdateName(const Tizen::Base::String& name)
+{
+       result r = E_SUCCESS;
+       ClearLastResult();
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY,"Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->UpdateCbsChannel(__fromId, __toId, name, __isChannelEnable);
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, r, "Failed to update cbs channel.");
+
+       __channelName = name;
+
+       return r;
+}
+
+result
+_CbsChannelImpl::Deactivate(void)
+{
+       result r = E_SUCCESS;
+       ClearLastResult();
+
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY,"Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->UpdateCbsChannel(__fromId, __toId, __channelName, false);
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, r, "Failed to save the setting.");
+
+       __isChannelEnable = false;
+
+       return r;
+}
+
+result
+_CbsChannelImpl::Activate(void)
+{
+       result r = E_SUCCESS;
+       ClearLastResult();
+
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->UpdateCbsChannel(__fromId, __toId, __channelName, true);
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, r, "Failed to save the setting.");
+
+       __isChannelEnable = true;
+
+       return r;
+}
+
+bool
+_CbsChannelImpl::IsActivated(void) const
+{
+       return __isChannelEnable;
+}
+
+Tizen::Base::String
+_CbsChannelImpl::GetName(void) const
+{
+       return __channelName;
+}
+
+result
+_CbsChannelImpl::GetRange(int& from, int& to) const
+{
+       result r = E_SUCCESS;
+
+       from = __fromId;
+       to = __toId;
+
+       return r;
+}
+
+void 
+_CbsChannelImpl::SetCbsChannelName(Tizen::Base::String channelName)
+{
+       __channelName = channelName;
+}
+
+void 
+_CbsChannelImpl::SetCbsChannelState(bool isChannelEnable)
+{
+       __isChannelEnable = isChannelEnable;
+}
+
+} } // Tizen::Messaging
index ce1148d..befb781 100644 (file)
-//\r
-// Open Service Platform\r
-// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
-//\r
-// Licensed under the Apache License, Version 2.0 (the License);\r
-// you may not use this file except in compliance with the License.\r
-// You may obtain a copy of the License at\r
-//\r
-//     http://www.apache.org/licenses/LICENSE-2.0\r
-//\r
-// Unless required by applicable law or agreed to in writing, software\r
-// distributed under the License is distributed on an "AS IS" BASIS,\r
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-// See the License for the specific language governing permissions and\r
-// limitations under the License.\r
-//\r
-/**\r
- * @if VISPARTNER-OPERATOR\r
- *\r
- * @file               FMsg_CbsChannelImpl.h\r
- * @brief              This is the header file for the _CbsChannelImpl class.\r
- *\r
- * @visibility partner-operator\r
- *\r
- * This header file contains the declarations of the _CbsChannelImpl class.\r
- *\r
- * @endif\r
- */\r
-\r
-#ifndef _FMSG_INTERNAL_CBS_CHANNEL_IMPL_H_\r
-#define _FMSG_INTERNAL_CBS_CHANNEL_IMPL_H_\r
-\r
-namespace Tizen { namespace Messaging\r
-{\r
-\r
-/**\r
-* @if VISPARTNER-OPERATOR\r
-*\r
-* @class               _CbsChannelImpl\r
-* @brief               This class provides methods for handling a Cell Broadcast Service (CBS) channel.\r
-*\r
-* @since 2.1\r
-*\r
-* @final               This class is not intended for extension.\r
-*\r
-* @visibility  partner-operator\r
-*\r
-* The %_CbsChannelImpl class provides methods for handling a CBS channel. @n\r
-* It allows you to get and set the CBS channel information.\r
-*\r
-* @endif\r
-*/\r
-\r
-class _CbsChannelImpl\r
-       : public Tizen::Base::Object\r
-{\r
-public:\r
-\r
-       /**\r
-       * @if VISPARTNER-OPERATOR\r
-       *\r
-       * This destructor overrides Tizen::Base::Object::~Object().\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @visibility   partner-operator\r
-       *\r
-       * @endif\r
-       */\r
-       virtual ~_CbsChannelImpl(void);\r
-\r
-       /**\r
-       * @if VISPARTNER-OPERATOR\r
-       *\r
-       * Gets the range of the channel\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @visibility   partner-operator\r
-       *\r
-       * @privlevel    user\r
-       * @privilege    http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       *\r
-       * @return               An error code\r
-       * @param[out]   from                            The starting index of the message ID of the channel.\r
-       * @param[out]   to                                      The last index of the message ID of the channel.\r
-       * @exception    E_SUCCESS           The method is successful.\r
-       * @exception    E_INVALID_STATE         The range has not been set as yet.\r
-       * @exception    E_SYSTEM                        A system error has occurred.\r
-       * @remarks              In case of an error, this method sets the negative values for @c from and @c to. For example, @c -1.\r
-       *\r
-       * @endif\r
-       */\r
-       result GetRange(int& from, int& to) const;\r
-\r
-       /**\r
-       * @if VISPARTNER-OPERATOR\r
-       *\r
-       * Gets the name of the channel.\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @visibility   partner-operator\r
-       *\r
-       * @privlevel    user\r
-       * @privilege    http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       * @return               The name of the channel\r
-       *\r
-       * @remark               The name can be an empty string.\r
-       *\r
-       * @endif\r
-       */\r
-       Tizen::Base::String GetName(void) const;\r
-\r
-       /**\r
-       * @if VISPARTNER-OPERATOR\r
-       *\r
-       * Gets the activation status of the channel.\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @visibility   partner-operator\r
-       *\r
-       * @privlevel    user\r
-       * @privilege    http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       * @return               @c true if the channel is activated,\r
-       *                               else @c false\r
-       *\r
-       * @endif\r
-       */\r
-       bool IsActivated(void) const;\r
-\r
-       /**\r
-       * @if VISPARTNER-OPERATOR\r
-       *\r
-       * Activates the channel status .\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @visibility   partner-operator\r
-       *\r
-       * @privlevel    user\r
-       * @privilege    http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       * @return               An error code\r
-       * @exception    E_SUCCESS                               The method is successful.\r
-       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.\r
-       * @exception    E_SYSTEM                                A system error has occurred.\r
-       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.\r
-       *\r
-       * @endif\r
-       */\r
-       result Activate(void);\r
-\r
-       /**\r
-       * @if VISPARTNER-OPERATOR\r
-       *\r
-       * Deactivates the channel status\r
-       *\r
-       * @privlevel    user\r
-       * @privilege    http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @visibility   partner-operator\r
-       *\r
-       * @return               An error code\r
-       * @exception    E_SUCCESS                               The method is successful.\r
-       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.\r
-       * @exception    E_SYSTEM                                A system error has occurred.\r
-       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.\r
-       *\r
-       * @endif\r
-       */\r
-       result Deactivate(void);\r
-\r
-       /**\r
-       * @if VISPARTNER-OPERATOR\r
-       *\r
-       * Updates the name of the channel.\r
-       *\r
-       * @privlevel    user\r
-       * @privilege    http://tizen.org/privilege/cellbroadcast\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @visibility   partner-operator\r
-       *\r
-       * @return               An error code\r
-       * @param[in]    name                                    The name of the CBS channel to update\r
-       * @exception    E_SUCCESS                               The method is successful.\r
-       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to update the CBS channel name.\r
-       * @exception    E_SYSTEM                                A system error has occurred.\r
-       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.\r
-       *\r
-       * @endif\r
-       */\r
-       result UpdateName(const Tizen::Base::String& name);\r
-\r
-       /**\r
-       * Sets the cbs channel name to CbsChannelImpl object.\r
-       *\r
-       * @since 2.1\r
-       * @param[in]   channelName            An Cbs Channel Name\r
-       */\r
-       void SetCbsChannelName(Tizen::Base::String channelName);\r
-\r
-       /**\r
-       * Sets the cbs Channel State to CbsChannelImpl object.\r
-       *\r
-       * @since 2.1\r
-       * @param[in]   isChannelEnable            CBS on/off flag\r
-       */\r
-       void SetCbsChannelState(bool isChannelEnable);\r
-\r
-public:\r
-       /**\r
-       * Gets the instance of CbsChannel\r
-       *\r
-       * @since 2.1\r
-       */\r
-       static CbsChannel* GetCbsChannelN(int from, int to, const Tizen::Base::String& name);\r
-\r
-       /**\r
-       * Gets the Impl instance.\r
-       *\r
-       * @since 2.1\r
-       * @return              The pointer to _CbsChannelImpl\r
-       * @param[in]   CbsChannel            An instance of CbsChannel\r
-       */\r
-       static _CbsChannelImpl* GetInstance(CbsChannel& cbsChannel);\r
-\r
-public:\r
-       /**\r
-       * This default constructor is intentionally declared as private so that only the platform can create an instance.\r
-       *\r
-       * @since 2.1\r
-       */\r
-       _CbsChannelImpl(void);\r
-\r
-       /**\r
-        * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.\r
-        *\r
-        * @param[in]   rhs                     An instance of _CbsChannelImpl\r
-        */\r
-       _CbsChannelImpl(const _CbsChannelImpl& rhs);\r
-\r
-       /**\r
-        * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.\r
-        *\r
-        * @param[in]   rhs                             An instance of _CbsChannelImpl\r
-        */\r
-       _CbsChannelImpl& operator =(const _CbsChannelImpl& rhs);\r
-\r
-       /**\r
-       * Initializes this instance of %_CbsChannelImpl with the specified parameter.\r
-       *\r
-       * @since 2.1\r
-       *\r
-       * @return               An error code\r
-       * @param[in]    from                            The starting index of the message ID of the channel.\r
-       * @param[in]    to                                      The last index of the message ID of the channel.\r
-       * @param[in]    name                            The name of the channel. (can be an empty string)\r
-       * @exception    E_SUCCESS                       The method is successful.\r
-       * @exception    E_INVALID_ARG           The specified @c to parameter is smaller than @c from. @n\r
-       *                                                                       The specified @c to or @c from parameter is a negative value. @n\r
-       *                                                                       The specified @c to parameter exceeds the limit (0xFFFF). @n\r
-       *                                                                       The range (@c to - @c from) exceeds the limit (0xFFFF).\r
-       *                                                                       The specified @c name string length is greater than @c 32. @n\r
-       * @exception    E_OUT_OF_MEMORY         The memory is insufficient.\r
-       * @exception    E_SYSTEM                        A system error has occurred.\r
-       */\r
-       result Construct(int from, int to, const Tizen::Base::String& name);\r
-\r
-private:\r
-       int __fromId;\r
-       int __toId;\r
-       Tizen::Base::String __channelName;\r
-       bool __isChannelEnable;\r
-}; // _CbsChannelImpl\r
-\r
-} } // Tizen::Messaging\r
-#endif // _FMSG_INTERNAL_CBS_CHANNEL_IMPL_H_\r
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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.
+//
+/**
+ * @if VISPARTNER-OPERATOR
+ *
+ * @file               FMsg_CbsChannelImpl.h
+ * @brief              This is the header file for the _CbsChannelImpl class.
+ *
+ * @visibility partner-operator
+ *
+ * This header file contains the declarations of the _CbsChannelImpl class.
+ *
+ * @endif
+ */
+
+#ifndef _FMSG_INTERNAL_CBS_CHANNEL_IMPL_H_
+#define _FMSG_INTERNAL_CBS_CHANNEL_IMPL_H_
+
+namespace Tizen { namespace Messaging
+{
+
+/**
+* @if VISPARTNER-OPERATOR
+*
+* @class               _CbsChannelImpl
+* @brief               This class provides methods for handling a Cell Broadcast Service (CBS) channel.
+*
+* @since 2.1
+*
+* @final               This class is not intended for extension.
+*
+* @visibility  partner-operator
+*
+* The %_CbsChannelImpl class provides methods for handling a CBS channel. @n
+* It allows you to get and set the CBS channel information.
+*
+* @endif
+*/
+
+class _CbsChannelImpl
+       : public Tizen::Base::Object
+{
+public:
+
+       /**
+       * @if VISPARTNER-OPERATOR
+       *
+       * This destructor overrides Tizen::Base::Object::~Object().
+       *
+       * @since 2.1
+       *
+       * @visibility   partner-operator
+       *
+       * @endif
+       */
+       virtual ~_CbsChannelImpl(void);
+
+       /**
+       * @if VISPARTNER-OPERATOR
+       *
+       * Gets the range of the channel
+       *
+       * @since 2.1
+       *
+       * @visibility   partner-operator
+       *
+       * @privlevel    user
+       * @privilege    http://tizen.org/privilege/cellbroadcast
+       *
+       *
+       * @return               An error code
+       * @param[out]   from                            The starting index of the message ID of the channel.
+       * @param[out]   to                                      The last index of the message ID of the channel.
+       * @exception    E_SUCCESS           The method is successful.
+       * @exception    E_INVALID_STATE         The range has not been set as yet.
+       * @exception    E_SYSTEM                        A system error has occurred.
+       * @remarks              In case of an error, this method sets the negative values for @c from and @c to. For example, @c -1.
+       *
+       * @endif
+       */
+       result GetRange(int& from, int& to) const;
+
+       /**
+       * @if VISPARTNER-OPERATOR
+       *
+       * Gets the name of the channel.
+       *
+       * @since 2.1
+       *
+       * @visibility   partner-operator
+       *
+       * @privlevel    user
+       * @privilege    http://tizen.org/privilege/cellbroadcast
+       *
+       * @return               The name of the channel
+       *
+       * @remark               The name can be an empty string.
+       *
+       * @endif
+       */
+       Tizen::Base::String GetName(void) const;
+
+       /**
+       * @if VISPARTNER-OPERATOR
+       *
+       * Gets the activation status of the channel.
+       *
+       * @since 2.1
+       *
+       * @visibility   partner-operator
+       *
+       * @privlevel    user
+       * @privilege    http://tizen.org/privilege/cellbroadcast
+       *
+       * @return               @c true if the channel is activated,
+       *                               else @c false
+       *
+       * @endif
+       */
+       bool IsActivated(void) const;
+
+       /**
+       * @if VISPARTNER-OPERATOR
+       *
+       * Activates the channel status .
+       *
+       * @since 2.1
+       *
+       * @visibility   partner-operator
+       *
+       * @privlevel    user
+       * @privilege    http://tizen.org/privilege/cellbroadcast
+       *
+       * @return               An error code
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.
+       * @exception    E_SYSTEM                                A system error has occurred.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       *
+       * @endif
+       */
+       result Activate(void);
+
+       /**
+       * @if VISPARTNER-OPERATOR
+       *
+       * Deactivates the channel status
+       *
+       * @privlevel    user
+       * @privilege    http://tizen.org/privilege/cellbroadcast
+       *
+       * @since 2.1
+       *
+       * @visibility   partner-operator
+       *
+       * @return               An error code
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to activate the CBS channel status.
+       * @exception    E_SYSTEM                                A system error has occurred.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       *
+       * @endif
+       */
+       result Deactivate(void);
+
+       /**
+       * @if VISPARTNER-OPERATOR
+       *
+       * Updates the name of the channel.
+       *
+       * @privlevel    user
+       * @privilege    http://tizen.org/privilege/cellbroadcast
+       *
+       * @since 2.1
+       *
+       * @visibility   partner-operator
+       *
+       * @return               An error code
+       * @param[in]    name                                    The name of the CBS channel to update
+       * @exception    E_SUCCESS                               The method is successful.
+       * @exception    E_ILLEGAL_ACCESS                The application does not have the permission to update the CBS channel name.
+       * @exception    E_SYSTEM                                A system error has occurred.
+       * @exception    E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
+       *
+       * @endif
+       */
+       result UpdateName(const Tizen::Base::String& name);
+
+       /**
+       * Sets the cbs channel name to CbsChannelImpl object.
+       *
+       * @since 2.1
+       * @param[in]   channelName            An Cbs Channel Name
+       */
+       void SetCbsChannelName(Tizen::Base::String channelName);
+
+       /**
+       * Sets the cbs Channel State to CbsChannelImpl object.
+       *
+       * @since 2.1
+       * @param[in]   isChannelEnable            CBS on/off flag
+       */
+       void SetCbsChannelState(bool isChannelEnable);
+
+public:
+       /**
+       * Gets the instance of CbsChannel
+       *
+       * @since 2.1
+       */
+       static CbsChannel* GetCbsChannelN(int from, int to, const Tizen::Base::String& name);
+
+       /**
+       * Gets the Impl instance.
+       *
+       * @since 2.1
+       * @return              The pointer to _CbsChannelImpl
+       * @param[in]   CbsChannel            An instance of CbsChannel
+       */
+       static _CbsChannelImpl* GetInstance(CbsChannel& cbsChannel);
+
+public:
+       /**
+       * This default constructor is intentionally declared as private so that only the platform can create an instance.
+       *
+       * @since 2.1
+       */
+       _CbsChannelImpl(void);
+
+       /**
+        * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
+        *
+        * @param[in]   rhs                     An instance of _CbsChannelImpl
+        */
+       _CbsChannelImpl(const _CbsChannelImpl& rhs);
+
+       /**
+        * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
+        *
+        * @param[in]   rhs                             An instance of _CbsChannelImpl
+        */
+       _CbsChannelImpl& operator =(const _CbsChannelImpl& rhs);
+
+       /**
+       * Initializes this instance of %_CbsChannelImpl with the specified parameter.
+       *
+       * @since 2.1
+       *
+       * @return               An error code
+       * @param[in]    from                            The starting index of the message ID of the channel.
+       * @param[in]    to                                      The last index of the message ID of the channel.
+       * @param[in]    name                            The name of the channel. (can be an empty string)
+       * @exception    E_SUCCESS                       The method is successful.
+       * @exception    E_INVALID_ARG           The specified @c to parameter is smaller than @c from. @n
+       *                                                                       The specified @c to or @c from parameter is a negative value. @n
+       *                                                                       The specified @c to parameter exceeds the limit (0xFFFF). @n
+       *                                                                       The range (@c to - @c from) exceeds the limit (0xFFFF).
+       *                                                                       The specified @c name string length is greater than @c 32. @n
+       * @exception    E_OUT_OF_MEMORY         The memory is insufficient.
+       * @exception    E_SYSTEM                        A system error has occurred.
+       */
+       result Construct(int from, int to, const Tizen::Base::String& name);
+
+private:
+       int __fromId;
+       int __toId;
+       Tizen::Base::String __channelName;
+       bool __isChannelEnable;
+}; // _CbsChannelImpl
+
+} } // Tizen::Messaging
+#endif // _FMSG_INTERNAL_CBS_CHANNEL_IMPL_H_
index c7c72ab..fd4dad5 100644 (file)
@@ -212,7 +212,7 @@ _EmailManagerImpl::Send(const EmailMessage& message, const RecipientList& recipi
        SysAssertf(__isConstructed == true, "The _EmailManagerImpl instance is not constructed yet.");
        SysLog(NID_MSG, "sending an email message.");
 
-       r = _MsgUtil::SendEmail(message, recipientList, msgId, requestId);
+       r = _MsgUtil::SendEmail(message, recipientList, msgId, requestId, saveToSentBox);
        SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "[%s] Failed to send the email message.", GetErrorMessage(r));        
 
        pTemp = new (std::nothrow) _EmailAsyncData();
diff --git a/src/FMsg_MessagingIpcProxy.cpp b/src/FMsg_MessagingIpcProxy.cpp
new file mode 100644 (file)
index 0000000..c39c6c7
--- /dev/null
@@ -0,0 +1,568 @@
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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.
+//
+/**
+ * @file               FMsg_MessagingIpcProxy.cpp
+ * @brief              This is the implementation file for the %_MessagingProxy class.
+ *
+ * This file contains the implementation of the %_MessagingProxy class.
+ */
+#include <msg.h>
+#include <msg_transport.h>
+#include <msg_storage.h>
+#include <dbus/dbus.h>
+#include <email-api.h>
+#include <FIo_IpcClient.h>
+#include <FBase_StringConverter.h>
+#include <FBaseInteger.h>
+#include "FMsg_MessagingMessageTypes.h"
+#include "FMsg_MessagingIpcProxy.h"
+#include "FMsg_SmsEvent.h"
+#include "FMsg_SmsEventArg.h"
+#include "FMsg_MsgUtil.h"
+#include "FMsg_SmsMmsCallbackHandler.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Messaging;
+using namespace Tizen::Io;
+
+namespace Tizen { namespace Messaging
+{
+
+_MessagingProxy* _MessagingProxy::__pSelf = null;
+
+_MessagingProxy::_MessagingProxy(void)
+       : __pIpcClient(null)
+       ,__pWapPushListener(null)
+       ,__pSmsListenerList(null)
+       ,__pCbsListenerEvent(null)
+       ,__pEtwsListenerEvent(null)
+
+{
+}
+
+
+_MessagingProxy::~_MessagingProxy(void)
+{
+       if(__pIpcClient)
+       {
+               delete __pIpcClient;
+       }
+
+}
+result
+_MessagingProxy::Construct(void)
+{
+
+
+       __pIpcClient = new (std::nothrow) _IpcClient();
+       SysTryReturnResult(NID_MSG, __pIpcClient != null, E_OUT_OF_MEMORY, "_IpcClient creation failed.");
+
+       result r = __pIpcClient->Construct(MESSAGING_IPC_SERVER_NAME, this);
+       SysTryReturnResult(NID_MSG, !IsFailed(r), r, "_IpcClient constructing faliied.");
+       std::atexit(DestroyInstance);
+
+       return r;
+}
+
+
+_MessagingProxy* 
+_MessagingProxy::GetInstance(void)
+{
+       if(_MessagingProxy::__pSelf == null)
+       {
+               _MessagingProxy::__pSelf = new (std::nothrow)_MessagingProxy();
+               SysTryCatch(NID_MSG, __pSelf != null, , E_OUT_OF_MEMORY, "_IpcClient creation failed.");
+
+               result r = _MessagingProxy::__pSelf->Construct();
+               SysTryCatch(NID_MSG, !IsFailed(r), , r, "_IpcClient creation failed.");
+
+       }
+       return _MessagingProxy::__pSelf;
+
+CATCH:
+       if(_MessagingProxy::__pSelf)
+       {
+               delete _MessagingProxy::__pSelf;
+               _MessagingProxy::__pSelf = null;
+       }
+       return null;
+}
+
+void 
+_MessagingProxy::DestroyInstance(void)
+{
+   if(_MessagingProxy::__pSelf)
+   {
+      delete _MessagingProxy::__pSelf ;
+      _MessagingProxy::__pSelf = null;
+
+    }
+
+}
+
+void
+_MessagingProxy::OnIpcResponseReceived(Tizen::Io::_IpcClient& client, const IPC::Message& message)
+{
+       IPC_BEGIN_MESSAGE_MAP(_MessagingProxy, message)
+       IPC_MESSAGE_HANDLER(MessagingMsgStart_wapPushEventCallBack, OnWapPushEventCallBack, &client)
+       IPC_MESSAGE_HANDLER(MessagingMsgStart_incomingEtwsCallback, OnIncomingEtwsCallback, &client)
+       IPC_MESSAGE_HANDLER(MessagingMsgStart_incomingCbsCallback, OnIncomingCbsCallback, &client)
+       IPC_MESSAGE_HANDLER(MessagingMsgStart_incomingSmsCallback, OnIncomingSmsCallback, &client)
+       IPC_END_MESSAGE_MAP()
+}
+
+
+result
+_MessagingProxy::AddWapPushEventListener(const Tizen::Base::String& wapApplicationId, _SmsEvent* pListener)
+{
+       result r = E_SUCCESS;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+       SysTryReturnResult(NID_MSG, pListener != null, E_SYSTEM, "A system error occurred.");
+       __pWapPushListener  = pListener;
+
+       pMessage = new (std::nothrow) MessagingMsgStart_addWapPushEventListener(wapApplicationId, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+       
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+
+void
+_MessagingProxy::OnWapPushEventCallBack(const Tizen::Base::String &header, const Tizen::Base::ByteBuffer &body, int bodyLength)
+{
+
+       SysLog(NID_MSG, "push msg body: [%s]", body.GetPointer());
+       SysLog(NID_MSG, "push msg header: [%ls]", header.GetPointer());
+       SysLog(NID_MSG, "push body length: [%d]", bodyLength);
+
+       if (__pWapPushListener)
+       {                               
+               _SmsEventArg* pSmsEventArg = null;
+               pSmsEventArg = new (std::nothrow) _SmsEventArg(header, body, _SMS_EVENT_TYPE_WAP_PUSH_RECEIVE_RESULT);
+               SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
+               __pWapPushListener->Fire(*pSmsEventArg);
+       }
+
+}
+
+
+/*
+result
+_MessagingProxy::RemoveWapPushEventListener(const Tizen::Base::String& wapApplicationId)
+{
+       result r = E_SUCCESS;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_removeWapPushEventListener(wapApplicationId, &ret);
+       SysTryReturn(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturn(NID_MSG, r == E_SUCCESS, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+*/
+result
+_MessagingProxy::RegisterCondition(const Tizen::Base::String& wapApplicationId, const Tizen::Base::String& contentType)
+{
+       result r = E_SUCCESS;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_registerCondition(wapApplicationId, contentType, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+result
+_MessagingProxy::UnregisterCondition(const Tizen::Base::String& wapApplicationId, const Tizen::Base::String& contentType)
+{
+       result r = E_SUCCESS;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_unregisterCondition(wapApplicationId, contentType, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+result
+_MessagingProxy::OpenMsgHandle()
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_openMsgHandle(&ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+
+result
+_MessagingProxy::OpenCbsHandle()
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_openCbsHandle(&ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+
+result
+_MessagingProxy::AddSmsEventListener(int port, Tizen::Base::Collection::ArrayList* pListenerList) 
+{
+       result r = E_SUCCESS;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+       SysTryReturnResult(NID_MSG, pListenerList != null, E_SYSTEM, "A system error occurred.");
+       __pSmsListenerList  = pListenerList;
+
+       pMessage = new (std::nothrow) MessagingMsgStart_addSmsEventListener(port, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+       
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+void
+_MessagingProxy::OnIncomingSmsCallback(int port, int displayTime, const Tizen::Base::String &message, const Tizen::Base::String &senderAddress)
+{
+
+       DateTime receivedTime = _MsgUtil::ConvertTime((time_t *) &displayTime);
+       if (_SmsMmsCallbackHandler::GetInstance()->GetInComingSmsCallback() && __pSmsListenerList->GetCount() > 0)
+       {
+               for( int i = 0; i < __pSmsListenerList->GetCount(); i++)
+               {
+                       _SmsEvent* pSmsEvent = static_cast <_SmsEvent*>(__pSmsListenerList->GetAt(i));
+
+                       if (pSmsEvent)
+                       {
+                               if (pSmsEvent->GetPort() == port)
+                               {
+                                       _SmsEventArg* pSmsEventArg = null;
+                                       pSmsEventArg = new (std::nothrow) _SmsEventArg(port, receivedTime, message, senderAddress);
+                                       SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
+
+                                       pSmsEvent->Fire(*pSmsEventArg);
+                                       break;
+                               }
+                       }
+               }
+       }
+
+}
+
+result
+_MessagingProxy::AddCbsEtwsEventListener(bool enabled)
+{
+       result r = E_SUCCESS;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+       pMessage = new (std::nothrow) MessagingMsgStart_addCbsEtwsEventListener(enabled, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+void
+_MessagingProxy::OnIncomingEtwsCallback(int tempReceivedTime, const Tizen::Base::ByteBuffer &msgSerialNumber, const Tizen::Base::ByteBuffer &msgSecurityInfo, int messgeId, const Tizen::Base::ByteBuffer &etwsMsgWarningType)
+{
+
+       _SmsEventArg* pSmsEventArg = null;
+       DateTime receivedTime;
+       receivedTime = _MsgUtil::ConvertTime((time_t *) &tempReceivedTime);
+       SysLog(NID_MSG, "Etws In Handle[%d]", __pEtwsListenerEvent);    
+       
+       if (__pEtwsListenerEvent)
+       {
+               pSmsEventArg = new (std::nothrow) _SmsEventArg(receivedTime, msgSerialNumber, msgSecurityInfo, messgeId,
+                                                                etwsMsgWarningType, _SMS_EVENT_TYPE_ETWS_RECEIVE_RESULT);
+               SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
+               __pEtwsListenerEvent->Fire(*pSmsEventArg);
+       }
+
+
+
+}
+
+void
+_MessagingProxy::OnIncomingCbsCallback(const Tizen::Base::String &message, const Tizen::Base::ByteBuffer &msgSerialNumber, int tempReceivedTime, int messgeId, int dataCodingScheme, const Tizen::Base::String &messageLanguage)
+{
+       
+       _SmsEventArg* pSmsEventArg = null;
+       DateTime receivedTime =  _MsgUtil::ConvertTime((time_t *) &tempReceivedTime);
+       Tizen::Base::Integer dataCodingSchemeTemp(dataCodingScheme);
+       SysLog(NID_MSG, "CBS In Handle[%d]", __pCbsListenerEvent);
+
+       if (__pCbsListenerEvent)
+       {
+               pSmsEventArg = new (std::nothrow) _SmsEventArg(message, msgSerialNumber, receivedTime, messgeId, false,
+                                ((byte) dataCodingSchemeTemp.ToChar()),messageLanguage, _SMS_EVENT_TYPE_CBS_RECEIVE_RESULT);
+               SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
+               __pCbsListenerEvent->Fire(*pSmsEventArg);
+       }
+       
+}
+
+void
+_MessagingProxy::SetCbsAndEtwsUserEvent(_MessageType msgType, _SmsEvent* pEvent)
+{
+       if (msgType == _MSG_CBS)
+       {
+               __pCbsListenerEvent = pEvent;
+       }
+       else
+       {
+               __pEtwsListenerEvent = pEvent;
+       }
+}
+
+
+result
+_MessagingProxy::SetSavingToCbsBoxEnabled(bool enable)
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_setSavingToCbsBoxEnabled(enable, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+}
+result
+_MessagingProxy::IsCbsEnabled(bool* isCbsEnabled)
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+       SysTryReturnResult(NID_MSG, isCbsEnabled != null, E_SYSTEM, "isCbsEnabled is null.");
+       
+       pMessage = new (std::nothrow) MessagingMsgStart_isCbsEnabled(isCbsEnabled, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d. isCbsEnabled = %d", ret, *isCbsEnabled );
+
+       return ret;
+}
+
+
+result
+_MessagingProxy::SetCbsEnabled(bool enable)
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_setCbsEnabled(enable, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+}
+
+result
+_MessagingProxy::AddCbsChannel(int from, int to, Tizen::Base::String& name, bool activate)
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+       pMessage = new (std::nothrow) MessagingMsgStart_addCbsChannel(from, to, name, activate, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+}
+result
+_MessagingProxy::RemoveCbsChannel(int from, int to)
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_removeCbsChannel(from, to, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+}
+
+result
+_MessagingProxy::GetCbsChannelN(int from, int to, bool &isActive, String &channelName)
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_getCbsChannelN(from, to, &isActive, &channelName,&ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+
+}
+
+result 
+_MessagingProxy::GetCbsChannelListN(Tizen::Base::Collection::ArrayList &pCbsList)
+{
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+
+       pMessage = new (std::nothrow) MessagingMsgStart_getCbsChannelListN(&pCbsList,&ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+}
+
+result
+_MessagingProxy::UpdateCbsChannel(int from, int to, Tizen::Base::String name, bool isChannelEnable)
+{
+
+       result r = 0;
+       IPC::Message* pMessage = null;
+       unsigned long ret = 0;
+
+       pMessage = new (std::nothrow) MessagingMsgStart_updateCbsChannel(from, to, name, isChannelEnable, &ret);
+       SysTryReturnResult(NID_MSG, pMessage != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+       r = __pIpcClient->SendRequest(*pMessage);
+       delete pMessage;
+       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "A system error occurred.");
+
+       SysLog(NID_MSG, "The result of checking through IPC is %d.", ret);
+
+       return ret;
+}
+
+
+} }
diff --git a/src/FMsg_MessagingIpcProxy.h b/src/FMsg_MessagingIpcProxy.h
new file mode 100644 (file)
index 0000000..798b4c7
--- /dev/null
@@ -0,0 +1,88 @@
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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 _FMSG_MESSAGING_PROXY_H_
+#define _FMSG_MESSAGING_PROXY_H_
+
+#include <FBaseObject.h>
+#include <FIo_IpcCommonDataTypes.h>
+#include <FIo_IIpcClientEventListener.h>
+#include "FMsg_Types.h"
+
+namespace Tizen { namespace Base {
+class String;
+} }
+
+namespace Tizen { namespace Io {
+class _IpcClient;
+} }
+namespace Tizen { namespace Messaging
+{
+
+class _SmsEvent;
+class CbsChannel;
+class _MessagingProxy
+       : public Tizen::Base::Object
+       , public Tizen::Io::_IIpcClientEventListener
+{
+
+public:
+       result Construct(void); 
+       result AddWapPushEventListener(const Tizen::Base::String& wapApplicationId, _SmsEvent* pListener);
+       //result RemoveWapPushEventListener(const Tizen::Base::String& wapApplicationId);
+       result RegisterCondition(const Tizen::Base::String& wapApplicationId, const Tizen::Base::String& contentType);
+       result UnregisterCondition(const Tizen::Base::String& wapApplicationId, const Tizen::Base::String& contentType);
+
+       result OpenMsgHandle();
+       result OpenCbsHandle();
+       result AddSmsEventListener(int port, Tizen::Base::Collection::ArrayList* pListenerList);
+       result AddCbsEtwsEventListener(bool enabled);
+       result SetSavingToCbsBoxEnabled(bool enable);
+       result IsCbsEnabled(bool* isCbsEnabled);
+       result SetCbsEnabled(bool enable);
+       result AddCbsChannel(int from, int to, Tizen::Base::String& name, bool activate);
+       result RemoveCbsChannel(int from, int to);
+       result UpdateCbsChannel(int from, int to, Tizen::Base::String name, bool isChannelEnable);
+       result GetCbsChannelN(int from, int to, bool &isActive, Tizen::Base::String &channelName);
+       result GetCbsChannelListN(Tizen::Base::Collection::ArrayList &pCbsList);
+
+       static _MessagingProxy* GetInstance(void);
+       static void DestroyInstance(void);
+
+       void OnIpcResponseReceived(Tizen::Io::_IpcClient& client, const IPC::Message& message);
+       void OnWapPushEventCallBack(const Tizen::Base::String &header, const Tizen::Base::ByteBuffer &body, int bodyLength);
+       void OnIncomingEtwsCallback(int tempReceivedTime, const Tizen::Base::ByteBuffer &msgSerialNumber,const Tizen::Base::ByteBuffer &msgSecurityInfo, int messgeId, const Tizen::Base::ByteBuffer &etwsMsgWarningType);
+       void OnIncomingCbsCallback(const Tizen::Base::String &message, const Tizen::Base::ByteBuffer &msgSerialNumber, int tempReceivedTime, int messgeId, int dataCodingScheme, const Tizen::Base::String &messageLanguage);
+       void OnIncomingSmsCallback(int port, int displayTime, const Tizen::Base::String &message, const Tizen::Base::String &senderAddress);
+       void SetCbsAndEtwsUserEvent(_MessageType msgType, _SmsEvent* pEvent);
+       
+private:
+       _MessagingProxy(void);
+       virtual ~_MessagingProxy(void); 
+       
+private:
+       Tizen::Io::_IpcClient* __pIpcClient;
+       static _MessagingProxy *__pSelf;
+       _SmsEvent* __pWapPushListener;
+       Tizen::Base::Collection::ArrayList* __pSmsListenerList;
+       _SmsEvent* __pCbsListenerEvent;
+       _SmsEvent* __pEtwsListenerEvent;
+}; // _MessagingProxy
+
+} } // Tizen::Messaging
+#endif // _FMSG_MESSAGING_PROXY_H_
\ No newline at end of file
diff --git a/src/FMsg_MessagingMessageTypes.cpp b/src/FMsg_MessagingMessageTypes.cpp
new file mode 100644 (file)
index 0000000..385966d
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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.
+//
+
+/**
+ * @file    FMsg_MessagingMessageTypes.cpp
+ * @brief   This is the generator of IPC messages for the wap push.
+ */
+
+#define IPC_MESSAGE_IMPL
+#include "FMsg_MessagingMessageTypes.h"
+
+// Generate constructors.
+#include <ipc/struct_constructor_macros.h>
+#include "FMsg_MessagingMessageTypes.h"
+
+// Generate destructors.
+#include <ipc/struct_destructor_macros.h>
+#include "FMsg_MessagingMessageTypes.h"
+
+// Generate param traits write methods.
+#include <ipc/param_traits_write_macros.h>
+namespace IPC {
+#include "FMsg_MessagingMessageTypes.h"
+}  // namespace IPC
+
+// Generate param traits read methods.
+#include <ipc/param_traits_read_macros.h>
+namespace IPC {
+#include "FMsg_MessagingMessageTypes.h"
+}  // namespace IPC
+
index d33ff9c..e84d934 100644 (file)
@@ -1610,13 +1610,14 @@ CATCH:
        return NULL;
 }
 result
-_MsgUtil::SendEmail(const EmailMessage& message, const RecipientList& recipientList, int &mailId,  int &requestId)
+_MsgUtil::SendEmail(const EmailMessage& message, const RecipientList& recipientList, int &mailId,  int &requestId, bool saveToSentBox)
 {
 
        email_account_t* pAccount = NULL;
        email_mail_data_t *pMail = null;        
        email_mailbox_t *pMailbox = null;
        email_attachment_data_t **pAttach=null;         
+       int tmpSaveToSentBox = -1;
        int accountId = 0;
        int err = EMAIL_ERROR_NONE;
        result r = E_SUCCESS;
@@ -1630,12 +1631,18 @@ _MsgUtil::SendEmail(const EmailMessage& message, const RecipientList& recipientL
        pMailbox =  (email_mailbox_t *)calloc(1,sizeof(email_mailbox_t));
        SysTryCatch(NID_MSG, pMailbox != null, r = E_OUT_OF_MEMORY, r, "Insufficient memory");
 
-               
        err = email_load_default_account_id(&accountId);
        SysTryCatch(NID_MSG, err == EMAIL_ERROR_NONE, r = E_INVALID_ACCOUNT, r, "Account Load is Failed.");
        
        err = email_get_account(accountId, GET_FULL_DATA, &pAccount);
        SysTryCatch(NID_MSG, err == EMAIL_ERROR_NONE, r = E_INVALID_ACCOUNT, r, "Account is Failed.");
+       SysLog(NID_MSG, "keep %d, save %d" , pAccount->options.keep_local_copy, saveToSentBox);
+
+       tmpSaveToSentBox = pAccount->options.keep_local_copy;
+       pAccount->options.keep_local_copy = saveToSentBox;
+
+       email_update_account(accountId, pAccount);
+       SysTryCatch(NID_MSG, err == EMAIL_ERROR_NONE, r = E_INVALID_ACCOUNT, r, "Account update is Failed.");
 
        fromAddr.Append(L'\"'); 
        fromAddr.Append(pAccount->incoming_server_user_name);   
@@ -1691,6 +1698,13 @@ _MsgUtil::SendEmail(const EmailMessage& message, const RecipientList& recipientL
 
        r = AddEmailCallBackToDbus();
                
+       if (-1 != tmpSaveToSentBox)
+       {
+               pAccount->options.keep_local_copy = (bool)tmpSaveToSentBox;
+               email_update_account(accountId, pAccount);
+       }
+
+               
        if (pAttach)
        {
                if (*pAttach)
@@ -1722,6 +1736,14 @@ _MsgUtil::SendEmail(const EmailMessage& message, const RecipientList& recipientL
        return r;
 
 CATCH:
+       
+       if (-1 != tmpSaveToSentBox)
+       {
+               pAccount->options.keep_local_copy = (bool)tmpSaveToSentBox;
+               email_update_account(accountId, pAccount);
+       }
+
+       
        if (pAttach)
        {
                if (*pAttach)
index 404a934..0a201f3 100644 (file)
@@ -66,7 +66,7 @@ public:
        static SmsMessage* ConvertSmsMessageN(const SmsMessageBoxType& type, msg_struct_t& msg);
        static int AddMessageAddress(const RecipientList& recipientList, RecipientType type, msg_struct_t& messageMsg, _MSG_RECIPIENT_TYPE_E recipientType);
        static result AddEmailMessageAddress(const RecipientList& recipientList, RecipientType type, email_mail_data_t *pMail);
-       static result SendEmail(const EmailMessage& message, const RecipientList& recipientList, int &mailboxId,        int &requestId);
+       static result SendEmail(const EmailMessage& message, const RecipientList& recipientList, int &mailboxId, int &requestId, bool saveToSentBox);
        static result AddEmailMessageBody(email_mail_data_t *pMail, char * pBody);
        static result AddEmailMessageAttachment(const EmailMessage& message, email_attachment_data_t ***pAttach, email_mail_data_t *pMail);
        static result AddEmailCallBackToDbus(void);
index 9f95ed1..cf2b771 100644 (file)
@@ -38,6 +38,8 @@
 #include "FMsg_RecipientListImpl.h"
 #include "FMsg_SmsMmsCallbackHandler.h"
 #include "FMsg_CbsChannelImpl.h"
+#include "FMsg_MessagingIpcProxy.h"
+
 
 using namespace std;
 using namespace Tizen::Base;
@@ -56,9 +58,9 @@ _SmsManagerImpl::_SmsManagerImpl(void)
        , __pEtwsReceiveEvent(null)
        , __pSmsTriggerEventList(null)
        , __msgHandle(0)
-       , __cbsSettingsHandle(0)
        , __pCbsListener(null)
        , __pEtwsListener(null)
+       ,__isOpenCbsHandle(0)
 {
 }
 
@@ -140,25 +142,13 @@ _SmsManagerImpl::Construct(const ISmsListener& listener)
        r = ConvertException(err);
        SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to register sms,mms callback.");
 
-       // open cbs message handle
-       err = _SmsMmsCallbackHandler::GetInstance()->OpenCbsSettingsHandle(__cbsSettingsHandle);
-
-       if (err == MSG_ERR_NO_SIM)
-       {
-               r = E_SUCCESS;
-               SysLog(NID_MSG, "Sim card is not present in device"); // even no sim, return sucess so that app will launch sucess
-       }
-       else 
-       {
-               r = ConvertException(err);
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->OpenMsgHandle();
+       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to open messageHandle.");
+       r = _MessagingProxy::GetInstance()->OpenCbsHandle();
                SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to open cbs Settings Handle");
+       __isOpenCbsHandle = true;
        
-               // check value of cbs settings handle
-               SysTryReturnResult(NID_MSG, __cbsSettingsHandle > 0, E_SYSTEM, "cbsSettingsHandle is invalid.");
-       }
-
-       // load cbs settings
-       _SmsMmsCallbackHandler::GetInstance()->LoadCbsSettings();
 
        __pSmsEvent = move(pSmsEvent);
        __isConstructed = true;
@@ -175,7 +165,6 @@ _SmsManagerImpl::AddSmsEventListener(int port, ISmsEventListener& eventListener)
 
        result r = E_SUCCESS;
        _SmsEvent* pSmsTriggerEvent = null;
-       int err = MSG_SUCCESS;
 
        // check duplications
        if (__pSmsTriggerEventList)
@@ -218,17 +207,9 @@ _SmsManagerImpl::AddSmsEventListener(int port, ISmsEventListener& eventListener)
        r = __pSmsTriggerEventList->Add(*pSmsTriggerEvent);
        SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "[%s] Failed to add a listener.", GetErrorMessage(r));
 
-       // Register SMS Trigger
-       err = msg_reg_sms_message_callback(__msgHandle, &_SmsMmsCallbackHandler::IncomingSmsMessageCallback, port, (void*) pSmsTriggerEvent);
-
-       if (err != MSG_SUCCESS)
-       {
-               r = __pSmsTriggerEventList->Remove(*pSmsTriggerEvent);
-               r = E_SYSTEM;
-               SysLogException(NID_MSG, r, "[%s] Failed to register for incoming sms callback.", GetErrorMessage(r));
-
-               goto CATCH;
-       }
+       SysTryCatch(NID_MSG, _MessagingProxy::GetInstance()!= null, ,E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->AddSmsEventListener(port, __pSmsTriggerEventList);
+       SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "[%s] Failed to add a listener.", GetErrorMessage(r));
 
        return r;
 
@@ -792,7 +773,6 @@ _SmsManagerImpl::SetCbsMessageEventListener(ICbsMessageEventListener* pListener)
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
 
        result r = E_SUCCESS;
-       int err = MSG_SUCCESS;
 
        if (!pListener)
        {
@@ -823,20 +803,18 @@ _SmsManagerImpl::SetCbsMessageEventListener(ICbsMessageEventListener* pListener)
        r = __pCbsReceiveEvent->AddListener(*__pCbsListener, true);
        SysTryCatch(NID_MSG, r == E_SUCCESS, r = E_SYSTEM, E_SYSTEM, "Failed to add cbs listner");
 
-       err = msg_reg_cb_message_callback(__msgHandle, &_SmsMmsCallbackHandler::IncomingCbsMessageCallback, __isCbsSaveEnabled, null);
-       r = ConvertException(err);
+       SysTryCatch(NID_MSG, _MessagingProxy::GetInstance()!= null, r = E_OUT_OF_MEMORY,E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->AddCbsEtwsEventListener(__isCbsSaveEnabled);
+
        SysTryCatch(NID_MSG, r == E_SUCCESS, r = E_SYSTEM, E_SYSTEM, "Failed to set cbs incoming callback");
 
        if (r == E_SUCCESS)
        {
-               if (_SmsMmsCallbackHandler::GetInstance())
-               {
-                       _SmsMmsCallbackHandler::GetInstance()->SetCbsAndEtwsUserEvent(_MSG_CBS, __pCbsReceiveEvent);
-               }
-               else
-               {
-                       r = E_SYSTEM;
-               }
+               _MessagingProxy::GetInstance()->SetCbsAndEtwsUserEvent(_MSG_CBS, __pCbsReceiveEvent);
+       }
+       else
+       {
+               r = E_SYSTEM;
        }
 
        return r;
@@ -859,7 +837,6 @@ _SmsManagerImpl::SetEtwsPrimaryNotificationEventListener(IEtwsPrimaryNotificatio
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
 
        result r = E_SUCCESS;
-       int err = MSG_SUCCESS;
 
        if (!pListener)
        {
@@ -891,22 +868,20 @@ _SmsManagerImpl::SetEtwsPrimaryNotificationEventListener(IEtwsPrimaryNotificatio
        r = __pEtwsReceiveEvent->AddListener(*__pEtwsListener, true);
        SysTryCatch(NID_MSG, r == E_SUCCESS, r = E_SYSTEM, E_SYSTEM, "Failed to add an etws primary notification event listener.");
 
-       err = msg_reg_cb_message_callback(__msgHandle, &_SmsMmsCallbackHandler::IncomingCbsMessageCallback, __isCbsSaveEnabled, null);
-       r = ConvertException(err);
+       SysTryCatch(NID_MSG, _MessagingProxy::GetInstance()!= null, r = E_OUT_OF_MEMORY,E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->AddCbsEtwsEventListener(__isCbsSaveEnabled);        
        SysTryCatch(NID_MSG, r == E_SUCCESS, r = E_SYSTEM, E_SYSTEM,"Failed to add an etws primary notification event listener.");
 
        if (r == E_SUCCESS)
        {
-               if (_SmsMmsCallbackHandler::GetInstance())
-               {
-                      _SmsMmsCallbackHandler::GetInstance()->SetCbsAndEtwsUserEvent(_MSG_ETWS, __pEtwsReceiveEvent);
-               }
-               else
-               {
-                       r = E_SYSTEM;
-               }
+               _MessagingProxy::GetInstance()->SetCbsAndEtwsUserEvent(_MSG_ETWS, __pEtwsReceiveEvent);
+       }
+       else
+       {
+               r = E_SYSTEM;
        }
 
+
        return r;
 
 CATCH:
@@ -925,16 +900,16 @@ _SmsManagerImpl::SetSavingToCbsBoxEnabled(bool enable)
 {
        SysAssertf(__isConstructed == true, "_SmsManagerImpl instance is not constructed yet.");
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
-       SysTryReturnResult(NID_MSG, __cbsSettingsHandle != NULL, E_SYSTEM, "Cb handle is null");
-
-       int err = MSG_SUCCESS;
+       result r = E_SUCCESS;
+       SysTryReturnResult(NID_MSG, __isOpenCbsHandle == true, E_SYSTEM, "Cb handle is null");
 
-       err = msg_reg_cb_message_callback(__msgHandle, &_SmsMmsCallbackHandler::IncomingCbsMessageCallback, enable, null);
-       SysTryReturnResult(NID_MSG, err == MSG_SUCCESS, E_SYSTEM, "Failed to set SavingToCbsBoxEnabled option.");
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->SetSavingToCbsBoxEnabled(enable);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "[%s] Setting of CbsBoxEnabled Failed", GetErrorMessage(r));
 
        __isCbsSaveEnabled = enable;
 
-       return E_SUCCESS;
+       return r;
 }
 
 bool
@@ -942,13 +917,14 @@ _SmsManagerImpl::IsCbsEnabled(void) const
 {
        SysAssertf(__isConstructed == true, "_SmsManagerImpl instance is not constructed yet.");
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
-       SysTryReturn(NID_MSG, __cbsSettingsHandle != NULL, false, E_SYSTEM, "Cb handle is null");
+       SysTryReturn(NID_MSG, __isOpenCbsHandle != false, false, E_SYSTEM, "Cb handle is null");
 
        bool isCbsEnabled = false;
-       int err = MSG_SUCCESS;
+       result r = E_SUCCESS;   
 
-       err = msg_get_bool_value(__cbsSettingsHandle, MSG_CB_RECEIVE_BOOL, &isCbsEnabled);
-       SysTryReturn(NID_MSG, err == MSG_SUCCESS, false, E_SYSTEM, "Failed to set SavingToCbsBoxEnabled option.");
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, false, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->IsCbsEnabled(&isCbsEnabled);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "[%s] Geting the Cbs Status Failed ", GetErrorMessage(r));
 
        return isCbsEnabled;
 }
@@ -958,18 +934,15 @@ _SmsManagerImpl::SetCbsEnabled(bool enable)
 {
        SysAssertf(__isConstructed == true, "_SmsManagerImpl instance is not constructed yet.");
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
-       SysTryReturnResult(NID_MSG, __cbsSettingsHandle != NULL, E_SYSTEM, "Cb handle is null");
-
-       int err = MSG_SUCCESS;
        result r = E_SUCCESS;
+       SysTryReturnResult(NID_MSG, __isOpenCbsHandle != false, E_SYSTEM, "Cb handle is null");
        
-       err = msg_set_bool_value(__cbsSettingsHandle, MSG_CB_RECEIVE_BOOL, enable);
-       SysTryReturnResult(NID_MSG, err == MSG_SUCCESS, E_SYSTEM, "Failed to set cbs enabled.");
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->SetCbsEnabled(enable);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "[%s] Set status failed", GetErrorMessage(r));
 
-       r = _SmsMmsCallbackHandler::GetInstance()->SaveCbsSettings();
-       SysTryReturnResult(NID_MSG, r == E_SUCCESS, E_SYSTEM, "Failed to save cbs settings.");
 
-       return E_SUCCESS;
+       return r;
 }
 
 result
@@ -977,22 +950,12 @@ _SmsManagerImpl::AddCbsChannel(int from, int to, Tizen::Base::String& name, bool
 {
        SysAssertf(__isConstructed == true, "_SmsManagerImpl instance is not constructed yet.");
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
-       SysTryReturnResult(NID_MSG, __cbsSettingsHandle != NULL, E_SYSTEM, "Cb handle is null");
-
        result r = E_SUCCESS;
-       int count = 0;
-
-       r = _SmsMmsCallbackHandler::GetInstance()->GetCbsChannelsCount(count);
-       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to get CB Channel count.");
-
-       if (CB_CHANNEL_MAX <= count)
-       {
-               return E_ALREADY_SET;
-       }
+       SysTryReturnResult(NID_MSG, __isOpenCbsHandle != false, E_SYSTEM, "Cb handle is null");
 
-       // add channel
-       r = _SmsMmsCallbackHandler::GetInstance()->AddCbsChannel(from, to, name, activate);
-       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to add a CB Channel.");
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->AddCbsChannel(from, to, name, activate);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "[%s] adding channel Failed", GetErrorMessage(r));
 
        return r;
 }
@@ -1002,13 +965,14 @@ _SmsManagerImpl::RemoveCbsChannel(int from, int to)
 {
        SysAssertf(__isConstructed == true, "_SmsManagerImpl instance is not constructed yet.");
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
-       SysTryReturnResult(NID_MSG, __cbsSettingsHandle != NULL, E_SYSTEM, "Cb handle is null");
+       SysTryReturnResult(NID_MSG, __isOpenCbsHandle != false, E_SYSTEM, "Cb handle is null");
 
        result r = E_SUCCESS;
 
-       // remove channel
-       r = _SmsMmsCallbackHandler::GetInstance()->RemoveCbsChannel(from, to);
-       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "Failed to remove a CB Channel.");
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->RemoveCbsChannel(from, to);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, r, r, "[%s] To remove channel Failed", GetErrorMessage(r));
+
 
        return r;
 }
@@ -1018,32 +982,24 @@ _SmsManagerImpl::GetCbsChannelN(int from, int to) const
 {
        SysAssertf(__isConstructed == true, "_SmsManagerImpl instance is not constructed yet.");
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
-       SysTryReturn(NID_MSG, __cbsSettingsHandle != null, null, E_SYSTEM, "Cb handle is null.");
+       SysTryReturn(NID_MSG, __isOpenCbsHandle != null, null, E_SYSTEM, "Cb handle is null.");
 
        result r = E_SUCCESS;
-       int fromId = 0;
-       int toId = 0;
-       int index = 0;
        bool isActive = false;
        String channelName;
        std::unique_ptr<CbsChannel> pCbsChannel;
 
-       ClearLastResult();
-
-       // search channel
-       r = _SmsMmsCallbackHandler::GetInstance()->SearchCbsChannel(from, to, index);
-       SysTryReturn(NID_MSG, r == E_SUCCESS, null, r, "Failed to find the cb channel.");
-
-       // get channel
-       r = _SmsMmsCallbackHandler::GetInstance()->GetCbsChannel(index, fromId, toId, channelName, isActive);
-       SysTryReturn(NID_MSG, r == E_SUCCESS, null, r, "Failed to get the cb channel.");
+       SysTryReturn(NID_MSG, _MessagingProxy::GetInstance()!= null, null, E_OUT_OF_MEMORY,"Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->GetCbsChannelN(from, to, isActive, channelName);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, null, r, "Failed to get msg proxy instance");
 
        // creates channel
-       pCbsChannel.reset(_CbsChannelImpl::GetCbsChannelN(fromId, toId, channelName));
+       pCbsChannel.reset(_CbsChannelImpl::GetCbsChannelN(from, to, channelName));
 
        if (isActive)
        {
-               pCbsChannel->Activate();
+               _CbsChannelImpl::GetInstance(*pCbsChannel.get())->SetCbsChannelState(true);
+
        }
 
        return pCbsChannel.release();
@@ -1054,16 +1010,17 @@ _SmsManagerImpl::GetCbsChannelListN(void)
 {
        SysAssertf(__isConstructed == true, "_SmsManagerImpl instance is not constructed yet.");
        SysAssertf(__msgHandle > 0, "message handle is invalid.");
-       SysTryReturn(NID_MSG, __cbsSettingsHandle != null, null, E_SYSTEM, "Cb handle is null.");
+       SysTryReturn(NID_MSG, __isOpenCbsHandle != null, null, E_SYSTEM, "Cb handle is null.");
 
        result r = E_SUCCESS;
        unique_ptr<ArrayList, AllElementsDeleter> pList;
        int cbChannelCount = 0;
        int fromId = 0;
        int toId = 0;
-       bool isActive = false;
+       int isActive = false;
        String channelName;
        std::unique_ptr<CbsChannel> pCbsChannel;
+       Tizen::Base::Collection::ArrayList pCbsList;
 
        ClearLastResult();
 
@@ -1074,23 +1031,31 @@ _SmsManagerImpl::GetCbsChannelListN(void)
        r = pList->Construct();
        SysTryReturn(NID_MSG, r == E_SUCCESS, null, r, "Failed to construct array list.");
 
-       r = _SmsMmsCallbackHandler::GetInstance()->GetCbsChannelsCount(cbChannelCount);
-       SysTryReturn(NID_MSG, r == E_SUCCESS, null, r, "Failed to get CB Channel count.");
 
-       for (int index = 0; index < cbChannelCount; index++)
+       SysTryReturn(NID_MSG, _MessagingProxy::GetInstance()!= null, null, E_OUT_OF_MEMORY,"Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->GetCbsChannelListN(pCbsList);
+       SysTryReturn(NID_MSG, r == E_SUCCESS, null, r, "Failed to get msg proxy instance");
+
+
+       cbChannelCount = pCbsList.GetCount();
+       for (int index = 0; index < cbChannelCount; )
        {
-               // get channel
-               r = _SmsMmsCallbackHandler::GetInstance()->GetCbsChannel(index, fromId, toId, channelName, isActive);
-               SysTryReturn(NID_MSG, r == E_SUCCESS, null, r , "Failed to get the cb channel.");
+
+               Integer::Parse(*static_cast <String*>(pCbsList.GetAt(index++)), fromId);
+               Integer::Parse(*static_cast <String*>(pCbsList.GetAt(index++)), toId);
+               channelName = *static_cast <String*>(pCbsList.GetAt(index++));
+               Integer::Parse(*static_cast <String*>(pCbsList.GetAt(index++)),isActive);
+               SysLog(NID_MSG, "cbs %d, %d, %ls, %d",fromId, toId, channelName.GetPointer(),(bool)isActive);
 
                pCbsChannel.reset(_CbsChannelImpl::GetCbsChannelN(fromId, toId, channelName));
-               if (pCbsChannel && isActive)
+               if (isActive)
                {
-                       _CbsChannelImpl::GetInstance(*pCbsChannel)->SetCbsChannelState(isActive);
-                       // add to the list
-                       pList->Add(*pCbsChannel.release());
+                       _CbsChannelImpl::GetInstance(*pCbsChannel.get())->SetCbsChannelState((bool)isActive);
+
                }
+               pList->Add(*pCbsChannel.release());
        }
+       pCbsList.RemoveAll();
 
        return pList.release();
 }
index 9471581..548cc04 100644 (file)
@@ -379,9 +379,10 @@ private:
        _SmsEvent* __pEtwsReceiveEvent;
        Tizen::Base::Collection::ArrayList* __pSmsTriggerEventList;
        msg_handle_t __msgHandle;
-       msg_struct_t __cbsSettingsHandle;
        ICbsMessageEventListener* __pCbsListener;
        IEtwsPrimaryNotificationEventListener* __pEtwsListener;
+       bool __isOpenCbsHandle;
+
 }; // _SmsManagerImpl
 } } // Tizen::Messaging
 
index 1a3524c..f21eac6 100644 (file)
@@ -56,8 +56,6 @@ _SmsMmsCallbackHandler::_SmsMmsCallbackHandler(void)
        , __pTempCbsChannelList(0)
        , __callbackRegistered(false)
        , __incomingSmsCallbackRegistered(true)
-       , __pCbsUserEvent(null)
-       , __pEtwsUserEvent(null)
 {
 }
 
@@ -90,12 +88,67 @@ _SmsMmsCallbackHandler::~_SmsMmsCallbackHandler(void)
                msg_close_msg_handle(&__msgHandle);
                __msgHandle = 0;
        }
+        
+        Tizen::Base::Collection::IList* pKeyList = null;
+       Integer* pKey = null;
+       Integer* pMsgType = null;
+        IEnumerator* pValueEnum = null;
+        int count = 0;
+
+       __msgMutex.Acquire();
+
+        if (__messageMap.GetCount())
+        {
+               pKeyList = __messageMap.GetKeysN();
+                count = pKeyList->GetCount();
+        }
+
+        // Manually deleting key and value pairs
+       for (int index = 0; index < count; index++)
+       {
+               pKey = static_cast <Integer*>(pKeyList->GetAt(index));
+               pValueEnum = __messageMap.GetValuesN(*pKey);
+
+               if (pValueEnum)
+               {
+                       if (pValueEnum->MoveNext() == E_SUCCESS)
+                       {
+                               pMsgType = static_cast <Integer*>(pValueEnum->GetCurrent());
 
-       if (__messageMap.GetCount())
+                               if (pMsgType)
+                               {
+                                       delete pMsgType;
+                                        pMsgType = null;
+                               }
+                       }
+               }
+
+               if (pKey)
+               {
+                       delete pKey;
+                        pKey = null;
+               }
+                if (pValueEnum)
+                {
+                        delete pValueEnum;
+                        pValueEnum = null;
+                }
+        }
+
+        if (pKeyList)
+        {
+                delete pKeyList;
+                pKeyList = null;
+        }
+
+               if (__messageMap.GetCount())
        {
-               __messageMap.RemoveAll(true);
+               __messageMap.RemoveAll(false);
        }
 
+       __msgMutex.Release();
+
        if (__cbsSettingsHandle)
        {
                msg_release_struct(&__cbsSettingsHandle);
@@ -179,7 +232,7 @@ _SmsMmsCallbackHandler::AddCbsChannel(int from, int to, Tizen::Base::String& nam
        int fromId = 0;
        int toId = 0;
        bool channelFound = false;
-       SysLog(NID_MSG, "AddCbsChannel from %d to %d name %s activate %d ",from, to, name.GetPointer(), activate);
+       SysLog(NID_MSG, "AddCbsChannel from %d to %d name %ls activate %d ",from, to, name.GetPointer(), activate);
 
        for (int index = 0; index < __pTempCbsChannelList->GetCount(); index++)
        {
@@ -299,7 +352,7 @@ _SmsMmsCallbackHandler::UpdateCbsChannel(int from, int to, Tizen::Base::String n
        bool channelFound = false;
        int index = 0;
        CbsChannel* pCbsChannel = NULL;
-       SysLog(NID_MSG, "UpdateCbsChannel from %d to %d name %s activate %d ",from, to, name.GetPointer(), activate);
+       SysLog(NID_MSG, "UpdateCbsChannel from %d to %d name %ls activate %d ",from, to, name.GetPointer(), activate);
 
        for (int i = 0; i < __pTempCbsChannelList->GetCount(); i++)
        {
@@ -528,18 +581,10 @@ _SmsMmsCallbackHandler::SetInComingSmsCallback(bool incomingSmsCallbackRegistere
 {
        __incomingSmsCallbackRegistered = incomingSmsCallbackRegistered;
 }
-
-void
-_SmsMmsCallbackHandler::SetCbsAndEtwsUserEvent(_MessageType msgType, Tizen::Base::Object* pEvent)
+bool 
+_SmsMmsCallbackHandler::GetInComingSmsCallback()
 {
-       if (msgType == _MSG_CBS)
-       {
-               __pCbsUserEvent = pEvent;
-       }
-       else
-       {
-               __pEtwsUserEvent = pEvent;
-       }
+       return __incomingSmsCallbackRegistered;
 }
 
 result
@@ -738,171 +783,13 @@ _SmsMmsCallbackHandler::IncomingSmsMessageCallback(msg_handle_t hMsgHandle, msg_
        {
                if (pSmsEvent)
                {
-                       if (port == 0)  // normal incoming SMS message case
-                       {
-                               pSmsEventArg = new (std::nothrow) _SmsEventArg(message, senderAddress, receivedTime);
-                               SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
-                       }
-                       else            // SMS trigger message case
-                       {
-                               pSmsEventArg = new (std::nothrow) _SmsEventArg(port, receivedTime, message, senderAddress);
-                               SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
-                       }
+                       pSmsEventArg = new (std::nothrow) _SmsEventArg(message, senderAddress, receivedTime);
+                       SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
                        pSmsEvent->Fire(*pSmsEventArg);
                }
        }
 }
 
-void
-_SmsMmsCallbackHandler::IncomingCbsMessageCallback(msg_handle_t hMsgHandle, msg_struct_t newMsg, void* pUserParam)
-{
-       result r = E_SUCCESS;
-       _SmsEventArg* pSmsEventArg = null;
-       int tempReceivedTime = 0;
-       DateTime receivedTime;
-       bool etwsNotifiation = false;
-       int messgeId = 0;
-       int serialNumber = 0;
-       int length = 0;
-       int cbsType = -1;
-       Tizen::Base::ByteBuffer msgSerialNumber;
-
-       msg_get_int_value(newMsg, MSG_CB_MSG_RECV_TIME_INT, &tempReceivedTime);
-       receivedTime = _MsgUtil::ConvertTime((time_t *) &tempReceivedTime);
-
-       msg_get_int_value(newMsg, MSG_CB_MSG_MSG_ID_INT, &messgeId);
-       msg_get_int_value(newMsg, MSG_CB_MSG_SERIAL_NUM_INT, &serialNumber);
-       msg_get_int_value(newMsg, MSG_CB_MSG_TYPE_INT, &cbsType);
-
-       Tizen::Base::Integer serialno(serialNumber);
-       length = serialno.ToString().GetLength();
-
-       msgSerialNumber.Construct(length);
-       msgSerialNumber.SetInt(0, serialNumber);
-       msgSerialNumber.SetPosition(0);
-
-       if (cbsType == MSG_TYPE_SMS_ETWS_PRIMARY)
-       {
-               int etwsWarningType;
-               char etwsWarningInfo[MESSAGES_ETWS_WARNING_INFO_LEN];
-               Tizen::Base::ByteBuffer msgSecurityInfo;
-               Tizen::Base::ByteBuffer etwsMsgWarningType;
-               msg_get_int_value(newMsg, MSG_CB_MSG_ETWS_WARNING_TYPE_INT, &etwsWarningType);
-               msg_get_str_value(newMsg, MSG_CB_MSG_ETWS_WARNING_SECU_INFO_STR, etwsWarningInfo, MESSAGES_ETWS_WARNING_INFO_LEN);
-
-               String etwsSecurityInfo(etwsWarningInfo);
-               length = etwsSecurityInfo.GetLength();
-               msgSecurityInfo.Construct(length);
-               r = msgSecurityInfo.SetArray((byte*) etwsWarningInfo, 0, length);
-               msgSecurityInfo.SetPosition(0);
-
-               Tizen::Base::Integer warningtype(etwsWarningType);
-               length = warningtype.ToString().GetLength();
-
-               etwsMsgWarningType.Construct(length);
-               etwsMsgWarningType.SetInt(0, etwsWarningType);
-               etwsMsgWarningType.SetPosition(0);
-
-               etwsNotifiation = true;
-               _SmsEvent* pSmsEvent = static_cast <_SmsEvent*>(_SmsMmsCallbackHandler::GetInstance()->__pEtwsUserEvent);
-
-               SysLog(NID_MSG, "cbs etwsWarningType: [%d]", etwsWarningType);
-
-               if (pSmsEvent)
-               {
-                       pSmsEventArg = new (std::nothrow) _SmsEventArg(receivedTime, msgSerialNumber, msgSecurityInfo, messgeId,
-                                                                        etwsMsgWarningType, _SMS_EVENT_TYPE_ETWS_RECEIVE_RESULT);
-                       SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
-                       pSmsEvent->Fire(*pSmsEventArg);
-               }
-       }
-       else
-       {
-               _SmsEvent* pSmsEvent = static_cast <_SmsEvent*>(_SmsMmsCallbackHandler::GetInstance()->__pCbsUserEvent);
-               int dataCodingScheme = 0;
-               int msgSize = 0;
-
-               msg_get_int_value(newMsg, MSG_CB_MSG_CB_TEXT_LEN_INT, &msgSize);
-               char msgBody[msgSize + 1];
-               memset(msgBody, 0, msgSize + 1);
-               msg_get_str_value(newMsg, MSG_CB_MSG_CB_TEXT_STR, msgBody, msgSize + 1);
-               String message(msgBody);       // porting char* to String
-
-               msg_get_int_value(newMsg, MSG_CB_MSG_DCS_INT, &dataCodingScheme);
-               Tizen::Base::Integer dataCodingSchemeTemp(dataCodingScheme);
-
-               //language type of cbs message
-               String messageLanguage(L"");
-               byte higherNibble = dataCodingScheme & 0xf0;
-               byte lowerNibble = dataCodingScheme & 0x0f;
-
-               //check higher nibble
-               // if higher nibble 0000
-               if (higherNibble == 0x00)
-               {               
-                       messageLanguage = GetCbsLanguageType(lowerNibble);
-               }
-               else if (higherNibble == 0x01)
-               {
-                       // if higher nibble is 0001, get language type from framework
-                       int len = 15;
-                       char type[len + 1];
-                       memset(type, 0, len + 1);
-                       msg_get_str_value(newMsg, MSG_CB_MSG_LANGUAGE_TYPE_STR, type, len);
-                       messageLanguage = String(type);
-               }
-               else if (higherNibble == 0x20 && lowerNibble == 0x00)
-               {
-                       // if 0010 0000         
-                       messageLanguage = String(L"CS");                
-               }
-               else
-               {
-                       // use empty string
-               }
-
-               if (pSmsEvent)
-               {
-                       pSmsEventArg = new (std::nothrow) _SmsEventArg(message, msgSerialNumber, receivedTime, messgeId, etwsNotifiation,
-                                        ((byte) dataCodingSchemeTemp.ToChar()),messageLanguage, _SMS_EVENT_TYPE_CBS_RECEIVE_RESULT);
-                       SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
-                       pSmsEvent->Fire(*pSmsEventArg);
-               }
-
-               SysLog(NID_MSG, "cbs msg_body: [%s]", msgBody);
-               SysLog(NID_MSG, "cbs dataCodingScheme: [%d]", dataCodingScheme);
-               SysLog(NID_MSG, "cbs languageType: [%s]", messageLanguage.GetPointer());
-       }
-
-       SysLog(NID_MSG, "cbs msg_id: [%d]", messgeId);
-       SysLog(NID_MSG, "cbs serialNumber: [%d]", serialNumber);
-       SysLog(NID_MSG, "cbs etwsNotifiation: [%d]", etwsNotifiation);
-}
-
-void
-_SmsMmsCallbackHandler::IncomingWapPushMessageCallback(msg_handle_t hMsgHandle, const char* pHeader, const char* pBody, int bodyLength, void* pUserParam)
-{
-       result r = E_SUCCESS;
-       _SmsEvent* pSmsEvent = static_cast <_SmsEvent*>(pUserParam);
-       _SmsEventArg* pSmsEventArg = null;
-       String msgHeader(pHeader);
-       Tizen::Base::ByteBuffer msgBody;
-       msgBody.Construct(bodyLength);
-       r = msgBody.SetArray((byte*) pBody, 0, bodyLength);
-       msgBody.SetPosition(0);
-
-       SysLog(NID_MSG, "push msg body: [%s]", pBody);
-       SysLog(NID_MSG, "push msg header: [%s]", pHeader);
-       SysLog(NID_MSG, "push body length: [%d]", bodyLength);
-
-       if (pSmsEvent)
-       {
-               pSmsEventArg = new (std::nothrow) _SmsEventArg(msgHeader, msgBody, _SMS_EVENT_TYPE_WAP_PUSH_RECEIVE_RESULT);
-               SysTryReturnVoidResult(NID_MSG, pSmsEventArg != null, E_OUT_OF_MEMORY, "memory allocation failed.");
-               pSmsEvent->Fire(*pSmsEventArg);
-       }
-}
-
 Tizen::Base::String
 _SmsMmsCallbackHandler::GetCbsLanguageType(byte codingScheme)
 {
index f9a6c44..c314873 100644 (file)
@@ -212,21 +212,7 @@ public:
        * @param[in]    incomingSmsCallbackRegistered      SMS registered flag
        */
        void SetInComingSmsCallback(bool incomingSmsCallbackRegistered);
-
-       /**
-       * Sets the Cbs And Etws UserEvent.
-       *
-       * @since                        3.0
-       * @param[in]    msgType     message type
-       * @param[in]    pEvent      message Event
-       */
-       void SetCbsAndEtwsUserEvent(_MessageType msgType, Tizen::Base::Object* pEvent);
-
-       // for incoming CBS/Etws
-       static void IncomingCbsMessageCallback(msg_handle_t hMsgHandle, msg_struct_t newMsg, void* pUserParam);
-
-       // for incoming Wap push
-       static void IncomingWapPushMessageCallback(msg_handle_t hMsgHandle, const char* pHeader, const char* pBody, int bodyLength, void* pUserParam);
+       bool GetInComingSmsCallback();
 
        //get cb message language type
        static Tizen::Base::String GetCbsLanguageType(byte codingScheme);
@@ -252,8 +238,6 @@ private:
        bool   __incomingSmsCallbackRegistered;
        Tizen::Base::Collection::MultiHashMap __messageMap;
        Tizen::Base::Runtime::Mutex  __msgMutex;
-       Tizen::Base::Object* __pCbsUserEvent;
-       Tizen::Base::Object* __pEtwsUserEvent;
        static bool __destroyed;
 }; // _SmsMmsCallbackHandler
 
index 0e5afd6..eed31db 100644 (file)
@@ -33,6 +33,7 @@
 #include "FMsg_Types.h"
 #include "FMsg_WapPushManagerImpl.h"
 #include "FMsg_SmsMmsCallbackHandler.h"
+#include "FMsg_MessagingIpcProxy.h"
 
 using namespace Tizen::Base;
 using namespace Tizen::Messaging;
@@ -78,14 +79,8 @@ result
 _WapPushManagerImpl::AddWapPushEventListener(const Tizen::Base::String& wapApplicationId, const IWapPushEventListener& listener)
 {
        result r = E_SUCCESS;
-       int err = MSG_SUCCESS;
-       char* pWapAppId = null;
 
        ClearLastResult();
-
-       pWapAppId = _StringConverter::CopyToCharArrayN(wapApplicationId);
-       SysTryCatch(NID_MSG, pWapAppId != null, r = E_OUT_OF_MEMORY, r, "memory allocation failed");
-
        // set event
        if (!__pWapPushReceiveEvent)
        {
@@ -101,38 +96,13 @@ _WapPushManagerImpl::AddWapPushEventListener(const Tizen::Base::String& wapAppli
        r = __pWapPushReceiveEvent->AddListener(listener, true);
        SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "failed to add push listner.");
 
-       SysTryCatch(NID_MSG, _SmsMmsCallbackHandler::GetInstance() != null, r = E_OUT_OF_MEMORY, r, "failed to get msg handle.");
-
-       // open message handle
-       err = _SmsMmsCallbackHandler::GetInstance()->OpenMessageHandle(__msgHandle);
-
-       r = ConvertException(err);
-       SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "[%s] Failed to Open Message Handle", GetErrorMessage(r));
-
-       SysLog(NID_MSG, "The value of __msgHandle is [%d]", __msgHandle);
-
-       // check value of msg handle
-       SysTryCatch(NID_MSG, __msgHandle > 0, r = E_SYSTEM, r, "failed to get msg handle.");
-
-       err = msg_reg_push_message_callback(__msgHandle, &_SmsMmsCallbackHandler::IncomingWapPushMessageCallback, pWapAppId, (void*) __pWapPushReceiveEvent);
-
-       r = ConvertException(err);
-       SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "[%s] Failed to Add WapPush EventListener.", GetErrorMessage(r));
-
-       if (pWapAppId)
-       {
-               delete[] pWapAppId;
-               pWapAppId = null;
-       }
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->AddWapPushEventListener(wapApplicationId, __pWapPushReceiveEvent);
 
        return r;
 
 CATCH:
-       if (pWapAppId)
-       {
-               delete[] pWapAppId;
-               pWapAppId = null;
-       }
+
 
        if (__pWapPushReceiveEvent)
        {
@@ -167,149 +137,22 @@ result
 _WapPushManagerImpl::RegisterCondition(const Tizen::Base::String& wapApplicationId, const Tizen::Base::String& contentType)
 {
        result r = E_SUCCESS;
-       int err = MSG_SUCCESS;
-       char* pWapAppId = null;
-       char* pContentType = null;
-       msg_struct_t pushInfo = null;
-       char* pPkgName = null;
-
-       ClearLastResult();
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->RegisterCondition(wapApplicationId,contentType);
 
-       pWapAppId = _StringConverter::CopyToCharArrayN(wapApplicationId);
-       SysTryCatch(NID_MSG, pWapAppId != null, r = E_OUT_OF_MEMORY, r, "memory allocation failed");
-
-       pContentType = _StringConverter::CopyToCharArrayN(contentType);
-       SysTryCatch(NID_MSG, pContentType != null, r = E_OUT_OF_MEMORY, r, "memory allocation failed");
-
-       err = app_get_package(&pPkgName);
-       SysTryCatch(NID_MSG, err == APP_ERROR_NONE && pPkgName != null, r = E_SYSTEM, r, "[%s] Failed to Open Message Handle", GetErrorMessage(r));
-
-       pushInfo = msg_create_struct(MSG_STRUCT_PUSH_CONFIG_INFO);
-       SysTryCatch(NID_MSG, pushInfo != null, r = E_SYSTEM, r, "[%s] Failed to create push data info", GetErrorMessage(r));
-       msg_set_str_value(pushInfo, MSG_PUSH_CONFIG_CONTENT_TYPE_STR, (char *)pContentType, MAX_WAPPUSH_CONTENT_TYPE_LEN);
-       msg_set_str_value(pushInfo, MSG_PUSH_CONFIG_APPLICATON_ID_STR, (char *)pWapAppId, MAX_WAPPUSH_ID_LEN);
-       msg_set_str_value(pushInfo, MSG_PUSH_CONFIG_PACKAGE_NAME_STR, pPkgName, MSG_FILEPATH_LEN_MAX);
-       free(pPkgName);
-       pPkgName = null;
-
-       err = msg_add_push_event(__msgHandle, pushInfo);
-       msg_release_struct(&pushInfo);
-
-       r = ConvertException(err);
-       SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "[%s] Failed to register Condition for wap push.", GetErrorMessage(r));
-
-       if (pWapAppId)
-       {
-               delete[] pWapAppId;
-               pWapAppId = null;
-       }
-
-       if (pContentType)
-       {
-               delete[] pContentType;
-               pContentType = null;
-       }
        return r;
 
-CATCH:
-       if (pPkgName)
-       {
-               free(pPkgName);
-               pPkgName = null;
-       }
-       
-       if (pushInfo)
-       {       
-               msg_release_struct(&pushInfo);
-               pushInfo = null;
-       }
-
-       if (pWapAppId)
-       {
-               delete[] pWapAppId;
-               pWapAppId = null;
-       }
-
-       if (pContentType)
-       {
-               delete[] pContentType;
-               pContentType = null;
-       }
-       return r;
 }
 
 result
 _WapPushManagerImpl::UnregisterCondition(const Tizen::Base::String& wapApplicationId, const Tizen::Base::String& contentType)
 {
        result r = E_SUCCESS;
-       int err = MSG_SUCCESS;
-       char* pWapAppId = null;
-       char* pContentType = null;
-       msg_struct_t pushInfo = null;
-       char* pPkgName = null;
-
-       ClearLastResult();
-
-       pWapAppId = _StringConverter::CopyToCharArrayN(wapApplicationId);
-       SysTryCatch(NID_MSG, pWapAppId != null, r = E_OUT_OF_MEMORY, r, "memory allocation failed");
-
-       pContentType = _StringConverter::CopyToCharArrayN(contentType);
-       SysTryCatch(NID_MSG, pContentType != null, r = E_OUT_OF_MEMORY, r, "memory allocation failed");
-
-       err = app_get_package(&pPkgName);
-       SysTryCatch(NID_MSG, err == APP_ERROR_NONE, r = E_SYSTEM, r, "[%s] Failed to Open Message Handle", GetErrorMessage(r));
-
-       pushInfo = msg_create_struct(MSG_STRUCT_PUSH_CONFIG_INFO);
-       msg_set_str_value(pushInfo, MSG_PUSH_CONFIG_CONTENT_TYPE_STR, pContentType, MAX_WAPPUSH_CONTENT_TYPE_LEN);
-       msg_set_str_value(pushInfo, MSG_PUSH_CONFIG_APPLICATON_ID_STR, pWapAppId, MAX_WAPPUSH_ID_LEN);
-       msg_set_str_value(pushInfo, MSG_PUSH_CONFIG_PACKAGE_NAME_STR, pPkgName, MSG_FILEPATH_LEN_MAX);
-       free(pPkgName);
-       pPkgName = null;
-       
-       err = msg_delete_push_event(__msgHandle, pushInfo);
-       msg_release_struct(&pushInfo);
-
-       r = ConvertException(err);
-       SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "[%s] Failed to Unregister Condition for wap push", GetErrorMessage(r));
-
-       if (pWapAppId)
-       {
-               delete[] pWapAppId;
-               pWapAppId = null;
-       }
+       SysTryReturnResult(NID_MSG, _MessagingProxy::GetInstance()!= null, E_OUT_OF_MEMORY, "Failed to get msg proxy instance");
+       r = _MessagingProxy::GetInstance()->UnregisterCondition(wapApplicationId,contentType);
 
-       if (pContentType)
-       {
-               delete[] pContentType;
-               pContentType = null;
-       }
        return r;
 
-CATCH:
-       if (pPkgName)
-       {
-               free(pPkgName);
-               pPkgName = null;
-       }
-
-       if (pushInfo)
-       {       
-               msg_release_struct(&pushInfo);
-               pushInfo = null;
-       }       
-
-       if (pWapAppId)
-       {
-               delete[] pWapAppId;
-               pWapAppId = null;
-       }
-
-       if (pContentType)
-       {
-               delete[] pContentType;
-               pContentType = null;
-       }
-       return r;
 }
 
 result
diff --git a/src/inc/FMsg_MessagingMessageTypes.h b/src/inc/FMsg_MessagingMessageTypes.h
new file mode 100644 (file)
index 0000000..c990722
--- /dev/null
@@ -0,0 +1,68 @@
+//
+// Open Service Platform
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+//
+// 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.
+//
+/**
+ * @file       FMsg_MessagingMessageTypes.h
+ * @brief      This is the header file for the Messaging's IPC messages.
+ *
+ * This header file contains the declarations of the IPC messages for the wap push.
+ */
+
+#include <ipc/ipc_message_macros.h>
+#include <FIo_IpcCommonParamTraits.h> // must be modified.
+#include <FIo_IpcMessageStart.h>
+//#include "FMsg_MessagingIpcParamTraits.h"
+
+#ifndef MESSAGING_IPC_SERVER_NAME
+#define MESSAGING_IPC_SERVER_NAME "osp.messaging.ipcserver.msg"
+#endif
+#define IPC_MESSAGE_START MessagingMsgStart
+/* Sync  */
+       /* WapPush */
+       IPC_SYNC_MESSAGE_CONTROL1_1(MessagingMsgStart_addWapPushEventListener, Tizen::Base::String /* wapApplicationId */, unsigned long /* result */)
+       //IPC_SYNC_MESSAGE_CONTROL1_1(MessagingMsgStart_removeWapPushEventListener, Tizen::Base::String /* wapApplicationId */, unsigned long /* result */)
+       IPC_SYNC_MESSAGE_CONTROL2_1(MessagingMsgStart_registerCondition, Tizen::Base::String /* wapApplicationId */, Tizen::Base::String /* contentType*/, unsigned long /* result */)
+       IPC_SYNC_MESSAGE_CONTROL2_1(MessagingMsgStart_unregisterCondition, Tizen::Base::String /* wapApplicationId */, Tizen::Base::String /* contentType*/, unsigned long /* result */)
+
+
+       /* etc control */ 
+       IPC_SYNC_MESSAGE_CONTROL0_1(MessagingMsgStart_openCbsHandle, unsigned long /* result */);
+       IPC_SYNC_MESSAGE_CONTROL0_1(MessagingMsgStart_openMsgHandle, unsigned long /* result */);
+
+       IPC_SYNC_MESSAGE_CONTROL1_1(MessagingMsgStart_addSmsEventListener, int /* port */, unsigned long /* result */)
+       IPC_SYNC_MESSAGE_CONTROL1_1(MessagingMsgStart_addCbsEtwsEventListener, bool /* enabled */, unsigned long /* result */)
+
+       
+       IPC_SYNC_MESSAGE_CONTROL1_1(MessagingMsgStart_setSavingToCbsBoxEnabled, bool /* enable */, unsigned long /* result */);
+       IPC_SYNC_MESSAGE_CONTROL0_2(MessagingMsgStart_isCbsEnabled, bool /* isCbsEnabled */, unsigned long /* result */);
+       IPC_SYNC_MESSAGE_CONTROL1_1(MessagingMsgStart_setCbsEnabled, bool /* enable */, unsigned long /* result */);
+       IPC_SYNC_MESSAGE_CONTROL4_1(MessagingMsgStart_addCbsChannel , int /* from */, int /* to */, Tizen::Base::String /* name */, bool /* activate */, unsigned long /* result */)
+       IPC_SYNC_MESSAGE_CONTROL2_1(MessagingMsgStart_removeCbsChannel, int /* from */, int /* to */, unsigned long /* result */)
+       IPC_SYNC_MESSAGE_CONTROL2_3(MessagingMsgStart_getCbsChannelN, int /* from */, int /* to */,bool /* isActive */, Tizen::Base::String /* channelName */, unsigned long /* result */)
+       IPC_SYNC_MESSAGE_CONTROL0_2(MessagingMsgStart_getCbsChannelListN, Tizen::Base::Collection::ArrayList /*pCbsList*/, unsigned long /* result */)  
+       IPC_SYNC_MESSAGE_CONTROL4_1(MessagingMsgStart_updateCbsChannel,  int /* from */, int /* to */, Tizen::Base::String /* name */, bool /* isChannelEnable */, unsigned long /* result */)
+
+
+/* Async */
+       /* WapPush */
+       IPC_MESSAGE_CONTROL3(MessagingMsgStart_wapPushEventCallBack, Tizen::Base::String /* header */, Tizen::Base::ByteBuffer /* body */, int /* bodyLength */)
+       /* Sms */
+       IPC_MESSAGE_CONTROL4(MessagingMsgStart_incomingSmsCallback, int/* port */, int /* displayTime */, Tizen::Base::String /* message */, Tizen::Base::String/* senderAddress */)
+       IPC_MESSAGE_CONTROL5(MessagingMsgStart_incomingEtwsCallback, int /* tempReceivedTime */, Tizen::Base::ByteBuffer /* msgSerialNumber */, Tizen::Base::ByteBuffer /* msgSecurityInfo */, int /* messgeId */, Tizen::Base::ByteBuffer /* etwsMsgWarningType */)
+       IPC_MESSAGE_CONTROL6(MessagingMsgStart_incomingCbsCallback, Tizen::Base::String /* message */, Tizen::Base::ByteBuffer /* msgSerialNumber */, int /* tempReceivedTime */, int /* messgeId */, int /* dataCodingScheme */, Tizen::Base::String /* messageLanguage */)
+
+
+
similarity index 100%
rename from src/FMsg_Types.h
rename to src/inc/FMsg_Types.h