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")]
" get; internal set;\n" \
" }\n" \
"\n" \
+ " public string Instance\n" \
+ " {\n" \
+ " get; internal set;\n" \
+ " }\n" \
+ "\n" \
" protected ServiceBase()\n" \
" {\n" \
" }\n" \
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" \
"\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" \
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";
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" \