57 lines
1.4 KiB
C#
57 lines
1.4 KiB
C#
using System;
|
|
using System.Runtime.Remoting.Messaging;
|
|
|
|
namespace System.Runtime.Remoting.Contexts
|
|
{
|
|
// Token: 0x020003CC RID: 972
|
|
internal class SynchronizedServerContextSink : IMessageSink
|
|
{
|
|
// Token: 0x0600264A RID: 9802 RVA: 0x0007E4BC File Offset: 0x0007C6BC
|
|
public SynchronizedServerContextSink(IMessageSink next, SynchronizationAttribute att)
|
|
{
|
|
this._att = att;
|
|
this._next = next;
|
|
}
|
|
|
|
// Token: 0x17000728 RID: 1832
|
|
// (get) Token: 0x0600264B RID: 9803 RVA: 0x0007E4D4 File Offset: 0x0007C6D4
|
|
public IMessageSink NextSink
|
|
{
|
|
get
|
|
{
|
|
return this._next;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600264C RID: 9804 RVA: 0x0007E4DC File Offset: 0x0007C6DC
|
|
public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink)
|
|
{
|
|
this._att.AcquireLock();
|
|
replySink = new SynchronizedContextReplySink(replySink, this._att, false);
|
|
return this._next.AsyncProcessMessage(msg, replySink);
|
|
}
|
|
|
|
// Token: 0x0600264D RID: 9805 RVA: 0x0007E508 File Offset: 0x0007C708
|
|
public IMessage SyncProcessMessage(IMessage msg)
|
|
{
|
|
this._att.AcquireLock();
|
|
IMessage message;
|
|
try
|
|
{
|
|
message = this._next.SyncProcessMessage(msg);
|
|
}
|
|
finally
|
|
{
|
|
this._att.ReleaseLock();
|
|
}
|
|
return message;
|
|
}
|
|
|
|
// Token: 0x04000EEE RID: 3822
|
|
private IMessageSink _next;
|
|
|
|
// Token: 0x04000EEF RID: 3823
|
|
private SynchronizationAttribute _att;
|
|
}
|
|
}
|