156 lines
5.3 KiB
C#
156 lines
5.3 KiB
C#
|
|
/*******************************************************************************
|
|||
|
|
Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
|
|||
|
|
|
|||
|
|
NOTICE:All information contained herein is, and remains the property of
|
|||
|
|
PICO Technology Co., Ltd. The intellectual and technical concepts
|
|||
|
|
contained herein are proprietary to PICO Technology Co., Ltd. and may be
|
|||
|
|
covered by patents, patents in process, and are protected by trade secret or
|
|||
|
|
copyright law. Dissemination of this information or reproduction of this
|
|||
|
|
material is strictly forbidden unless prior written permission is obtained from
|
|||
|
|
PICO Technology Co., Ltd.
|
|||
|
|
*******************************************************************************/
|
|||
|
|
|
|||
|
|
using System;
|
|||
|
|
|
|||
|
|
namespace Pico.Platform.Models
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Destination is a location in the app.
|
|||
|
|
/// You can configure destinations for your app on the PICO Developer Platform.
|
|||
|
|
/// </summary>
|
|||
|
|
public class Destination
|
|||
|
|
{
|
|||
|
|
/// The destination's API name.
|
|||
|
|
public readonly string ApiName;
|
|||
|
|
|
|||
|
|
/// The destination's deeplink message.
|
|||
|
|
public readonly string DeeplinkMessage;
|
|||
|
|
|
|||
|
|
/// The destination's display name.
|
|||
|
|
public readonly string DisplayName;
|
|||
|
|
|
|||
|
|
public Destination(IntPtr o)
|
|||
|
|
{
|
|||
|
|
ApiName = CLIB.ppf_Destination_GetApiName(o);
|
|||
|
|
DeeplinkMessage = CLIB.ppf_Destination_GetDeeplinkMessage(o);
|
|||
|
|
DisplayName = CLIB.ppf_Destination_GetDisplayName(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Each element is \ref Destination
|
|||
|
|
/// </summary>
|
|||
|
|
public class DestinationList : MessageArray<Destination>
|
|||
|
|
{
|
|||
|
|
public DestinationList(IntPtr a)
|
|||
|
|
{
|
|||
|
|
var count = (int) CLIB.ppf_DestinationArray_GetSize(a);
|
|||
|
|
this.Capacity = count;
|
|||
|
|
for (int i = 0; i < count; i++)
|
|||
|
|
{
|
|||
|
|
this.Add(new Destination(CLIB.ppf_DestinationArray_GetElement(a, (UIntPtr) i)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
NextPageParam = CLIB.ppf_DestinationArray_GetNextPageParam(a);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// App's invitation info.
|
|||
|
|
/// </summary>
|
|||
|
|
public class ApplicationInvite
|
|||
|
|
{
|
|||
|
|
/// The destination where the user is directed to after accepting the invitation.
|
|||
|
|
public readonly Destination Destination;
|
|||
|
|
|
|||
|
|
/// Invited users.
|
|||
|
|
public readonly User Recipient;
|
|||
|
|
|
|||
|
|
/// Invitation ID.
|
|||
|
|
public readonly UInt64 ID;
|
|||
|
|
|
|||
|
|
/// If the user clicks the invitation message, this field will be `true`.
|
|||
|
|
public readonly bool IsActive;
|
|||
|
|
|
|||
|
|
/// The lobby session ID that identifies a group or team.
|
|||
|
|
public readonly string LobbySessionId;
|
|||
|
|
|
|||
|
|
/// The match session ID that identifies a competition.
|
|||
|
|
public readonly string MatchSessionId;
|
|||
|
|
|
|||
|
|
public ApplicationInvite(IntPtr o)
|
|||
|
|
{
|
|||
|
|
Destination = new Destination(CLIB.ppf_ApplicationInvite_GetDestination(o));
|
|||
|
|
Recipient = new User(CLIB.ppf_ApplicationInvite_GetRecipient(o));
|
|||
|
|
ID = CLIB.ppf_ApplicationInvite_GetID(o);
|
|||
|
|
IsActive = CLIB.ppf_ApplicationInvite_GetIsActive(o);
|
|||
|
|
LobbySessionId = CLIB.ppf_ApplicationInvite_GetLobbySessionId(o);
|
|||
|
|
MatchSessionId = CLIB.ppf_ApplicationInvite_GetMatchSessionId(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Each element is \ref ApplicationInvite.
|
|||
|
|
/// </summary>
|
|||
|
|
public class ApplicationInviteList : MessageArray<ApplicationInvite>
|
|||
|
|
{
|
|||
|
|
public ApplicationInviteList(IntPtr a)
|
|||
|
|
{
|
|||
|
|
var count = (int) CLIB.ppf_ApplicationInviteArray_GetSize(a);
|
|||
|
|
this.Capacity = count;
|
|||
|
|
for (int i = 0; i < count; i++)
|
|||
|
|
{
|
|||
|
|
this.Add(new ApplicationInvite(CLIB.ppf_ApplicationInviteArray_GetElement(a, (UIntPtr) i)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
NextPageParam = CLIB.ppf_ApplicationInviteArray_GetNextPageParam(a);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// The result returned after calling \ref PresenceService.SendInvites.
|
|||
|
|
/// </summary>
|
|||
|
|
public class SendInvitesResult
|
|||
|
|
{
|
|||
|
|
public readonly ApplicationInviteList Invites;
|
|||
|
|
|
|||
|
|
public SendInvitesResult(IntPtr o)
|
|||
|
|
{
|
|||
|
|
Invites = new ApplicationInviteList(CLIB.ppf_SendInvitesResult_GetInvites(o));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// When user click the invitation message, the app will be launched and you will receive a message with presence info.
|
|||
|
|
/// </summary>
|
|||
|
|
public class PresenceJoinIntent
|
|||
|
|
{
|
|||
|
|
/// The deeplink message of the destination.
|
|||
|
|
public readonly string DeeplinkMessage;
|
|||
|
|
|
|||
|
|
/// The destination api name of the destination.
|
|||
|
|
public readonly string DestinationApiName;
|
|||
|
|
|
|||
|
|
/// The lobby session id which is configured by the sender.
|
|||
|
|
public readonly string LobbySessionId;
|
|||
|
|
|
|||
|
|
/// The match session id which is configured by the sender.
|
|||
|
|
public readonly string MatchSessionId;
|
|||
|
|
|
|||
|
|
/// The extra info of the presence.
|
|||
|
|
public readonly string Extra;
|
|||
|
|
|
|||
|
|
public PresenceJoinIntent(IntPtr o)
|
|||
|
|
{
|
|||
|
|
DeeplinkMessage = CLIB.ppf_PresenceJoinIntent_GetDeeplinkMessage(o);
|
|||
|
|
DestinationApiName = CLIB.ppf_PresenceJoinIntent_GetDestinationApiName(o);
|
|||
|
|
LobbySessionId = CLIB.ppf_PresenceJoinIntent_GetLobbySessionId(o);
|
|||
|
|
MatchSessionId = CLIB.ppf_PresenceJoinIntent_GetMatchSessionId(o);
|
|||
|
|
Extra = CLIB.ppf_PresenceJoinIntent_GetExtra(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|