using FishNet.Managing;
using FishNet.Serializing;
using System;
namespace FishNet.Object.Synchronizing.Internal
{
///
/// A sync object is an object that can synchronize it's state
/// between server and client, such as a SyncList
///
public interface ISyncType
{
///
/// true if there are changes since the last flush
///
bool IsDirty { get; }
///
/// Sets index for the SyncType.
///
void SetRegistered();
///
/// PreInitializes this for use with the network.
///
void PreInitialize(NetworkManager networkManager);
///
/// Writes all changed values.
///
///
///True to set the next time data may sync.
void WriteDelta(PooledWriter writer, bool resetSyncTick = true);
///
/// Writers all values if not initial values.
///
///
void WriteFull(PooledWriter writer);
///
/// Sets current values.
///
///
void Read(PooledReader reader);
///
/// Resets the SyncObject so that it can be re-used
///
void Reset();
}
}