Implement MachineKey.Protect and MachineKey.Unprotect
[mono.git] / mcs / class / System.ComponentModel.Composition / src / ComponentModel / System / ComponentModel / Composition / Diagnostics / CompositionTraceSource.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using Microsoft.Internal;\r
6 \r
7 namespace System.ComponentModel.Composition.Diagnostics\r
8 {\r
9     internal static class CompositionTraceSource\r
10     {\r
11 #if SILVERLIGHT\r
12         private static readonly SilverlightTraceWriter Source = new SilverlightTraceWriter();\r
13 #else\r
14         private static readonly TraceSourceTraceWriter Source = new TraceSourceTraceWriter();\r
15 #endif\r
16 \r
17         public static bool CanWriteInformation\r
18         {\r
19             get { return Source.CanWriteInformation; }\r
20         }\r
21 \r
22         public static bool CanWriteWarning\r
23         {\r
24             get { return Source.CanWriteWarning; }\r
25         }\r
26 \r
27         public static bool CanWriteError\r
28         {\r
29             get { return Source.CanWriteError; }\r
30         }\r
31 \r
32         public static void WriteInformation(CompositionTraceId traceId, string format, params object[] arguments)\r
33         {\r
34             EnsureEnabled(CanWriteInformation);\r
35 \r
36             Source.WriteInformation(traceId, format, arguments);\r
37         }\r
38 \r
39         public static void WriteWarning(CompositionTraceId traceId, string format, params object[] arguments)\r
40         {\r
41             EnsureEnabled(CanWriteWarning);\r
42 \r
43             Source.WriteWarning(traceId, format, arguments);\r
44         }\r
45 \r
46         public static void WriteError(CompositionTraceId traceId, string format, params object[] arguments)\r
47         {\r
48             EnsureEnabled(CanWriteError);\r
49 \r
50             Source.WriteError(traceId, format, arguments);\r
51         }\r
52 \r
53         private static void EnsureEnabled(bool condition)\r
54         {\r
55             Assumes.IsTrue(condition, "To avoid unnecessary work when a trace level has not been enabled, check CanWriteXXX before calling this method.");\r
56         }\r
57     }\r
58 }\r