internal static string GetExceptionMessage(Exception exception) { if (SsmUtility.IsTransientException(exception)) { return(exception.Message); } else { return(exception.ToString()); } }
/// <summary> /// Hook LogError events and schedule a restart /// </summary> private void Logger_LogError(object sender, LogErrorEventArgs args) { Trace.WriteLine("SsmLogger.Logger_LogError: " + SsmUtility.GetExceptionMessage(args.Exception)); if (this.logError != null) { this.logError(sender, args); } this.TryStateTransition(State.Resyncing, delegate { this.ScheduleRestart(TimeSpan.FromSeconds(1.0)); }); }
/// <summary> /// Report an exception /// </summary> private void ReportException(Exception exception) { if (SsmUtility.IsTransientException(exception)) { Trace.WriteLine("SsmLogger.ReportException: " + exception.Message); } else { Trace.WriteLine("SsmLogger.ReportException: " + exception.ToString()); } EventHandler <ExceptionEventArgs> handler = this.Exception; if (handler != null) { handler(this, new ExceptionEventArgs(exception)); } }
private static void GetDependencyConversion( Parameter dependency, Conversion parentConversion, out Conversion dependencyConversion, out string dependencyKey) { foreach (Conversion conversion in dependency.Conversions) { dependencyKey = dependency.Id + ":" + conversion.Units; if (parentConversion.Expression.IndexOf(dependencyKey, StringComparison.InvariantCultureIgnoreCase) != -1) { dependencyConversion = conversion; return; } } dependencyKey = dependency.Id; dependencyConversion = SsmUtility.First(dependency.Conversions); }
/// <summary> /// Synchronously sends a request and waits for the response /// </summary> public SsmPacket SyncSendReceive(SsmPacket request) { //Console.WriteLine("#### Raw request data:"); byte[] requestBuffer = request.Data; SsmUtility.DumpBuffer(requestBuffer); stream.Write(requestBuffer, 0, requestBuffer.Length); Thread.Sleep(250); byte[] responseBuffer = new byte[2000]; int bytesRead = stream.Read(responseBuffer, 0, responseBuffer.Length); Console.WriteLine("Bytes read: {0}", bytesRead); Console.WriteLine("#### Raw response data:"); SsmUtility.DumpBuffer(responseBuffer); SsmPacket response = SsmPacket.ParseResponse(responseBuffer, 0, bytesRead); return(response); }
private Stream GetDataStream_Synchronized(bool throwOnFailure) { Trace.WriteLine("SsmLogger.GetDataStream_Synchronized, ssmPortName = " + this.ssmPortName + ", throwOnFailure = " + throwOnFailure.ToString(CultureInfo.InvariantCulture) + ", Thread = " + Thread.CurrentThread.ManagedThreadId.ToString(CultureInfo.InvariantCulture)); if (throwOnFailure) { return(SsmUtility.GetDataStream( this.ssmPortName, 4800, ref this.port, delegate(string line) { Trace.WriteLine(line); })); } else { Exception exception = null; try { return(SsmUtility.GetDataStream( this.ssmPortName, 4800, ref this.port, delegate(string line) { Trace.WriteLine(line); })); } catch (System.Security.SecurityException ex) { exception = ex; } catch (System.TimeoutException ex) { exception = ex; } catch (System.IO.IOException ex) { exception = ex; } catch (System.UnauthorizedAccessException ex) { exception = ex; } if (throwOnFailure) { throw exception; } this.ReportException(exception); Thread.Sleep(1000); return(null); } }