using PepperDash.Core; using PepperDash.Core.Logging; using WebSocketSharp; namespace PepperDash.Essentials { /// /// Utility functions for logging and other common tasks. /// public static class Utilities { private static int nextClientId = 0; /// /// Get the next unique client ID /// /// Client ID public static int GetNextClientId() { nextClientId++; return nextClientId; } /// /// Converts a WebSocketServer LogData object to Essentials logging calls. /// /// The LogData object to convert. /// The log message. /// The device associated with the log message. public static void ConvertWebsocketLog(LogData data, string message, IKeyed device = null) { switch (data.Level) { case LogLevel.Trace: if (device == null) { Debug.LogVerbose(message); } else { device.LogVerbose(message); } break; case LogLevel.Debug: if (device == null) { Debug.LogDebug(message); } else { device.LogDebug(message); } break; case LogLevel.Info: if (device == null) { Debug.LogInformation(message); } else { device.LogInformation(message); } break; case LogLevel.Warn: if (device == null) { Debug.LogWarning(message); } else { device.LogWarning(message); } break; case LogLevel.Error: if (device == null) { Debug.LogError(message); } else { device.LogError(message); } break; case LogLevel.Fatal: if (device == null) { Debug.LogFatal(message); } else { device.LogFatal(message); } break; } } } }