Class SteamFactoryConfig
- Namespace
- MarymoorStudios.Core.Steamworks.Rpc
- Assembly
- MarymoorStudios.Core.Steamworks.Rpc.dll
public sealed class SteamFactoryConfig
- Inheritance
-
SteamFactoryConfig
- Inherited Members
Constructors
SteamFactoryConfig()
Constructor.
public SteamFactoryConfig()
Fields
DefaultTcpPort
The default port for use with SteamListener.
public const int DefaultTcpPort = 2590
Field Value
Properties
CertificateManager
(Optional) TLS Certificate Manager. If non-null then TLS will be used, otherwise non-TLS.
public CertificateManager? CertificateManager { get; init; }
Property Value
MaxSendPacket
Maximum size of send packets.
public int MaxSendPacket { get; init; }
Property Value
Remarks
Messages larger than this are split into multiple sends.
This is largely for testing purposes but may be useful in environments where the network prohibits large payloads. Splitting messages across sends lends to the need to perform reassembly on the receiving side increasing costs in memory, CPU, and kernel transitions.
RingCapacity
Maximum number of items in the send/receive buffer between the channel and the network.
public ushort RingCapacity { get; init; }
Property Value
Remarks
The buffers are used to pipeline transitions between IO completion threads and the Sip-thread for the MarymoorStudios.Core.Rpc.CommChannel they are servicing.
If this value is too small:
- Sending The MarymoorStudios.Core.Rpc.CommChannel will stall more often and be forced to buffer outgoing messages in its own queue leading potentially to increased GC memory usage and additional send latency.
- Receiving IO completion threads will stall more often and be forced to provide network backpressure impacting network transmission speeds.
If this value is too large then buffer memory will be wasted for each MarymoorStudios.Core.Rpc.CommChannel. Buffer capacity is a fixed allocation with the same lifetime as the MarymoorStudios.Core.Rpc.CommChannel.
Ideally this value matches the maximum number of messages in flight in either direction under normal operating conditions. When these conditions are exceeded then stalling is the best responses for the system and the network providing backpressure to slow production in either direction to avoid resource exhaustion.
RingThreshold
Maximum The number of item slots that must be available before send backpressure is lifted.
public ushort RingThreshold { get; init; }