From 56cfec88fca31552c8e9ca8169bc02c060e97035 Mon Sep 17 00:00:00 2001 From: Sunwook Bae Date: Thu, 11 Apr 2013 13:44:20 +0900 Subject: [PATCH] Separate the metadata Change-Id: Ic08f7d7fb14e511020d119fc034a13562fb78260 Signed-off-by: Sunwook Bae --- inc/FIo_MessagePortService.h | 2 +- inc/FIo_MessagePortStub.h | 4 ++-- src/FIo_MessagePortService.cpp | 26 ++++++++++++++------------ src/FIo_MessagePortStub.cpp | 9 +++++---- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/inc/FIo_MessagePortService.h b/inc/FIo_MessagePortService.h index 68f0ea7..647f15c 100644 --- a/inc/FIo_MessagePortService.h +++ b/inc/FIo_MessagePortService.h @@ -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; diff --git a/inc/FIo_MessagePortStub.h b/inc/FIo_MessagePortStub.h index 5510bc7..16a63a5 100644 --- a/inc/FIo_MessagePortStub.h +++ b/inc/FIo_MessagePortStub.h @@ -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); diff --git a/src/FIo_MessagePortService.cpp b/src/FIo_MessagePortService.cpp index 6fa1aea..9649a05 100644 --- a/src/FIo_MessagePortService.cpp +++ b/src/FIo_MessagePortService.cpp @@ -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); diff --git a/src/FIo_MessagePortStub.cpp b/src/FIo_MessagePortStub.cpp index 4da0287..d244a9d 100644 --- a/src/FIo_MessagePortStub.cpp +++ b/src/FIo_MessagePortStub.cpp @@ -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."); -- 2.7.4