From: Junghoon Park Date: Thu, 22 Feb 2018 00:36:07 +0000 (+0900) Subject: Find services using instance id X-Git-Tag: accepted/tizen/unified/20180302.061550~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cb28aaa44bf24c0f02f14f64ef29eed6541900dd;p=platform%2Fcore%2Fappfw%2Ftidl.git Find services using instance id - Require: https://review.tizen.org/gerrit/#/c/170718/ Change-Id: I5521a93a157b1417748ee40197254b81f55d24ca Signed-off-by: Junghoon Park --- diff --git a/idlc/cs_gen/cs_cb_stub_interop.h b/idlc/cs_gen/cs_cb_stub_interop.h index 3989132..c6f770e 100644 --- a/idlc/cs_gen/cs_cb_stub_interop.h +++ b/idlc/cs_gen/cs_cb_stub_interop.h @@ -3,17 +3,17 @@ const char* cs_cb_stub_interop = R"__cs_cb( internal static partial class Stub { - //typedef void (*rpc_port_stub_connected_event_cb)(const char *sender, void* data); + //typedef void (*rpc_port_stub_connected_event_cb)(const char *sender, const char *instance, void* data); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate void ConnectedEventCallback(string sender, IntPtr data); + internal delegate void ConnectedEventCallback(string sender, string instance, IntPtr data); - //typedef void (* rpc_port_stub_disconnected_event_cb) (const char* sender, void* data); + //typedef void (* rpc_port_stub_disconnected_event_cb) (const char* sender, const char *instance, void* data); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate void DisconnectedEventCallback(string sender, IntPtr data); + internal delegate void DisconnectedEventCallback(string sender, string instance, IntPtr data); - //typedef void (* rpc_port_stub_received_event_cb) (const char* sender, rpc_port_h port, void* data); + //typedef void (* rpc_port_stub_received_event_cb) (const char* sender, const char *instance, rpc_port_h port, void* data); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate int ReceivedEventCallback(string sender, IntPtr port, IntPtr data); + internal delegate int ReceivedEventCallback(string sender, string instance, IntPtr port, IntPtr data); //int rpc_port_stub_create(rpc_port_stub_h* h, const char* port_name); [DllImport(Libraries.RpcPort, EntryPoint = "rpc_port_stub_create")] diff --git a/idlc/cs_gen/cs_stub_gen.cc b/idlc/cs_gen/cs_stub_gen.cc index 1c7d2e7..4558f74 100644 --- a/idlc/cs_gen/cs_stub_gen.cc +++ b/idlc/cs_gen/cs_stub_gen.cc @@ -106,6 +106,11 @@ void CsStubGen::GenServiceBase(std::ofstream& stream, const Interface& iface) { " get; internal set;\n" \ " }\n" \ "\n" \ + " public string Instance\n" \ + " {\n" \ + " get; internal set;\n" \ + " }\n" \ + "\n" \ " protected ServiceBase()\n" \ " {\n" \ " }\n" \ @@ -132,7 +137,7 @@ void CsStubGen::GenDeclarations(std::ofstream& stream, void CsStubGen::GenReceivedEvent(std::ofstream& stream, const Interface& iface) { const char method_front[] = - "private int OnReceivedEvent(string sender, IntPtr port, IntPtr data)\n" \ + "private int OnReceivedEvent(string sender, string instance, IntPtr port, IntPtr data)\n" \ "{\n" \ " int ret = Interop.LibRPCPort.Parcel.CreateFromPort(out IntPtr p, port);\n" \ "\n" \ @@ -145,7 +150,7 @@ void CsStubGen::GenReceivedEvent(std::ofstream& stream, const Interface& iface) "\n" \ " foreach (var i in _services)\n" \ " {\n" \ - " if (i.Sender.Equals(sender))\n" \ + " if (i.Instance.Equals(instance))\n" \ " {\n" \ " b = i;\n" \ " break;\n" \ @@ -254,10 +259,11 @@ void CsStubGen::GenInvocation(std::ofstream& stream, const Declaration& decl) { void CsStubGen::GenConnectedEvent(std::ofstream& stream) { const char method[] = - "private void OnConnectedEvent(string sender, IntPtr data)\n" \ + "private void OnConnectedEvent(string sender, string instance, IntPtr data)\n" \ "{\n" \ " ServiceBase s = Activator.CreateInstance(_serviceType) as ServiceBase;\n" \ " s.Sender = sender;\n" \ + " s.Instance = instance;\n" \ " s.OnCreate();\n" \ " _services.Add(s);\n" \ "}\n"; @@ -266,11 +272,11 @@ void CsStubGen::GenConnectedEvent(std::ofstream& stream) { void CsStubGen::GenDisconnectedEvent(std::ofstream& stream) { const char method[] = - "private void OnDisconnectedEvent(string sender, IntPtr data)\n" \ + "private void OnDisconnectedEvent(string sender, string instance, IntPtr data)\n" \ "{\n" \ " foreach (var i in _services)\n" \ " {\n" \ - " if (i.Sender.Equals(sender))\n" \ + " if (i.Instance.Equals(instance))\n" \ " {\n" \ " i.OnTerminate();\n" \ " _services.Remove(i);\n" \