PSPDFInstantDocumentState
Objective-C
enum PSPDFInstantDocumentState : NSInteger {}
Swift
@frozen enum InstantDocumentState : Int, @unchecked Sendable
Lists the observable states of an Instant document descriptor and its sync cycle.
The term “sync cycle” refers to the repetitive transitions between the states “receiving changes” and “sending changes”
until there are no unsynced local changes remaining, and the document becomes “clean”. If you are using automatic sync,
a sync cycle will begin PSPDFInstantDocumentDescriptor.delayForSyncingLocalChanges
seconds after the last change to
an annotation in the document. When listening for server changes, a sync cycle can additionally be triggered by changes
coming in from the server even before that interval has elapsed.
When not listening for server changes and with automatic sync of local changes disabled, a sync cycle starts whenever
you call -[PSPDFInstantDocumentDescriptor sync]
.
PSPDFInstantDidFinishSyncingNotification
is posted whenever a sync cycle completes successfully. If the cycle fails,
PSPDFInstantDidFailSyncingNotification
is posted instead.
Note
The states gathered and exposed in this enum have been preselected for relevance to an end user. If you find that you cannot provide the kind of feedback you need to the users of your app, please contact us via https://pspdfkit.com/support/request/-
The state of the document descriptor has not been determined yet.
The state will be determined the first time you obtain a document from a downloaded document descriptor.
Declaration
Objective-C
PSPDFInstantDocumentStateUnknown
Swift
case unknown = 0
-
The backing store of the document descriptor needs to be migrated before the descriptor becomes operational.
Declaration
Objective-C
PSPDFInstantDocumentStateNeedsContentMigration
Swift
case needsContentMigration = 1
-
The backing store of the document descriptor is in the middle of a migration.
It will most likely become operational later.
Declaration
Objective-C
PSPDFInstantDocumentStateMigratingContent
Swift
case migratingContent = 2
-
The backing store of the document descriptor needs to be migrated for adding support for Collaboration Permissions feature. The migration process begins immediately where unsynced local changes, if any, are synced to the server and the existing annotations/comments are updated with their relevant permissions.
Annotation Editing is disabled until the entire migration process has been completed to avoid making of any changes that could be restricted due to the permissions defined for the user.
Declaration
Objective-C
PSPDFInstantDocumentStateNeedsResetForDatabaseMigration
Swift
case needsResetForDatabaseMigration = 3
-
The backing store of the document descriptor needs to be migrated for adding support for Collaboration Permissions feature. The migration process begins immediately where unsynced local changes, if any, are synced to the server and the existing annotations/comments are updated with their relevant permissions.
Annotation Editing is disabled until the entire migration process has been completed to avoid making of any changes that could be restricted due to the permissions defined for the user.
Declaration
Objective-C
PSPDFInstantDocumentStateResettingForDatabaseMigration
Swift
case resettingForDatabaseMigration = 4
-
The document descriptor does not have any local changes.
If you are listening for server changes — as `PSPDFInstantViewController` does in its default configuration when visible — this also implies that you have the latest observable changes from the server.
Declaration
Objective-C
PSPDFInstantDocumentStateClean
Swift
case clean = 5
-
The document descriptor has local changes that have not been synced to the server.
If you use automatic syncing, (either through `PSPDFInstantDocumentDescriptor.delayForSyncingLocalChanges` or by listening for server changes) your changes will be sent to the server during the next sync cycle. If you have disabled automatic syncing, calling `-[PSPDFInstantDocumentDescriptor sync]` will start a sync cycle to get all your local changes to the server and fetch the newest updates from it.
Declaration
Objective-C
PSPDFInstantDocumentStateDirty
Swift
case dirty = 6
-
The document descriptor is busy syncing — currently sending its local changes to the server.
Should communication with the server fail, the document descriptor will fall back into state “dirty”. If all goes well, it will transition to “receiving changes”.
Declaration
Objective-C
PSPDFInstantDocumentStateSendingChanges
Swift
case sendingChanges = 7
-
The document descriptor is busy syncing — currently receiving changes from the server.
Should communication with the server fail the document descriptor will fall back into the “dirty” or “clean” state — depending on whether or not there are unsynced changes. If all goes well, it will transition to either the “clean” or the “sending changes” state — depending on whether new local changes have accumulated during the transmission. This repeated back and forth between the “sending changes” and “receiving changes” state is what we call the sync cycle. It starts when a sync request is made, and — if all goes well — ends when there are no local changes left.
Declaration
Objective-C
PSPDFInstantDocumentStateReceivingChanges
Swift
case receivingChanges = 8
-
The document descriptor is invalid and cannot be used any longer.
You may want to remove its local storage, but that‘s about all you can do with it.
Declaration
Objective-C
PSPDFInstantDocumentStateInvalid
Swift
case invalid = 9