-
Notifications
You must be signed in to change notification settings - Fork 66
Expand file tree
/
Copy pathAndroid.Gms.Games.SnapshotClass.cs
More file actions
80 lines (68 loc) · 3.4 KB
/
Android.Gms.Games.SnapshotClass.cs
File metadata and controls
80 lines (68 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using System;
using System.IO;
using Android.Runtime;
using Java.Interop;
namespace Android.Gms.Games.Snapshot
{
// Manual binding for com.google.android.gms.games.snapshot.Snapshot
[Register ("com/google/android/gms/games/snapshot/Snapshot", DoNotGenerateAcw = true)]
public sealed partial class Snapshot : Java.Lang.Object
{
static readonly JniPeerMembers _members =
new XAPeerMembers ("com/google/android/gms/games/snapshot/Snapshot", typeof (Snapshot));
internal Snapshot (IntPtr handle, JniHandleOwnership transfer) : base (handle, transfer) { }
public override JniPeerMembers JniPeerMembers => _members;
protected override IntPtr ThresholdClass => _members.JniPeerType.PeerReference.Handle;
protected override Type ThresholdType => _members.ManagedPeerType;
// -------------------------
// Core Java API bindings
// -------------------------
// SnapshotMetadata getMetadata()
[Register ("getMetadata", "()Lcom/google/android/gms/games/snapshot/SnapshotMetadata;", "")]
public unsafe SnapshotMetadata GetMetadata ()
{
const string __id = "getMetadata.()Lcom/google/android/gms/games/snapshot/SnapshotMetadata;";
JniArgumentValue* __args = stackalloc JniArgumentValue [0];
var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
return Java.Lang.Object.GetObject<SnapshotMetadata> (__rm.Handle, JniHandleOwnership.TransferLocalRef)!;
}
// SnapshotContents getSnapshotContents()
[Register ("getSnapshotContents", "()Lcom/google/android/gms/games/snapshot/SnapshotContents;", "")]
public unsafe SnapshotContents GetSnapshotContents ()
{
const string __id = "getSnapshotContents.()Lcom/google/android/gms/games/snapshot/SnapshotContents;";
JniArgumentValue* __args = stackalloc JniArgumentValue [0];
var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
return Java.Lang.Object.GetObject<SnapshotContents> (__rm.Handle, JniHandleOwnership.TransferLocalRef)!;
}
/// <summary>
/// Read the full byte[] contents of this snapshot.
/// </summary>
public byte [] ReadFully ()
{
var contents = GetSnapshotContents ();
return contents?.ReadFully () ?? Array.Empty<byte> ();
}
public void WriteBytes (byte [] data)
{
var contents = GetSnapshotContents ();
if (contents == null)
throw new InvalidOperationException ("SnapshotContents is null.");
if (!contents.WriteBytes (data))
throw new IOException ("Failed to write snapshot data.");
}
/// <summary>
/// Close the underlying SnapshotContents (if you want to close manually).
/// Usually CommitAndClose on SnapshotsClient is preferred.
/// </summary>
public void CloseContents ()
{
var contents = GetSnapshotContents ();
contents?.Close ();
}
// Optional: convenience property that returns SnapshotMetadata
public SnapshotMetadata Metadata => GetMetadata ();
// A small helper to get a friendly SnapshotId through metadata (returns null if metadata missing)
public string? SnapshotId => GetMetadata ()?.SnapshotId;
}
}