class Provider
(Niantic.Lightship.AR.XRSubsystems.XRPersistentAnchorSubsystem.Provider)
Overview
An abstract class to be implemented by providers of this subsystem.
	class Provider: SubsystemProvider< XRPersistentAnchorSubsystem > {
	public:
		// properties
	
		bool IsMockProvider;
		XRPersistentAnchorConfiguration CurrentConfiguration;
		// methods
	
		virtual abstract TrackableChanges<XRPersistentAnchor> GetChanges(
			XRPersistentAnchor defaultAnchor,
			Allocator allocator
		) = 0;
	
		virtual abstract bool GetNetworkStatusUpdate(out XRPersistentAnchorNetworkRequestStatus[] statuses) = 0;
		virtual abstract bool GetLocalizationStatusUpdate(out XRPersistentAnchorLocalizationStatus[] statuses) = 0;
		virtual abstract bool GetFrameDiagnosticsUpdate(out XRPersistentAnchorFrameDiagnostics[] statuses) = 0;
		virtual bool GetVpsSessionId(out string vpsSessionId);
		virtual bool TryAddAnchor(Pose pose, out XRPersistentAnchor anchor);
		virtual bool TryRemoveAnchor(TrackableId anchorId);
	
		virtual bool TryRestoreAnchor(
			XRPersistentAnchorPayload anchorPayload,
			out XRPersistentAnchor anchor
		);
	
		virtual bool TryLocalize(
			XRPersistentAnchorPayload anchorPayload,
			out XRPersistentAnchor anchor
		);
	};
Detailed Documentation
An abstract class to be implemented by providers of this subsystem.
Properties
CurrentConfiguration
XRPersistentAnchorConfiguration CurrentConfiguration
Get or set configuration with <name>XRPersistentAnchorConfiguration</name>
Methods
GetChanges
virtual abstract TrackableChanges<XRPersistentAnchor> GetChanges(
		XRPersistentAnchor defaultAnchor,
		Allocator allocator
	) = 0
Invoked to get the changes to anchors (added, updated, and removed) since the last call to GetChanges(XRPersistentAnchor,Allocator).
Parameters:
    defaultAnchor  - The default anchor. This should be used to initialize the returned NativeArrays for backwards compatibility. See Allocator.
    allocator  - An allocator to use for the NativeArrays in TrackableChanges<T>.
Returns:
Changes since the last call to GetChanges.
GetNetworkStatusUpdate
virtual abstract bool GetNetworkStatusUpdate(out XRPersistentAnchorNetworkRequestStatus[] statuses) = 0
Get a list of network status updates, if any
Returns:
True if an update is present, false otherwise
GetLocalizationStatusUpdate
virtual abstract bool GetLocalizationStatusUpdate(out XRPersistentAnchorLocalizationStatus[] statuses) = 0
Get a list of localization status updates, if any
Returns:
True if an update is present, false otherwise
GetFrameDiagnosticsUpdate
virtual abstract bool GetFrameDiagnosticsUpdate(out XRPersistentAnchorFrameDiagnostics[] statuses) = 0
Get a list of frame diagnostics updates, if any
Returns:
True if an update is present, false otherwise
GetVpsSessionId
virtual bool GetVpsSessionId(out string vpsSessionId)
Get the vps session id, if any
Parameters:
    vpsSessionId  - The vps session id as 32 character hexidecimal upper-case string.
Returns:
True if vps session id is present, false otherwise
TryAddAnchor
virtual bool TryAddAnchor(Pose pose, out XRPersistentAnchor anchor)
Should create a new anchor with the provided pose.
Parameters:
    pose  - The pose, in session space, of the new anchor.
    anchor  - The new anchor. Must be valid only if this method returns true.
Returns:
Should return true if the new anchor was added, otherwise false.
TryRemoveAnchor
virtual bool TryRemoveAnchor(TrackableId anchorId)
Should remove an existing anchor with TrackableId anchorId.
Parameters:
    anchorId  - The id of an existing anchor to remove.
Returns:
Should return true if the anchor was removed, otherwise false. If the anchor does not exist, return false.
TryRestoreAnchor
virtual bool TryRestoreAnchor(
		XRPersistentAnchorPayload anchorPayload,
		out XRPersistentAnchor anchor
	)
Tries to restore an anchor
Parameters:
    anchorPayload  - The payload to restore the anchor with
    anchor  - The restored anchor
Returns:
Whether or not the restoration was successful