Separate the metadata
authorSunwook Bae <sunwook45.bae@samsung.com>
Thu, 11 Apr 2013 04:44:20 +0000 (13:44 +0900)
committerSunwook Bae <sunwook45.bae@samsung.com>
Thu, 11 Apr 2013 04:44:20 +0000 (13:44 +0900)
Change-Id: Ic08f7d7fb14e511020d119fc034a13562fb78260
Signed-off-by: Sunwook Bae <sunwook45.bae@samsung.com>
inc/FIo_MessagePortService.h
inc/FIo_MessagePortStub.h
src/FIo_MessagePortService.cpp
src/FIo_MessagePortStub.cpp

index 68f0ea7..647f15c 100644 (file)
@@ -55,7 +55,7 @@ public:
 
        result UnregisterMessagePort(int clientId);
 
-       virtual int SendMessage(const BundleBuffer& buffer);
+       virtual int SendMessage(const BundleBuffer& metadata, const BundleBuffer& buffer);
 
 private:
        Tizen::Base::String GetKey(const BundleBuffer& buffer, bool local = true) const;
index 5510bc7..16a63a5 100644 (file)
@@ -53,7 +53,7 @@ public:
 
        virtual result Construct(void);
 
-       result SendMessage(int clientId, const BundleBuffer& buffer);
+       result SendMessage(int clientId, const BundleBuffer& metadata, const BundleBuffer& buffer);
 
        void SetMessagePortService(_MessagePortService& service);
 
@@ -62,7 +62,7 @@ private:
 
        bool OnCheckRemotePort(const BundleBuffer& buffer, int* pResult);
 
-       bool OnSendMessage(const BundleBuffer& buffer, int* pResult);
+       bool OnSendMessage(const BundleBuffer& metadata, const BundleBuffer& buffer, int* pResult);
 
        virtual void OnIpcRequestReceived(IpcServer& server, const IPC::Message& message);
 
index 6fa1aea..9649a05 100644 (file)
@@ -139,8 +139,8 @@ _MessagePortService::CheckRemotePort(const BundleBuffer& buffer)
 
        if (trusted.Equals(L"TRUE", false))
        {
-               String localAppId = bundle_get_val(buffer.b, LOCAL_APPID);
-               String remoteAppId = bundle_get_val(buffer.b, REMOTE_APPID);
+               String localAppId = bundle_get_val(b, LOCAL_APPID);
+               String remoteAppId = bundle_get_val(b, REMOTE_APPID);
 
                // Check the preloaded
                if (!IsPreloaded(localAppId, remoteAppId))
@@ -205,14 +205,14 @@ _MessagePortService::UnregisterMessagePort(int clientId)
 }
 
 int
-_MessagePortService::SendMessage(const BundleBuffer& buffer)
+_MessagePortService::SendMessage(const BundleBuffer& metadata, const BundleBuffer& buffer)
 {
        result r = E_SUCCESS;
        int clientId = 0;
 
-       bundle* b = buffer.b;
+       bundle* b = metadata.b;
 
-       String key = GetKey(buffer, false);
+       String key = GetKey(metadata, false);
        SysLog(NID_IO, "Sends a message to a remote message port [%ls]", key.GetPointer());
 
        String trustedMessage(bundle_get_val(b, TRUSTED_MESSAGE));
@@ -230,8 +230,8 @@ _MessagePortService::SendMessage(const BundleBuffer& buffer)
 
        if (trustedMessage.Equals(L"TRUE", false))
        {
-               String localAppId = bundle_get_val(buffer.b, LOCAL_APPID);
-               String remoteAppId = bundle_get_val(buffer.b, REMOTE_APPID);
+               String localAppId = bundle_get_val(b, LOCAL_APPID);
+               String remoteAppId = bundle_get_val(b, REMOTE_APPID);
 
                // Check the preloaded
                if (!IsPreloaded(localAppId, remoteAppId))
@@ -245,7 +245,7 @@ _MessagePortService::SendMessage(const BundleBuffer& buffer)
                }
        }
 
-       r = __pStub->SendMessage(clientId, buffer);
+       r = __pStub->SendMessage(clientId, metadata, buffer);
        SysTryReturn(NID_IO, r == E_SUCCESS, MESSAGEPORT_ERROR_IO_ERROR, E_SYSTEM,
                                "[E_SYSTEM] Failed to send a message.");
 
@@ -258,15 +258,17 @@ _MessagePortService::GetKey(const BundleBuffer& buffer, bool local) const
        const char* pAppId = null; 
        const char* pPortName = null; 
 
+       bundle* b = buffer.b;
+
        if (local)
        {
-               pAppId = bundle_get_val(buffer.b, LOCAL_APPID);
-               pPortName = bundle_get_val(buffer.b, LOCAL_PORT);
+               pAppId = bundle_get_val(b, LOCAL_APPID);
+               pPortName = bundle_get_val(b, LOCAL_PORT);
        }
        else
        {
-               pAppId = bundle_get_val(buffer.b, REMOTE_APPID);
-               pPortName = bundle_get_val(buffer.b, REMOTE_PORT);
+               pAppId = bundle_get_val(b, REMOTE_APPID);
+               pPortName = bundle_get_val(b, REMOTE_PORT);
        }
 
        String key(pAppId);
index 4da0287..d244a9d 100644 (file)
@@ -107,23 +107,24 @@ _MessagePortStub::OnCheckRemotePort(const BundleBuffer& buffer, int* pResult)
 }
 
 bool
-_MessagePortStub::OnSendMessage(const BundleBuffer& buffer, int* pResult)
+_MessagePortStub::OnSendMessage(const BundleBuffer& metadata, const BundleBuffer& buffer, int* pResult)
 {
        SysAssertf(__pService != null, "MessagePort service has not been initialized.\n");
 
-       *pResult = __pService->SendMessage(buffer);
+       *pResult = __pService->SendMessage(metadata, buffer);
 
+       bundle_free(metadata.b);
        bundle_free(buffer.b);
 
        return true;
 }
 
 result
-_MessagePortStub::SendMessage(int clientId, const BundleBuffer& buffer)
+_MessagePortStub::SendMessage(int clientId, const BundleBuffer& metadata, const BundleBuffer& buffer)
 {
        SysAssertf(__pService != null, "MessagePort service has not been initialized.\n");
 
-       result r = __pIpcServer->SendResponse(clientId, new MessagePort_sendMessageAsync(buffer));
+       result r = __pIpcServer->SendResponse(clientId, new MessagePort_sendMessageAsync(metadata, buffer));
 
        SysTryReturnResult(NID_IO, r == E_SUCCESS, r, "Failed to send a response message.");