36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
 | |
| using System;
 | |
| using UnityEngine;
 | |
| 
 | |
| namespace FishNet.Managing.Transporting
 | |
| {
 | |
| 
 | |
|     /// <summary>
 | |
|     /// When inherited from this may be used with the TransportManager to alter messages before they are sent and received.
 | |
|     /// </summary>
 | |
|     public abstract class IntermediateLayer : MonoBehaviour
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// TransportManager associated with this script.
 | |
|         /// </summary>
 | |
|         public TransportManager TransportManager { get; private set; }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Called when data is received.
 | |
|         /// </summary>
 | |
|         /// <param name="src">Original data.</param>
 | |
|         /// <param name="fromServer">True if receiving from the server, false if from a client.</param>
 | |
|         /// <returns>Modified data.</returns>
 | |
|         public abstract ArraySegment<byte> HandleIncoming(ArraySegment<byte> src, bool fromServer);
 | |
|         /// <summary>
 | |
|         /// Called when data is sent.
 | |
|         /// </summary>
 | |
|         /// <param name="src">Original data.</param>
 | |
|         /// <param name="toServer">True if sending to the server, false if to a client.</param>
 | |
|         /// <returns>Modified data.</returns>
 | |
|         public abstract ArraySegment<byte> HandleOutoing(ArraySegment<byte> src, bool toServer);
 | |
| 
 | |
|         internal void InitializeOnce(TransportManager manager) => TransportManager = manager;
 | |
|     }
 | |
| 
 | |
| } |