Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Runtime / Remoting / ClientSponsor.cs / 1 / 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; [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] [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;} } 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; } 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 public TimeSpan Renewal(ILease lease) { BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime); return m_renewalTime; } 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 public override Object InitializeLifetimeService() { return null; } ~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; [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] [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;} } 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; } 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 public TimeSpan Renewal(ILease lease) { BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime); return m_renewalTime; } 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 public override Object InitializeLifetimeService() { return null; } ~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
- ControlValuePropertyAttribute.cs
- BitmapImage.cs
- APCustomTypeDescriptor.cs
- HtmlInputCheckBox.cs
- RegularExpressionValidator.cs
- EventHandlersStore.cs
- ItemCheckedEvent.cs
- ToolStripPanelCell.cs
- DateTimeFormat.cs
- DataGridViewTextBoxEditingControl.cs
- QuerySetOp.cs
- IntSecurity.cs
- StorageMappingItemCollection.cs
- TagMapCollection.cs
- CSharpCodeProvider.cs
- DrawingCollection.cs
- TraceContext.cs
- DataContractSerializerFaultFormatter.cs
- AnnotationAdorner.cs
- TypeResolver.cs
- ScriptManager.cs
- NativeObjectSecurity.cs
- HttpRawResponse.cs
- XmlToDatasetMap.cs
- NonVisualControlAttribute.cs
- DropDownButton.cs
- VisualStyleElement.cs
- PenThreadPool.cs
- HttpCapabilitiesBase.cs
- ItemsChangedEventArgs.cs
- PositiveTimeSpanValidatorAttribute.cs
- UInt64Storage.cs
- DiagnosticsConfiguration.cs
- ViewStateException.cs
- OdbcFactory.cs
- ChannelRequirements.cs
- FullTrustAssemblyCollection.cs
- DataGridColumnCollection.cs
- __ComObject.cs
- AssemblyBuilder.cs
- DefaultCommandExtensionCallback.cs
- UnsafeNativeMethods.cs
- DigitShape.cs
- LineProperties.cs
- DataServiceResponse.cs
- TraceSwitch.cs
- DoubleAnimationUsingKeyFrames.cs
- AsyncPostBackTrigger.cs
- TemplateControlCodeDomTreeGenerator.cs
- ExternalException.cs
- UnorderedHashRepartitionStream.cs
- TreeNodeEventArgs.cs
- PolyLineSegment.cs
- UserControlParser.cs
- TextReturnReader.cs
- ItemList.cs
- HttpModulesSection.cs
- OrderedDictionary.cs
- Scanner.cs
- SqlUserDefinedTypeAttribute.cs
- DynamicResourceExtension.cs
- DataContract.cs
- ListControlConvertEventArgs.cs
- TextRenderingModeValidation.cs
- ViewgenGatekeeper.cs
- NumericExpr.cs
- TransactionsSectionGroup.cs
- DataObjectPastingEventArgs.cs
- CustomCategoryAttribute.cs
- CurrentTimeZone.cs
- PrePrepareMethodAttribute.cs
- QueryCorrelationInitializer.cs
- Mouse.cs
- Win32KeyboardDevice.cs
- AlphaSortedEnumConverter.cs
- TemplateNameScope.cs
- XmlAttributeHolder.cs
- ScheduleChanges.cs
- SchemaElementDecl.cs
- ControlCollection.cs
- Properties.cs
- ConstNode.cs
- LogLogRecordHeader.cs
- ICspAsymmetricAlgorithm.cs
- CharacterBuffer.cs
- DataGridCellItemAutomationPeer.cs
- LogPolicy.cs
- SQLDouble.cs
- serverconfig.cs
- ModelEditingScope.cs
- SafeProcessHandle.cs
- PropertyChangedEventArgs.cs
- ThreadExceptionEvent.cs
- UpdatePanelTrigger.cs
- DBCSCodePageEncoding.cs
- ForceCopyBuildProvider.cs
- contentDescriptor.cs
- HorizontalAlignConverter.cs
- VerticalAlignConverter.cs
- WebPartConnectionsCancelVerb.cs