public void Store(IServerChannelSink sink, Object state)
{
if (_stack == null)
{
throw new RemotingException(
Environment.GetResourceString(
"Remoting_Channel_StoreOnEmptySinkStack"));
}
// find this sink on the stack
do
{
if (_stack.Sink == sink)
break;
_stack = _stack.PrevStack;
} while (_stack != null);
if (_stack.Sink == null)
{
throw new RemotingException(
Environment.GetResourceString("Remoting_Channel_StoreOnSinkStackWithoutPush"));
}
SinkStack remStack = new SinkStack();
remStack.PrevStack = _rememberedStack;
remStack.Sink = sink;
remStack.State = state;
_rememberedStack = remStack;
Pop(sink);
} // Store