Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Remoting / ClientSponsor.cs / 1305376 / ClientSponsor.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//+----------------------------------------------------------------------------
//
// File: ClientSponsor.cs
//
// Contents: Agent for keeping Server Object's lifetime in [....] with a client's lifetime
//
// History: 8/9/00 [....] Created
//
//+---------------------------------------------------------------------------
namespace System.Runtime.Remoting.Lifetime
{
using System;
using System.Collections;
using System.Security.Permissions;
[System.Security.SecurityCritical] // auto-generated_required
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags=SecurityPermissionFlag.Infrastructure)]
[System.Runtime.InteropServices.ComVisible(true)]
public class ClientSponsor : MarshalByRefObject, ISponsor
{
private Hashtable sponsorTable = new Hashtable(10);
private TimeSpan m_renewalTime = TimeSpan.FromMinutes(2);
public ClientSponsor()
{
}
public ClientSponsor(TimeSpan renewalTime)
{
this.m_renewalTime = renewalTime;
}
public TimeSpan RenewalTime
{
get{ return m_renewalTime;}
set{ m_renewalTime = value;}
}
[System.Security.SecurityCritical] // auto-generated
public bool Register(MarshalByRefObject obj)
{
BCLDebug.Trace("REMOTE", "ClientSponsor Register "+obj);
ILease lease = (ILease)obj.GetLifetimeService();
if (lease == null)
return false;
lease.Register(this);
lock(sponsorTable)
{
sponsorTable[obj] = lease;
}
return true;
}
[System.Security.SecurityCritical] // auto-generated
public void Unregister(MarshalByRefObject obj)
{
BCLDebug.Trace("REMOTE", "ClientSponsor Unregister "+obj);
ILease lease = null;
lock(sponsorTable)
{
lease = (ILease)sponsorTable[obj];
}
if (lease != null)
lease.Unregister(this);
}
// ISponsor method
[System.Security.SecurityCritical]
public TimeSpan Renewal(ILease lease)
{
BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime);
return m_renewalTime;
}
[System.Security.SecurityCritical] // auto-generated
public void Close()
{
BCLDebug.Trace("REMOTE","ClientSponsor Close");
lock(sponsorTable)
{
IDictionaryEnumerator e = sponsorTable.GetEnumerator();
while(e.MoveNext())
((ILease)e.Value).Unregister(this);
sponsorTable.Clear();
}
}
// Don't create a lease on the sponsor
[System.Security.SecurityCritical]
public override Object InitializeLifetimeService()
{
return null;
}
[System.Security.SecuritySafeCritical] // finalizers should be treated as safe
~ClientSponsor()
{
BCLDebug.Trace("REMOTE","ClientSponsor Finalize");
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RepeaterCommandEventArgs.cs
- RequestQueue.cs
- ExpressionValueEditor.cs
- TreeWalker.cs
- ScrollChangedEventArgs.cs
- MarkupCompiler.cs
- SourceElementsCollection.cs
- NativeMethods.cs
- DataGridTableCollection.cs
- DataPagerField.cs
- Pair.cs
- HttpContextBase.cs
- IpcChannel.cs
- FormatSettings.cs
- SystemIcmpV6Statistics.cs
- FixedLineResult.cs
- TextWriterTraceListener.cs
- XmlTypeMapping.cs
- AppLevelCompilationSectionCache.cs
- DependencyObjectProvider.cs
- WindowsGraphics.cs
- ToolTip.cs
- CultureSpecificCharacterBufferRange.cs
- TimeIntervalCollection.cs
- AppendHelper.cs
- DataGridCellInfo.cs
- PageAsyncTaskManager.cs
- RectangleF.cs
- CounterSample.cs
- DynamicMethod.cs
- BindingExpressionBase.cs
- CollectionViewGroup.cs
- cookie.cs
- PolicyValidationException.cs
- CryptoApi.cs
- NetNamedPipeBindingCollectionElement.cs
- CredentialCache.cs
- SecurityUtils.cs
- SurrogateDataContract.cs
- StickyNoteContentControl.cs
- Equal.cs
- PointLight.cs
- ScrollItemPattern.cs
- OpacityConverter.cs
- Claim.cs
- CommandLineParser.cs
- PagesSection.cs
- ListSortDescription.cs
- TCEAdapterGenerator.cs
- KnownTypes.cs
- Pointer.cs
- CmsUtils.cs
- DataGridViewRowCancelEventArgs.cs
- TokenBasedSetEnumerator.cs
- ServiceSettingsResponseInfo.cs
- ExtensionElementCollection.cs
- RectIndependentAnimationStorage.cs
- XmlPreloadedResolver.cs
- SqlRewriteScalarSubqueries.cs
- HandlerBase.cs
- ResourceSet.cs
- ImportRequest.cs
- HtmlShimManager.cs
- SafeTokenHandle.cs
- WindowsSecurityTokenAuthenticator.cs
- InvalidateEvent.cs
- ButtonPopupAdapter.cs
- HasRunnableWorkflowEvent.cs
- GorillaCodec.cs
- CellRelation.cs
- xdrvalidator.cs
- DiscoveryReferences.cs
- StorageAssociationTypeMapping.cs
- Imaging.cs
- AppDomain.cs
- KeysConverter.cs
- PropagatorResult.cs
- XmlUTF8TextWriter.cs
- ProxyHwnd.cs
- HttpHeaderCollection.cs
- PolicyValidationException.cs
- SimpleLine.cs
- MetadataPropertyAttribute.cs
- PeerPresenceInfo.cs
- AndCondition.cs
- DynamicExpression.cs
- SwitchLevelAttribute.cs
- VirtualPathProvider.cs
- StreamSecurityUpgradeInitiatorBase.cs
- SynchronizationScope.cs
- Size3D.cs
- CodeExporter.cs
- SmtpNtlmAuthenticationModule.cs
- TextTreeUndo.cs
- DataKeyArray.cs
- DockPattern.cs
- SequenceDesigner.cs
- MetricEntry.cs
- UdpDuplexChannel.cs
- TableHeaderCell.cs