using System;
using System.Runtime.InteropServices;
namespace System.Runtime.Remoting.Channels
{
/// Provides the stack functionality for a stack of server channel sinks.
// Token: 0x020003AE RID: 942
[ComVisible(true)]
public interface IServerChannelSinkStack : IServerResponseChannelSinkStack
{
/// Pops the information associated with all the sinks from the sink stack up to and including the specified sink.
/// Information generated on the request side and associated with the specified sink.
/// The sink to remove and return from the sink stack.
/// The immediate caller does not have infrastructure permission.
// Token: 0x060025C2 RID: 9666
object Pop(IServerChannelSink sink);
/// Pushes the specified sink and information associated with it onto the sink stack.
/// The sink to push onto the sink stack.
/// Information generated on the request side that is needed on the response side.
/// The immediate caller does not have infrastructure permission.
// Token: 0x060025C3 RID: 9667
void Push(IServerChannelSink sink, object state);
/// Presents a callback delegate to handle a callback after a message has been dispatched asynchronously.
/// The status and state of an asynchronous operation on a remote object.
///
///
///
// Token: 0x060025C4 RID: 9668
void ServerCallback(IAsyncResult ar);
/// Stores a message sink and its associated state for later asynchronous processing.
/// A server channel sink.
/// The state associated with .
// Token: 0x060025C5 RID: 9669
void Store(IServerChannelSink sink, object state);
/// Stores a message sink and its associated state, and then dispatches a message asynchronously, using the sink just stored and any other stored sinks.
/// A server channel sink.
/// The state associated with .
// Token: 0x060025C6 RID: 9670
void StoreAndDispatch(IServerChannelSink sink, object state);
}
}