> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/scene-fusion/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/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.framerpcdata.md).

# Class FrameRPCData

Namespace: [KS.SceneFusion.Client](/scene-fusion/api-reference/ks.scenefusion.client.md)\
Assembly: KSUnity-Editor.dll

Holds RPC data for a server frame.

```csharp
public class FrameRPCData
```

#### Inheritance

object ← [FrameRPCData](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.framerpcdata.md)

## Constructors

### FrameRPCData(ulong) <a href="#ks_scenefusion_client_framerpcdata__ctor_system_uint64" id="ks_scenefusion_client_framerpcdata__ctor_system_uint64"></a>

Constructor

```csharp
public FrameRPCData(ulong frameNum)
```

#### Parameters

`frameNum` ulong

## Fields

### FrameNum <a href="#ks_scenefusion_client_framerpcdata_framenum" id="ks_scenefusion_client_framerpcdata_framenum"></a>

Server frame number.

```csharp
public ulong FrameNum
```

#### Field Value

ulong

## Methods

### AddSegment(byte\[]) <a href="#ks_scenefusion_client_framerpcdata_addsegment_system_byte" id="ks_scenefusion_client_framerpcdata_addsegment_system_byte"></a>

Appends data to a segmented batch RPC. The data is added to the first segmentented RPC that does not have all its data.

```csharp
public void AddSegment(byte[] data)
```

#### Parameters

`data` byte\[]

data to add to the segmented batch RPC.

### DequeueBatch() <a href="#ks_scenefusion_client_framerpcdata_dequeuebatch" id="ks_scenefusion_client_framerpcdata_dequeuebatch"></a>

Dequeues batched RPC data and sets the index for queuing RPCs to the batch index.

```csharp
public byte[] DequeueBatch()
```

#### Returns

byte\[]

compressed batch RPC data, or null if there was no data to dequeue.

### DequeueRPC(ref RPCData) <a href="#ks_scenefusion_client_framerpcdata_dequeuerpc_ks_scenefusion_client_rpcdata" id="ks_scenefusion_client_framerpcdata_dequeuerpc_ks_scenefusion_client_rpcdata"></a>

Dequeues an RPC.

```csharp
public bool DequeueRPC(ref RPCData rpc)
```

#### Parameters

`rpc` [RPCData](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.rpcdata.md)

set to dequeued RPC data, if there was an RPC to dequeue.

#### Returns

bool

true if an RPC was dequeued.

### HasAllSegments() <a href="#ks_scenefusion_client_framerpcdata_hasallsegments" id="ks_scenefusion_client_framerpcdata_hasallsegments"></a>

```csharp
public bool HasAllSegments()
```

#### Returns

bool

true if all segmented batch RPCs in this frame have received all their data.

### QueueBatch(byte\[]) <a href="#ks_scenefusion_client_framerpcdata_queuebatch_system_byte" id="ks_scenefusion_client_framerpcdata_queuebatch_system_byte"></a>

Queues batched RPC data and assigns its queue index to the current size of the queue list. Sets the current index to be right after the batch RPC index so future RPCs will be queues after the batch RPCs.

```csharp
public void QueueBatch(byte[] data)
```

#### Parameters

`data` byte\[]

compressed batch RPCs.

### QueueRPC(RPCData) <a href="#ks_scenefusion_client_framerpcdata_queuerpc_ks_scenefusion_client_rpcdata" id="ks_scenefusion_client_framerpcdata_queuerpc_ks_scenefusion_client_rpcdata"></a>

Queues an RPC into the queue at the current index.

```csharp
public void QueueRPC(RPCData rpc)
```

#### Parameters

`rpc` [RPCData](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.rpcdata.md)

rpc to queue.

### QueueSegmentedBatch(int) <a href="#ks_scenefusion_client_framerpcdata_queuesegmentedbatch_system_int32" id="ks_scenefusion_client_framerpcdata_queuesegmentedbatch_system_int32"></a>

Reserves and queues space for a segmented batch RPC and assigns its queue index to the current size of the queue list. Sets the current index to be right after the batch RPC index so future RPCs will be queues after the batch RPCs.

```csharp
public void QueueSegmentedBatch(int size)
```

#### Parameters

`size` int

size to reserve for the segmented batch RPC.
