Code:
/ 4.0 / 4.0 / 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. // ==++== // // 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
- FrameworkElement.cs
- ScriptingSectionGroup.cs
- DataMemberListEditor.cs
- DivideByZeroException.cs
- HMACSHA1.cs
- CodeDirectionExpression.cs
- CodeCompiler.cs
- SchemaSetCompiler.cs
- ObjectStateEntryDbDataRecord.cs
- SizeValueSerializer.cs
- TableMethodGenerator.cs
- UrlPath.cs
- UpdateTracker.cs
- PreservationFileReader.cs
- ImageKeyConverter.cs
- CellParagraph.cs
- NameTable.cs
- ShimAsPublicXamlType.cs
- BigIntegerStorage.cs
- WindowsPen.cs
- XmlQueryOutput.cs
- ProxyWebPart.cs
- PrtCap_Reader.cs
- TemplateLookupAction.cs
- PropertyItemInternal.cs
- AppliedDeviceFiltersDialog.cs
- AttachmentService.cs
- BindingMAnagerBase.cs
- ProvidePropertyAttribute.cs
- NotSupportedException.cs
- TemplatingOptionsDialog.cs
- Comparer.cs
- LateBoundChannelParameterCollection.cs
- Dispatcher.cs
- SafeNativeMethods.cs
- ExtractorMetadata.cs
- TableLayoutColumnStyleCollection.cs
- ProcessModelInfo.cs
- Point4DConverter.cs
- LongCountAggregationOperator.cs
- AttributeCollection.cs
- CompositeDataBoundControl.cs
- OciLobLocator.cs
- SharedUtils.cs
- EpmCustomContentDeSerializer.cs
- FillErrorEventArgs.cs
- ContextStaticAttribute.cs
- DataViewSettingCollection.cs
- HandledEventArgs.cs
- RowUpdatedEventArgs.cs
- PictureBoxDesigner.cs
- SafeSystemMetrics.cs
- UrlMapping.cs
- CurrentChangingEventManager.cs
- TypeHelpers.cs
- Wildcard.cs
- DataServices.cs
- OrderedEnumerableRowCollection.cs
- TreeNodeClickEventArgs.cs
- DrawingVisual.cs
- CompositeActivityDesigner.cs
- MailDefinition.cs
- ParameterCollection.cs
- PreviewPageInfo.cs
- SR.cs
- TextCollapsingProperties.cs
- SHA384.cs
- ControlCachePolicy.cs
- URI.cs
- wgx_commands.cs
- IndexerNameAttribute.cs
- GPStream.cs
- ListViewItemSelectionChangedEvent.cs
- GridViewDeleteEventArgs.cs
- PointHitTestParameters.cs
- SimpleHandlerFactory.cs
- CompilationPass2TaskInternal.cs
- SqlConnectionFactory.cs
- VBIdentifierNameEditor.cs
- ParagraphResult.cs
- HtmlTernaryTree.cs
- SafeHandle.cs
- Pair.cs
- MemberJoinTreeNode.cs
- serverconfig.cs
- Camera.cs
- GenericParameterDataContract.cs
- ListItemParagraph.cs
- PrivacyNoticeBindingElementImporter.cs
- FunctionNode.cs
- SiteMap.cs
- ExpressionList.cs
- GeneralTransform3DGroup.cs
- XmlWriter.cs
- TcpWorkerProcess.cs
- FeatureSupport.cs
- BrowserCapabilitiesFactory.cs
- StringFormat.cs
- ToggleButtonAutomationPeer.cs
- SplayTreeNode.cs