Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / SystemNet / Net / PeerToPeer / PeerNameRecord.cs / 1305376 / PeerNameRecord.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.PeerToPeer { using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Runtime.Serialization; using System.Security.Permissions; using System.Net; [Serializable] public class PeerNameRecord : ISerializable { private const int MAX_COMMENT_SIZE = 39; private const int MAX_DATA_SIZE = 4096; private PeerName m_PeerName; private IPEndPointCollection m_EndPointCollection = new IPEndPointCollection(); private string m_Comment; private byte[] m_Data; ////// Constructor to enable serialization /// /// /// protected PeerNameRecord(SerializationInfo info, StreamingContext context) { m_Comment = info.GetString("_Comment"); m_Data = info.GetValue("_Data", typeof(byte[])) as byte[]; m_EndPointCollection = info.GetValue("_EndpointList", typeof(IPEndPointCollection)) as IPEndPointCollection; m_PeerName = info.GetValue("_PeerName", typeof(PeerName)) as PeerName; } //// [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Justification = "System.Net.dll is still using pre-v4 security model and needs this demand")] [System.Security.SecurityCritical] [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter, SerializationFormatter = true)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { GetObjectData(info, context); } ///// /// This is made virtual so that derived types can be implemented correctly /// /// /// [SecurityPermission(SecurityAction.LinkDemand, SerializationFormatter = true)] protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("_PeerName", m_PeerName); info.AddValue("_EndpointList", m_EndPointCollection); info.AddValue("_Comment", m_Comment); info.AddValue("_Data", m_Data); } public PeerNameRecord() { } /* public PeerNameRecord(PeerName peerName) { m_PeerName = peerName; Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "PeerNameRecord created with PeerName {0}", m_PeerName); } public PeerNameRecord(PeerName peerName, int Port) { m_PeerName = peerName; m_Port = Port; Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "PeerNameRecord created with PeerName {0} Port {1}", m_PeerName, m_Port); } public PeerNameRecord(PeerName peerName, IPEndPoint[] endPointList, Cloud cloud, string comment, byte[] data) { m_PeerName = peerName; m_Port = Port; m_EndPointList = endPointList; m_Cloud = cloud; m_Comment = comment; m_Data = data; Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "PeerNameRecord created"); TracePeerNameRecord(); } */ public PeerName PeerName { get { return m_PeerName; } set { m_PeerName = value; } } public IPEndPointCollection EndPointCollection { get { return m_EndPointCollection; } } public string Comment { get { return m_Comment; } set { //------------------------------------------------------------------- //We don't allow null or empty comments since they are not very useful //------------------------------------------------------------------- if (value == null) throw new ArgumentNullException("Comment", SR.GetString(SR.Pnrp_CommentCantBeNull)); if(value.Length <= 0) throw new ArgumentException(SR.GetString(SR.Pnrp_CommentCantBeNull), "Comment"); if (value.Length > MAX_COMMENT_SIZE) throw new ArgumentException(SR.GetString(SR.Pnrp_CommentMaxLengthExceeded, MAX_COMMENT_SIZE)); m_Comment = value; } } public byte[] Data { get { return m_Data; } set { if (value == null) throw new ArgumentNullException("Data", SR.GetString(SR.Pnrp_DataCantBeNull)); if (value.Length <= 0) throw new ArgumentException(SR.GetString(SR.Pnrp_DataCantBeNull), "Data"); if(value.Length > MAX_DATA_SIZE) throw new ArgumentException(SR.GetString(SR.Pnrp_DataLengthExceeded, MAX_DATA_SIZE)); m_Data = value; } } internal void TracePeerNameRecord() { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "Contents of the PeerNameRecord"); Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tPeerName: {0}", PeerName); Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tComment: {0}", Comment); if (EndPointCollection != null && EndPointCollection.Count != 0) { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tThe EndPointList is "); foreach(IPEndPoint ipe in EndPointCollection) { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\t\tIPEndPoint is {0}", ipe); } } else { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tThe EndPointList is empty or null"); } if (Data != null) { if (Logging.P2PTraceSource.Switch.ShouldTrace(TraceEventType.Verbose)) { Logging.DumpData(Logging.P2PTraceSource, TraceEventType.Verbose, Logging.P2PTraceSource.MaxDataSize, Data, 0, Data.Length); } else { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tCustom data length {0}", Data.Length); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.PeerToPeer { using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Runtime.Serialization; using System.Security.Permissions; using System.Net; [Serializable] public class PeerNameRecord : ISerializable { private const int MAX_COMMENT_SIZE = 39; private const int MAX_DATA_SIZE = 4096; private PeerName m_PeerName; private IPEndPointCollection m_EndPointCollection = new IPEndPointCollection(); private string m_Comment; private byte[] m_Data; ////// Constructor to enable serialization /// /// /// protected PeerNameRecord(SerializationInfo info, StreamingContext context) { m_Comment = info.GetString("_Comment"); m_Data = info.GetValue("_Data", typeof(byte[])) as byte[]; m_EndPointCollection = info.GetValue("_EndpointList", typeof(IPEndPointCollection)) as IPEndPointCollection; m_PeerName = info.GetValue("_PeerName", typeof(PeerName)) as PeerName; } //// [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Justification = "System.Net.dll is still using pre-v4 security model and needs this demand")] [System.Security.SecurityCritical] [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter, SerializationFormatter = true)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { GetObjectData(info, context); } ///// /// This is made virtual so that derived types can be implemented correctly /// /// /// [SecurityPermission(SecurityAction.LinkDemand, SerializationFormatter = true)] protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("_PeerName", m_PeerName); info.AddValue("_EndpointList", m_EndPointCollection); info.AddValue("_Comment", m_Comment); info.AddValue("_Data", m_Data); } public PeerNameRecord() { } /* public PeerNameRecord(PeerName peerName) { m_PeerName = peerName; Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "PeerNameRecord created with PeerName {0}", m_PeerName); } public PeerNameRecord(PeerName peerName, int Port) { m_PeerName = peerName; m_Port = Port; Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "PeerNameRecord created with PeerName {0} Port {1}", m_PeerName, m_Port); } public PeerNameRecord(PeerName peerName, IPEndPoint[] endPointList, Cloud cloud, string comment, byte[] data) { m_PeerName = peerName; m_Port = Port; m_EndPointList = endPointList; m_Cloud = cloud; m_Comment = comment; m_Data = data; Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "PeerNameRecord created"); TracePeerNameRecord(); } */ public PeerName PeerName { get { return m_PeerName; } set { m_PeerName = value; } } public IPEndPointCollection EndPointCollection { get { return m_EndPointCollection; } } public string Comment { get { return m_Comment; } set { //------------------------------------------------------------------- //We don't allow null or empty comments since they are not very useful //------------------------------------------------------------------- if (value == null) throw new ArgumentNullException("Comment", SR.GetString(SR.Pnrp_CommentCantBeNull)); if(value.Length <= 0) throw new ArgumentException(SR.GetString(SR.Pnrp_CommentCantBeNull), "Comment"); if (value.Length > MAX_COMMENT_SIZE) throw new ArgumentException(SR.GetString(SR.Pnrp_CommentMaxLengthExceeded, MAX_COMMENT_SIZE)); m_Comment = value; } } public byte[] Data { get { return m_Data; } set { if (value == null) throw new ArgumentNullException("Data", SR.GetString(SR.Pnrp_DataCantBeNull)); if (value.Length <= 0) throw new ArgumentException(SR.GetString(SR.Pnrp_DataCantBeNull), "Data"); if(value.Length > MAX_DATA_SIZE) throw new ArgumentException(SR.GetString(SR.Pnrp_DataLengthExceeded, MAX_DATA_SIZE)); m_Data = value; } } internal void TracePeerNameRecord() { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "Contents of the PeerNameRecord"); Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tPeerName: {0}", PeerName); Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tComment: {0}", Comment); if (EndPointCollection != null && EndPointCollection.Count != 0) { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tThe EndPointList is "); foreach(IPEndPoint ipe in EndPointCollection) { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\t\tIPEndPoint is {0}", ipe); } } else { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tThe EndPointList is empty or null"); } if (Data != null) { if (Logging.P2PTraceSource.Switch.ShouldTrace(TraceEventType.Verbose)) { Logging.DumpData(Logging.P2PTraceSource, TraceEventType.Verbose, Logging.P2PTraceSource.MaxDataSize, Data, 0, Data.Length); } else { Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "\tCustom data length {0}", Data.Length); } } } } } // 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
- NetDataContractSerializer.cs
- TimeoutValidationAttribute.cs
- DelegatingTypeDescriptionProvider.cs
- GridViewRowEventArgs.cs
- RotateTransform3D.cs
- InfoCardConstants.cs
- CodeDirectiveCollection.cs
- MinimizableAttributeTypeConverter.cs
- FileSystemInfo.cs
- PropertyInformation.cs
- DiscoveryDocumentSerializer.cs
- SelectedDatesCollection.cs
- SupportingTokenAuthenticatorSpecification.cs
- PathSegmentCollection.cs
- TraceXPathNavigator.cs
- AssociationType.cs
- DataGridItem.cs
- DataGridViewRowPrePaintEventArgs.cs
- InvalidStoreProtectionKeyException.cs
- KeyGesture.cs
- PersistenceProviderElement.cs
- SafeHandle.cs
- AccessKeyManager.cs
- RayMeshGeometry3DHitTestResult.cs
- RegexGroupCollection.cs
- MailAddressCollection.cs
- XNodeValidator.cs
- SymbolTable.cs
- ArrayConverter.cs
- FullTrustAssembliesSection.cs
- Point3DValueSerializer.cs
- DataAccessException.cs
- GridItemPattern.cs
- MetadataReference.cs
- InitializationEventAttribute.cs
- HttpsTransportBindingElement.cs
- TdsParser.cs
- OneOfTypeConst.cs
- HttpWebRequestElement.cs
- StylusOverProperty.cs
- DataGridTable.cs
- FormsAuthenticationCredentials.cs
- DictionaryCustomTypeDescriptor.cs
- TransformProviderWrapper.cs
- IdentifierCreationService.cs
- UpdateEventArgs.cs
- FieldToken.cs
- RoleServiceManager.cs
- WebPartTransformer.cs
- AdapterSwitches.cs
- LinqDataView.cs
- XmlTypeAttribute.cs
- InputBinding.cs
- GlobalizationSection.cs
- SiteMapDataSource.cs
- ConstructorNeedsTagAttribute.cs
- WebConfigurationHost.cs
- VBIdentifierName.cs
- Animatable.cs
- DrawListViewColumnHeaderEventArgs.cs
- MimeReflector.cs
- Calendar.cs
- XmlAttributeProperties.cs
- ContentIterators.cs
- PanelDesigner.cs
- UnsafeNetInfoNativeMethods.cs
- WebPartCatalogCloseVerb.cs
- RequestSecurityToken.cs
- StaticContext.cs
- StyleSheetComponentEditor.cs
- FontStyleConverter.cs
- OleDbInfoMessageEvent.cs
- ToolTipService.cs
- WebPartVerbsEventArgs.cs
- IxmlLineInfo.cs
- MissingManifestResourceException.cs
- CodeTryCatchFinallyStatement.cs
- SamlAuthenticationStatement.cs
- ProfessionalColorTable.cs
- EditorOptionAttribute.cs
- SQLDoubleStorage.cs
- Zone.cs
- BitFlagsGenerator.cs
- MessageSmuggler.cs
- IisTraceWebEventProvider.cs
- QueueProcessor.cs
- FormViewUpdatedEventArgs.cs
- StubHelpers.cs
- NativeMethods.cs
- Version.cs
- RotationValidation.cs
- DocumentReference.cs
- Base64Decoder.cs
- SqlDataSourceView.cs
- MultiBindingExpression.cs
- Int16Animation.cs
- PassportPrincipal.cs
- OracleConnectionString.cs
- XmlILConstructAnalyzer.cs
- SoapServerMethod.cs