Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Base / MS / Internal / IO / Packaging / TrackingMemoryStreamFactory.cs / 1 / TrackingMemoryStreamFactory.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a basic implementation of the ITrackingMemoryStreamFactory interface // // History: // 07/4/2005: IgorBel: Initial creation. // 11/08/2005: BruceMac: Change namespace // //----------------------------------------------------------------------------- using System; using System.IO; using System.Diagnostics; namespace MS.Internal.IO.Packaging { ////// TrackingMemoryStreamFactory class is used in the Sparse Memory Stream to keep track of the memory Usage /// internal class TrackingMemoryStreamFactory : ITrackingMemoryStreamFactory { public MemoryStream Create() { return new TrackingMemoryStream((ITrackingMemoryStreamFactory)this); } public MemoryStream Create(int capacity) { return new TrackingMemoryStream((ITrackingMemoryStreamFactory)this, capacity); } public void ReportMemoryUsageDelta(int delta) { checked{_bufferedMemoryConsumption += delta;} Debug.Assert(_bufferedMemoryConsumption >=0, "we end up having buffers of negative size"); } internal long CurrentMemoryConsumption { get { return _bufferedMemoryConsumption; } } private long _bufferedMemoryConsumption; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a basic implementation of the ITrackingMemoryStreamFactory interface // // History: // 07/4/2005: IgorBel: Initial creation. // 11/08/2005: BruceMac: Change namespace // //----------------------------------------------------------------------------- using System; using System.IO; using System.Diagnostics; namespace MS.Internal.IO.Packaging { ////// TrackingMemoryStreamFactory class is used in the Sparse Memory Stream to keep track of the memory Usage /// internal class TrackingMemoryStreamFactory : ITrackingMemoryStreamFactory { public MemoryStream Create() { return new TrackingMemoryStream((ITrackingMemoryStreamFactory)this); } public MemoryStream Create(int capacity) { return new TrackingMemoryStream((ITrackingMemoryStreamFactory)this, capacity); } public void ReportMemoryUsageDelta(int delta) { checked{_bufferedMemoryConsumption += delta;} Debug.Assert(_bufferedMemoryConsumption >=0, "we end up having buffers of negative size"); } internal long CurrentMemoryConsumption { get { return _bufferedMemoryConsumption; } } private long _bufferedMemoryConsumption; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReadWriteObjectLock.cs
- MasterPageParser.cs
- SafeMILHandle.cs
- XmlSchemaObject.cs
- StrongNameMembershipCondition.cs
- CapabilitiesState.cs
- FileAuthorizationModule.cs
- RawStylusSystemGestureInputReport.cs
- ListViewSortEventArgs.cs
- ItemsChangedEventArgs.cs
- EntryWrittenEventArgs.cs
- ApplicationFileParser.cs
- AutomationAttributeInfo.cs
- ExpressionBuilderCollection.cs
- TypeReference.cs
- ComplexLine.cs
- BinaryNode.cs
- FrameworkContextData.cs
- EntityDataSourceContainerNameConverter.cs
- InputQueueChannelAcceptor.cs
- SQLBinary.cs
- SynchronizedDispatch.cs
- InfiniteTimeSpanConverter.cs
- DesignBindingPicker.cs
- WebConfigurationFileMap.cs
- SmiContext.cs
- ButtonAutomationPeer.cs
- ListView.cs
- XappLauncher.cs
- DragEventArgs.cs
- InternalsVisibleToAttribute.cs
- SimpleTextLine.cs
- ZoneButton.cs
- DataFieldEditor.cs
- HttpDebugHandler.cs
- WindowsClaimSet.cs
- SecurityDocument.cs
- EntityProxyFactory.cs
- DataSet.cs
- SettingsPropertyIsReadOnlyException.cs
- ParameterElement.cs
- XmlTypeAttribute.cs
- BamlTreeNode.cs
- VariableQuery.cs
- DesignerContextDescriptor.cs
- MultilineStringConverter.cs
- ColumnMapTranslator.cs
- BroadcastEventHelper.cs
- DocumentPageViewAutomationPeer.cs
- BinaryFormatterSinks.cs
- SqlExpressionNullability.cs
- DocumentApplicationJournalEntry.cs
- SamlAttributeStatement.cs
- DisposableCollectionWrapper.cs
- Label.cs
- ActiveXSite.cs
- Size3DValueSerializer.cs
- WebReferenceOptions.cs
- RayMeshGeometry3DHitTestResult.cs
- followingsibling.cs
- StrongNameIdentityPermission.cs
- JoinSymbol.cs
- ScrollChrome.cs
- DataControlField.cs
- SpellerHighlightLayer.cs
- WeakEventManager.cs
- HtmlInputButton.cs
- SourceFilter.cs
- BitmapDecoder.cs
- BridgeDataReader.cs
- InvalidDocumentContentsException.cs
- HostingPreferredMapPath.cs
- listviewsubitemcollectioneditor.cs
- PrintDialogException.cs
- TabControlToolboxItem.cs
- EdmConstants.cs
- QuerySafeNavigator.cs
- PrintController.cs
- WorkerRequest.cs
- SharedDp.cs
- PageThemeBuildProvider.cs
- FrameworkObject.cs
- CompositeFontParser.cs
- AttachedAnnotation.cs
- ChannelPool.cs
- ListenerBinder.cs
- ValidationHelper.cs
- EmptyImpersonationContext.cs
- LineGeometry.cs
- Int32Rect.cs
- PeerCollaborationPermission.cs
- SaveFileDialog.cs
- XmlILStorageConverter.cs
- TreeNodeConverter.cs
- SchemaAttDef.cs
- KeyEvent.cs
- TypeBuilderInstantiation.cs
- ActivityExecutorDelegateInfo.cs
- NativeWindow.cs
- XmlnsCompatibleWithAttribute.cs