namespace WatsonTcp { using System; using System.Threading.Tasks; /// /// Watson TCP server callbacks. /// public class WatsonTcpServerCallbacks { #region Public-Members /// /// Callback to invoke when receiving a synchronous request that demands a response. /// [Obsolete("Please migrate to async methods.")] public Func SyncRequestReceived { get { return _SyncRequestReceived; } set { _SyncRequestReceived = value; } } /// /// Callback to invoke when receiving a synchronous request that demands a response. /// public Func> SyncRequestReceivedAsync { get { return _SyncRequestReceivedAsync; } set { _SyncRequestReceivedAsync = value; } } #endregion #region Private-Members private Func _SyncRequestReceived = null; private Func> _SyncRequestReceivedAsync = null; #endregion #region Constructors-and-Factories /// /// Instantiate. /// public WatsonTcpServerCallbacks() { } #endregion #region Public-Methods #endregion #region Internal-Methods internal SyncResponse HandleSyncRequestReceived(SyncRequest req) { SyncResponse ret = null; #pragma warning disable CS0618 // Type or member is obsolete if (SyncRequestReceived != null) { try { ret = SyncRequestReceived(req); } catch (Exception) { } } #pragma warning restore CS0618 // Type or member is obsolete return ret; } internal async Task HandleSyncRequestReceivedAsync(SyncRequest req) { SyncResponse ret = null; if (SyncRequestReceivedAsync != null) { try { ret = await SyncRequestReceivedAsync(req); } catch (Exception) { } } return ret; } #endregion #region Private-Methods #endregion } }