You've already forked linux-packaging-mono
Imported Upstream version 5.16.0.122
Former-commit-id: 60dd6d91c5dc30a6569681c1b8d7cddebae4e52b
This commit is contained in:
parent
f8f43c9aed
commit
73002b0b4a
@@ -81,13 +81,57 @@ namespace Mono {
|
||||
return true;
|
||||
}
|
||||
|
||||
[MethodImplAttribute (MethodImplOptions.InternalCall)]
|
||||
static extern string ExceptionToState_internal (Exception exc, out ulong portable_hash, out ulong unportable_hash);
|
||||
|
||||
static Tuple<String, ulong, ulong>
|
||||
ExceptionToState (Exception exc)
|
||||
{
|
||||
ulong portable_hash;
|
||||
ulong unportable_hash;
|
||||
string payload_str = ExceptionToState_internal (exc, out portable_hash, out unportable_hash);
|
||||
|
||||
return new Tuple<String, ulong, ulong> (payload_str, portable_hash, unportable_hash);
|
||||
}
|
||||
|
||||
|
||||
#if !MOBILE
|
||||
[MethodImplAttribute (MethodImplOptions.InternalCall)]
|
||||
static extern void DisableMicrosoftTelemetry (IntPtr appBundleID, IntPtr appSignature, IntPtr appVersion, IntPtr merpGUIPath);
|
||||
static extern void DisableMicrosoftTelemetry ();
|
||||
|
||||
[MethodImplAttribute (MethodImplOptions.InternalCall)]
|
||||
static extern void EnableMicrosoftTelemetry_internal (IntPtr appBundleID, IntPtr appSignature, IntPtr appVersion, IntPtr merpGUIPath, IntPtr eventType, IntPtr appPath);
|
||||
|
||||
[MethodImplAttribute (MethodImplOptions.InternalCall)]
|
||||
static extern void SendMicrosoftTelemetry_internal (IntPtr payload, ulong portable_hash, ulong unportable_hash);
|
||||
|
||||
static void SendMicrosoftTelemetry (string payload_str, ulong portable_hash, ulong unportable_hash)
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform (OSPlatform.OSX)) {
|
||||
using (var payload_chars = RuntimeMarshal.MarshalString (payload_str))
|
||||
{
|
||||
SendMicrosoftTelemetry_internal (payload_chars.Value, portable_hash, unportable_hash);
|
||||
}
|
||||
} else {
|
||||
throw new PlatformNotSupportedException("Merp support is currently only supported on OSX.");
|
||||
}
|
||||
}
|
||||
|
||||
// Usage:
|
||||
//
|
||||
// catch (Exception exc) {
|
||||
// var monoType = Type.GetType ("Mono.Runtime", false);
|
||||
// var m = monoType.GetMethod("SendExceptionToTelemetry", BindingFlags.NonPublic | BindingFlags.Static);
|
||||
// m.Invoke(null, new object[] { exc });
|
||||
// }
|
||||
static void SendExceptionToTelemetry (Exception exc)
|
||||
{
|
||||
ulong portable_hash;
|
||||
ulong unportable_hash;
|
||||
string payload_str = ExceptionToState_internal (exc, out portable_hash, out unportable_hash);
|
||||
SendMicrosoftTelemetry (payload_str, portable_hash, unportable_hash);
|
||||
}
|
||||
|
||||
static void EnableMicrosoftTelemetry (string appBundleID_str, string appSignature_str, string appVersion_str, string merpGUIPath_str, string eventType_str, string appPath_str)
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform (OSPlatform.OSX)) {
|
||||
|
Reference in New Issue
Block a user