Noble Connect
Add relays and punchthrough to Mirror or UNet
NobleConnect.Stun.MessageClass Class Reference

Represents the Class of a Message as defined in RFC 5389 Section 6 More...

Public Member Functions

 MessageClass (ushort value)
 Construct a MessageClass instance with the specified value More...
 
override string ToString ()
 Return a human-readable description of the MessageClass value More...
 
override bool Equals (object obj)
 Compare two MesssageClass objects using their values More...
 
override int GetHashCode ()
 Calculate a hash for this MessageClass using the value. More...
 

Static Public Member Functions

static ushort ParseClassValue (byte[] buffer, int bufferIndex)
 
static bool IsValidClass (ushort value)
 
static implicit operator ushort (MessageClass m)
 Cast a MessageClass to a ushort by returning the value More...
 
static bool operator== (MessageClass a, MessageClass b)
 Compare two MessageClasses using their values More...
 
static bool operator!= (MessageClass a, MessageClass b)
 Compare two MessageClasses using their values More...
 

Static Public Attributes

const ushort REQUEST = 0
 Value for request messages that expect a response More...
 
const ushort INDICATION = 1
 Value for indication messages that do not expect a response More...
 
const ushort SUCCESS_RESPONSE = 2
 Value for successful response message More...
 
const ushort ERROR_RESPONSE = 3
 Value for error response message More...
 
static readonly MessageClass Request = new MessageClass(REQUEST)
 The Request MessageClass is used for Messages that expect a response. More...
 
static readonly MessageClass Indication = new MessageClass(INDICATION)
 The Indication MessageClass is used for Messages that do not expect a response. More...
 
static readonly MessageClass SuccessResponse = new MessageClass(SUCCESS_RESPONSE)
 The SuccessResponse MessageClass is used for response messages that indicate success. More...
 
static readonly MessageClass ErrorResponse = new MessageClass(ERROR_RESPONSE)
 The ErrorResponse MessageClass is used for response messages that indicate failure. More...
 

Protected Attributes

readonly ushort value
 The unsigned short value that this MessageClass represents. More...
 

Detailed Description

Represents the Class of a Message as defined in RFC 5389 Section 6

I would have preferred this to be an enum, but it needs to be extendable for Turn and Ice. So instead it is this weird enum-like class that exposes static instances of itself for each different MessageClass.

Constructor & Destructor Documentation

◆ MessageClass()

NobleConnect.Stun.MessageClass.MessageClass ( ushort  value)

Construct a MessageClass instance with the specified value

Parameters
value

Member Function Documentation

◆ Equals()

override bool NobleConnect.Stun.MessageClass.Equals ( object  obj)

Compare two MesssageClass objects using their values

Parameters
a
b
Returns

◆ GetHashCode()

override int NobleConnect.Stun.MessageClass.GetHashCode ( )

Calculate a hash for this MessageClass using the value.

Returns

◆ IsValidClass()

static bool NobleConnect.Stun.MessageClass.IsValidClass ( ushort  value)
static

◆ operator ushort()

static implicit NobleConnect.Stun.MessageClass.operator ushort ( MessageClass  m)
static

Cast a MessageClass to a ushort by returning the value

Parameters
m

◆ operator!=()

static bool NobleConnect.Stun.MessageClass.operator!= ( MessageClass  a,
MessageClass  b 
)
static

Compare two MessageClasses using their values

Parameters
a
b
Returns

◆ operator==()

static bool NobleConnect.Stun.MessageClass.operator== ( MessageClass  a,
MessageClass  b 
)
static

Compare two MessageClasses using their values

Parameters
a
b
Returns

◆ ParseClassValue()

static ushort NobleConnect.Stun.MessageClass.ParseClassValue ( byte[]  buffer,
int  bufferIndex 
)
static

◆ ToString()

override string NobleConnect.Stun.MessageClass.ToString ( )

Return a human-readable description of the MessageClass value

Returns

Member Data Documentation

◆ ERROR_RESPONSE

const ushort NobleConnect.Stun.MessageClass.ERROR_RESPONSE = 3
static

Value for error response message

◆ ErrorResponse

readonly MessageClass NobleConnect.Stun.MessageClass.ErrorResponse = new MessageClass(ERROR_RESPONSE)
static

The ErrorResponse MessageClass is used for response messages that indicate failure.

◆ INDICATION

const ushort NobleConnect.Stun.MessageClass.INDICATION = 1
static

Value for indication messages that do not expect a response

◆ Indication

readonly MessageClass NobleConnect.Stun.MessageClass.Indication = new MessageClass(INDICATION)
static

The Indication MessageClass is used for Messages that do not expect a response.

◆ REQUEST

const ushort NobleConnect.Stun.MessageClass.REQUEST = 0
static

Value for request messages that expect a response

◆ Request

readonly MessageClass NobleConnect.Stun.MessageClass.Request = new MessageClass(REQUEST)
static

The Request MessageClass is used for Messages that expect a response.

◆ SUCCESS_RESPONSE

const ushort NobleConnect.Stun.MessageClass.SUCCESS_RESPONSE = 2
static

Value for successful response message

◆ SuccessResponse

readonly MessageClass NobleConnect.Stun.MessageClass.SuccessResponse = new MessageClass(SUCCESS_RESPONSE)
static

The SuccessResponse MessageClass is used for response messages that indicate success.

◆ value

readonly ushort NobleConnect.Stun.MessageClass.value
protected

The unsigned short value that this MessageClass represents.