singrdk/base/Libraries/System.Net/Sockets/InternalSocket.cs

48 lines
2.0 KiB
C#
Raw Permalink Normal View History

2008-03-05 09:52:00 -05:00
///////////////////////////////////////////////////////////////////////////////
//
// Microsoft Research Singularity
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: InternalSocket.cs
//
// Note:
//
using System;
using Microsoft.SingSharp;
using Microsoft.SingSharp.Runtime;
using Microsoft.Singularity.Channels;
namespace System.Net.Sockets
{
public abstract class InternalSocket
{
abstract internal InternalSocket Accept();
abstract internal void Bind(EndPoint localEndPoint);
abstract internal void Close();
abstract internal void Connect(EndPoint remoteEndPoint);
abstract internal void Dispose();
abstract internal void Listen(int backlog);
abstract internal bool Poll(int microSeconds, SelectMode mode);
abstract internal int Receive(byte[]! buffer, int offset, int size, SocketFlags socketFlags);
abstract internal int ReceiveFrom(byte[]! buffer, int offset, int size, SocketFlags socketFlags, ref EndPoint remoteEP);
abstract internal int Send(byte[]! buffer, int offset, int size, SocketFlags socketFlags);
abstract internal int SendTo(byte[]! buffer, int offset, int size, SocketFlags socketFlags, EndPoint remoteEP);
abstract internal void Shutdown(SocketShutdown how);
abstract internal int Available { get; }
abstract internal EndPoint LocalEndPoint { get; }
abstract internal EndPoint RemoteEndPoint { get; }
abstract internal bool Blocking { get; set; }
abstract internal bool Connected { get; }
abstract internal AddressFamily AddressFamily { get; }
abstract internal SocketType SocketType { get; }
abstract internal ProtocolType ProtocolType { get; }
// Singularity-specific
abstract internal int Send([Claims] byte[]! in ExHeap data, SocketFlags flags);
}
}