Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Diagnostics / Eventing / EventDescriptor.cs / 1305376 / EventDescriptor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Runtime.InteropServices; namespace System.Diagnostics.Eventing { [StructLayout(LayoutKind.Explicit, Size = 16)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] [System.Runtime.CompilerServices.FriendAccessAllowed] internal struct EventDescriptorInternal { # region private [FieldOffset(0)] private ushort m_id; [FieldOffset(2)] private byte m_version; [FieldOffset(3)] private byte m_channel; [FieldOffset(4)] private byte m_level; [FieldOffset(5)] private byte m_opcode; [FieldOffset(6)] private ushort m_task; [FieldOffset(8)] private long m_keywords; #endregion public EventDescriptorInternal( int id, byte version, byte channel, byte level, byte opcode, int task, long keywords ) { if (id < 0) { throw new ArgumentOutOfRangeException("id", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedNonNegNum)); } if (id > ushort.MaxValue) { throw new ArgumentOutOfRangeException("id", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedValidId, 1, ushort.MaxValue)); } m_id = (ushort)id; m_version = version; m_channel = channel; m_level = level; m_opcode = opcode; m_keywords = keywords; if (task < 0) { throw new ArgumentOutOfRangeException("task", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedNonNegNum)); } if (task > ushort.MaxValue) { throw new ArgumentOutOfRangeException("task", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedValidId, 1, ushort.MaxValue)); } m_task = (ushort)task; } public int EventId { get { return m_id; } } public byte Version { get { return m_version; } } public byte Channel { get { return m_channel; } } public byte Level { get { return m_level; } } public byte Opcode { get { return m_opcode; } } public int Task { get { return m_task; } } public long Keywords { get { return m_keywords; } } public override bool Equals(object obj) { if (!(obj is EventDescriptorInternal)) return false; return Equals((EventDescriptorInternal) obj); } public override int GetHashCode() { return m_id ^ m_version ^ m_channel ^ m_level ^ m_opcode ^ m_task ^ (int)m_keywords; } public bool Equals(EventDescriptorInternal other) { if ((m_id != other.m_id) || (m_version != other.m_version) || (m_channel != other.m_channel) || (m_level != other.m_level) || (m_opcode != other.m_opcode) || (m_task != other.m_task) || (m_keywords != other.m_keywords)) { return false; } return true; } public static bool operator ==(EventDescriptorInternal event1, EventDescriptorInternal event2) { return event1.Equals(event2); } public static bool operator !=(EventDescriptorInternal event1, EventDescriptorInternal event2) { return !event1.Equals(event2); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Runtime.InteropServices; namespace System.Diagnostics.Eventing { [StructLayout(LayoutKind.Explicit, Size = 16)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] [System.Runtime.CompilerServices.FriendAccessAllowed] internal struct EventDescriptorInternal { # region private [FieldOffset(0)] private ushort m_id; [FieldOffset(2)] private byte m_version; [FieldOffset(3)] private byte m_channel; [FieldOffset(4)] private byte m_level; [FieldOffset(5)] private byte m_opcode; [FieldOffset(6)] private ushort m_task; [FieldOffset(8)] private long m_keywords; #endregion public EventDescriptorInternal( int id, byte version, byte channel, byte level, byte opcode, int task, long keywords ) { if (id < 0) { throw new ArgumentOutOfRangeException("id", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedNonNegNum)); } if (id > ushort.MaxValue) { throw new ArgumentOutOfRangeException("id", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedValidId, 1, ushort.MaxValue)); } m_id = (ushort)id; m_version = version; m_channel = channel; m_level = level; m_opcode = opcode; m_keywords = keywords; if (task < 0) { throw new ArgumentOutOfRangeException("task", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedNonNegNum)); } if (task > ushort.MaxValue) { throw new ArgumentOutOfRangeException("task", SRETW.GetString(SRETW.ArgumentOutOfRange_NeedValidId, 1, ushort.MaxValue)); } m_task = (ushort)task; } public int EventId { get { return m_id; } } public byte Version { get { return m_version; } } public byte Channel { get { return m_channel; } } public byte Level { get { return m_level; } } public byte Opcode { get { return m_opcode; } } public int Task { get { return m_task; } } public long Keywords { get { return m_keywords; } } public override bool Equals(object obj) { if (!(obj is EventDescriptorInternal)) return false; return Equals((EventDescriptorInternal) obj); } public override int GetHashCode() { return m_id ^ m_version ^ m_channel ^ m_level ^ m_opcode ^ m_task ^ (int)m_keywords; } public bool Equals(EventDescriptorInternal other) { if ((m_id != other.m_id) || (m_version != other.m_version) || (m_channel != other.m_channel) || (m_level != other.m_level) || (m_opcode != other.m_opcode) || (m_task != other.m_task) || (m_keywords != other.m_keywords)) { return false; } return true; } public static bool operator ==(EventDescriptorInternal event1, EventDescriptorInternal event2) { return event1.Equals(event2); } public static bool operator !=(EventDescriptorInternal event1, EventDescriptorInternal event2) { return !event1.Equals(event2); } } } // 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
- ErrorHandler.cs
- OleDbEnumerator.cs
- HttpProfileGroupBase.cs
- ValidationEventArgs.cs
- Crypto.cs
- DefaultPropertyAttribute.cs
- Matrix3D.cs
- CursorConverter.cs
- Graphics.cs
- DashStyle.cs
- ElementHostAutomationPeer.cs
- PenCursorManager.cs
- ConfigXmlAttribute.cs
- SizeIndependentAnimationStorage.cs
- MinMaxParagraphWidth.cs
- _AuthenticationState.cs
- Ppl.cs
- CrossSiteScriptingValidation.cs
- Tag.cs
- BaseDataList.cs
- Nodes.cs
- CipherData.cs
- AsyncCallback.cs
- PerformanceCounterLib.cs
- SpeechRecognizer.cs
- TextFormatterContext.cs
- XmlException.cs
- ToolStripPanelDesigner.cs
- ScriptComponentDescriptor.cs
- ProfessionalColorTable.cs
- CombinedGeometry.cs
- ProgressChangedEventArgs.cs
- Transform3DCollection.cs
- Transform.cs
- ExportOptions.cs
- DataSvcMapFileSerializer.cs
- Invariant.cs
- BitmapImage.cs
- RtfToken.cs
- AnnotationComponentManager.cs
- FontCacheUtil.cs
- StringKeyFrameCollection.cs
- ProcessModelInfo.cs
- BitmapFrame.cs
- DataGridViewRowPrePaintEventArgs.cs
- ObjectQuery_EntitySqlExtensions.cs
- ExcCanonicalXml.cs
- CapabilitiesSection.cs
- DescriptionAttribute.cs
- BinaryKeyIdentifierClause.cs
- ReadWriteSpinLock.cs
- SqlClientWrapperSmiStreamChars.cs
- BaseCAMarshaler.cs
- WebServiceErrorEvent.cs
- CollectionViewGroupInternal.cs
- XamlBuildTaskServices.cs
- TextRangeSerialization.cs
- ResXBuildProvider.cs
- WindowsNonControl.cs
- String.cs
- PassportAuthentication.cs
- AxHost.cs
- HandlerBase.cs
- sqlpipe.cs
- SoapHttpTransportImporter.cs
- XmlSchemaValidator.cs
- ChangeNode.cs
- DataGridViewSelectedCellCollection.cs
- Freezable.cs
- ObjectDataSourceEventArgs.cs
- WorkflowCommandExtensionItem.cs
- PrintDialogException.cs
- SoapAttributes.cs
- TaskExtensions.cs
- RelationalExpressions.cs
- CallbackException.cs
- GraphicsPathIterator.cs
- QueueProcessor.cs
- ServerValidateEventArgs.cs
- SoapHeaderAttribute.cs
- LinearGradientBrush.cs
- XmlHierarchicalDataSourceView.cs
- WebPartDisplayModeCollection.cs
- Matrix.cs
- CacheManager.cs
- SqlDataReader.cs
- DataRecordInternal.cs
- ContentElement.cs
- CheckBoxField.cs
- WeakHashtable.cs
- ColorTranslator.cs
- PolyQuadraticBezierSegment.cs
- DomNameTable.cs
- Event.cs
- FixedSOMTextRun.cs
- Int16Converter.cs
- EastAsianLunisolarCalendar.cs
- ColumnResult.cs
- parserscommon.cs
- PropertyEntry.cs