> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md).

# Class ksRoomInfo

Namespace: [KS.Reactor](/reactor/api-reference/ks.reactor.md)\
Assembly: KSCommon.dll

Holds room data that is available without connecting to the room, including data required to connect to the room.

```csharp
public class ksRoomInfo : ksISerializable, ksIBufferable
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← [ksRoomInfo](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md)

#### Implements

[ksISerializable](/reactor/api-reference/ks.reactor/ks.reactor.ksiserializable.md), [ksIBufferable](/reactor/api-reference/ks.reactor/ks.reactor.ksibufferable.md)

#### Inherited Members

[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Constructors

### ksRoomInfo() <a href="#ks_reactor_ksroominfo__ctor" id="ks_reactor_ksroominfo__ctor"></a>

Constructor.

```csharp
public ksRoomInfo()
```

### ksRoomInfo(ksRoomInfo) <a href="#ks_reactor_ksroominfo__ctor_ks_reactor_ksroominfo" id="ks_reactor_ksroominfo__ctor_ks_reactor_ksroominfo"></a>

Copy Constructor.

```csharp
public ksRoomInfo(ksRoomInfo copy)
```

#### Parameters

`copy` [ksRoomInfo](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md)

Room info to copy from.

### ksRoomInfo(string, ushort) <a href="#ks_reactor_ksroominfo__ctor_system_string_system_uint16" id="ks_reactor_ksroominfo__ctor_system_string_system_uint16"></a>

Constructor.

```csharp
public ksRoomInfo(string host, ushort port)
```

#### Parameters

`host` [string](https://learn.microsoft.com/dotnet/api/system.string)

Host to connect to.

`port` [ushort](https://learn.microsoft.com/dotnet/api/system.uint16)

Port to connect to.

## Properties

### Host <a href="#ks_reactor_ksroominfo_host" id="ks_reactor_ksroominfo_host"></a>

Host to connect to.

```csharp
[Obsolete("Use GetAddress(protocol).Host.")]
public string Host { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### Id <a href="#ks_reactor_ksroominfo_id" id="ks_reactor_ksroominfo_id"></a>

Room id.

```csharp
public uint Id { get; set; }
```

#### Property Value

[uint](https://learn.microsoft.com/dotnet/api/system.uint32)

### Image <a href="#ks_reactor_ksroominfo_image" id="ks_reactor_ksroominfo_image"></a>

Image.

```csharp
public uint Image { get; set; }
```

#### Property Value

[uint](https://learn.microsoft.com/dotnet/api/system.uint32)

### IsPublic <a href="#ks_reactor_ksroominfo_ispublic" id="ks_reactor_ksroominfo_ispublic"></a>

Is public?

```csharp
public bool IsPublic { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### Name <a href="#ks_reactor_ksroominfo_name" id="ks_reactor_ksroominfo_name"></a>

Room name.

```csharp
public string Name { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### Port <a href="#ks_reactor_ksroominfo_port" id="ks_reactor_ksroominfo_port"></a>

Port to connect to.

```csharp
[Obsolete("Use GetAddress(protocol).Port")]
public ushort Port { get; set; }
```

#### Property Value

[ushort](https://learn.microsoft.com/dotnet/api/system.uint16)

### PublicData <a href="#ks_reactor_ksroominfo_publicdata" id="ks_reactor_ksroominfo_publicdata"></a>

Public data set by the developer.

```csharp
public ksJSON PublicData { get; set; }
```

#### Property Value

[ksJSON](/reactor/api-reference/ks.reactor/ks.reactor.ksjson.md)

### PublicTags <a href="#ks_reactor_ksroominfo_publictags" id="ks_reactor_ksroominfo_publictags"></a>

Public tags set by the developer. Cluster API calls can filter rooms by tags.

```csharp
public ksHashSet<string> PublicTags { get; }
```

#### Property Value

[ksHashSet](/reactor/api-reference/ks.reactor/ks.reactor.kshashset-1.md)<[string](https://learn.microsoft.com/dotnet/api/system.string)>

### Scene <a href="#ks_reactor_ksroominfo_scene" id="ks_reactor_ksroominfo_scene"></a>

Scene name.

```csharp
public string Scene { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### State <a href="#ks_reactor_ksroominfo_state" id="ks_reactor_ksroominfo_state"></a>

Server state.

```csharp
[Obsolete("Use ksIServerRoom.State")]
public ksRoomInfo.RoomState State { get; set; }
```

#### Property Value

[ksRoomInfo](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md).[RoomState](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo/ks.reactor.ksroominfo.roomstate.md)

### Type <a href="#ks_reactor_ksroominfo_type" id="ks_reactor_ksroominfo_type"></a>

Room type.

```csharp
public string Type { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

## Methods

### Deserialize(ksStreamBuffer) <a href="#ks_reactor_ksroominfo_deserialize_ks_reactor_ksstreambuffer" id="ks_reactor_ksroominfo_deserialize_ks_reactor_ksstreambuffer"></a>

Deserializes the object from the input buffer.

```csharp
public void Deserialize(ksStreamBuffer input)
```

#### Parameters

`input` [ksStreamBuffer](/reactor/api-reference/ks.reactor/ks.reactor.ksstreambuffer.md)

### FromBytes(byte\[]) <a href="#ks_reactor_ksroominfo_frombytes_system_byte" id="ks_reactor_ksroominfo_frombytes_system_byte"></a>

Deserializes the room info from a byte array.

```csharp
[Obsolete("Use Deserialize(ksIInputStream) instead.")]
public void FromBytes(byte[] data)
```

#### Parameters

`data` [byte](https://learn.microsoft.com/dotnet/api/system.byte)\[]

Data to deserialize.

### FromJSON(ksJSON) <a href="#ks_reactor_ksroominfo_fromjson_ks_reactor_ksjson" id="ks_reactor_ksroominfo_fromjson_ks_reactor_ksjson"></a>

Initialize the room info using a json.

```csharp
public static ksRoomInfo FromJSON(ksJSON json)
```

#### Parameters

`json` [ksJSON](/reactor/api-reference/ks.reactor/ks.reactor.ksjson.md)

#### Returns

[ksRoomInfo](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md)

False if the json failed to contain the required fields.

### GetAddress(ksConnectionProtocols) <a href="#ks_reactor_ksroominfo_getaddress_ks_reactor_ksconnectionprotocols" id="ks_reactor_ksroominfo_getaddress_ks_reactor_ksconnectionprotocols"></a>

Gets the address for a protocol.

```csharp
public ksAddress GetAddress(ksConnectionProtocols protocol)
```

#### Parameters

`protocol` [ksConnectionProtocols](/reactor/api-reference/ks.reactor/ks.reactor.ksconnectionprotocols.md)

Protocol to get address for.

#### Returns

[ksAddress](/reactor/api-reference/ks.reactor/ks.reactor.ksaddress.md)

Address for the protocol.

### GetBytes() <a href="#ks_reactor_ksroominfo_getbytes" id="ks_reactor_ksroominfo_getbytes"></a>

Serializes the room info to a byte array.

```csharp
[Obsolete("Use Serialize(ksIOutputStream) instead.")]
public byte[] GetBytes()
```

#### Returns

[byte](https://learn.microsoft.com/dotnet/api/system.byte)\[]

Serialized room info.

### Serialize(ksStreamBuffer) <a href="#ks_reactor_ksroominfo_serialize_ks_reactor_ksstreambuffer" id="ks_reactor_ksroominfo_serialize_ks_reactor_ksstreambuffer"></a>

Serializes the object to the output buffer.

```csharp
public void Serialize(ksStreamBuffer output)
```

#### Parameters

`output` [ksStreamBuffer](/reactor/api-reference/ks.reactor/ks.reactor.ksstreambuffer.md)

### SetAddress(ksConnectionProtocols, ksAddress) <a href="#ks_reactor_ksroominfo_setaddress_ks_reactor_ksconnectionprotocols_ks_reactor_ksaddress" id="ks_reactor_ksroominfo_setaddress_ks_reactor_ksconnectionprotocols_ks_reactor_ksaddress"></a>

Sets the address for a protocol. If the address is invalid, clears the address for the protocol.

```csharp
public void SetAddress(ksConnectionProtocols protocol, ksAddress address)
```

#### Parameters

`protocol` [ksConnectionProtocols](/reactor/api-reference/ks.reactor/ks.reactor.ksconnectionprotocols.md)

The protocol to set the address for.

`address` [ksAddress](/reactor/api-reference/ks.reactor/ks.reactor.ksaddress.md)

Address to set. If invalid, clears the address for the protocol.

### ToJSON() <a href="#ks_reactor_ksroominfo_tojson" id="ks_reactor_ksroominfo_tojson"></a>

Creates a ksJSON object of this room info.

```csharp
public ksJSON ToJSON()
```

#### Returns

[ksJSON](/reactor/api-reference/ks.reactor/ks.reactor.ksjson.md)

### ToString() <a href="#ks_reactor_ksroominfo_tostring" id="ks_reactor_ksroominfo_tostring"></a>

Returns a brief summary of the ksRoomInfo object including id, scene and room type.

```csharp
public override string ToString()
```

#### Returns

[string](https://learn.microsoft.com/dotnet/api/system.string)

## Operators

### implicit operator ksMultiType(ksRoomInfo) <a href="#ks_reactor_ksroominfo_op_implicit_ks_reactor_ksroominfo__ks_reactor_ksmultitype" id="ks_reactor_ksroominfo_op_implicit_ks_reactor_ksroominfo__ks_reactor_ksmultitype"></a>

Implicit conversion from ksRoomInfo to ksMultiType.

```csharp
public static implicit operator ksMultiType(ksRoomInfo info)
```

#### Parameters

`info` [ksRoomInfo](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md)

#### Returns

[ksMultiType](/reactor/api-reference/ks.reactor/ks.reactor.ksmultitype.md)

### implicit operator ksRoomInfo(ksMultiType) <a href="#ks_reactor_ksroominfo_op_implicit_ks_reactor_ksmultitype__ks_reactor_ksroominfo" id="ks_reactor_ksroominfo_op_implicit_ks_reactor_ksmultitype__ks_reactor_ksroominfo"></a>

Implicit conversion from ksMultiType to ksRoomInfo.

```csharp
public static implicit operator ksRoomInfo(ksMultiType multiType)
```

#### Parameters

`multiType` [ksMultiType](/reactor/api-reference/ks.reactor/ks.reactor.ksmultitype.md)

#### Returns

[ksRoomInfo](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md)
