The Labs \ Source Viewer \ SSCLI \ System.Net.Sockets \ SocketInformation

  1. //------------------------------------------------------------------------------
  2. // <copyright file="SocketInformation.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. namespace System.Net.Sockets
  16. {
  17.    
  18.     [Serializable()]
  19.     public struct SocketInformation
  20.     {
  21.         byte[] protocolInformation;
  22.         SocketInformationOptions options;
  23.        
  24.         public byte[] ProtocolInformation {
  25.             get { return protocolInformation; }
  26.             set { protocolInformation = value; }
  27.         }
  28.        
  29.        
  30.         public SocketInformationOptions Options {
  31.             get { return options; }
  32.             set { options = value; }
  33.         }
  34.        
  35.         internal bool IsNonBlocking {
  36.             get { return ((options & SocketInformationOptions.NonBlocking) != 0); }
  37.             set {
  38.                 if (value) {
  39.                     options |= SocketInformationOptions.NonBlocking;
  40.                 }
  41.                 else {
  42.                     options &= ~SocketInformationOptions.NonBlocking;
  43.                 }
  44.             }
  45.         }
  46.        
  47.         internal bool IsConnected {
  48.             get { return ((options & SocketInformationOptions.Connected) != 0); }
  49.             set {
  50.                 if (value) {
  51.                     options |= SocketInformationOptions.Connected;
  52.                 }
  53.                 else {
  54.                     options &= ~SocketInformationOptions.Connected;
  55.                 }
  56.             }
  57.         }
  58.        
  59.         internal bool IsListening {
  60.             get { return ((options & SocketInformationOptions.Listening) != 0); }
  61.             set {
  62.                 if (value) {
  63.                     options |= SocketInformationOptions.Listening;
  64.                 }
  65.                 else {
  66.                     options &= ~SocketInformationOptions.Listening;
  67.                 }
  68.             }
  69.         }
  70.        
  71.         internal bool UseOnlyOverlappedIO {
  72.             get { return ((options & SocketInformationOptions.UseOnlyOverlappedIO) != 0); }
  73.             set {
  74.                 if (value) {
  75.                     options |= SocketInformationOptions.UseOnlyOverlappedIO;
  76.                 }
  77.                 else {
  78.                     options &= ~SocketInformationOptions.UseOnlyOverlappedIO;
  79.                 }
  80.             }
  81.         }
  82.     }
  83. }

Developer Fusion