public IP2PAddress ReadPeerAddress() { ETransporLayerType layerType = P2PTransportLayer.Instance.GetLayerType(); IP2PAddress result; if (layerType != ETransporLayerType.UNet) { if (layerType != ETransporLayerType.Steam) { throw new NotImplementedException(); } result = new P2PAddressSteam { m_SteamID = new CSteamID(this.ReadUInt64()) }; } else { result = new P2PAddressUnet { m_IP = this.ReadString(), m_Port = this.ReadInt32() }; } return(result); }
public static IP2PAddress CreateAddress(ETransporLayerType transport_layer) { if (transport_layer == ETransporLayerType.UNet) { return(new P2PAddressUnet()); } if (transport_layer != ETransporLayerType.Steam) { throw new NotImplementedException(); } return(new P2PAddressSteam()); }
public static void Create(ETransporLayerType type) { DebugUtils.Assert(P2PTransportLayer.Instance == null || P2PTransportLayer.Instance.GetLayerType() == type, true); if (P2PTransportLayer.Instance != null) { return; } if (type == ETransporLayerType.UNet) { P2PTransportLayer.s_Instance = new TransportLayerUNet(); return; } if (type != ETransporLayerType.Steam) { throw new NotImplementedException(); } P2PTransportLayer.s_Instance = new TransportLayerSteam(); }
public void Write(IP2PAddress addr) { ETransporLayerType layerType = P2PTransportLayer.Instance.GetLayerType(); if (layerType == ETransporLayerType.UNet) { P2PAddressUnet p2PAddressUnet = addr as P2PAddressUnet; this.Write(p2PAddressUnet.m_IP); this.Write(p2PAddressUnet.m_Port); return; } if (layerType != ETransporLayerType.Steam) { throw new NotImplementedException(); } P2PAddressSteam p2PAddressSteam = addr as P2PAddressSteam; this.Write(p2PAddressSteam.m_SteamID.m_SteamID); }