@class NSURL, NSMapTable, TSPObjectContext, TSPPackageMetadata, TSPPersistedObjectUUIDMap, TSPFinalizeHandlerQueue, TSPDocumentLoadValidationPolicy, NSObject, NSString, TSPPackage, NSSet, TSPObjectContainer, TSPObject, NSMutableSet, NSArray, TSPDocumentRevision, NSUUID; @protocol OS_dispatch_group, OS_dispatch_queue; @interface TSPPackageReadCoordinator : TSPReadCoordinatorBase <TSPPersistedObjectUUIDMapDelegate, TSPReadCoordinator> { TSPObjectContext *_context; NSUUID *_documentUUID; TSPObject *_documentObject; TSPPackage *_package; NSURL *_packageURL; TSPFinalizeHandlerQueue *_finalizeHandlerQueue; BOOL _areExternalDataReferencesAllowed; BOOL _skipDocumentUpgrade; unsigned long long _readVersion; TSPPackageMetadata *_cachedMetadata; TSPPersistedObjectUUIDMap *_persistedUUIDMap; struct vector<std::unique_ptr<TSP::PersistedObjectUUIDMapOperation>, std::allocator<std::unique_ptr<TSP::PersistedObjectUUIDMapOperation>>> { void *__begin_; void *__end_; struct __compressed_pair<std::unique_ptr<TSP::PersistedObjectUUIDMapOperation> *, std::allocator<std::unique_ptr<TSP::PersistedObjectUUIDMapOperation>>> { void *__value_; } __end_cap_; } _persistedUUIDMapOperations; NSMutableSet *_duplicatedUUIDs; NSMutableSet *_componentIdentifiersWithDuplicatedUUIDs; NSObject<OS_dispatch_group> *_completionGroup; NSObject<OS_dispatch_queue> *_ioQueue; NSObject<OS_dispatch_queue> *_ioCompletionQueue; NSObject<OS_dispatch_queue> *_readCompletionQueue; NSObject<OS_dispatch_queue> *_componentQueue; struct IdentifierMap<bool> { struct __hash_table<std::__hash_value_type<const long long, bool>, std::__unordered_map_hasher<const long long, std::__hash_value_type<const long long, bool>, std::hash<long long>, std::equal_to<const long long>>, std::__unordered_map_equal<const long long, std::__hash_value_type<const long long, bool>, std::equal_to<const long long>, std::hash<long long>>, std::allocator<std::__hash_value_type<const long long, bool>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<const long long, bool>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<const long long, std::__hash_value_type<const long long, bool>, std::hash<long long>, std::equal_to<const long long>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<const long long, std::__hash_value_type<const long long, bool>, std::equal_to<const long long>, std::hash<long long>>> { float __value_; } __p3_; } __table_; } _readIdentifiers; NSArray *_componentsToUpgrade; _Atomic long long _upgradeMode; NSObject<OS_dispatch_queue> *_objectQueue; NSMapTable *_objects; struct IdentifierMap<bool> { struct __hash_table<std::__hash_value_type<const long long, bool>, std::__unordered_map_hasher<const long long, std::__hash_value_type<const long long, bool>, std::hash<long long>, std::equal_to<const long long>>, std::__unordered_map_equal<const long long, std::__hash_value_type<const long long, bool>, std::equal_to<const long long>, std::hash<long long>>, std::allocator<std::__hash_value_type<const long long, bool>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<const long long, bool>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<const long long, bool>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<const long long, std::__hash_value_type<const long long, bool>, std::hash<long long>, std::equal_to<const long long>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<const long long, std::__hash_value_type<const long long, bool>, std::equal_to<const long long>, std::hash<long long>>> { float __value_; } __p3_; } __table_; } _readExternalObjects; } @property (readonly, nonatomic) BOOL losesDataOnWrite; @property (readonly, nonatomic) NSSet *featureIdentifiers; @property (readonly, nonatomic) NSSet *unsupportedFeatureIdentifiers; @property (readonly, nonatomic) TSPDocumentRevision *documentRevision; @property (readonly, nonatomic) unsigned long long saveToken; @property (readonly, nonatomic) long long preferredPackageType; @property (readonly, nonatomic) TSPObjectContainer *objectContainer; @property (readonly, nonatomic) TSPObject *metadataObject; @property (readonly, nonatomic) BOOL didRequireUpgrade; @property (readonly, nonatomic) BOOL isReadingFromDocument; @property (readonly, nonatomic) TSPDocumentLoadValidationPolicy *documentLoadValidationPolicy; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (unsigned int)sourceType; - (id)init; - (void)dealloc; - (void)tearDown; - (id)context; - (id).cxx_construct; - (void).cxx_destruct; - (unsigned char)packageIdentifier; - (unsigned long long)readVersion; - (unsigned long long)fileFormatVersion; - (void)didUpdateLazyReferenceDelegate:(id)a0; - (id)externalObjectForIdentifier:(long long)a0 componentIdentifier:(long long)a1 isReadFinished:(BOOL)a2; - (id)baseObjectUUID; - (void)didReadObjects:(id)a0 forComponent:(id)a1 packageIdentifier:(unsigned char)a2; - (void)didReferenceExternalObject:(id)a0 withIdentifier:(long long)a1; - (BOOL)endReading; - (unsigned long long)fileFormatVersionFromMetadataMessage:(const void *)a0; - (BOOL)hasDocumentVersionUUID; - (id)initWithContext:(id)a0 package:(id)a1 packageURL:(id)a2 finalizeHandlerQueue:(id)a3 areExternalDataReferencesAllowed:(BOOL)a4 skipDocumentUpgrade:(BOOL)a5 documentLoadValidationPolicy:(id)a6; - (long long)metadataObjectIdentifier; - (id)newObjectUUIDForObjectIdentifier:(long long)a0; - (id)p_allComponentsInPackage; - (id)p_allDataInPackage; - (void)p_readComponent:(id)a0 additionalComponents:(id)a1 upgradeMode:(long long)a2 completionQueue:(id)a3 completion:(id /* block */)a4; - (void)p_readComponent:(id)a0 completionQueue:(id)a1 completion:(id /* block */)a2; - (BOOL)p_validateComponent:(id)a0 error:(id *)a1; - (BOOL)p_validateData:(id)a0 timing:(long long)a1 documentMetadata:(id)a2 scanForOSLikeCorruption:(BOOL)a3 error:(id *)a4; - (void)persistedObjectUUIDMap:(id)a0 foundDuplicateUUID:(id)a1 firstObjectLocation:(struct TSPObjectLocation { long long x0; long long x1; })a2 secondObjectLocation:(struct TSPObjectLocation { long long x0; long long x1; })a3; - (id)persistedObjectUUIDMap:(id)a0 needsDescriptionForComponentIdentifier:(long long)a1 objectIdentifier:(long long)a2; - (void)postprocessMetadata:(id)a0; - (void)prepareForDocumentUpgradeWithMode:(long long)a0; - (void)prepareForDocumentUpgradeWithModeImpl:(long long)a0; - (void)prepareToReadComponentWithIdentifier:(long long)a0 forObjectIdentifier:(long long)a1 isWeakReference:(BOOL)a2 queue:(id)a3 completion:(id /* block */)a4; - (void)preprocessMetadata:(id)a0; - (void)readComponent:(id)a0 completionQueue:(id)a1 completion:(id /* block */)a2; - (void)readComponentAsync:(id)a0; - (BOOL)readComponentIfNeededAsync:(id)a0; - (void)readExternalReferenceComponentIfNeededAsyncForObjectIdentifier:(long long)a0 componentIdentifier:(long long)a1 isWeak:(BOOL)a2 fromComponent:(id)a3; - (void)readPackageMetadataWithComponent:(id)a0 completionQueue:(id)a1 completion:(id /* block */)a2; - (id)readPackageMetadataWithError:(id *)a0; - (void)readRootObjectWithCompletionQueue:(id)a0 completion:(id /* block */)a1; - (void)reader:(id)a0 didFindExternalReferenceToObjectIdentifier:(long long)a1 componentIdentifier:(long long)a2 isWeak:(BOOL)a3 allowUnknownObject:(BOOL)a4 objectClass:(Class)a5 objectProtocol:(id)a6 fromParentObject:(id)a7 completion:(id /* block */)a8; - (void)reader:(id)a0 didFindExternalRepeatedReference:(id)a1 isWeak:(BOOL)a2 allowUnknownObject:(BOOL)a3 objectClass:(Class)a4 objectProtocol:(id)a5 fromParentObject:(id)a6 completion:(id /* block */)a7; - (void)reader:(id)a0 didResetObjectIdentifierForObject:(id)a1 originalObjectIdentifier:(long long)a2; - (void)reader:(id)a0 didResetObjectUUID:(id)a1 forObjectIdentifier:(long long)a2 originalObjectUUID:(id)a3; - (id)reader:(id)a0 wantsDataForIdentifier:(long long)a1; - (long long)reader:(id)a0 wantsObjectIdentifierForUUID:(id)a1; - (id)unarchivedObjectForIdentifier:(long long)a0 isReadFinished:(BOOL)a1; - (void)updateObjectContextForSuccessfulRead; - (void)validateDocumentWithOptions:(unsigned long long)a0 timing:(long long)a1 completion:(id /* block */)a2; @end