Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / _BufferOffsetSize.cs / 1 / _BufferOffsetSize.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
//
// this class is used by the BeginMultipleSend() API
// to allow a user to send multiple buffers on a socket
//
internal class BufferOffsetSize {
//
// internal members
//
internal byte[] Buffer;
internal int Offset;
internal int Size;
internal BufferOffsetSize(byte[] buffer, int offset, int size, bool copyBuffer) {
GlobalLog.Assert(buffer != null && buffer.Length >= size + offset, "BufferOffsetSize::.ctor|Illegal parameters.");
if (copyBuffer) {
byte[] newBuffer = new byte[size];
System.Buffer.BlockCopy(
buffer, // src
offset, // src index
newBuffer, // dest
0, // dest index
size ); // total size to copy
offset = 0;
buffer = newBuffer;
}
Buffer = buffer;
Offset = offset;
Size = size;
GlobalLog.Print("BufferOffsetSize#" + ValidationHelper.HashString(this) + "::.ctor() copyBuffer:" + copyBuffer.ToString() + " this:[" + ToString() + "]");
}
/*
// Consider removing.
internal BufferOffsetSize(byte[] buffer, int offset, bool copyBuffer)
: this(buffer, offset, buffer.Length - offset, copyBuffer) {
}
*/
/*
// Consider removing.
internal BufferOffsetSize(int size, byte[] buffer, bool copyBuffer)
: this(buffer, 0, size, copyBuffer) {
}
*/
internal BufferOffsetSize(byte[] buffer, bool copyBuffer)
: this(buffer, 0, buffer.Length, copyBuffer) {
}
#if TRAVE
public override string ToString() {
return "BufferOffsetSize#" + ValidationHelper.HashString(this) + " Buffer#" + ValidationHelper.HashString(Buffer) + " Offset:" + Offset.ToString() + " Size:" + Size.ToString();
}
#endif
} // class BufferOffsetSize
} // namespace System.Net
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
//
// this class is used by the BeginMultipleSend() API
// to allow a user to send multiple buffers on a socket
//
internal class BufferOffsetSize {
//
// internal members
//
internal byte[] Buffer;
internal int Offset;
internal int Size;
internal BufferOffsetSize(byte[] buffer, int offset, int size, bool copyBuffer) {
GlobalLog.Assert(buffer != null && buffer.Length >= size + offset, "BufferOffsetSize::.ctor|Illegal parameters.");
if (copyBuffer) {
byte[] newBuffer = new byte[size];
System.Buffer.BlockCopy(
buffer, // src
offset, // src index
newBuffer, // dest
0, // dest index
size ); // total size to copy
offset = 0;
buffer = newBuffer;
}
Buffer = buffer;
Offset = offset;
Size = size;
GlobalLog.Print("BufferOffsetSize#" + ValidationHelper.HashString(this) + "::.ctor() copyBuffer:" + copyBuffer.ToString() + " this:[" + ToString() + "]");
}
/*
// Consider removing.
internal BufferOffsetSize(byte[] buffer, int offset, bool copyBuffer)
: this(buffer, offset, buffer.Length - offset, copyBuffer) {
}
*/
/*
// Consider removing.
internal BufferOffsetSize(int size, byte[] buffer, bool copyBuffer)
: this(buffer, 0, size, copyBuffer) {
}
*/
internal BufferOffsetSize(byte[] buffer, bool copyBuffer)
: this(buffer, 0, buffer.Length, copyBuffer) {
}
#if TRAVE
public override string ToString() {
return "BufferOffsetSize#" + ValidationHelper.HashString(this) + " Buffer#" + ValidationHelper.HashString(Buffer) + " Offset:" + Offset.ToString() + " Size:" + Size.ToString();
}
#endif
} // class BufferOffsetSize
} // namespace System.Net
// 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
- Utils.cs
- TreeNode.cs
- designeractionlistschangedeventargs.cs
- ExecutorLocksHeldException.cs
- ISSmlParser.cs
- GifBitmapDecoder.cs
- SQLInt64.cs
- MediaCommands.cs
- WebPartConnectionsConnectVerb.cs
- SqlOuterApplyReducer.cs
- SimpleHandlerFactory.cs
- DocumentAutomationPeer.cs
- FaultImportOptions.cs
- oledbmetadatacollectionnames.cs
- TypeElement.cs
- StructuredTypeEmitter.cs
- FileDialogPermission.cs
- Screen.cs
- CqlBlock.cs
- HtmlTitle.cs
- PointF.cs
- DeferredSelectedIndexReference.cs
- SignatureDescription.cs
- XmlIgnoreAttribute.cs
- WindowsSysHeader.cs
- ComponentCache.cs
- SessionParameter.cs
- IIS7WorkerRequest.cs
- QilLoop.cs
- FileAuthorizationModule.cs
- MeasureItemEvent.cs
- DocumentXPathNavigator.cs
- MediaElement.cs
- OptimalBreakSession.cs
- TextCompositionEventArgs.cs
- XmlSerializer.cs
- ErrorFormatterPage.cs
- TemplateBuilder.cs
- RowType.cs
- ActivationArguments.cs
- LayoutTableCell.cs
- HttpException.cs
- ClientOptions.cs
- BaseComponentEditor.cs
- ThreadAbortException.cs
- Update.cs
- NetworkStream.cs
- DesigntimeLicenseContextSerializer.cs
- DataTemplate.cs
- DebuggerAttributes.cs
- jithelpers.cs
- DetailsViewInsertEventArgs.cs
- ParameterCollection.cs
- Collection.cs
- DockAndAnchorLayout.cs
- BrowserCapabilitiesCompiler.cs
- DSASignatureDeformatter.cs
- DisplayInformation.cs
- CollectionContainer.cs
- InheritanceContextChangedEventManager.cs
- SpecularMaterial.cs
- AtomParser.cs
- FileDataSourceCache.cs
- OracleSqlParser.cs
- Assign.cs
- Setter.cs
- EdmConstants.cs
- DrawingDrawingContext.cs
- Convert.cs
- StrokeNodeOperations2.cs
- SetterBase.cs
- EntityCommand.cs
- TypeElement.cs
- MailSettingsSection.cs
- SqlDataSourceFilteringEventArgs.cs
- ConfigurationElementProperty.cs
- AnyReturnReader.cs
- ValidatorCollection.cs
- ChangeBlockUndoRecord.cs
- EventWaitHandle.cs
- WindowsPrincipal.cs
- XmlDictionary.cs
- CodeIdentifiers.cs
- ForAllOperator.cs
- WebPartActionVerb.cs
- TraceContextRecord.cs
- HostingEnvironment.cs
- Setter.cs
- DataGridPageChangedEventArgs.cs
- DiscoveryClientOutputChannel.cs
- SqlStream.cs
- WebBaseEventKeyComparer.cs
- QuaternionValueSerializer.cs
- FtpWebResponse.cs
- TemplateBindingExpression.cs
- _Rfc2616CacheValidators.cs
- _RegBlobWebProxyDataBuilder.cs
- Maps.cs
- TextInfo.cs
- PersistenceContextEnlistment.cs