// Copyright (c) 2015 - 2023 Doozy Entertainment. All Rights Reserved.
// This code can only be used under the standard Unity Asset Store End User License Agreement
// A Copy of the EULA APPENDIX 1 is available at http://unity3d.com/company/legal/as_terms
// ReSharper disable UnusedMemberInSuper.Global
namespace Doozy.Runtime.Signals
{
public interface ISignalReceiver
{
/// Stream connection mode
StreamConnection streamConnection { get; }
/// Identifier used to connect to a signal provider, when stream connection mode is set to ProvideId
ProviderId providerId { get; }
/// Signal provider reference, used when the stream connection mode is set to ProviderReference
SignalProvider providerReference { get; }
/// Identifier used to connect to a signal stream, when stream connection mode is set to StreamId
StreamId streamId { get; }
/// Signal stream reference that this receiver is connected to (when not connected it is null)
SignalStream stream { get; }
/// TRUE is this receiver is connected to a signal stream
bool isConnected { get; }
/// Connect to signal stream using the selected connection mode
void Connect();
/// Disconnect from signal stream (if connected)
void Disconnect();
/// Invoked every time the stream sends a signal through
/// Signal (can be a MetaSignal as well)
void OnSignal(Signal signal);
}
}