// 32feet.NET - Personal Area Networking for .NET
//
// InTheHand.Net.Sockets.IrDASocketOptionName
//
// Copyright (c) 2003-2020 In The Hand Ltd, All rights reserved.
// This source code is licensed under the MIT License
using System;
using System.Net.Sockets;
namespace InTheHand.Net.Sockets
{
// AJMcF
///
/// Socket option constants to set IrDA specific connection modes, and
/// get/set IrDA specific features.
///
///
/// Socket option constants to set IrDA specific connection modes, and
/// get/set IrDA specific features:
/// for instance to set IrLMP mode, or get the maximum send size. Pass
/// to /etc and
/// /etc,
/// along with optionLevel IrDASocketOptionLevel.;
/// see the examples below.
///
/// For instance, where cli is an instance of
/// .
/// In VB.NET, to set IrLMP mode (IrLptMode).
///
/// cli.Client.SetSocketOption(IrDASocketOptionLevel.Irlmp, _
/// IrDASocketOptionName.IrLptMode, _
/// 1) 'representing true; can use True itself in FXv2.
///
/// In C#, to retrieve the maximum send size.
///
/// int maxSendSize = (int)cli.Client.GetSocketOption(
/// IrDASocketOptionLevel.Irlmp,
/// IrDASocketOptionName.SendPduLength);
///
///
public static class IrDASocketOptionName
{
///
/// Gets the list of discovered devices.
/// Is used internally by IrDAClient.DiscoverDevices.
///
///
/// In native terms takes a DEVICE_LIST struct.
///
public const SocketOptionName EnumDevice = (SocketOptionName)0x00000010;
///
/// Sets an entry in the local IAS (Information Access Service) database.
///
///
/// In native terms takes a IAS_SET struct.
///
public const SocketOptionName IasSet = (SocketOptionName)0x00000011;
///
/// Queries an entry in the peer's IAS (Information Access Service) database.
///
///
/// In native terms takes a IAS_QUERY struct.
///
public const SocketOptionName IasQuery = (SocketOptionName)0x00000012;
///
/// Retrieve the maximum send size when using IrLMP directly
/// ().
/// IrLMP requires sent data to fit in one frame.
///
///
/// Integer
///
public const SocketOptionName SendPduLength = (SocketOptionName)0x00000013;
///
/// Restricts the link to one application-level (IrLMP) connection;
/// for use when low latency is required.
/// Returns an error on all tested platforms.
///
///
/// Returns an error on all tested platforms. Boolean
///
public const SocketOptionName ExclusiveMode = (SocketOptionName)0x00000014;
///
/// Sets IrLMP mode, disabling TinyTP. Used for instance when
/// printing with IrLPT.
///
///
/// On Windows platforms at least, is ignored on server-side sockets.
/// Boolean
///
public const SocketOptionName IrLptMode = (SocketOptionName)0x00000015;
///
/// Sets IrCOMM 9-Wire/Cooked mode. Used for instance when connecting
/// to the modem in a mobile phone (service name IrDA:IrCOMM).
///
///
/// In operation, received IrCOMM control information is discarded and
/// null information is sent.
/// Boolean
///
public const SocketOptionName NineWireMode = (SocketOptionName)0x00000016;
///
/// Reportedly sets non-IrDA Sharp ASK mode on the Windows CE
/// platform. Presence unverified.
///
public const SocketOptionName SharpMode = (SocketOptionName)0x00000020;
}
}