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
- SchemaMapping.cs
- StrokeNodeOperations.cs
- OdbcConnectionPoolProviderInfo.cs
- WebHttpSecurityElement.cs
- SortedDictionary.cs
- NamespaceDecl.cs
- SqlReferenceCollection.cs
- PrintDialog.cs
- OleDbPropertySetGuid.cs
- ProcessThreadDesigner.cs
- ColorTransform.cs
- UrlMapping.cs
- Terminate.cs
- SymbolUsageManager.cs
- NativeConfigurationLoader.cs
- HttpCookiesSection.cs
- CommandPlan.cs
- SerializationObjectManager.cs
- SqlFormatter.cs
- DirectionalAction.cs
- ArrayEditor.cs
- Quaternion.cs
- GeneralTransform3DTo2D.cs
- QilList.cs
- SqlParameter.cs
- CategoryEditor.cs
- Mapping.cs
- DefinitionUpdate.cs
- PropertyStore.cs
- DescriptionAttribute.cs
- TextEditorSelection.cs
- CoordinationService.cs
- TaskForm.cs
- ChtmlFormAdapter.cs
- TextSerializer.cs
- DynamicDataManager.cs
- ValidateNames.cs
- TextEditorContextMenu.cs
- OracleDataReader.cs
- DataGridTablesFactory.cs
- ItemList.cs
- MachineSettingsSection.cs
- ServiceTimeoutsBehavior.cs
- MetadataCacheItem.cs
- NavigationPropertySingletonExpression.cs
- WriteStateInfoBase.cs
- PeerPresenceInfo.cs
- WmlCommandAdapter.cs
- DesignOnlyAttribute.cs
- Adorner.cs
- SymbolType.cs
- EmptyWithCancelationCheckWorkItem.cs
- ClientScriptManager.cs
- MarshalByValueComponent.cs
- TypeBuilder.cs
- GiveFeedbackEvent.cs
- ProcessHostMapPath.cs
- ProgressBar.cs
- nulltextcontainer.cs
- LinearKeyFrames.cs
- ProfileService.cs
- DesignerVerbCollection.cs
- DataTable.cs
- StringAttributeCollection.cs
- XmlMembersMapping.cs
- HttpBindingExtension.cs
- TemplateModeChangedEventArgs.cs
- WindowsImpersonationContext.cs
- LoginView.cs
- SQLDecimal.cs
- TableItemStyle.cs
- OperationCanceledException.cs
- CompileXomlTask.cs
- QilFunction.cs
- DBConnectionString.cs
- List.cs
- LayoutEditorPart.cs
- BinaryExpression.cs
- MetadataWorkspace.cs
- DragAssistanceManager.cs
- StoreItemCollection.cs
- XmlName.cs
- TraceContext.cs
- LocatorManager.cs
- ManagementBaseObject.cs
- SmtpTransport.cs
- RecordManager.cs
- FastPropertyAccessor.cs
- InputLanguageProfileNotifySink.cs
- DebuggerAttributes.cs
- HtmlTableRow.cs
- SafeFileMappingHandle.cs
- ServiceObjectContainer.cs
- WebPartVerb.cs
- ExpressionsCollectionConverter.cs
- XsdDateTime.cs
- ConfigurationManagerInternalFactory.cs
- XmlRootAttribute.cs
- GAC.cs
- SQLGuid.cs