From e89ca08cbf977de8b698854dd7c34a4dcf22a1c1 Mon Sep 17 00:00:00 2001 From: Dhfs Javadocs Date: Mon, 12 May 2025 14:04:48 +0000 Subject: [PATCH] update javadocs --- DeadlockDetector.html | 150 + Dockerfile | 35 - Dockerfile.ci | 22 - LICENSE | 201 - README.md | 22 - allclasses-index.html | 723 ++ allpackages-index.html | 129 + class-use/DeadlockDetector.html | 62 + .../dhfs/JObjectKeyProtoSerializer.html | 200 + com/usatiuk/dhfs/ProtoSerializer.html | 156 + com/usatiuk/dhfs/ShutdownChecker.html | 178 + com/usatiuk/dhfs/TemporaryOpSerializer.html | 200 + .../dhfs/autosync/AutosyncProcessor.html | 178 + com/usatiuk/dhfs/autosync/AutosyncTxHook.html | 234 + .../autosync/class-use/AutosyncProcessor.html | 62 + .../autosync/class-use/AutosyncTxHook.html | 62 + .../dhfs/autosync/package-summary.html | 109 + com/usatiuk/dhfs/autosync/package-tree.html | 77 + com/usatiuk/dhfs/autosync/package-use.html | 62 + .../class-use/JObjectKeyProtoSerializer.html | 62 + .../dhfs/class-use/ProtoSerializer.html | 125 + .../dhfs/class-use/ShutdownChecker.html | 62 + .../dhfs/class-use/TemporaryOpSerializer.html | 62 + .../DeferredInvalidationQueueData.html | 192 + .../DeferredInvalidationQueueService.html | 187 + .../dhfs/invalidation/IndexUpdateOp.html | 313 + .../invalidation/InvalidationQueueEntry.html | 281 + .../InvalidationQueueService.html | 200 + com/usatiuk/dhfs/invalidation/Op.html | 152 + .../dhfs/invalidation/OpExtractor.html | 149 + .../dhfs/invalidation/OpExtractorService.html | 181 + com/usatiuk/dhfs/invalidation/OpHandler.html | 149 + .../dhfs/invalidation/OpHandlerService.html | 180 + .../RemoteObjectMetaOpExtractor.html | 189 + .../DeferredInvalidationQueueData.html | 62 + .../DeferredInvalidationQueueService.html | 62 + .../invalidation/class-use/IndexUpdateOp.html | 88 + .../class-use/InvalidationQueueEntry.html | 87 + .../class-use/InvalidationQueueService.html | 62 + .../dhfs/invalidation/class-use/Op.html | 222 + .../invalidation/class-use/OpExtractor.html | 112 + .../class-use/OpExtractorService.html | 62 + .../invalidation/class-use/OpHandler.html | 122 + .../class-use/OpHandlerService.html | 62 + .../RemoteObjectMetaOpExtractor.html | 62 + .../dhfs/invalidation/package-summary.html | 129 + .../dhfs/invalidation/package-tree.html | 108 + .../dhfs/invalidation/package-use.html | 148 + .../JKleppmannTreeInitialSyncProcessor.html | 202 + ...nnTree.JKleppmannTreeStorageInterface.html | 311 + .../JKleppmannTreeManager.JKleppmannTree.html | 271 + .../jkleppmanntree/JKleppmannTreeManager.html | 204 + .../JKleppmannTreeOpExtractor.html | 189 + .../JKleppmannTreeOpHandler.html | 189 + .../JKleppmannTreeOpWrapper.html | 294 + .../JKleppmannTreePeerInterface.html | 200 + .../JKleppmannTreePeriodicOpHandler.html | 189 + .../JKleppmannTreePeriodicPushOp.html | 313 + .../JKleppmannTreeInitialSyncProcessor.html | 62 + ...nnTree.JKleppmannTreeStorageInterface.html | 62 + .../JKleppmannTreeManager.JKleppmannTree.html | 97 + .../class-use/JKleppmannTreeManager.html | 62 + .../class-use/JKleppmannTreeOpExtractor.html | 62 + .../class-use/JKleppmannTreeOpHandler.html | 62 + .../class-use/JKleppmannTreeOpWrapper.html | 88 + .../JKleppmannTreePeerInterface.html | 62 + .../JKleppmannTreePeriodicOpHandler.html | 62 + .../JKleppmannTreePeriodicPushOp.html | 88 + .../dhfs/jkleppmanntree/package-summary.html | 125 + .../dhfs/jkleppmanntree/package-tree.html | 98 + .../dhfs/jkleppmanntree/package-use.html | 88 + .../structs/JKleppmannTreeNode.html | 435 + .../structs/JKleppmannTreeNodeHolder.html | 396 + .../structs/JKleppmannTreeNodeMeta.html | 168 + .../structs/JKleppmannTreePersistentData.html | 460 ++ .../structs/class-use/JKleppmannTreeNode.html | 151 + .../class-use/JKleppmannTreeNodeHolder.html | 93 + .../class-use/JKleppmannTreeNodeMeta.html | 323 + .../JKleppmannTreePersistentData.html | 119 + .../structs/package-summary.html | 115 + .../jkleppmanntree/structs/package-tree.html | 96 + .../jkleppmanntree/structs/package-use.html | 133 + com/usatiuk/dhfs/jmap/JMapEntry.html | 336 + com/usatiuk/dhfs/jmap/JMapHelper.html | 237 + com/usatiuk/dhfs/jmap/JMapHolder.html | 124 + .../dhfs/jmap/JMapHolderRefcounterTxHook.html | 192 + com/usatiuk/dhfs/jmap/JMapIterator.html | 309 + com/usatiuk/dhfs/jmap/JMapKey.html | 124 + com/usatiuk/dhfs/jmap/JMapLongKey.html | 294 + com/usatiuk/dhfs/jmap/JMapRef.html | 307 + .../dhfs/jmap/JMapRefcounterTxHook.html | 224 + .../dhfs/jmap/class-use/JMapEntry.html | 102 + .../dhfs/jmap/class-use/JMapHelper.html | 62 + .../dhfs/jmap/class-use/JMapHolder.html | 136 + .../class-use/JMapHolderRefcounterTxHook.html | 62 + .../dhfs/jmap/class-use/JMapIterator.html | 62 + com/usatiuk/dhfs/jmap/class-use/JMapKey.html | 164 + .../dhfs/jmap/class-use/JMapLongKey.html | 90 + com/usatiuk/dhfs/jmap/class-use/JMapRef.html | 62 + .../jmap/class-use/JMapRefcounterTxHook.html | 62 + com/usatiuk/dhfs/jmap/package-summary.html | 125 + com/usatiuk/dhfs/jmap/package-tree.html | 114 + com/usatiuk/dhfs/jmap/package-use.html | 103 + com/usatiuk/dhfs/package-summary.html | 143 + com/usatiuk/dhfs/package-tree.html | 84 + com/usatiuk/dhfs/package-use.html | 110 + .../DhfsObjectPeerDiscoveryApi.html | 168 + .../dhfs/peerdiscovery/IpPeerAddress.html | 351 + .../peerdiscovery/PeerAddrStringHelper.html | 188 + .../dhfs/peerdiscovery/PeerAddress.html | 161 + .../dhfs/peerdiscovery/PeerAddressType.html | 244 + .../peerdiscovery/PeerDiscoveryDirectory.html | 196 + .../PeerDiscoveryInfo.Builder.html | 659 ++ .../dhfs/peerdiscovery/PeerDiscoveryInfo.html | 755 ++ .../PeerDiscoveryInfoOrBuilder.html | 213 + .../PersistentStaticPeerDiscovery.html | 178 + .../peerdiscovery/StaticPeerDiscovery.html | 178 + .../class-use/DhfsObjectPeerDiscoveryApi.html | 62 + .../class-use/IpPeerAddress.html | 164 + .../class-use/PeerAddrStringHelper.html | 62 + .../peerdiscovery/class-use/PeerAddress.html | 165 + .../class-use/PeerAddressType.html | 127 + .../class-use/PeerDiscoveryDirectory.html | 62 + .../class-use/PeerDiscoveryInfo.Builder.html | 175 + .../class-use/PeerDiscoveryInfo.html | 165 + .../class-use/PeerDiscoveryInfoOrBuilder.html | 94 + .../PersistentStaticPeerDiscovery.html | 62 + .../class-use/StaticPeerDiscovery.html | 62 + .../local/LocalPeerDiscoveryBroadcaster.html | 183 + .../local/LocalPeerDiscoveryClient.html | 151 + .../LocalPeerDiscoveryBroadcaster.html | 62 + .../class-use/LocalPeerDiscoveryClient.html | 62 + .../peerdiscovery/local/package-summary.html | 109 + .../peerdiscovery/local/package-tree.html | 77 + .../dhfs/peerdiscovery/local/package-use.html | 62 + .../dhfs/peerdiscovery/package-summary.html | 135 + .../dhfs/peerdiscovery/package-tree.html | 153 + .../dhfs/peerdiscovery/package-use.html | 139 + .../dhfs/peersync/InitialSyncProcessor.html | 158 + .../peersync/PeerConnectedEventListener.html | 147 + .../PeerDisconnectedEventListener.html | 147 + com/usatiuk/dhfs/peersync/PeerId.html | 293 + com/usatiuk/dhfs/peersync/PeerInfo.html | 401 + .../peersync/PeerInfoProtoSerializer.html | 200 + .../dhfs/peersync/PeerInfoService.html | 281 + .../dhfs/peersync/PeerInfoSyncHandler.html | 194 + .../dhfs/peersync/PeerLastSeenUpdater.html | 151 + .../peersync/PersistentPeerDataService.html | 270 + .../peersync/PersistentRemoteHostsData.html | 401 + ...eachablePeerManager.HostStateSnapshot.html | 272 + .../dhfs/peersync/ReachablePeerManager.html | 297 + .../dhfs/peersync/api/ApiPeerInfo.html | 268 + .../dhfs/peersync/api/PeerSyncApi.html | 180 + .../dhfs/peersync/api/PeerSyncApiClient.html | 146 + .../api/PeerSyncApiClientDynamic.html | 178 + .../peersync/api/class-use/ApiPeerInfo.html | 109 + .../peersync/api/class-use/PeerSyncApi.html | 62 + .../api/class-use/PeerSyncApiClient.html | 62 + .../class-use/PeerSyncApiClientDynamic.html | 62 + .../dhfs/peersync/api/package-summary.html | 117 + .../dhfs/peersync/api/package-tree.html | 97 + .../dhfs/peersync/api/package-use.html | 97 + .../class-use/InitialSyncProcessor.html | 103 + .../class-use/PeerConnectedEventListener.html | 104 + .../PeerDisconnectedEventListener.html | 87 + .../dhfs/peersync/class-use/PeerId.html | 1045 +++ .../dhfs/peersync/class-use/PeerInfo.html | 157 + .../class-use/PeerInfoProtoSerializer.html | 62 + .../peersync/class-use/PeerInfoService.html | 62 + .../class-use/PeerInfoSyncHandler.html | 62 + .../class-use/PeerLastSeenUpdater.html | 62 + .../class-use/PersistentPeerDataService.html | 62 + .../class-use/PersistentRemoteHostsData.html | 90 + ...eachablePeerManager.HostStateSnapshot.html | 87 + .../class-use/ReachablePeerManager.html | 62 + .../dhfs/peersync/package-summary.html | 137 + com/usatiuk/dhfs/peersync/package-tree.html | 106 + com/usatiuk/dhfs/peersync/package-use.html | 217 + .../structs/JKleppmannTreeNodeMetaPeer.html | 337 + .../class-use/JKleppmannTreeNodeMetaPeer.html | 62 + .../peersync/structs/package-summary.html | 109 + .../dhfs/peersync/structs/package-tree.html | 80 + .../dhfs/peersync/structs/package-use.html | 62 + .../dhfs/peertrust/CertificateTools.html | 197 + .../peertrust/PeerInfoCertUpdateTxHook.html | 224 + .../dhfs/peertrust/PeerRolesAugmentor.html | 192 + .../dhfs/peertrust/PeerTrustManager.html | 232 + .../peertrust/PeerTrustServerCustomizer.html | 190 + .../peertrust/class-use/CertificateTools.html | 62 + .../class-use/PeerInfoCertUpdateTxHook.html | 62 + .../class-use/PeerRolesAugmentor.html | 62 + .../peertrust/class-use/PeerTrustManager.html | 62 + .../class-use/PeerTrustServerCustomizer.html | 62 + .../dhfs/peertrust/package-summary.html | 115 + com/usatiuk/dhfs/peertrust/package-tree.html | 80 + com/usatiuk/dhfs/peertrust/package-use.html | 62 + .../dhfs/persistence/ChunkDataP.Builder.html | 631 ++ com/usatiuk/dhfs/persistence/ChunkDataP.html | 736 ++ .../dhfs/persistence/ChunkDataPOrBuilder.html | 209 + .../persistence/DhfsObjectPersistence.html | 168 + .../dhfs/persistence/FileDtoP.Builder.html | 523 ++ com/usatiuk/dhfs/persistence/FileDtoP.html | 672 ++ .../dhfs/persistence/FileDtoPOrBuilder.html | 165 + .../dhfs/persistence/JDataP.Builder.html | 519 ++ com/usatiuk/dhfs/persistence/JDataP.html | 667 ++ .../dhfs/persistence/JDataPOrBuilder.html | 165 + .../persistence/JDataRemoteDtoP.Builder.html | 519 ++ .../dhfs/persistence/JDataRemoteDtoP.html | 667 ++ .../persistence/JDataRemoteDtoPOrBuilder.html | 165 + .../dhfs/persistence/JObjectKeyP.Builder.html | 555 ++ com/usatiuk/dhfs/persistence/JObjectKeyP.html | 685 ++ .../persistence/JObjectKeyPOrBuilder.html | 181 + .../persistence/ObjectChangelog.Builder.html | 711 ++ ...ObjectChangelog.entries_Entry.Builder.html | 631 ++ .../ObjectChangelog.entries_Entry.html | 740 ++ ...bjectChangelog.entries_EntryOrBuilder.html | 213 + .../dhfs/persistence/ObjectChangelog.html | 737 ++ .../persistence/ObjectChangelogOrBuilder.html | 209 + .../dhfs/persistence/PeerIdP.Builder.html | 579 ++ com/usatiuk/dhfs/persistence/PeerIdP.html | 701 ++ .../dhfs/persistence/PeerIdPOrBuilder.html | 193 + .../dhfs/persistence/PeerInfoP.Builder.html | 519 ++ com/usatiuk/dhfs/persistence/PeerInfoP.html | 667 ++ .../dhfs/persistence/PeerInfoPOrBuilder.html | 165 + .../class-use/ChunkDataP.Builder.html | 170 + .../persistence/class-use/ChunkDataP.html | 165 + .../class-use/ChunkDataPOrBuilder.html | 94 + .../class-use/DhfsObjectPersistence.html | 62 + .../class-use/FileDtoP.Builder.html | 150 + .../dhfs/persistence/class-use/FileDtoP.html | 165 + .../class-use/FileDtoPOrBuilder.html | 96 + .../persistence/class-use/JDataP.Builder.html | 150 + .../dhfs/persistence/class-use/JDataP.html | 165 + .../class-use/JDataPOrBuilder.html | 94 + .../class-use/JDataRemoteDtoP.Builder.html | 179 + .../class-use/JDataRemoteDtoP.html | 234 + .../class-use/JDataRemoteDtoPOrBuilder.html | 122 + .../class-use/JObjectKeyP.Builder.html | 263 + .../persistence/class-use/JObjectKeyP.html | 373 + .../class-use/JObjectKeyPOrBuilder.html | 209 + .../class-use/ObjectChangelog.Builder.html | 218 + ...ObjectChangelog.entries_Entry.Builder.html | 219 + .../ObjectChangelog.entries_Entry.html | 223 + ...bjectChangelog.entries_EntryOrBuilder.html | 136 + .../class-use/ObjectChangelog.html | 209 + .../class-use/ObjectChangelogOrBuilder.html | 122 + .../class-use/PeerIdP.Builder.html | 176 + .../dhfs/persistence/class-use/PeerIdP.html | 190 + .../class-use/PeerIdPOrBuilder.html | 115 + .../class-use/PeerInfoP.Builder.html | 150 + .../dhfs/persistence/class-use/PeerInfoP.html | 190 + .../class-use/PeerInfoPOrBuilder.html | 94 + .../dhfs/persistence/package-summary.html | 201 + .../dhfs/persistence/package-tree.html | 140 + com/usatiuk/dhfs/persistence/package-use.html | 260 + com/usatiuk/dhfs/refcount/DeleterTxHook.html | 234 + com/usatiuk/dhfs/refcount/JDataNormalRef.html | 277 + com/usatiuk/dhfs/refcount/JDataRef.html | 155 + .../dhfs/refcount/JDataRefcounted.html | 191 + .../dhfs/refcount/RefcounterTxHook.html | 234 + .../refcount/class-use/DeleterTxHook.html | 62 + .../refcount/class-use/JDataNormalRef.html | 62 + .../dhfs/refcount/class-use/JDataRef.html | 260 + .../refcount/class-use/JDataRefcounted.html | 128 + .../refcount/class-use/RefcounterTxHook.html | 62 + .../dhfs/refcount/package-summary.html | 117 + com/usatiuk/dhfs/refcount/package-tree.html | 111 + com/usatiuk/dhfs/refcount/package-use.html | 129 + .../dhfs/remoteobj/ConflictResolver.html | 147 + .../dhfs/remoteobj/DefaultObjSyncHandler.html | 185 + .../dhfs/remoteobj/IndexUpdateOpHandler.html | 189 + com/usatiuk/dhfs/remoteobj/JDataRemote.html | 179 + .../dhfs/remoteobj/JDataRemoteDto.html | 152 + .../dhfs/remoteobj/JDataRemotePush.html | 101 + .../dhfs/remoteobj/ObjSyncHandler.html | 154 + .../dhfs/remoteobj/ReceivedObject.html | 268 + .../dhfs/remoteobj/RemoteObjPusherTxHook.html | 234 + .../remoteobj/RemoteObjectDataWrapper.html | 394 + .../dhfs/remoteobj/RemoteObjectDeleter.html | 180 + .../RemoteObjectInitialSyncProcessor.html | 202 + .../dhfs/remoteobj/RemoteObjectMeta.html | 590 ++ .../dhfs/remoteobj/RemoteTransaction.html | 227 + com/usatiuk/dhfs/remoteobj/SyncHandler.html | 206 + .../dhfs/remoteobj/SyncHandlerService.html | 151 + .../SyncHelper.ChangelogCmpResult.html | 256 + com/usatiuk/dhfs/remoteobj/SyncHelper.html | 194 + .../remoteobj/class-use/ConflictResolver.html | 62 + .../class-use/DefaultObjSyncHandler.html | 62 + .../class-use/IndexUpdateOpHandler.html | 62 + .../dhfs/remoteobj/class-use/JDataRemote.html | 263 + .../remoteobj/class-use/JDataRemoteDto.html | 267 + .../remoteobj/class-use/JDataRemotePush.html | 87 + .../remoteobj/class-use/ObjSyncHandler.html | 122 + .../remoteobj/class-use/ReceivedObject.html | 116 + .../class-use/RemoteObjPusherTxHook.html | 62 + .../class-use/RemoteObjectDataWrapper.html | 93 + .../class-use/RemoteObjectDeleter.html | 62 + .../RemoteObjectInitialSyncProcessor.html | 62 + .../remoteobj/class-use/RemoteObjectMeta.html | 148 + .../class-use/RemoteTransaction.html | 62 + .../dhfs/remoteobj/class-use/SyncHandler.html | 62 + .../class-use/SyncHandlerService.html | 62 + .../SyncHelper.ChangelogCmpResult.html | 99 + .../dhfs/remoteobj/class-use/SyncHelper.html | 62 + .../dhfs/remoteobj/package-summary.html | 143 + com/usatiuk/dhfs/remoteobj/package-tree.html | 133 + com/usatiuk/dhfs/remoteobj/package-use.html | 175 + .../repository/CanDeleteReply.Builder.html | 763 ++ .../dhfs/repository/CanDeleteReply.html | 764 ++ .../repository/CanDeleteReplyOrBuilder.html | 225 + .../repository/CanDeleteRequest.Builder.html | 579 ++ .../dhfs/repository/CanDeleteRequest.html | 701 ++ .../repository/CanDeleteRequestOrBuilder.html | 193 + .../dhfs/repository/DhfsObjectSyncApi.html | 168 + .../dhfs/repository/DhfsObjectSyncGrpc.html | 181 + .../repository/DhfsObjectSyncGrpcBean.html | 208 + .../repository/DhfsObjectSyncGrpcClient.html | 257 + .../DhfsObjectSyncGrpcGrpc.AsyncService.html | 186 + ...pcGrpc.DhfsObjectSyncGrpcBlockingStub.html | 216 + ...GrpcGrpc.DhfsObjectSyncGrpcFutureStub.html | 216 + ...ncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html | 194 + ...ctSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html | 224 + .../repository/DhfsObjectSyncGrpcGrpc.html | 305 + .../repository/GetObjectReply.Builder.html | 691 ++ .../dhfs/repository/GetObjectReply.html | 770 ++ .../repository/GetObjectReplyOrBuilder.html | 237 + .../repository/GetObjectRequest.Builder.html | 579 ++ .../dhfs/repository/GetObjectRequest.html | 701 ++ .../repository/GetObjectRequestOrBuilder.html | 193 + ...ncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html | 246 + ...GrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html | 215 + .../MutinyDhfsObjectSyncGrpcGrpc.html | 175 + com/usatiuk/dhfs/repository/OpP.Builder.html | 519 ++ com/usatiuk/dhfs/repository/OpP.html | 667 ++ com/usatiuk/dhfs/repository/OpPOrBuilder.html | 165 + .../dhfs/repository/OpPushReply.Builder.html | 467 ++ com/usatiuk/dhfs/repository/OpPushReply.html | 618 ++ .../dhfs/repository/OpPushReplyOrBuilder.html | 127 + .../repository/OpPushRequest.Builder.html | 711 ++ .../dhfs/repository/OpPushRequest.html | 729 ++ .../repository/OpPushRequestOrBuilder.html | 209 + .../dhfs/repository/PingReply.Builder.html | 467 ++ com/usatiuk/dhfs/repository/PingReply.html | 618 ++ .../dhfs/repository/PingReplyOrBuilder.html | 127 + .../dhfs/repository/PingRequest.Builder.html | 467 ++ com/usatiuk/dhfs/repository/PingRequest.html | 618 ++ .../dhfs/repository/PingRequestOrBuilder.html | 127 + .../class-use/CanDeleteReply.Builder.html | 199 + .../repository/class-use/CanDeleteReply.html | 227 + .../class-use/CanDeleteReplyOrBuilder.html | 94 + .../class-use/CanDeleteRequest.Builder.html | 160 + .../class-use/CanDeleteRequest.html | 217 + .../class-use/CanDeleteRequestOrBuilder.html | 94 + .../class-use/DhfsObjectSyncApi.html | 62 + .../class-use/DhfsObjectSyncGrpc.html | 103 + .../class-use/DhfsObjectSyncGrpcBean.html | 62 + .../class-use/DhfsObjectSyncGrpcClient.html | 87 + .../DhfsObjectSyncGrpcGrpc.AsyncService.html | 98 + ...pcGrpc.DhfsObjectSyncGrpcBlockingStub.html | 110 + ...GrpcGrpc.DhfsObjectSyncGrpcFutureStub.html | 93 + ...ncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html | 62 + ...ctSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html | 93 + .../class-use/DhfsObjectSyncGrpcGrpc.html | 62 + .../class-use/GetObjectReply.Builder.html | 180 + .../repository/class-use/GetObjectReply.html | 241 + .../class-use/GetObjectReplyOrBuilder.html | 94 + .../class-use/GetObjectRequest.Builder.html | 160 + .../class-use/GetObjectRequest.html | 217 + .../class-use/GetObjectRequestOrBuilder.html | 94 + ...ncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html | 98 + ...GrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html | 119 + .../MutinyDhfsObjectSyncGrpcGrpc.html | 62 + .../repository/class-use/OpP.Builder.html | 199 + .../dhfs/repository/class-use/OpP.html | 248 + .../repository/class-use/OpPOrBuilder.html | 136 + .../class-use/OpPushReply.Builder.html | 140 + .../repository/class-use/OpPushReply.html | 233 + .../class-use/OpPushReplyOrBuilder.html | 94 + .../class-use/OpPushRequest.Builder.html | 189 + .../repository/class-use/OpPushRequest.html | 217 + .../class-use/OpPushRequestOrBuilder.html | 94 + .../class-use/PingReply.Builder.html | 140 + .../dhfs/repository/class-use/PingReply.html | 223 + .../class-use/PingReplyOrBuilder.html | 94 + .../class-use/PingRequest.Builder.html | 140 + .../repository/class-use/PingRequest.html | 217 + .../class-use/PingRequestOrBuilder.html | 94 + .../dhfs/repository/package-summary.html | 231 + com/usatiuk/dhfs/repository/package-tree.html | 175 + com/usatiuk/dhfs/repository/package-use.html | 258 + .../dhfs/rpc/RemoteObjectServiceClient.html | 213 + .../dhfs/rpc/RemoteObjectServiceServer.html | 226 + .../rpc/RemoteObjectServiceServerImpl.html | 213 + com/usatiuk/dhfs/rpc/RpcChannelFactory.html | 151 + ...lientFactory.ObjectSyncClientFunction.html | 154 + com/usatiuk/dhfs/rpc/RpcClientFactory.html | 256 + .../TemporaryReceivedObjectSerializer.html | 200 + .../rpc/TemporaryRemoteObjectSerializer.html | 200 + .../class-use/RemoteObjectServiceClient.html | 62 + .../class-use/RemoteObjectServiceServer.html | 62 + .../RemoteObjectServiceServerImpl.html | 62 + .../dhfs/rpc/class-use/RpcChannelFactory.html | 62 + ...lientFactory.ObjectSyncClientFunction.html | 105 + .../dhfs/rpc/class-use/RpcClientFactory.html | 62 + .../TemporaryReceivedObjectSerializer.html | 62 + .../TemporaryRemoteObjectSerializer.html | 62 + com/usatiuk/dhfs/rpc/package-summary.html | 123 + com/usatiuk/dhfs/rpc/package-tree.html | 88 + com/usatiuk/dhfs/rpc/package-use.html | 84 + com/usatiuk/dhfs/syncmap/DtoMapper.html | 156 + .../dhfs/syncmap/DtoMapperService.html | 197 + .../dhfs/syncmap/class-use/DtoMapper.html | 105 + .../syncmap/class-use/DtoMapperService.html | 62 + com/usatiuk/dhfs/syncmap/package-summary.html | 111 + com/usatiuk/dhfs/syncmap/package-tree.html | 82 + com/usatiuk/dhfs/syncmap/package-use.html | 97 + com/usatiuk/dhfs/webapi/KnownPeerPut.html | 251 + com/usatiuk/dhfs/webapi/PeerAddressInfo.html | 268 + com/usatiuk/dhfs/webapi/PeerInfo.html | 289 + .../dhfs/webapi/PeerManagementApi.html | 217 + .../dhfs/webapi/PersistentPeerAddressApi.html | 218 + com/usatiuk/dhfs/webapi/SelfInfo.html | 268 + .../dhfs/webapi/class-use/KnownPeerPut.html | 88 + .../webapi/class-use/PeerAddressInfo.html | 87 + .../dhfs/webapi/class-use/PeerInfo.html | 90 + .../webapi/class-use/PeerManagementApi.html | 62 + .../class-use/PersistentPeerAddressApi.html | 62 + .../dhfs/webapi/class-use/SelfInfo.html | 62 + com/usatiuk/dhfs/webapi/package-summary.html | 119 + com/usatiuk/dhfs/webapi/package-tree.html | 94 + com/usatiuk/dhfs/webapi/package-use.html | 88 + com/usatiuk/dhfs/webui/WebUiRouter.html | 178 + .../dhfs/webui/class-use/WebUiRouter.html | 62 + com/usatiuk/dhfs/webui/package-summary.html | 107 + com/usatiuk/dhfs/webui/package-tree.html | 76 + com/usatiuk/dhfs/webui/package-use.html | 62 + com/usatiuk/dhfsfs/objects/ChunkData.html | 308 + com/usatiuk/dhfsfs/objects/File.html | 437 + com/usatiuk/dhfsfs/objects/FileDto.html | 300 + com/usatiuk/dhfsfs/objects/FileDtoMapper.html | 201 + com/usatiuk/dhfsfs/objects/FileHelper.html | 210 + .../dhfsfs/objects/FileSyncHandler.html | 195 + .../JKleppmannTreeNodeMetaDirectory.html | 297 + .../objects/JKleppmannTreeNodeMetaFile.html | 317 + .../dhfsfs/objects/class-use/ChunkData.html | 62 + .../dhfsfs/objects/class-use/File.html | 139 + .../dhfsfs/objects/class-use/FileDto.html | 102 + .../objects/class-use/FileDtoMapper.html | 62 + .../dhfsfs/objects/class-use/FileHelper.html | 62 + .../objects/class-use/FileSyncHandler.html | 62 + .../JKleppmannTreeNodeMetaDirectory.html | 62 + .../class-use/JKleppmannTreeNodeMetaFile.html | 62 + .../dhfsfs/objects/package-summary.html | 128 + com/usatiuk/dhfsfs/objects/package-tree.html | 96 + com/usatiuk/dhfsfs/objects/package-use.html | 90 + .../dhfsfs/service/DhfsFileService.html | 534 ++ .../service/DirectoryNotEmptyException.html | 205 + com/usatiuk/dhfsfs/service/GetattrRes.html | 314 + com/usatiuk/dhfsfs/service/GetattrType.html | 244 + .../service/class-use/DhfsFileService.html | 62 + .../class-use/DirectoryNotEmptyException.html | 62 + .../dhfsfs/service/class-use/GetattrRes.html | 89 + .../dhfsfs/service/class-use/GetattrType.html | 114 + .../dhfsfs/service/package-summary.html | 110 + com/usatiuk/dhfsfs/service/package-tree.html | 117 + com/usatiuk/dhfsfs/service/package-use.html | 88 + com/usatiuk/dhfsfuse/DhfsFuse.html | 557 ++ com/usatiuk/dhfsfuse/JnrPtrByteOutput.html | 245 + .../dhfsfuse/Main.DhfsStorageServerApp.html | 193 + com/usatiuk/dhfsfuse/Main.html | 192 + com/usatiuk/dhfsfuse/class-use/DhfsFuse.html | 62 + .../dhfsfuse/class-use/JnrPtrByteOutput.html | 62 + .../class-use/Main.DhfsStorageServerApp.html | 62 + com/usatiuk/dhfsfuse/class-use/Main.html | 62 + com/usatiuk/dhfsfuse/package-summary.html | 102 + com/usatiuk/dhfsfuse/package-tree.html | 91 + com/usatiuk/dhfsfuse/package-use.html | 62 + .../kleppmanntree/AlreadyExistsException.html | 202 + com/usatiuk/kleppmanntree/Clock.html | 161 + .../kleppmanntree/CombinedTimestamp.html | 294 + com/usatiuk/kleppmanntree/KleppmannTree.html | 271 + com/usatiuk/kleppmanntree/LogEffect.html | 356 + com/usatiuk/kleppmanntree/LogEffectOld.html | 300 + com/usatiuk/kleppmanntree/LogInterface.html | 230 + com/usatiuk/kleppmanntree/LogRecord.html | 281 + com/usatiuk/kleppmanntree/NodeMeta.html | 165 + com/usatiuk/kleppmanntree/OpMove.html | 328 + com/usatiuk/kleppmanntree/OpRecorder.html | 154 + com/usatiuk/kleppmanntree/PeerInterface.html | 156 + .../PeerTimestampLogInterface.html | 154 + .../kleppmanntree/StorageInterface.html | 232 + com/usatiuk/kleppmanntree/TreeNode.html | 234 + .../class-use/AlreadyExistsException.html | 62 + .../kleppmanntree/class-use/Clock.html | 90 + .../class-use/CombinedTimestamp.html | 212 + .../class-use/KleppmannTree.html | 62 + .../kleppmanntree/class-use/LogEffect.html | 101 + .../kleppmanntree/class-use/LogEffectOld.html | 104 + .../kleppmanntree/class-use/LogInterface.html | 103 + .../kleppmanntree/class-use/LogRecord.html | 158 + .../kleppmanntree/class-use/NodeMeta.html | 175 + .../kleppmanntree/class-use/OpMove.html | 259 + .../kleppmanntree/class-use/OpRecorder.html | 90 + .../class-use/PeerInterface.html | 106 + .../class-use/PeerTimestampLogInterface.html | 103 + .../class-use/StorageInterface.html | 106 + .../kleppmanntree/class-use/TreeNode.html | 166 + .../kleppmanntree/package-summary.html | 126 + com/usatiuk/kleppmanntree/package-tree.html | 124 + com/usatiuk/kleppmanntree/package-use.html | 178 + com/usatiuk/objects/JData.html | 165 + .../objects/JDataVersionedWrapper.html | 184 + .../objects/JDataVersionedWrapperImpl.html | 303 + .../objects/JDataVersionedWrapperLazy.html | 228 + .../JDataVersionedWrapperSerializer.html | 187 + com/usatiuk/objects/JObjectKey.html | 280 + com/usatiuk/objects/JObjectKeyImpl.html | 280 + com/usatiuk/objects/JObjectKeyMax.html | 294 + com/usatiuk/objects/JObjectKeyMin.html | 294 + com/usatiuk/objects/JavaDataSerializer.html | 200 + com/usatiuk/objects/ObjectSerializer.html | 156 + com/usatiuk/objects/class-use/JData.html | 526 ++ .../class-use/JDataVersionedWrapper.html | 166 + .../class-use/JDataVersionedWrapperImpl.html | 62 + .../class-use/JDataVersionedWrapperLazy.html | 62 + .../JDataVersionedWrapperSerializer.html | 62 + com/usatiuk/objects/class-use/JObjectKey.html | 1504 ++++ .../objects/class-use/JObjectKeyImpl.html | 62 + .../objects/class-use/JObjectKeyMax.html | 87 + .../objects/class-use/JObjectKeyMin.html | 87 + .../objects/class-use/JavaDataSerializer.html | 62 + .../objects/class-use/ObjectSerializer.html | 87 + .../iterators/CloseableKvIterator.html | 222 + com/usatiuk/objects/iterators/Data.html | 156 + .../objects/iterators/DataWrapper.html | 256 + .../objects/iterators/IteratorStart.html | 252 + .../iterators/KeyPredicateKvIterator.html | 285 + .../objects/iterators/MappingKvIterator.html | 313 + .../objects/iterators/MaybeTombstone.html | 110 + .../objects/iterators/MergingKvIterator.html | 296 + .../iterators/NavigableMapKvIterator.html | 283 + .../objects/iterators/ReversedKvIterator.html | 308 + .../iterators/ReversibleKvIterator.html | 361 + com/usatiuk/objects/iterators/Tombstone.html | 111 + .../objects/iterators/TombstoneImpl.html | 234 + .../iterators/TombstoneSkippingIterator.html | 283 + .../class-use/CloseableKvIterator.html | 238 + .../objects/iterators/class-use/Data.html | 131 + .../iterators/class-use/DataWrapper.html | 62 + .../iterators/class-use/IteratorStart.html | 183 + .../class-use/KeyPredicateKvIterator.html | 62 + .../class-use/MappingKvIterator.html | 62 + .../iterators/class-use/MaybeTombstone.html | 186 + .../class-use/MergingKvIterator.html | 62 + .../class-use/NavigableMapKvIterator.html | 62 + .../class-use/ReversedKvIterator.html | 62 + .../class-use/ReversibleKvIterator.html | 96 + .../iterators/class-use/Tombstone.html | 103 + .../iterators/class-use/TombstoneImpl.html | 62 + .../class-use/TombstoneSkippingIterator.html | 62 + .../objects/iterators/package-summary.html | 141 + .../objects/iterators/package-tree.html | 135 + .../objects/iterators/package-use.html | 173 + com/usatiuk/objects/package-summary.html | 135 + com/usatiuk/objects/package-tree.html | 121 + com/usatiuk/objects/package-use.html | 324 + com/usatiuk/objects/snapshot/Snapshot.html | 182 + .../objects/snapshot/class-use/Snapshot.html | 102 + .../objects/snapshot/package-summary.html | 113 + .../objects/snapshot/package-tree.html | 76 + com/usatiuk/objects/snapshot/package-use.html | 84 + .../stores/CachingObjectPersistentStore.html | 189 + .../stores/LmdbObjectPersistentStore.html | 228 + .../stores/MemoryObjectPersistentStore.html | 228 + .../objects/stores/ObjectPersistentStore.html | 176 + com/usatiuk/objects/stores/PendingDelete.html | 275 + com/usatiuk/objects/stores/PendingWrite.html | 277 + .../objects/stores/PendingWriteEntry.html | 152 + .../SerializingObjectPersistentStore.html | 178 + com/usatiuk/objects/stores/TxManifestObj.html | 281 + com/usatiuk/objects/stores/TxManifestRaw.html | 281 + .../WritebackObjectPersistentStore.html | 198 + .../CachingObjectPersistentStore.html | 62 + .../class-use/LmdbObjectPersistentStore.html | 62 + .../MemoryObjectPersistentStore.html | 62 + .../class-use/ObjectPersistentStore.html | 90 + .../stores/class-use/PendingDelete.html | 62 + .../stores/class-use/PendingWrite.html | 62 + .../stores/class-use/PendingWriteEntry.html | 90 + .../SerializingObjectPersistentStore.html | 62 + .../stores/class-use/TxManifestObj.html | 88 + .../stores/class-use/TxManifestRaw.html | 96 + .../WritebackObjectPersistentStore.html | 62 + .../objects/stores/package-summary.html | 135 + com/usatiuk/objects/stores/package-tree.html | 108 + com/usatiuk/objects/stores/package-use.html | 90 + .../transaction/CurrentTransaction.html | 272 + .../objects/transaction/PreCommitTxHook.html | 182 + .../objects/transaction/Transaction.html | 213 + .../transaction/TransactionHandle.html | 151 + .../transaction/TransactionManager.html | 280 + .../transaction/TransactionManagerImpl.html | 230 + .../transaction/TransactionService.html | 169 + .../transaction/TxCommitException.html | 181 + .../transaction/TxRecord.TxObjectRecord.html | 152 + .../TxRecord.TxObjectRecordDeleted.html | 260 + .../TxRecord.TxObjectRecordWrite.html | 271 + com/usatiuk/objects/transaction/TxRecord.html | 171 + .../class-use/CurrentTransaction.html | 62 + .../class-use/PreCommitTxHook.html | 157 + .../transaction/class-use/Transaction.html | 99 + .../class-use/TransactionHandle.html | 133 + .../class-use/TransactionManager.html | 87 + .../class-use/TransactionManagerImpl.html | 62 + .../class-use/TransactionService.html | 62 + .../class-use/TxCommitException.html | 62 + .../class-use/TxRecord.TxObjectRecord.html | 106 + .../TxRecord.TxObjectRecordDeleted.html | 62 + .../TxRecord.TxObjectRecordWrite.html | 62 + .../transaction/class-use/TxRecord.html | 62 + .../objects/transaction/package-summary.html | 137 + .../objects/transaction/package-tree.html | 120 + .../objects/transaction/package-use.html | 168 + com/usatiuk/utils/AutoCloseableNoThrow.html | 152 + com/usatiuk/utils/ByteUtils.html | 195 + com/usatiuk/utils/DataLocker.html | 188 + .../utils/HashSetDelayedBlockingQueue.html | 342 + com/usatiuk/utils/ListUtils.html | 207 + com/usatiuk/utils/SerializationHelper.html | 216 + .../StatusRuntimeExceptionNoStacktrace.html | 218 + .../utils/UninitializedByteBuffer.html | 186 + com/usatiuk/utils/UnsafeAccessor.html | 188 + .../utils/class-use/AutoCloseableNoThrow.html | 90 + com/usatiuk/utils/class-use/ByteUtils.html | 62 + com/usatiuk/utils/class-use/DataLocker.html | 62 + .../HashSetDelayedBlockingQueue.html | 62 + com/usatiuk/utils/class-use/ListUtils.html | 62 + .../utils/class-use/SerializationHelper.html | 62 + .../StatusRuntimeExceptionNoStacktrace.html | 62 + .../class-use/UninitializedByteBuffer.html | 62 + .../utils/class-use/UnsafeAccessor.html | 62 + com/usatiuk/utils/package-summary.html | 114 + com/usatiuk/utils/package-tree.html | 109 + com/usatiuk/utils/package-use.html | 84 + constant-values.html | 282 + copy.svg | 33 + dhfs-parent/.gitignore | 45 - dhfs-parent/.run/Main 2.run.xml | 16 - dhfs-parent/.run/Main.run.xml | 16 - dhfs-parent/dhfs-fs/.dockerignore | 5 - dhfs-parent/dhfs-fs/.gitignore | 43 - dhfs-parent/dhfs-fs/Dockerfile | 2 - dhfs-parent/dhfs-fs/docker-compose.yml | 43 - dhfs-parent/dhfs-fs/pom.xml | 164 - .../dhfs-fs/src/main/docker/Dockerfile.jvm | 97 - .../src/main/docker/Dockerfile.legacy-jar | 93 - .../dhfs-fs/src/main/docker/Dockerfile.native | 27 - .../src/main/docker/Dockerfile.native-micro | 30 - .../com/usatiuk/dhfsfs/objects/ChunkData.java | 18 - .../java/com/usatiuk/dhfsfs/objects/File.java | 59 - .../com/usatiuk/dhfsfs/objects/FileDto.java | 20 - .../usatiuk/dhfsfs/objects/FileDtoMapper.java | 27 - .../usatiuk/dhfsfs/objects/FileHelper.java | 52 - .../dhfsfs/objects/FileSyncHandler.java | 242 - .../JKleppmannTreeNodeMetaDirectory.java | 22 - .../objects/JKleppmannTreeNodeMetaFile.java | 24 - .../dhfsfs/service/DhfsFileService.java | 763 -- .../service/DirectoryNotEmptyException.java | 13 - .../usatiuk/dhfsfs/service/GetattrRes.java | 11 - .../usatiuk/dhfsfs/service/GetattrType.java | 7 - .../src/main/resources/META-INF/beans.xml | 0 .../src/main/resources/application.properties | 34 - .../dhfsfs/DhfsFileServiceSimpleTest.java | 9 - .../dhfsfs/DhfsFileServiceSimpleTestImpl.java | 302 - ...fsFileServiceSimpleTestNoChunkingTest.java | 9 - ...ileServiceSimpleTestSmallChunkingTest.java | 9 - .../com/usatiuk/dhfsfs/TempDataProfile.java | 29 - .../com/usatiuk/dhfsfs/TestDataCleaner.java | 40 - .../dhfsfs/benchmarks/Benchmarker.java | 83 - .../benchmarks/DhfsFileBenchmarkTest.java | 53 - .../src/test/resources/application.properties | 11 - dhfs-parent/dhfs-fuse/.dockerignore | 5 - dhfs-parent/dhfs-fuse/.gitignore | 43 - dhfs-parent/dhfs-fuse/Dockerfile | 2 - dhfs-parent/dhfs-fuse/docker-compose.yml | 43 - dhfs-parent/dhfs-fuse/pom.xml | 172 - .../dhfs-fuse/src/main/docker/Dockerfile.jvm | 97 - .../src/main/docker/Dockerfile.legacy-jar | 93 - .../src/main/docker/Dockerfile.native | 27 - .../src/main/docker/Dockerfile.native-micro | 30 - .../java/com/usatiuk/dhfsfuse/DhfsFuse.java | 453 -- .../usatiuk/dhfsfuse/JnrPtrByteOutput.java | 63 - .../main/java/com/usatiuk/dhfsfuse/Main.java | 21 - .../src/main/resources/META-INF/beans.xml | 0 .../src/main/resources/application.properties | 35 - .../com/usatiuk/dhfsfuse/DhfsFuseTest.java | 76 - .../com/usatiuk/dhfsfuse/TempDataProfile.java | 29 - .../com/usatiuk/dhfsfuse/TestDataCleaner.java | 40 - .../dhfsfuse/integration/DhfsFuseIT.java | 469 -- .../dhfsfuse/integration/DhfsFusex3IT.java | 331 - .../dhfsfuse/integration/DhfsImage.java | 102 - .../usatiuk/dhfsfuse/integration/KillIT.java | 235 - .../usatiuk/dhfsfuse/integration/LazyFs.java | 215 - .../dhfsfuse/integration/LazyFsIT.java | 489 -- .../dhfsfuse/integration/ResyncIT.java | 174 - .../src/test/resources/application.properties | 11 - dhfs-parent/kleppmanntree/pom.xml | 43 - .../kleppmanntree/AlreadyExistsException.java | 12 - .../java/com/usatiuk/kleppmanntree/Clock.java | 9 - .../kleppmanntree/CombinedTimestamp.java | 20 - .../usatiuk/kleppmanntree/KleppmannTree.java | 447 -- .../com/usatiuk/kleppmanntree/LogEffect.java | 24 - .../usatiuk/kleppmanntree/LogEffectOld.java | 9 - .../usatiuk/kleppmanntree/LogInterface.java | 32 - .../com/usatiuk/kleppmanntree/LogRecord.java | 9 - .../com/usatiuk/kleppmanntree/NodeMeta.java | 9 - .../com/usatiuk/kleppmanntree/OpMove.java | 13 - .../com/usatiuk/kleppmanntree/OpRecorder.java | 7 - .../usatiuk/kleppmanntree/PeerInterface.java | 9 - .../PeerTimestampLogInterface.java | 11 - .../kleppmanntree/StorageInterface.java | 28 - .../com/usatiuk/kleppmanntree/TreeNode.java | 33 - .../kleppmanntree/KleppmanTreeSimpleTest.java | 165 - .../com/usatiuk/kleppmanntree/TestClock.java | 22 - .../com/usatiuk/kleppmanntree/TestLog.java | 68 - .../com/usatiuk/kleppmanntree/TestNode.java | 43 - .../usatiuk/kleppmanntree/TestNodeMeta.java | 16 - .../kleppmanntree/TestNodeMetaDir.java | 12 - .../kleppmanntree/TestNodeMetaFile.java | 19 - .../kleppmanntree/TestPeerInterface.java | 22 - .../usatiuk/kleppmanntree/TestPeerLog.java | 18 - .../kleppmanntree/TestStorageInterface.java | 72 - .../usatiuk/kleppmanntree/TestTreeNode.java | 33 - dhfs-parent/objects/pom.xml | 116 - .../main/java/com/usatiuk/objects/JData.java | 11 - .../objects/JDataVersionedWrapper.java | 16 - .../objects/JDataVersionedWrapperImpl.java | 13 - .../objects/JDataVersionedWrapperLazy.java | 51 - .../JDataVersionedWrapperSerializer.java | 28 - .../java/com/usatiuk/objects/JObjectKey.java | 47 - .../com/usatiuk/objects/JObjectKeyImpl.java | 77 - .../com/usatiuk/objects/JObjectKeyMax.java | 30 - .../com/usatiuk/objects/JObjectKeyMin.java | 30 - .../usatiuk/objects/JavaDataSerializer.java | 28 - .../com/usatiuk/objects/ObjectSerializer.java | 11 - .../iterators/CloseableKvIterator.java | 26 - .../com/usatiuk/objects/iterators/Data.java | 5 - .../objects/iterators/DataWrapper.java | 4 - .../objects/iterators/IteratorStart.java | 8 - .../iterators/KeyPredicateKvIterator.java | 128 - .../objects/iterators/MappingKvIterator.java | 69 - .../objects/iterators/MaybeTombstone.java | 4 - .../objects/iterators/MergingKvIterator.java | 209 - .../iterators/NavigableMapKvIterator.java | 103 - .../objects/iterators/ReversedKvIterator.java | 61 - .../iterators/ReversibleKvIterator.java | 79 - .../usatiuk/objects/iterators/Tombstone.java | 4 - .../objects/iterators/TombstoneImpl.java | 4 - .../iterators/TombstoneSkippingIterator.java | 133 - .../usatiuk/objects/snapshot/Snapshot.java | 22 - .../stores/CachingObjectPersistentStore.java | 301 - .../stores/LmdbObjectPersistentStore.java | 353 - .../stores/MemoryObjectPersistentStore.java | 79 - .../objects/stores/ObjectPersistentStore.java | 21 - .../usatiuk/objects/stores/PendingDelete.java | 9 - .../usatiuk/objects/stores/PendingWrite.java | 8 - .../objects/stores/PendingWriteEntry.java | 8 - .../SerializingObjectPersistentStore.java | 68 - .../usatiuk/objects/stores/TxManifestObj.java | 12 - .../usatiuk/objects/stores/TxManifestRaw.java | 13 - .../WritebackObjectPersistentStore.java | 432 - .../transaction/CurrentTransaction.java | 51 - .../objects/transaction/PreCommitTxHook.java | 19 - .../objects/transaction/Transaction.java | 27 - .../transaction/TransactionHandle.java | 5 - .../objects/transaction/TransactionImpl.java | 240 - .../transaction/TransactionManager.java | 111 - .../transaction/TransactionManagerImpl.java | 89 - .../transaction/TransactionService.java | 269 - .../transaction/TxCommitException.java | 11 - .../usatiuk/objects/transaction/TxRecord.java | 20 - .../src/main/resources/META-INF/beans.xml | 0 .../src/main/resources/application.properties | 11 - .../test/java/com/usatiuk/objects/Just.java | 79 - .../objects/ObjectsIterateAllTest.java | 53 - .../objects/ObjectsTestExtraChecksTest.java | 9 - .../com/usatiuk/objects/ObjectsTestImpl.java | 956 --- .../objects/ObjectsTestNoExtraChecksTest.java | 9 - .../usatiuk/objects/PreCommitTxHookTest.java | 117 - .../com/usatiuk/objects/TempDataProfile.java | 30 - .../com/usatiuk/objects/TestDataCleaner.java | 40 - .../java/com/usatiuk/objects/data/Kid.java | 10 - .../java/com/usatiuk/objects/data/Parent.java | 10 - .../iterators/KeyPredicateKvIteratorTest.java | 154 - .../iterators/MergingKvIteratorPbtTest.java | 266 - .../iterators/NavigableMapKvIteratorTest.java | 71 - .../TombstoneSkippingIteratorPbtTest.java | 275 - .../snapshot/SnapshotKvIteratorTest.java | 6 - .../src/test/resources/application.properties | 6 - dhfs-parent/pom.xml | 203 - dhfs-parent/sync-base/.dockerignore | 5 - dhfs-parent/sync-base/.gitignore | 43 - dhfs-parent/sync-base/Dockerfile | 2 - dhfs-parent/sync-base/docker-compose.yml | 43 - dhfs-parent/sync-base/pom.xml | 179 - .../sync-base/src/main/docker/Dockerfile.jvm | 97 - .../src/main/docker/Dockerfile.legacy-jar | 93 - .../src/main/docker/Dockerfile.native | 27 - .../src/main/docker/Dockerfile.native-micro | 30 - .../src/main/java/DeadlockDetector.java | 63 - .../dhfs/JObjectKeyProtoSerializer.java | 18 - .../com/usatiuk/dhfs/ProtoSerializer.java | 9 - .../com/usatiuk/dhfs/ShutdownChecker.java | 46 - .../usatiuk/dhfs/TemporaryOpSerializer.java | 21 - .../dhfs/autosync/AutosyncProcessor.java | 136 - .../usatiuk/dhfs/autosync/AutosyncTxHook.java | 56 - .../DeferredInvalidationQueueData.java | 15 - .../DeferredInvalidationQueueService.java | 92 - .../dhfs/invalidation/IndexUpdateOp.java | 16 - .../invalidation/InvalidationQueueEntry.java | 9 - .../InvalidationQueueService.java | 239 - .../com/usatiuk/dhfs/invalidation/Op.java | 10 - .../dhfs/invalidation/OpExtractor.java | 11 - .../dhfs/invalidation/OpExtractorService.java | 48 - .../usatiuk/dhfs/invalidation/OpHandler.java | 7 - .../dhfs/invalidation/OpHandlerService.java | 44 - .../RemoteObjectMetaOpExtractor.java | 45 - .../JKleppmannTreeInitialSyncProcessor.java | 30 - .../jkleppmanntree/JKleppmannTreeManager.java | 347 - .../JKleppmannTreeOpExtractor.java | 59 - .../JKleppmannTreeOpHandler.java | 31 - .../JKleppmannTreeOpWrapper.java | 19 - .../JKleppmannTreePeerInterface.java | 29 - .../JKleppmannTreePeriodicOpHandler.java | 23 - .../JKleppmannTreePeriodicPushOp.java | 17 - .../structs/JKleppmannTreeNode.java | 57 - .../structs/JKleppmannTreeNodeHolder.java | 54 - .../structs/JKleppmannTreeNodeMeta.java | 13 - .../structs/JKleppmannTreePersistentData.java | 54 - .../java/com/usatiuk/dhfs/jmap/JMapEntry.java | 13 - .../com/usatiuk/dhfs/jmap/JMapHelper.java | 72 - .../com/usatiuk/dhfs/jmap/JMapHolder.java | 6 - .../dhfs/jmap/JMapHolderRefcounterTxHook.java | 45 - .../com/usatiuk/dhfs/jmap/JMapIterator.java | 97 - .../java/com/usatiuk/dhfs/jmap/JMapKey.java | 4 - .../com/usatiuk/dhfs/jmap/JMapLongKey.java | 29 - .../java/com/usatiuk/dhfs/jmap/JMapRef.java | 26 - .../dhfs/jmap/JMapRefcounterTxHook.java | 68 - .../dhfs/peerdiscovery/IpPeerAddress.java | 20 - .../peerdiscovery/PeerAddrStringHelper.java | 36 - .../dhfs/peerdiscovery/PeerAddress.java | 11 - .../dhfs/peerdiscovery/PeerAddressType.java | 7 - .../peerdiscovery/PeerDiscoveryDirectory.java | 75 - .../PersistentStaticPeerDiscovery.java | 22 - .../peerdiscovery/StaticPeerDiscovery.java | 31 - .../local/LocalPeerDiscoveryBroadcaster.java | 104 - .../local/LocalPeerDiscoveryClient.java | 88 - .../dhfs/peersync/InitialSyncProcessor.java | 10 - .../peersync/PeerConnectedEventListener.java | 5 - .../PeerDisconnectedEventListener.java | 5 - .../com/usatiuk/dhfs/peersync/PeerId.java | 25 - .../com/usatiuk/dhfs/peersync/PeerInfo.java | 51 - .../peersync/PeerInfoProtoSerializer.java | 25 - .../dhfs/peersync/PeerInfoService.java | 133 - .../dhfs/peersync/PeerInfoSyncHandler.java | 130 - .../dhfs/peersync/PeerLastSeenUpdater.java | 60 - .../peersync/PersistentPeerDataService.java | 184 - .../peersync/PersistentRemoteHostsData.java | 39 - .../dhfs/peersync/ReachablePeerManager.java | 243 - .../dhfs/peersync/api/ApiPeerInfo.java | 4 - .../dhfs/peersync/api/PeerSyncApi.java | 26 - .../dhfs/peersync/api/PeerSyncApiClient.java | 11 - .../api/PeerSyncApiClientDynamic.java | 28 - .../structs/JKleppmannTreeNodeMetaPeer.java | 38 - .../dhfs/peertrust/CertificateTools.java | 75 - .../peertrust/PeerInfoCertUpdateTxHook.java | 100 - .../dhfs/peertrust/PeerRolesAugmentor.java | 51 - .../dhfs/peertrust/PeerTrustManager.java | 73 - .../peertrust/PeerTrustServerCustomizer.java | 44 - .../usatiuk/dhfs/refcount/DeleterTxHook.java | 70 - .../usatiuk/dhfs/refcount/JDataNormalRef.java | 18 - .../com/usatiuk/dhfs/refcount/JDataRef.java | 9 - .../dhfs/refcount/JDataRefcounted.java | 22 - .../dhfs/refcount/RefcounterTxHook.java | 84 - .../dhfs/remoteobj/ConflictResolver.java | 7 - .../dhfs/remoteobj/DefaultObjSyncHandler.java | 94 - .../dhfs/remoteobj/IndexUpdateOpHandler.java | 26 - .../usatiuk/dhfs/remoteobj/JDataRemote.java | 24 - .../dhfs/remoteobj/JDataRemoteDto.java | 10 - .../dhfs/remoteobj/JDataRemotePush.java | 11 - .../dhfs/remoteobj/ObjSyncHandler.java | 13 - .../dhfs/remoteobj/ReceivedObject.java | 7 - .../dhfs/remoteobj/RemoteObjPusherTxHook.java | 52 - .../remoteobj/RemoteObjectDataWrapper.java | 43 - .../dhfs/remoteobj/RemoteObjectDeleter.java | 249 - .../RemoteObjectInitialSyncProcessor.java | 37 - .../dhfs/remoteobj/RemoteObjectMeta.java | 101 - .../dhfs/remoteobj/RemoteTransaction.java | 137 - .../usatiuk/dhfs/remoteobj/SyncHandler.java | 168 - .../dhfs/remoteobj/SyncHandlerService.java | 9 - .../usatiuk/dhfs/remoteobj/SyncHelper.java | 42 - .../dhfs/rpc/RemoteObjectServiceClient.java | 136 - .../dhfs/rpc/RemoteObjectServiceServer.java | 48 - .../rpc/RemoteObjectServiceServerImpl.java | 146 - .../usatiuk/dhfs/rpc/RpcChannelFactory.java | 45 - .../usatiuk/dhfs/rpc/RpcClientFactory.java | 110 - .../TemporaryReceivedObjectSerializer.java | 43 - .../rpc/TemporaryRemoteObjectSerializer.java | 22 - .../com/usatiuk/dhfs/syncmap/DtoMapper.java | 10 - .../dhfs/syncmap/DtoMapperService.java | 61 - .../com/usatiuk/dhfs/webapi/KnownPeerPut.java | 6 - .../usatiuk/dhfs/webapi/PeerAddressInfo.java | 4 - .../com/usatiuk/dhfs/webapi/PeerInfo.java | 6 - .../dhfs/webapi/PeerManagementApi.java | 49 - .../dhfs/webapi/PersistentPeerAddressApi.java | 52 - .../com/usatiuk/dhfs/webapi/SelfInfo.java | 4 - .../com/usatiuk/dhfs/webui/WebUiRouter.java | 57 - .../src/main/proto/dhfs_peer_discovery.proto | 13 - .../src/main/proto/dhfs_serial.proto | 45 - .../sync-base/src/main/proto/dhfs_sync.proto | 52 - .../src/main/resources/META-INF/beans.xml | 0 .../src/main/resources/application.properties | 34 - .../java/com/usatiuk/dhfs/RefcounterTest.java | 69 - .../com/usatiuk/dhfs/TempDataProfile.java | 29 - .../com/usatiuk/dhfs/TestDataCleaner.java | 40 - .../usatiuk/dhfs/testobjs/TestRefcount.java | 36 - .../src/test/resources/application.properties | 11 - dhfs-parent/utils/pom.xml | 76 - .../usatiuk/utils/AutoCloseableNoThrow.java | 6 - .../java/com/usatiuk/utils/ByteUtils.java | 18 - .../java/com/usatiuk/utils/DataLocker.java | 55 - .../utils/HashSetDelayedBlockingQueue.java | 279 - .../java/com/usatiuk/utils/ListUtils.java | 33 - .../usatiuk/utils/SerializationHelper.java | 39 - .../StatusRuntimeExceptionNoStacktrace.java | 22 - .../utils/UninitializedByteBuffer.java | 44 - .../com/usatiuk/utils/UnsafeAccessor.java | 23 - .../HashSetDelayedBlockingQueueTest.java | 228 - docker-compose.example.yml | 25 - dockerentry.sh | 19 - element-list | 31 + help-doc.html | 203 + index-all.html | 6667 ++++++++++++++++ index.html | 131 + launcher/.gitignore | 80 - launcher/CMakeLists.txt | 26 - launcher/src/CMakeLists.txt | 7 - launcher/src/LauncherApp.cpp | 58 - launcher/src/LauncherApp.h | 38 - legal/ADDITIONAL_LICENSE_INFO | 37 + legal/ASSEMBLY_EXCEPTION | 27 + legal/LICENSE | 347 + legal/jquery.md | 26 + legal/jqueryUI.md | 49 + link.svg | 31 + member-search-index.js | 1 + module-search-index.js | 1 + overview-summary.html | 26 + overview-tree.html | 534 ++ package-search-index.js | 1 + package-summary.html | 95 + package-tree.html | 76 + package-use.html | 62 + resources/glass.png | Bin 0 -> 499 bytes resources/x.png | Bin 0 -> 394 bytes run-wrapper/run | 47 - run-wrapper/run.ps1 | 48 - run-wrapper/stop | 26 - run-wrapper/stop.ps1 | 24 - run-wrapper/update | 58 - run-wrapper/update.ps1 | 50 - script-dir/jquery-3.7.1.min.js | 2 + script-dir/jquery-ui.min.css | 6 + script-dir/jquery-ui.min.js | 6 + script.js | 253 + search-page.js | 284 + search.html | 77 + search.js | 458 ++ serialized-form.html | 1776 ++++ stylesheet.css | 1272 +++ tag-search-index.js | 1 + thirdparty/lazyfs/build.sh | 9 - thirdparty/lazyfs/lazyfs | 1 - type-search-index.js | 1 + webui/.eslintrc.json | 28 - webui/.gitignore | 12 - webui/.parcelrc | 9 - webui/.prettierrc | 5 - webui/.proxyrc | 8 - webui/package-lock.json | 7108 ----------------- webui/package.json | 42 - webui/src/App.scss | 5 - webui/src/App.tsx | 53 - webui/src/ErrorGate.tsx | 7 - webui/src/Home.scss | 73 - webui/src/Home.tsx | 29 - webui/src/PeerAvailableCard.scss | 5 - webui/src/PeerAvailableCard.tsx | 42 - webui/src/PeerCardCommon.scss | 17 - webui/src/PeerKnownCard.scss | 5 - webui/src/PeerKnownCard.tsx | 78 - webui/src/PeerState.scss | 18 - webui/src/PeerState.tsx | 36 - webui/src/PeerStatePlumbing.ts | 70 - webui/src/api/PeerState.ts | 97 - webui/src/api/dto.ts | 103 - webui/src/api/utils.ts | 111 - webui/src/common.scss | 50 - webui/src/commonPlumbing.ts | 3 - webui/src/hash.ts | 7 - webui/src/index.html | 11 - webui/src/index.scss | 13 - webui/src/index.tsx | 8 - webui/tsconfig.json | 22 - 1014 files changed, 133522 insertions(+), 28952 deletions(-) create mode 100644 DeadlockDetector.html delete mode 100644 Dockerfile delete mode 100644 Dockerfile.ci delete mode 100644 LICENSE delete mode 100644 README.md create mode 100644 allclasses-index.html create mode 100644 allpackages-index.html create mode 100644 class-use/DeadlockDetector.html create mode 100644 com/usatiuk/dhfs/JObjectKeyProtoSerializer.html create mode 100644 com/usatiuk/dhfs/ProtoSerializer.html create mode 100644 com/usatiuk/dhfs/ShutdownChecker.html create mode 100644 com/usatiuk/dhfs/TemporaryOpSerializer.html create mode 100644 com/usatiuk/dhfs/autosync/AutosyncProcessor.html create mode 100644 com/usatiuk/dhfs/autosync/AutosyncTxHook.html create mode 100644 com/usatiuk/dhfs/autosync/class-use/AutosyncProcessor.html create mode 100644 com/usatiuk/dhfs/autosync/class-use/AutosyncTxHook.html create mode 100644 com/usatiuk/dhfs/autosync/package-summary.html create mode 100644 com/usatiuk/dhfs/autosync/package-tree.html create mode 100644 com/usatiuk/dhfs/autosync/package-use.html create mode 100644 com/usatiuk/dhfs/class-use/JObjectKeyProtoSerializer.html create mode 100644 com/usatiuk/dhfs/class-use/ProtoSerializer.html create mode 100644 com/usatiuk/dhfs/class-use/ShutdownChecker.html create mode 100644 com/usatiuk/dhfs/class-use/TemporaryOpSerializer.html create mode 100644 com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.html create mode 100644 com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.html create mode 100644 com/usatiuk/dhfs/invalidation/IndexUpdateOp.html create mode 100644 com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.html create mode 100644 com/usatiuk/dhfs/invalidation/InvalidationQueueService.html create mode 100644 com/usatiuk/dhfs/invalidation/Op.html create mode 100644 com/usatiuk/dhfs/invalidation/OpExtractor.html create mode 100644 com/usatiuk/dhfs/invalidation/OpExtractorService.html create mode 100644 com/usatiuk/dhfs/invalidation/OpHandler.html create mode 100644 com/usatiuk/dhfs/invalidation/OpHandlerService.html create mode 100644 com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueData.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueService.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/IndexUpdateOp.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueEntry.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueService.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/Op.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/OpExtractor.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/OpExtractorService.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/OpHandler.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/OpHandlerService.html create mode 100644 com/usatiuk/dhfs/invalidation/class-use/RemoteObjectMetaOpExtractor.html create mode 100644 com/usatiuk/dhfs/invalidation/package-summary.html create mode 100644 com/usatiuk/dhfs/invalidation/package-tree.html create mode 100644 com/usatiuk/dhfs/invalidation/package-use.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeInitialSyncProcessor.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpExtractor.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpHandler.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpWrapper.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeerInterface.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicOpHandler.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicPushOp.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/package-summary.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/package-tree.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/package-use.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNode.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeHolder.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeMeta.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreePersistentData.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/package-summary.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/package-tree.html create mode 100644 com/usatiuk/dhfs/jkleppmanntree/structs/package-use.html create mode 100644 com/usatiuk/dhfs/jmap/JMapEntry.html create mode 100644 com/usatiuk/dhfs/jmap/JMapHelper.html create mode 100644 com/usatiuk/dhfs/jmap/JMapHolder.html create mode 100644 com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.html create mode 100644 com/usatiuk/dhfs/jmap/JMapIterator.html create mode 100644 com/usatiuk/dhfs/jmap/JMapKey.html create mode 100644 com/usatiuk/dhfs/jmap/JMapLongKey.html create mode 100644 com/usatiuk/dhfs/jmap/JMapRef.html create mode 100644 com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapEntry.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapHelper.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapHolder.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapHolderRefcounterTxHook.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapIterator.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapKey.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapLongKey.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapRef.html create mode 100644 com/usatiuk/dhfs/jmap/class-use/JMapRefcounterTxHook.html create mode 100644 com/usatiuk/dhfs/jmap/package-summary.html create mode 100644 com/usatiuk/dhfs/jmap/package-tree.html create mode 100644 com/usatiuk/dhfs/jmap/package-use.html create mode 100644 com/usatiuk/dhfs/package-summary.html create mode 100644 com/usatiuk/dhfs/package-tree.html create mode 100644 com/usatiuk/dhfs/package-use.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/DhfsObjectPeerDiscoveryApi.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PeerAddress.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PeerAddressType.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.Builder.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfoOrBuilder.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/DhfsObjectPeerDiscoveryApi.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/IpPeerAddress.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddrStringHelper.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddress.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddressType.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryDirectory.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.Builder.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfoOrBuilder.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/PersistentStaticPeerDiscovery.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/class-use/StaticPeerDiscovery.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryBroadcaster.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryClient.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/local/package-summary.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/local/package-tree.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/local/package-use.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/package-summary.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/package-tree.html create mode 100644 com/usatiuk/dhfs/peerdiscovery/package-use.html create mode 100644 com/usatiuk/dhfs/peersync/InitialSyncProcessor.html create mode 100644 com/usatiuk/dhfs/peersync/PeerConnectedEventListener.html create mode 100644 com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.html create mode 100644 com/usatiuk/dhfs/peersync/PeerId.html create mode 100644 com/usatiuk/dhfs/peersync/PeerInfo.html create mode 100644 com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.html create mode 100644 com/usatiuk/dhfs/peersync/PeerInfoService.html create mode 100644 com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.html create mode 100644 com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.html create mode 100644 com/usatiuk/dhfs/peersync/PersistentPeerDataService.html create mode 100644 com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.html create mode 100644 com/usatiuk/dhfs/peersync/ReachablePeerManager.HostStateSnapshot.html create mode 100644 com/usatiuk/dhfs/peersync/ReachablePeerManager.html create mode 100644 com/usatiuk/dhfs/peersync/api/ApiPeerInfo.html create mode 100644 com/usatiuk/dhfs/peersync/api/PeerSyncApi.html create mode 100644 com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.html create mode 100644 com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.html create mode 100644 com/usatiuk/dhfs/peersync/api/class-use/ApiPeerInfo.html create mode 100644 com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApi.html create mode 100644 com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClient.html create mode 100644 com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClientDynamic.html create mode 100644 com/usatiuk/dhfs/peersync/api/package-summary.html create mode 100644 com/usatiuk/dhfs/peersync/api/package-tree.html create mode 100644 com/usatiuk/dhfs/peersync/api/package-use.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/InitialSyncProcessor.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerConnectedEventListener.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerDisconnectedEventListener.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerId.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerInfo.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerInfoProtoSerializer.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerInfoService.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerInfoSyncHandler.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PeerLastSeenUpdater.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PersistentPeerDataService.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/PersistentRemoteHostsData.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.HostStateSnapshot.html create mode 100644 com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.html create mode 100644 com/usatiuk/dhfs/peersync/package-summary.html create mode 100644 com/usatiuk/dhfs/peersync/package-tree.html create mode 100644 com/usatiuk/dhfs/peersync/package-use.html create mode 100644 com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.html create mode 100644 com/usatiuk/dhfs/peersync/structs/class-use/JKleppmannTreeNodeMetaPeer.html create mode 100644 com/usatiuk/dhfs/peersync/structs/package-summary.html create mode 100644 com/usatiuk/dhfs/peersync/structs/package-tree.html create mode 100644 com/usatiuk/dhfs/peersync/structs/package-use.html create mode 100644 com/usatiuk/dhfs/peertrust/CertificateTools.html create mode 100644 com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.html create mode 100644 com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.html create mode 100644 com/usatiuk/dhfs/peertrust/PeerTrustManager.html create mode 100644 com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.html create mode 100644 com/usatiuk/dhfs/peertrust/class-use/CertificateTools.html create mode 100644 com/usatiuk/dhfs/peertrust/class-use/PeerInfoCertUpdateTxHook.html create mode 100644 com/usatiuk/dhfs/peertrust/class-use/PeerRolesAugmentor.html create mode 100644 com/usatiuk/dhfs/peertrust/class-use/PeerTrustManager.html create mode 100644 com/usatiuk/dhfs/peertrust/class-use/PeerTrustServerCustomizer.html create mode 100644 com/usatiuk/dhfs/peertrust/package-summary.html create mode 100644 com/usatiuk/dhfs/peertrust/package-tree.html create mode 100644 com/usatiuk/dhfs/peertrust/package-use.html create mode 100644 com/usatiuk/dhfs/persistence/ChunkDataP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/ChunkDataP.html create mode 100644 com/usatiuk/dhfs/persistence/ChunkDataPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/DhfsObjectPersistence.html create mode 100644 com/usatiuk/dhfs/persistence/FileDtoP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/FileDtoP.html create mode 100644 com/usatiuk/dhfs/persistence/FileDtoPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/JDataP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/JDataP.html create mode 100644 com/usatiuk/dhfs/persistence/JDataPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/JDataRemoteDtoP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/JDataRemoteDtoP.html create mode 100644 com/usatiuk/dhfs/persistence/JDataRemoteDtoPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/JObjectKeyP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/JObjectKeyP.html create mode 100644 com/usatiuk/dhfs/persistence/JObjectKeyPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/ObjectChangelog.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.html create mode 100644 com/usatiuk/dhfs/persistence/ObjectChangelog.entries_EntryOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/ObjectChangelog.html create mode 100644 com/usatiuk/dhfs/persistence/ObjectChangelogOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/PeerIdP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/PeerIdP.html create mode 100644 com/usatiuk/dhfs/persistence/PeerIdPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/PeerInfoP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/PeerInfoP.html create mode 100644 com/usatiuk/dhfs/persistence/PeerInfoPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ChunkDataP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ChunkDataP.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ChunkDataPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/DhfsObjectPersistence.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/FileDtoP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/FileDtoP.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/FileDtoPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JDataP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JDataP.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JDataPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/JObjectKeyPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_EntryOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/ObjectChangelogOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/PeerIdP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/PeerIdP.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/PeerIdPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/PeerInfoP.Builder.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/PeerInfoP.html create mode 100644 com/usatiuk/dhfs/persistence/class-use/PeerInfoPOrBuilder.html create mode 100644 com/usatiuk/dhfs/persistence/package-summary.html create mode 100644 com/usatiuk/dhfs/persistence/package-tree.html create mode 100644 com/usatiuk/dhfs/persistence/package-use.html create mode 100644 com/usatiuk/dhfs/refcount/DeleterTxHook.html create mode 100644 com/usatiuk/dhfs/refcount/JDataNormalRef.html create mode 100644 com/usatiuk/dhfs/refcount/JDataRef.html create mode 100644 com/usatiuk/dhfs/refcount/JDataRefcounted.html create mode 100644 com/usatiuk/dhfs/refcount/RefcounterTxHook.html create mode 100644 com/usatiuk/dhfs/refcount/class-use/DeleterTxHook.html create mode 100644 com/usatiuk/dhfs/refcount/class-use/JDataNormalRef.html create mode 100644 com/usatiuk/dhfs/refcount/class-use/JDataRef.html create mode 100644 com/usatiuk/dhfs/refcount/class-use/JDataRefcounted.html create mode 100644 com/usatiuk/dhfs/refcount/class-use/RefcounterTxHook.html create mode 100644 com/usatiuk/dhfs/refcount/package-summary.html create mode 100644 com/usatiuk/dhfs/refcount/package-tree.html create mode 100644 com/usatiuk/dhfs/refcount/package-use.html create mode 100644 com/usatiuk/dhfs/remoteobj/ConflictResolver.html create mode 100644 com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/JDataRemote.html create mode 100644 com/usatiuk/dhfs/remoteobj/JDataRemoteDto.html create mode 100644 com/usatiuk/dhfs/remoteobj/JDataRemotePush.html create mode 100644 com/usatiuk/dhfs/remoteobj/ObjSyncHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/ReceivedObject.html create mode 100644 com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.html create mode 100644 com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.html create mode 100644 com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.html create mode 100644 com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.html create mode 100644 com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.html create mode 100644 com/usatiuk/dhfs/remoteobj/RemoteTransaction.html create mode 100644 com/usatiuk/dhfs/remoteobj/SyncHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/SyncHandlerService.html create mode 100644 com/usatiuk/dhfs/remoteobj/SyncHelper.ChangelogCmpResult.html create mode 100644 com/usatiuk/dhfs/remoteobj/SyncHelper.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/ConflictResolver.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/DefaultObjSyncHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/IndexUpdateOpHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/JDataRemote.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/JDataRemoteDto.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/JDataRemotePush.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/ObjSyncHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/ReceivedObject.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/RemoteObjPusherTxHook.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDataWrapper.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDeleter.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectInitialSyncProcessor.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectMeta.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/RemoteTransaction.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/SyncHandler.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/SyncHandlerService.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.ChangelogCmpResult.html create mode 100644 com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.html create mode 100644 com/usatiuk/dhfs/remoteobj/package-summary.html create mode 100644 com/usatiuk/dhfs/remoteobj/package-tree.html create mode 100644 com/usatiuk/dhfs/remoteobj/package-use.html create mode 100644 com/usatiuk/dhfs/repository/CanDeleteReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/CanDeleteReply.html create mode 100644 com/usatiuk/dhfs/repository/CanDeleteReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/CanDeleteRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/CanDeleteRequest.html create mode 100644 com/usatiuk/dhfs/repository/CanDeleteRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncApi.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpc.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcBean.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcClient.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.AsyncService.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html create mode 100644 com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.html create mode 100644 com/usatiuk/dhfs/repository/GetObjectReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/GetObjectReply.html create mode 100644 com/usatiuk/dhfs/repository/GetObjectReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/GetObjectRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/GetObjectRequest.html create mode 100644 com/usatiuk/dhfs/repository/GetObjectRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html create mode 100644 com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html create mode 100644 com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.html create mode 100644 com/usatiuk/dhfs/repository/OpP.Builder.html create mode 100644 com/usatiuk/dhfs/repository/OpP.html create mode 100644 com/usatiuk/dhfs/repository/OpPOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/OpPushReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/OpPushReply.html create mode 100644 com/usatiuk/dhfs/repository/OpPushReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/OpPushRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/OpPushRequest.html create mode 100644 com/usatiuk/dhfs/repository/OpPushRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/PingReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/PingReply.html create mode 100644 com/usatiuk/dhfs/repository/PingReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/PingRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/PingRequest.html create mode 100644 com/usatiuk/dhfs/repository/PingRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/CanDeleteReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/CanDeleteReply.html create mode 100644 com/usatiuk/dhfs/repository/class-use/CanDeleteReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.html create mode 100644 com/usatiuk/dhfs/repository/class-use/CanDeleteRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncApi.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpc.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcBean.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcClient.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.AsyncService.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html create mode 100644 com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.html create mode 100644 com/usatiuk/dhfs/repository/class-use/GetObjectReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/GetObjectReply.html create mode 100644 com/usatiuk/dhfs/repository/class-use/GetObjectReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/GetObjectRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/GetObjectRequest.html create mode 100644 com/usatiuk/dhfs/repository/class-use/GetObjectRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html create mode 100644 com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html create mode 100644 com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpP.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpP.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpPOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpPushReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpPushReply.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpPushReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpPushRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpPushRequest.html create mode 100644 com/usatiuk/dhfs/repository/class-use/OpPushRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/PingReply.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/PingReply.html create mode 100644 com/usatiuk/dhfs/repository/class-use/PingReplyOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/PingRequest.Builder.html create mode 100644 com/usatiuk/dhfs/repository/class-use/PingRequest.html create mode 100644 com/usatiuk/dhfs/repository/class-use/PingRequestOrBuilder.html create mode 100644 com/usatiuk/dhfs/repository/package-summary.html create mode 100644 com/usatiuk/dhfs/repository/package-tree.html create mode 100644 com/usatiuk/dhfs/repository/package-use.html create mode 100644 com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.html create mode 100644 com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.html create mode 100644 com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.html create mode 100644 com/usatiuk/dhfs/rpc/RpcChannelFactory.html create mode 100644 com/usatiuk/dhfs/rpc/RpcClientFactory.ObjectSyncClientFunction.html create mode 100644 com/usatiuk/dhfs/rpc/RpcClientFactory.html create mode 100644 com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.html create mode 100644 com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceClient.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServer.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServerImpl.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/RpcChannelFactory.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.ObjectSyncClientFunction.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/TemporaryReceivedObjectSerializer.html create mode 100644 com/usatiuk/dhfs/rpc/class-use/TemporaryRemoteObjectSerializer.html create mode 100644 com/usatiuk/dhfs/rpc/package-summary.html create mode 100644 com/usatiuk/dhfs/rpc/package-tree.html create mode 100644 com/usatiuk/dhfs/rpc/package-use.html create mode 100644 com/usatiuk/dhfs/syncmap/DtoMapper.html create mode 100644 com/usatiuk/dhfs/syncmap/DtoMapperService.html create mode 100644 com/usatiuk/dhfs/syncmap/class-use/DtoMapper.html create mode 100644 com/usatiuk/dhfs/syncmap/class-use/DtoMapperService.html create mode 100644 com/usatiuk/dhfs/syncmap/package-summary.html create mode 100644 com/usatiuk/dhfs/syncmap/package-tree.html create mode 100644 com/usatiuk/dhfs/syncmap/package-use.html create mode 100644 com/usatiuk/dhfs/webapi/KnownPeerPut.html create mode 100644 com/usatiuk/dhfs/webapi/PeerAddressInfo.html create mode 100644 com/usatiuk/dhfs/webapi/PeerInfo.html create mode 100644 com/usatiuk/dhfs/webapi/PeerManagementApi.html create mode 100644 com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.html create mode 100644 com/usatiuk/dhfs/webapi/SelfInfo.html create mode 100644 com/usatiuk/dhfs/webapi/class-use/KnownPeerPut.html create mode 100644 com/usatiuk/dhfs/webapi/class-use/PeerAddressInfo.html create mode 100644 com/usatiuk/dhfs/webapi/class-use/PeerInfo.html create mode 100644 com/usatiuk/dhfs/webapi/class-use/PeerManagementApi.html create mode 100644 com/usatiuk/dhfs/webapi/class-use/PersistentPeerAddressApi.html create mode 100644 com/usatiuk/dhfs/webapi/class-use/SelfInfo.html create mode 100644 com/usatiuk/dhfs/webapi/package-summary.html create mode 100644 com/usatiuk/dhfs/webapi/package-tree.html create mode 100644 com/usatiuk/dhfs/webapi/package-use.html create mode 100644 com/usatiuk/dhfs/webui/WebUiRouter.html create mode 100644 com/usatiuk/dhfs/webui/class-use/WebUiRouter.html create mode 100644 com/usatiuk/dhfs/webui/package-summary.html create mode 100644 com/usatiuk/dhfs/webui/package-tree.html create mode 100644 com/usatiuk/dhfs/webui/package-use.html create mode 100644 com/usatiuk/dhfsfs/objects/ChunkData.html create mode 100644 com/usatiuk/dhfsfs/objects/File.html create mode 100644 com/usatiuk/dhfsfs/objects/FileDto.html create mode 100644 com/usatiuk/dhfsfs/objects/FileDtoMapper.html create mode 100644 com/usatiuk/dhfsfs/objects/FileHelper.html create mode 100644 com/usatiuk/dhfsfs/objects/FileSyncHandler.html create mode 100644 com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.html create mode 100644 com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/ChunkData.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/File.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/FileDto.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/FileDtoMapper.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/FileHelper.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/FileSyncHandler.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaDirectory.html create mode 100644 com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaFile.html create mode 100644 com/usatiuk/dhfsfs/objects/package-summary.html create mode 100644 com/usatiuk/dhfsfs/objects/package-tree.html create mode 100644 com/usatiuk/dhfsfs/objects/package-use.html create mode 100644 com/usatiuk/dhfsfs/service/DhfsFileService.html create mode 100644 com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.html create mode 100644 com/usatiuk/dhfsfs/service/GetattrRes.html create mode 100644 com/usatiuk/dhfsfs/service/GetattrType.html create mode 100644 com/usatiuk/dhfsfs/service/class-use/DhfsFileService.html create mode 100644 com/usatiuk/dhfsfs/service/class-use/DirectoryNotEmptyException.html create mode 100644 com/usatiuk/dhfsfs/service/class-use/GetattrRes.html create mode 100644 com/usatiuk/dhfsfs/service/class-use/GetattrType.html create mode 100644 com/usatiuk/dhfsfs/service/package-summary.html create mode 100644 com/usatiuk/dhfsfs/service/package-tree.html create mode 100644 com/usatiuk/dhfsfs/service/package-use.html create mode 100644 com/usatiuk/dhfsfuse/DhfsFuse.html create mode 100644 com/usatiuk/dhfsfuse/JnrPtrByteOutput.html create mode 100644 com/usatiuk/dhfsfuse/Main.DhfsStorageServerApp.html create mode 100644 com/usatiuk/dhfsfuse/Main.html create mode 100644 com/usatiuk/dhfsfuse/class-use/DhfsFuse.html create mode 100644 com/usatiuk/dhfsfuse/class-use/JnrPtrByteOutput.html create mode 100644 com/usatiuk/dhfsfuse/class-use/Main.DhfsStorageServerApp.html create mode 100644 com/usatiuk/dhfsfuse/class-use/Main.html create mode 100644 com/usatiuk/dhfsfuse/package-summary.html create mode 100644 com/usatiuk/dhfsfuse/package-tree.html create mode 100644 com/usatiuk/dhfsfuse/package-use.html create mode 100644 com/usatiuk/kleppmanntree/AlreadyExistsException.html create mode 100644 com/usatiuk/kleppmanntree/Clock.html create mode 100644 com/usatiuk/kleppmanntree/CombinedTimestamp.html create mode 100644 com/usatiuk/kleppmanntree/KleppmannTree.html create mode 100644 com/usatiuk/kleppmanntree/LogEffect.html create mode 100644 com/usatiuk/kleppmanntree/LogEffectOld.html create mode 100644 com/usatiuk/kleppmanntree/LogInterface.html create mode 100644 com/usatiuk/kleppmanntree/LogRecord.html create mode 100644 com/usatiuk/kleppmanntree/NodeMeta.html create mode 100644 com/usatiuk/kleppmanntree/OpMove.html create mode 100644 com/usatiuk/kleppmanntree/OpRecorder.html create mode 100644 com/usatiuk/kleppmanntree/PeerInterface.html create mode 100644 com/usatiuk/kleppmanntree/PeerTimestampLogInterface.html create mode 100644 com/usatiuk/kleppmanntree/StorageInterface.html create mode 100644 com/usatiuk/kleppmanntree/TreeNode.html create mode 100644 com/usatiuk/kleppmanntree/class-use/AlreadyExistsException.html create mode 100644 com/usatiuk/kleppmanntree/class-use/Clock.html create mode 100644 com/usatiuk/kleppmanntree/class-use/CombinedTimestamp.html create mode 100644 com/usatiuk/kleppmanntree/class-use/KleppmannTree.html create mode 100644 com/usatiuk/kleppmanntree/class-use/LogEffect.html create mode 100644 com/usatiuk/kleppmanntree/class-use/LogEffectOld.html create mode 100644 com/usatiuk/kleppmanntree/class-use/LogInterface.html create mode 100644 com/usatiuk/kleppmanntree/class-use/LogRecord.html create mode 100644 com/usatiuk/kleppmanntree/class-use/NodeMeta.html create mode 100644 com/usatiuk/kleppmanntree/class-use/OpMove.html create mode 100644 com/usatiuk/kleppmanntree/class-use/OpRecorder.html create mode 100644 com/usatiuk/kleppmanntree/class-use/PeerInterface.html create mode 100644 com/usatiuk/kleppmanntree/class-use/PeerTimestampLogInterface.html create mode 100644 com/usatiuk/kleppmanntree/class-use/StorageInterface.html create mode 100644 com/usatiuk/kleppmanntree/class-use/TreeNode.html create mode 100644 com/usatiuk/kleppmanntree/package-summary.html create mode 100644 com/usatiuk/kleppmanntree/package-tree.html create mode 100644 com/usatiuk/kleppmanntree/package-use.html create mode 100644 com/usatiuk/objects/JData.html create mode 100644 com/usatiuk/objects/JDataVersionedWrapper.html create mode 100644 com/usatiuk/objects/JDataVersionedWrapperImpl.html create mode 100644 com/usatiuk/objects/JDataVersionedWrapperLazy.html create mode 100644 com/usatiuk/objects/JDataVersionedWrapperSerializer.html create mode 100644 com/usatiuk/objects/JObjectKey.html create mode 100644 com/usatiuk/objects/JObjectKeyImpl.html create mode 100644 com/usatiuk/objects/JObjectKeyMax.html create mode 100644 com/usatiuk/objects/JObjectKeyMin.html create mode 100644 com/usatiuk/objects/JavaDataSerializer.html create mode 100644 com/usatiuk/objects/ObjectSerializer.html create mode 100644 com/usatiuk/objects/class-use/JData.html create mode 100644 com/usatiuk/objects/class-use/JDataVersionedWrapper.html create mode 100644 com/usatiuk/objects/class-use/JDataVersionedWrapperImpl.html create mode 100644 com/usatiuk/objects/class-use/JDataVersionedWrapperLazy.html create mode 100644 com/usatiuk/objects/class-use/JDataVersionedWrapperSerializer.html create mode 100644 com/usatiuk/objects/class-use/JObjectKey.html create mode 100644 com/usatiuk/objects/class-use/JObjectKeyImpl.html create mode 100644 com/usatiuk/objects/class-use/JObjectKeyMax.html create mode 100644 com/usatiuk/objects/class-use/JObjectKeyMin.html create mode 100644 com/usatiuk/objects/class-use/JavaDataSerializer.html create mode 100644 com/usatiuk/objects/class-use/ObjectSerializer.html create mode 100644 com/usatiuk/objects/iterators/CloseableKvIterator.html create mode 100644 com/usatiuk/objects/iterators/Data.html create mode 100644 com/usatiuk/objects/iterators/DataWrapper.html create mode 100644 com/usatiuk/objects/iterators/IteratorStart.html create mode 100644 com/usatiuk/objects/iterators/KeyPredicateKvIterator.html create mode 100644 com/usatiuk/objects/iterators/MappingKvIterator.html create mode 100644 com/usatiuk/objects/iterators/MaybeTombstone.html create mode 100644 com/usatiuk/objects/iterators/MergingKvIterator.html create mode 100644 com/usatiuk/objects/iterators/NavigableMapKvIterator.html create mode 100644 com/usatiuk/objects/iterators/ReversedKvIterator.html create mode 100644 com/usatiuk/objects/iterators/ReversibleKvIterator.html create mode 100644 com/usatiuk/objects/iterators/Tombstone.html create mode 100644 com/usatiuk/objects/iterators/TombstoneImpl.html create mode 100644 com/usatiuk/objects/iterators/TombstoneSkippingIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/CloseableKvIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/Data.html create mode 100644 com/usatiuk/objects/iterators/class-use/DataWrapper.html create mode 100644 com/usatiuk/objects/iterators/class-use/IteratorStart.html create mode 100644 com/usatiuk/objects/iterators/class-use/KeyPredicateKvIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/MappingKvIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/MaybeTombstone.html create mode 100644 com/usatiuk/objects/iterators/class-use/MergingKvIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/NavigableMapKvIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/ReversedKvIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/ReversibleKvIterator.html create mode 100644 com/usatiuk/objects/iterators/class-use/Tombstone.html create mode 100644 com/usatiuk/objects/iterators/class-use/TombstoneImpl.html create mode 100644 com/usatiuk/objects/iterators/class-use/TombstoneSkippingIterator.html create mode 100644 com/usatiuk/objects/iterators/package-summary.html create mode 100644 com/usatiuk/objects/iterators/package-tree.html create mode 100644 com/usatiuk/objects/iterators/package-use.html create mode 100644 com/usatiuk/objects/package-summary.html create mode 100644 com/usatiuk/objects/package-tree.html create mode 100644 com/usatiuk/objects/package-use.html create mode 100644 com/usatiuk/objects/snapshot/Snapshot.html create mode 100644 com/usatiuk/objects/snapshot/class-use/Snapshot.html create mode 100644 com/usatiuk/objects/snapshot/package-summary.html create mode 100644 com/usatiuk/objects/snapshot/package-tree.html create mode 100644 com/usatiuk/objects/snapshot/package-use.html create mode 100644 com/usatiuk/objects/stores/CachingObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/LmdbObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/MemoryObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/ObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/PendingDelete.html create mode 100644 com/usatiuk/objects/stores/PendingWrite.html create mode 100644 com/usatiuk/objects/stores/PendingWriteEntry.html create mode 100644 com/usatiuk/objects/stores/SerializingObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/TxManifestObj.html create mode 100644 com/usatiuk/objects/stores/TxManifestRaw.html create mode 100644 com/usatiuk/objects/stores/WritebackObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/class-use/CachingObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/class-use/LmdbObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/class-use/MemoryObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/class-use/ObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/class-use/PendingDelete.html create mode 100644 com/usatiuk/objects/stores/class-use/PendingWrite.html create mode 100644 com/usatiuk/objects/stores/class-use/PendingWriteEntry.html create mode 100644 com/usatiuk/objects/stores/class-use/SerializingObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/class-use/TxManifestObj.html create mode 100644 com/usatiuk/objects/stores/class-use/TxManifestRaw.html create mode 100644 com/usatiuk/objects/stores/class-use/WritebackObjectPersistentStore.html create mode 100644 com/usatiuk/objects/stores/package-summary.html create mode 100644 com/usatiuk/objects/stores/package-tree.html create mode 100644 com/usatiuk/objects/stores/package-use.html create mode 100644 com/usatiuk/objects/transaction/CurrentTransaction.html create mode 100644 com/usatiuk/objects/transaction/PreCommitTxHook.html create mode 100644 com/usatiuk/objects/transaction/Transaction.html create mode 100644 com/usatiuk/objects/transaction/TransactionHandle.html create mode 100644 com/usatiuk/objects/transaction/TransactionManager.html create mode 100644 com/usatiuk/objects/transaction/TransactionManagerImpl.html create mode 100644 com/usatiuk/objects/transaction/TransactionService.html create mode 100644 com/usatiuk/objects/transaction/TxCommitException.html create mode 100644 com/usatiuk/objects/transaction/TxRecord.TxObjectRecord.html create mode 100644 com/usatiuk/objects/transaction/TxRecord.TxObjectRecordDeleted.html create mode 100644 com/usatiuk/objects/transaction/TxRecord.TxObjectRecordWrite.html create mode 100644 com/usatiuk/objects/transaction/TxRecord.html create mode 100644 com/usatiuk/objects/transaction/class-use/CurrentTransaction.html create mode 100644 com/usatiuk/objects/transaction/class-use/PreCommitTxHook.html create mode 100644 com/usatiuk/objects/transaction/class-use/Transaction.html create mode 100644 com/usatiuk/objects/transaction/class-use/TransactionHandle.html create mode 100644 com/usatiuk/objects/transaction/class-use/TransactionManager.html create mode 100644 com/usatiuk/objects/transaction/class-use/TransactionManagerImpl.html create mode 100644 com/usatiuk/objects/transaction/class-use/TransactionService.html create mode 100644 com/usatiuk/objects/transaction/class-use/TxCommitException.html create mode 100644 com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecord.html create mode 100644 com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordDeleted.html create mode 100644 com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordWrite.html create mode 100644 com/usatiuk/objects/transaction/class-use/TxRecord.html create mode 100644 com/usatiuk/objects/transaction/package-summary.html create mode 100644 com/usatiuk/objects/transaction/package-tree.html create mode 100644 com/usatiuk/objects/transaction/package-use.html create mode 100644 com/usatiuk/utils/AutoCloseableNoThrow.html create mode 100644 com/usatiuk/utils/ByteUtils.html create mode 100644 com/usatiuk/utils/DataLocker.html create mode 100644 com/usatiuk/utils/HashSetDelayedBlockingQueue.html create mode 100644 com/usatiuk/utils/ListUtils.html create mode 100644 com/usatiuk/utils/SerializationHelper.html create mode 100644 com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.html create mode 100644 com/usatiuk/utils/UninitializedByteBuffer.html create mode 100644 com/usatiuk/utils/UnsafeAccessor.html create mode 100644 com/usatiuk/utils/class-use/AutoCloseableNoThrow.html create mode 100644 com/usatiuk/utils/class-use/ByteUtils.html create mode 100644 com/usatiuk/utils/class-use/DataLocker.html create mode 100644 com/usatiuk/utils/class-use/HashSetDelayedBlockingQueue.html create mode 100644 com/usatiuk/utils/class-use/ListUtils.html create mode 100644 com/usatiuk/utils/class-use/SerializationHelper.html create mode 100644 com/usatiuk/utils/class-use/StatusRuntimeExceptionNoStacktrace.html create mode 100644 com/usatiuk/utils/class-use/UninitializedByteBuffer.html create mode 100644 com/usatiuk/utils/class-use/UnsafeAccessor.html create mode 100644 com/usatiuk/utils/package-summary.html create mode 100644 com/usatiuk/utils/package-tree.html create mode 100644 com/usatiuk/utils/package-use.html create mode 100644 constant-values.html create mode 100644 copy.svg delete mode 100644 dhfs-parent/.gitignore delete mode 100644 dhfs-parent/.run/Main 2.run.xml delete mode 100644 dhfs-parent/.run/Main.run.xml delete mode 100644 dhfs-parent/dhfs-fs/.dockerignore delete mode 100644 dhfs-parent/dhfs-fs/.gitignore delete mode 100644 dhfs-parent/dhfs-fs/Dockerfile delete mode 100644 dhfs-parent/dhfs-fs/docker-compose.yml delete mode 100644 dhfs-parent/dhfs-fs/pom.xml delete mode 100644 dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.jvm delete mode 100644 dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.legacy-jar delete mode 100644 dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native delete mode 100644 dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native-micro delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDtoMapper.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileSyncHandler.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DhfsFileService.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrRes.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrType.java delete mode 100644 dhfs-parent/dhfs-fs/src/main/resources/META-INF/beans.xml delete mode 100644 dhfs-parent/dhfs-fs/src/main/resources/application.properties delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTest.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestNoChunkingTest.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestSmallChunkingTest.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TempDataProfile.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TestDataCleaner.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/Benchmarker.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/DhfsFileBenchmarkTest.java delete mode 100644 dhfs-parent/dhfs-fs/src/test/resources/application.properties delete mode 100644 dhfs-parent/dhfs-fuse/.dockerignore delete mode 100644 dhfs-parent/dhfs-fuse/.gitignore delete mode 100644 dhfs-parent/dhfs-fuse/Dockerfile delete mode 100644 dhfs-parent/dhfs-fuse/docker-compose.yml delete mode 100644 dhfs-parent/dhfs-fuse/pom.xml delete mode 100644 dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.jvm delete mode 100644 dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.legacy-jar delete mode 100644 dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native delete mode 100644 dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native-micro delete mode 100644 dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java delete mode 100644 dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/JnrPtrByteOutput.java delete mode 100644 dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/Main.java delete mode 100644 dhfs-parent/dhfs-fuse/src/main/resources/META-INF/beans.xml delete mode 100644 dhfs-parent/dhfs-fuse/src/main/resources/application.properties delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/DhfsFuseTest.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TempDataProfile.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TestDataCleaner.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFuseIT.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFusex3IT.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsImage.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/KillIT.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFs.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFsIT.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/ResyncIT.java delete mode 100644 dhfs-parent/dhfs-fuse/src/test/resources/application.properties delete mode 100644 dhfs-parent/kleppmanntree/pom.xml delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/AlreadyExistsException.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/Clock.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/CombinedTimestamp.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/KleppmannTree.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffect.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffectOld.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogInterface.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogRecord.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/NodeMeta.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpMove.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpRecorder.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerInterface.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerTimestampLogInterface.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/StorageInterface.java delete mode 100644 dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/TreeNode.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/KleppmanTreeSimpleTest.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestClock.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestLog.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNode.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMeta.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaDir.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaFile.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerInterface.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerLog.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestStorageInterface.java delete mode 100644 dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestTreeNode.java delete mode 100644 dhfs-parent/objects/pom.xml delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JData.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapper.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperImpl.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperSerializer.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKey.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyImpl.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMax.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMin.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/JavaDataSerializer.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/ObjectSerializer.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/CloseableKvIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/IteratorStart.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/KeyPredicateKvIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MappingKvIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/NavigableMapKvIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversedKvIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversibleKvIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneImpl.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneSkippingIterator.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/snapshot/Snapshot.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingDelete.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWriteEntry.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/SerializingObjectPersistentStore.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestObj.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestRaw.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/PreCommitTxHook.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/Transaction.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandle.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManager.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxCommitException.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxRecord.java delete mode 100644 dhfs-parent/objects/src/main/resources/META-INF/beans.xml delete mode 100644 dhfs-parent/objects/src/main/resources/application.properties delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/Just.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestExtraChecksTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestImpl.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestNoExtraChecksTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/PreCommitTxHookTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/TempDataProfile.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/TestDataCleaner.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Kid.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Parent.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/KeyPredicateKvIteratorTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/NavigableMapKvIteratorTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/TombstoneSkippingIteratorPbtTest.java delete mode 100644 dhfs-parent/objects/src/test/java/com/usatiuk/objects/snapshot/SnapshotKvIteratorTest.java delete mode 100644 dhfs-parent/objects/src/test/resources/application.properties delete mode 100644 dhfs-parent/pom.xml delete mode 100644 dhfs-parent/sync-base/.dockerignore delete mode 100644 dhfs-parent/sync-base/.gitignore delete mode 100644 dhfs-parent/sync-base/Dockerfile delete mode 100644 dhfs-parent/sync-base/docker-compose.yml delete mode 100644 dhfs-parent/sync-base/pom.xml delete mode 100644 dhfs-parent/sync-base/src/main/docker/Dockerfile.jvm delete mode 100644 dhfs-parent/sync-base/src/main/docker/Dockerfile.legacy-jar delete mode 100644 dhfs-parent/sync-base/src/main/docker/Dockerfile.native delete mode 100644 dhfs-parent/sync-base/src/main/docker/Dockerfile.native-micro delete mode 100644 dhfs-parent/sync-base/src/main/java/DeadlockDetector.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ProtoSerializer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ShutdownChecker.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncProcessor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/Op.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractorService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandlerService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapEntry.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolder.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapIterator.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapKey.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapLongKey.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRef.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddress.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddressType.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerConnectedEventListener.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerId.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/ReachablePeerManager.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/ApiPeerInfo.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApi.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/CertificateTools.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustManager.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/DeleterTxHook.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataNormalRef.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRef.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRefcounted.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/RefcounterTxHook.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ConflictResolver.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemote.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemoteDto.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemotePush.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ReceivedObject.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandlerService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHelper.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcChannelFactory.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapper.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapperService.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/KnownPeerPut.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerAddressInfo.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerInfo.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/SelfInfo.java delete mode 100644 dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webui/WebUiRouter.java delete mode 100644 dhfs-parent/sync-base/src/main/proto/dhfs_peer_discovery.proto delete mode 100644 dhfs-parent/sync-base/src/main/proto/dhfs_serial.proto delete mode 100644 dhfs-parent/sync-base/src/main/proto/dhfs_sync.proto delete mode 100644 dhfs-parent/sync-base/src/main/resources/META-INF/beans.xml delete mode 100644 dhfs-parent/sync-base/src/main/resources/application.properties delete mode 100644 dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java delete mode 100644 dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TempDataProfile.java delete mode 100644 dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java delete mode 100644 dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/testobjs/TestRefcount.java delete mode 100644 dhfs-parent/sync-base/src/test/resources/application.properties delete mode 100644 dhfs-parent/utils/pom.xml delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/AutoCloseableNoThrow.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/ByteUtils.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/DataLocker.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/HashSetDelayedBlockingQueue.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/ListUtils.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/SerializationHelper.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/UninitializedByteBuffer.java delete mode 100644 dhfs-parent/utils/src/main/java/com/usatiuk/utils/UnsafeAccessor.java delete mode 100644 dhfs-parent/utils/src/test/java/com/usatiuk/utils/HashSetDelayedBlockingQueueTest.java delete mode 100644 docker-compose.example.yml delete mode 100644 dockerentry.sh create mode 100644 element-list create mode 100644 help-doc.html create mode 100644 index-all.html create mode 100644 index.html delete mode 100644 launcher/.gitignore delete mode 100644 launcher/CMakeLists.txt delete mode 100644 launcher/src/CMakeLists.txt delete mode 100644 launcher/src/LauncherApp.cpp delete mode 100644 launcher/src/LauncherApp.h create mode 100644 legal/ADDITIONAL_LICENSE_INFO create mode 100644 legal/ASSEMBLY_EXCEPTION create mode 100644 legal/LICENSE create mode 100644 legal/jquery.md create mode 100644 legal/jqueryUI.md create mode 100644 link.svg create mode 100644 member-search-index.js create mode 100644 module-search-index.js create mode 100644 overview-summary.html create mode 100644 overview-tree.html create mode 100644 package-search-index.js create mode 100644 package-summary.html create mode 100644 package-tree.html create mode 100644 package-use.html create mode 100644 resources/glass.png create mode 100644 resources/x.png delete mode 100755 run-wrapper/run delete mode 100644 run-wrapper/run.ps1 delete mode 100755 run-wrapper/stop delete mode 100644 run-wrapper/stop.ps1 delete mode 100755 run-wrapper/update delete mode 100644 run-wrapper/update.ps1 create mode 100644 script-dir/jquery-3.7.1.min.js create mode 100644 script-dir/jquery-ui.min.css create mode 100644 script-dir/jquery-ui.min.js create mode 100644 script.js create mode 100644 search-page.js create mode 100644 search.html create mode 100644 search.js create mode 100644 serialized-form.html create mode 100644 stylesheet.css create mode 100644 tag-search-index.js delete mode 100755 thirdparty/lazyfs/build.sh delete mode 160000 thirdparty/lazyfs/lazyfs create mode 100644 type-search-index.js delete mode 100644 webui/.eslintrc.json delete mode 100644 webui/.gitignore delete mode 100644 webui/.parcelrc delete mode 100644 webui/.prettierrc delete mode 100644 webui/.proxyrc delete mode 100644 webui/package-lock.json delete mode 100644 webui/package.json delete mode 100644 webui/src/App.scss delete mode 100644 webui/src/App.tsx delete mode 100644 webui/src/ErrorGate.tsx delete mode 100644 webui/src/Home.scss delete mode 100644 webui/src/Home.tsx delete mode 100644 webui/src/PeerAvailableCard.scss delete mode 100644 webui/src/PeerAvailableCard.tsx delete mode 100644 webui/src/PeerCardCommon.scss delete mode 100644 webui/src/PeerKnownCard.scss delete mode 100644 webui/src/PeerKnownCard.tsx delete mode 100644 webui/src/PeerState.scss delete mode 100644 webui/src/PeerState.tsx delete mode 100644 webui/src/PeerStatePlumbing.ts delete mode 100644 webui/src/api/PeerState.ts delete mode 100644 webui/src/api/dto.ts delete mode 100644 webui/src/api/utils.ts delete mode 100644 webui/src/common.scss delete mode 100644 webui/src/commonPlumbing.ts delete mode 100644 webui/src/hash.ts delete mode 100644 webui/src/index.html delete mode 100644 webui/src/index.scss delete mode 100644 webui/src/index.tsx delete mode 100644 webui/tsconfig.json diff --git a/DeadlockDetector.html b/DeadlockDetector.html new file mode 100644 index 00000000..7cb6705c --- /dev/null +++ b/DeadlockDetector.html @@ -0,0 +1,150 @@ + + + + +DeadlockDetector (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+

Class DeadlockDetector

+
+
java.lang.Object +
DeadlockDetector
+
+
+
+
@ApplicationScoped +public class DeadlockDetector +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DeadlockDetector

      +
      public DeadlockDetector()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index d24b7a13..00000000 --- a/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM node:20-bullseye as webui-build - -WORKDIR /usr/src/app/webui-build -COPY ./webui/package*.json ./ -RUN npm i -COPY ./webui/. . -RUN npm run build - -FROM azul/zulu-openjdk:21 as server-build - -WORKDIR /usr/src/app/server-build -COPY ./server/.mvn .mvn -COPY ./server/mvnw ./server/pom.xml ./ -RUN ./mvnw quarkus:go-offline -# The previous thing still doesn't download 100% everything -RUN ./mvnw -Dmaven.test.skip=true -Dskip.unit=true package --fail-never -COPY ./server/. . -RUN ./mvnw -Dmaven.test.skip=true -Dskip.unit=true clean package - -FROM azul/zulu-openjdk-alpine:21-jre-headless - -RUN apk update && apk add fuse && rm -rf /var/cache/apk/* - -WORKDIR /usr/src/app -COPY --from=server-build /usr/src/app/server-build/target/quarkus-app/. . -RUN mkdir -p webui -COPY --from=webui-build /usr/src/app/webui-build/dist/. ./webui - -ENV dhfs_webui_root=/usr/src/app/webui - -COPY ./dockerentry.sh . - -RUN ["chmod", "+x", "./dockerentry.sh"] - -CMD [ "./dockerentry.sh" ] \ No newline at end of file diff --git a/Dockerfile.ci b/Dockerfile.ci deleted file mode 100644 index 98764f20..00000000 --- a/Dockerfile.ci +++ /dev/null @@ -1,22 +0,0 @@ -FROM azul/zulu-openjdk:21-jre-headless - -RUN apt update && apt install -y libfuse2 && apt-get clean - -WORKDIR /usr/src/app - -COPY ./dhfs-package-downloaded/lib . -COPY ./dhfs-package-downloaded/*.jar . -COPY ./dhfs-package-downloaded/app . -COPY ./dhfs-package-downloaded/quarkus . - -WORKDIR /usr/src/app/webui -COPY ./webui-dist-downloaded/. . - -ENV dhfs_webui_root=/usr/src/app/webui - -WORKDIR /usr/src/app -COPY ./dockerentry.sh . - -RUN ["chmod", "+x", "./dockerentry.sh"] - -CMD [ "./dockerentry.sh" ] \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/README.md b/README.md deleted file mode 100644 index db73e080..00000000 --- a/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Distributed Home File System 🚧 - -## What is this? - -Inspired by Syncthing and Google Drive File Stream, this project -aspires to combine the best of them into one complete solution for -all the file synchronization needs: being decentralized like -Syncthing and allowing you to stream your files like Google Drive File Stream - -## Run wrapper - -[Download latest build](https://nightly.link/usatiuk/dhfs/workflows/server/main/Run%20wrapper.zip) - -This is a simple wrapper around the jar/web ui distribution that allows you to run/stop -the DHFS server in the background, and update itself (hopefully!) - -## How to use it? - - -Unpack the run-wrapper and run the `run` script. The filesystem should be mounted to the `fuse` folder in the run-wrapper root directory. - -Then, a web interface will be available at `losthost:8080`, that can be used to connect with other peers. diff --git a/allclasses-index.html b/allclasses-index.html new file mode 100644 index 00000000..ef650f3b --- /dev/null +++ b/allclasses-index.html @@ -0,0 +1,723 @@ + + + + +All Classes and Interfaces (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

All Classes and Interfaces

+
+
+
+
+
+
Class
+
Description
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.sync.CanDeleteReply
+
+ +
+
Protobuf type dhfs.sync.CanDeleteReply
+
+ +
 
+ +
+
Protobuf type dhfs.sync.CanDeleteRequest
+
+ +
+
Protobuf type dhfs.sync.CanDeleteRequest
+
+ +
 
+ +
 
+ +
+
ChunkData is a data structure that represents an immutable binary blob
+
+ +
+
Protobuf type dhfs.persistence.ChunkDataP
+
+ +
+
Protobuf type dhfs.persistence.ChunkDataP
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Actual filesystem implementation.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
A stub to allow clients to do synchronous rpc calls to service DhfsObjectSyncGrpc.
+
+ +
+
A stub to allow clients to do ListenableFuture-style rpc calls to service DhfsObjectSyncGrpc.
+
+ +
+
Base class for the server implementation of the service DhfsObjectSyncGrpc.
+
+ +
+
A stub to allow clients to do asynchronous rpc calls to service DhfsObjectSyncGrpc.
+
+ +
+
DirectoryNotEmptyException is thrown when a directory is not empty.
+
+ +
 
+ +
 
+ +
+
File is a data structure that represents a file in the file system
+
+ +
+
FileDto is a data transfer object that contains a file and its chunks.
+
+ +
+
Maps a File object to a FileDto object and vice versa.
+
+ +
+
+ TODO: Serialization
+
+ +
+
+ TODO: Serialization
+
+ +
 
+ +
+
Helper class for working with files.
+
+ +
+
Handles synchronization of file objects.
+
+ +
+
GetattrRes is a record that represents the result of a getattr operation.
+
+ +
 
+ +
+
Protobuf type dhfs.sync.GetObjectReply
+
+ +
+
Protobuf type dhfs.sync.GetObjectReply
+
+ +
 
+ +
+
Protobuf type dhfs.sync.GetObjectRequest
+
+ +
+
Protobuf type dhfs.sync.GetObjectRequest
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.persistence.JDataP
+
+ +
+
Protobuf type dhfs.persistence.JDataP
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.persistence.JDataRemoteDtoP
+
+ +
+
Protobuf type dhfs.persistence.JDataRemoteDtoP
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
JKleppmannTreeNodeMetaDirectory is a record that represents a directory in the JKleppmann tree.
+
+ +
+
JKleppmannTreeNodeMetaFile is a record that represents a file in the JKleppmann tree.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.persistence.JObjectKeyP
+
+ +
+
Protobuf type dhfs.persistence.JObjectKeyP
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.persistence.ObjectChangelog
+
+ +
+
Protobuf type dhfs.persistence.ObjectChangelog
+
+ +
+
Protobuf type dhfs.persistence.ObjectChangelog.entries_Entry
+
+ +
+
Protobuf type dhfs.persistence.ObjectChangelog.entries_Entry
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.sync.OpP
+
+ +
+
Protobuf type dhfs.sync.OpP
+
+ +
 
+ +
+
Protobuf type dhfs.sync.OpPushReply
+
+ +
+
Protobuf type dhfs.sync.OpPushReply
+
+ +
 
+ +
+
Protobuf type dhfs.sync.OpPushRequest
+
+ +
+
Protobuf type dhfs.sync.OpPushRequest
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.peerdiscovery.PeerDiscoveryInfo
+
+ +
+
Protobuf type dhfs.peerdiscovery.PeerDiscoveryInfo
+
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.persistence.PeerIdP
+
+ +
+
Protobuf type dhfs.persistence.PeerIdP
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.persistence.PeerInfoP
+
+ +
+
Protobuf type dhfs.persistence.PeerInfoP
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Protobuf type dhfs.sync.PingReply
+
+ +
+
Protobuf type dhfs.sync.PingReply
+
+ +
 
+ +
+
Protobuf type dhfs.sync.PingRequest
+
+ +
+
Protobuf type dhfs.sync.PingRequest
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/allpackages-index.html b/allpackages-index.html new file mode 100644 index 00000000..62b04e8f --- /dev/null +++ b/allpackages-index.html @@ -0,0 +1,129 @@ + + + + +All Packages (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ + +
+ + diff --git a/class-use/DeadlockDetector.html b/class-use/DeadlockDetector.html new file mode 100644 index 00000000..5dbe3e2d --- /dev/null +++ b/class-use/DeadlockDetector.html @@ -0,0 +1,62 @@ + + + + +Uses of Class DeadlockDetector (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
DeadlockDetector

+
+No usage of DeadlockDetector
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/JObjectKeyProtoSerializer.html b/com/usatiuk/dhfs/JObjectKeyProtoSerializer.html new file mode 100644 index 00000000..174d4ae8 --- /dev/null +++ b/com/usatiuk/dhfs/JObjectKeyProtoSerializer.html @@ -0,0 +1,200 @@ + + + + +JObjectKeyProtoSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JObjectKeyProtoSerializer

+
+
java.lang.Object +
com.usatiuk.dhfs.JObjectKeyProtoSerializer
+
+
+
+
All Implemented Interfaces:
+
ProtoSerializer<JObjectKeyP,JObjectKey>
+
+
+
@Singleton +public class JObjectKeyProtoSerializer +extends Object +implements ProtoSerializer<JObjectKeyP,JObjectKey>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/ProtoSerializer.html b/com/usatiuk/dhfs/ProtoSerializer.html new file mode 100644 index 00000000..05d67a74 --- /dev/null +++ b/com/usatiuk/dhfs/ProtoSerializer.html @@ -0,0 +1,156 @@ + + + + +ProtoSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ProtoSerializer<M extends com.google.protobuf.Message,O>

+
+
+
+
All Known Implementing Classes:
+
JObjectKeyProtoSerializer, PeerInfoProtoSerializer, TemporaryOpSerializer, TemporaryReceivedObjectSerializer, TemporaryRemoteObjectSerializer
+
+
+
public interface ProtoSerializer<M extends com.google.protobuf.Message,O>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    deserialize(M message)
    +
     
    + +
    serialize(O object)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      deserialize

      +
      O deserialize(M message)
      +
      +
    • +
    • +
      +

      serialize

      +
      M serialize(O object)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/ShutdownChecker.html b/com/usatiuk/dhfs/ShutdownChecker.html new file mode 100644 index 00000000..634d9d4a --- /dev/null +++ b/com/usatiuk/dhfs/ShutdownChecker.html @@ -0,0 +1,178 @@ + + + + +ShutdownChecker (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ShutdownChecker

+
+
java.lang.Object +
com.usatiuk.dhfs.ShutdownChecker
+
+
+
+
@ApplicationScoped +public class ShutdownChecker +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ShutdownChecker

      +
      public ShutdownChecker()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      lastShutdownClean

      +
      public boolean lastShutdownClean()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/TemporaryOpSerializer.html b/com/usatiuk/dhfs/TemporaryOpSerializer.html new file mode 100644 index 00000000..2705826e --- /dev/null +++ b/com/usatiuk/dhfs/TemporaryOpSerializer.html @@ -0,0 +1,200 @@ + + + + +TemporaryOpSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TemporaryOpSerializer

+
+
java.lang.Object +
com.usatiuk.dhfs.TemporaryOpSerializer
+
+
+
+
All Implemented Interfaces:
+
ProtoSerializer<OpP,Op>
+
+
+
@Singleton +public class TemporaryOpSerializer +extends Object +implements ProtoSerializer<OpP,Op>
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TemporaryOpSerializer

      +
      public TemporaryOpSerializer()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/autosync/AutosyncProcessor.html b/com/usatiuk/dhfs/autosync/AutosyncProcessor.html new file mode 100644 index 00000000..a6cc6bfd --- /dev/null +++ b/com/usatiuk/dhfs/autosync/AutosyncProcessor.html @@ -0,0 +1,178 @@ + + + + +AutosyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AutosyncProcessor

+
+
java.lang.Object +
com.usatiuk.dhfs.autosync.AutosyncProcessor
+
+
+
+
@ApplicationScoped +public class AutosyncProcessor +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AutosyncProcessor

      +
      public AutosyncProcessor()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      add

      +
      public void add(JObjectKey name)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/autosync/AutosyncTxHook.html b/com/usatiuk/dhfs/autosync/AutosyncTxHook.html new file mode 100644 index 00000000..d61d9805 --- /dev/null +++ b/com/usatiuk/dhfs/autosync/AutosyncTxHook.html @@ -0,0 +1,234 @@ + + + + +AutosyncTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AutosyncTxHook

+
+
java.lang.Object +
com.usatiuk.dhfs.autosync.AutosyncTxHook
+
+
+
+
All Implemented Interfaces:
+
PreCommitTxHook
+
+
+
@Singleton +public class AutosyncTxHook +extends Object +implements PreCommitTxHook
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/autosync/class-use/AutosyncProcessor.html b/com/usatiuk/dhfs/autosync/class-use/AutosyncProcessor.html new file mode 100644 index 00000000..644ea451 --- /dev/null +++ b/com/usatiuk/dhfs/autosync/class-use/AutosyncProcessor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.autosync.AutosyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.autosync.AutosyncProcessor

+
+No usage of com.usatiuk.dhfs.autosync.AutosyncProcessor
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/autosync/class-use/AutosyncTxHook.html b/com/usatiuk/dhfs/autosync/class-use/AutosyncTxHook.html new file mode 100644 index 00000000..9339bd55 --- /dev/null +++ b/com/usatiuk/dhfs/autosync/class-use/AutosyncTxHook.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.autosync.AutosyncTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.autosync.AutosyncTxHook

+
+No usage of com.usatiuk.dhfs.autosync.AutosyncTxHook
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/autosync/package-summary.html b/com/usatiuk/dhfs/autosync/package-summary.html new file mode 100644 index 00000000..dd2d90e2 --- /dev/null +++ b/com/usatiuk/dhfs/autosync/package-summary.html @@ -0,0 +1,109 @@ + + + + +com.usatiuk.dhfs.autosync (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.autosync

+
+
+
package com.usatiuk.dhfs.autosync
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/autosync/package-tree.html b/com/usatiuk/dhfs/autosync/package-tree.html new file mode 100644 index 00000000..40739f8c --- /dev/null +++ b/com/usatiuk/dhfs/autosync/package-tree.html @@ -0,0 +1,77 @@ + + + + +com.usatiuk.dhfs.autosync Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.autosync

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/autosync/package-use.html b/com/usatiuk/dhfs/autosync/package-use.html new file mode 100644 index 00000000..90116f80 --- /dev/null +++ b/com/usatiuk/dhfs/autosync/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.usatiuk.dhfs.autosync (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.autosync

+
+No usage of com.usatiuk.dhfs.autosync
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/class-use/JObjectKeyProtoSerializer.html b/com/usatiuk/dhfs/class-use/JObjectKeyProtoSerializer.html new file mode 100644 index 00000000..89add1be --- /dev/null +++ b/com/usatiuk/dhfs/class-use/JObjectKeyProtoSerializer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.JObjectKeyProtoSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.JObjectKeyProtoSerializer

+
+No usage of com.usatiuk.dhfs.JObjectKeyProtoSerializer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/class-use/ProtoSerializer.html b/com/usatiuk/dhfs/class-use/ProtoSerializer.html new file mode 100644 index 00000000..616f8fa0 --- /dev/null +++ b/com/usatiuk/dhfs/class-use/ProtoSerializer.html @@ -0,0 +1,125 @@ + + + + +Uses of Interface com.usatiuk.dhfs.ProtoSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.ProtoSerializer

+
+
Packages that use ProtoSerializer
+
+
Package
+
Description
+ +
 
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/class-use/ShutdownChecker.html b/com/usatiuk/dhfs/class-use/ShutdownChecker.html new file mode 100644 index 00000000..06f74c36 --- /dev/null +++ b/com/usatiuk/dhfs/class-use/ShutdownChecker.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.ShutdownChecker (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.ShutdownChecker

+
+No usage of com.usatiuk.dhfs.ShutdownChecker
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/class-use/TemporaryOpSerializer.html b/com/usatiuk/dhfs/class-use/TemporaryOpSerializer.html new file mode 100644 index 00000000..56d63338 --- /dev/null +++ b/com/usatiuk/dhfs/class-use/TemporaryOpSerializer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.TemporaryOpSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.TemporaryOpSerializer

+
+No usage of com.usatiuk.dhfs.TemporaryOpSerializer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.html b/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.html new file mode 100644 index 00000000..17b62555 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.html @@ -0,0 +1,192 @@ + + + + +DeferredInvalidationQueueData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DeferredInvalidationQueueData

+
+
java.lang.Object +
com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueData
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class DeferredInvalidationQueueData +extends Object +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      deferredInvalidations

      +
      public final org.apache.commons.collections4.MultiValuedMap<PeerId,InvalidationQueueEntry> deferredInvalidations
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DeferredInvalidationQueueData

      +
      public DeferredInvalidationQueueData()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.html b/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.html new file mode 100644 index 00000000..ab492857 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.html @@ -0,0 +1,187 @@ + + + + +DeferredInvalidationQueueService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DeferredInvalidationQueueService

+
+
java.lang.Object +
com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueService
+
+
+
+
All Implemented Interfaces:
+
PeerConnectedEventListener
+
+
+
@ApplicationScoped +public class DeferredInvalidationQueueService +extends Object +implements PeerConnectedEventListener
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DeferredInvalidationQueueService

      +
      public DeferredInvalidationQueueService()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/IndexUpdateOp.html b/com/usatiuk/dhfs/invalidation/IndexUpdateOp.html new file mode 100644 index 00000000..7f5a017d --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/IndexUpdateOp.html @@ -0,0 +1,313 @@ + + + + +IndexUpdateOp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class IndexUpdateOp

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
+
+
+
All Implemented Interfaces:
+
Op, Serializable
+
+
+
public record IndexUpdateOp(JObjectKey key, org.pcollections.PMap<PeerId,Long> changelog, JDataRemoteDto data) +extends Record +implements Op
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      IndexUpdateOp

      +
      public IndexUpdateOp(JObjectKey key, + org.pcollections.PMap<PeerId,Long> changelog, + JDataRemoteDto data)
      +
      Creates an instance of a IndexUpdateOp record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      changelog - the value for the changelog record component
      +
      data - the value for the data record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getEscapedRefs

      +
      public Collection<JObjectKey> getEscapedRefs()
      +
      +
      Specified by:
      +
      getEscapedRefs in interface Op
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      changelog

      +
      public org.pcollections.PMap<PeerId,Long> changelog()
      +
      Returns the value of the changelog record component.
      +
      +
      Returns:
      +
      the value of the changelog record component
      +
      +
      +
    • +
    • +
      +

      data

      +
      public JDataRemoteDto data()
      +
      Returns the value of the data record component.
      +
      +
      Returns:
      +
      the value of the data record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.html b/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.html new file mode 100644 index 00000000..daafae11 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.html @@ -0,0 +1,281 @@ + + + + +InvalidationQueueEntry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class InvalidationQueueEntry

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.invalidation.InvalidationQueueEntry
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public record InvalidationQueueEntry(PeerId peer, JObjectKey key) +extends Record +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
    +
    Creates an instance of a InvalidationQueueEntry record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + +
    key()
    +
    +
    Returns the value of the key record component.
    +
    + + +
    +
    Returns the value of the peer record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      InvalidationQueueEntry

      +
      public InvalidationQueueEntry(PeerId peer, + JObjectKey key)
      +
      Creates an instance of a InvalidationQueueEntry record class.
      +
      +
      Parameters:
      +
      peer - the value for the peer record component
      +
      key - the value for the key record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      peer

      +
      public PeerId peer()
      +
      Returns the value of the peer record component.
      +
      +
      Returns:
      +
      the value of the peer record component
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/InvalidationQueueService.html b/com/usatiuk/dhfs/invalidation/InvalidationQueueService.html new file mode 100644 index 00000000..a148946a --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/InvalidationQueueService.html @@ -0,0 +1,200 @@ + + + + +InvalidationQueueService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class InvalidationQueueService

+
+
java.lang.Object +
com.usatiuk.dhfs.invalidation.InvalidationQueueService
+
+
+
+
@ApplicationScoped +public class InvalidationQueueService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      InvalidationQueueService

      +
      public InvalidationQueueService(int delay)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      pushInvalidationToAll

      +
      public void pushInvalidationToAll(JObjectKey key)
      +
      +
    • +
    • +
      +

      pushInvalidationToOne

      +
      public void pushInvalidationToOne(PeerId host, + JObjectKey obj)
      +
      +
    • +
    • +
      +

      pushInvalidationToOneNoDelay

      +
      public void pushInvalidationToOneNoDelay(PeerId host, + JObjectKey obj)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/Op.html b/com/usatiuk/dhfs/invalidation/Op.html new file mode 100644 index 00000000..63abbd32 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/Op.html @@ -0,0 +1,152 @@ + + + + +Op (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Op

+
+
+
+
All Superinterfaces:
+
Serializable
+
+
+
All Known Implementing Classes:
+
IndexUpdateOp, JKleppmannTreeOpWrapper, JKleppmannTreePeriodicPushOp
+
+
+
public interface Op +extends Serializable
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    +
    +
    +
    +
  • +
+
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/OpExtractor.html b/com/usatiuk/dhfs/invalidation/OpExtractor.html new file mode 100644 index 00000000..67627388 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/OpExtractor.html @@ -0,0 +1,149 @@ + + + + +OpExtractor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface OpExtractor<T extends JData>

+
+
+
+
All Known Implementing Classes:
+
JKleppmannTreeOpExtractor, RemoteObjectMetaOpExtractor
+
+
+
public interface OpExtractor<T extends JData>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    org.apache.commons.lang3.tuple.Pair<List<Op>,Runnable>
    +
    extractOps(T data, + PeerId peerId)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      extractOps

      +
      org.apache.commons.lang3.tuple.Pair<List<Op>,Runnable> extractOps(T data, + PeerId peerId)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/OpExtractorService.html b/com/usatiuk/dhfs/invalidation/OpExtractorService.html new file mode 100644 index 00000000..bdce2f7a --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/OpExtractorService.html @@ -0,0 +1,181 @@ + + + + +OpExtractorService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpExtractorService

+
+
java.lang.Object +
com.usatiuk.dhfs.invalidation.OpExtractorService
+
+
+
+
@ApplicationScoped +public class OpExtractorService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      OpExtractorService

      +
      public OpExtractorService(jakarta.enterprise.inject.Instance<OpExtractor<?>> opExtractors)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      extractOps

      +
      @Nullable +public org.apache.commons.lang3.tuple.Pair<List<Op>,Runnable> extractOps(JData data, + PeerId peerId)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/OpHandler.html b/com/usatiuk/dhfs/invalidation/OpHandler.html new file mode 100644 index 00000000..ba9b105e --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/OpHandler.html @@ -0,0 +1,149 @@ + + + + +OpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface OpHandler<T extends Op>

+
+
+
+
All Known Implementing Classes:
+
IndexUpdateOpHandler, JKleppmannTreeOpHandler, JKleppmannTreePeriodicOpHandler
+
+
+
public interface OpHandler<T extends Op>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    +
    handleOp(PeerId from, + T op)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      handleOp

      +
      void handleOp(PeerId from, + T op)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/OpHandlerService.html b/com/usatiuk/dhfs/invalidation/OpHandlerService.html new file mode 100644 index 00000000..48b936fd --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/OpHandlerService.html @@ -0,0 +1,180 @@ + + + + +OpHandlerService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpHandlerService

+
+
java.lang.Object +
com.usatiuk.dhfs.invalidation.OpHandlerService
+
+
+
+
@ApplicationScoped +public class OpHandlerService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      OpHandlerService

      +
      public OpHandlerService(jakarta.enterprise.inject.Instance<OpHandler<?>> OpHandlers)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      handleOp

      +
      public void handleOp(PeerId from, + Op op)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.html b/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.html new file mode 100644 index 00000000..178af05f --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.html @@ -0,0 +1,189 @@ + + + + +RemoteObjectMetaOpExtractor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteObjectMetaOpExtractor

+
+
java.lang.Object +
com.usatiuk.dhfs.invalidation.RemoteObjectMetaOpExtractor
+
+
+
+
All Implemented Interfaces:
+
OpExtractor<RemoteObjectMeta>
+
+
+
@ApplicationScoped +public class RemoteObjectMetaOpExtractor +extends Object +implements OpExtractor<RemoteObjectMeta>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueData.html b/com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueData.html new file mode 100644 index 00000000..46e1b7d8 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueData.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueData

+
+No usage of com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueData
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueService.html b/com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueService.html new file mode 100644 index 00000000..ae434314 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/DeferredInvalidationQueueService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueService

+
+No usage of com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/IndexUpdateOp.html b/com/usatiuk/dhfs/invalidation/class-use/IndexUpdateOp.html new file mode 100644 index 00000000..551904d1 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/IndexUpdateOp.html @@ -0,0 +1,88 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.invalidation.IndexUpdateOp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.invalidation.IndexUpdateOp

+
+
Packages that use IndexUpdateOp
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueEntry.html b/com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueEntry.html new file mode 100644 index 00000000..84bf96dc --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueEntry.html @@ -0,0 +1,87 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.invalidation.InvalidationQueueEntry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.invalidation.InvalidationQueueEntry

+
+
Packages that use InvalidationQueueEntry
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueService.html b/com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueService.html new file mode 100644 index 00000000..18d07a80 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/InvalidationQueueService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.invalidation.InvalidationQueueService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.invalidation.InvalidationQueueService

+
+No usage of com.usatiuk.dhfs.invalidation.InvalidationQueueService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/Op.html b/com/usatiuk/dhfs/invalidation/class-use/Op.html new file mode 100644 index 00000000..a85d6aad --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/Op.html @@ -0,0 +1,222 @@ + + + + +Uses of Interface com.usatiuk.dhfs.invalidation.Op (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.invalidation.Op

+
+
Packages that use Op
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/OpExtractor.html b/com/usatiuk/dhfs/invalidation/class-use/OpExtractor.html new file mode 100644 index 00000000..ff38634d --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/OpExtractor.html @@ -0,0 +1,112 @@ + + + + +Uses of Interface com.usatiuk.dhfs.invalidation.OpExtractor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.invalidation.OpExtractor

+
+
Packages that use OpExtractor
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/OpExtractorService.html b/com/usatiuk/dhfs/invalidation/class-use/OpExtractorService.html new file mode 100644 index 00000000..bd35ce3f --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/OpExtractorService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.invalidation.OpExtractorService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.invalidation.OpExtractorService

+
+No usage of com.usatiuk.dhfs.invalidation.OpExtractorService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/OpHandler.html b/com/usatiuk/dhfs/invalidation/class-use/OpHandler.html new file mode 100644 index 00000000..dbad1239 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/OpHandler.html @@ -0,0 +1,122 @@ + + + + +Uses of Interface com.usatiuk.dhfs.invalidation.OpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.invalidation.OpHandler

+
+
Packages that use OpHandler
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/OpHandlerService.html b/com/usatiuk/dhfs/invalidation/class-use/OpHandlerService.html new file mode 100644 index 00000000..2190f73f --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/OpHandlerService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.invalidation.OpHandlerService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.invalidation.OpHandlerService

+
+No usage of com.usatiuk.dhfs.invalidation.OpHandlerService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/class-use/RemoteObjectMetaOpExtractor.html b/com/usatiuk/dhfs/invalidation/class-use/RemoteObjectMetaOpExtractor.html new file mode 100644 index 00000000..83aef4f0 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/class-use/RemoteObjectMetaOpExtractor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.invalidation.RemoteObjectMetaOpExtractor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.invalidation.RemoteObjectMetaOpExtractor

+
+No usage of com.usatiuk.dhfs.invalidation.RemoteObjectMetaOpExtractor
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/package-summary.html b/com/usatiuk/dhfs/invalidation/package-summary.html new file mode 100644 index 00000000..58ec1934 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/package-summary.html @@ -0,0 +1,129 @@ + + + + +com.usatiuk.dhfs.invalidation (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.invalidation

+
+
+
package com.usatiuk.dhfs.invalidation
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/package-tree.html b/com/usatiuk/dhfs/invalidation/package-tree.html new file mode 100644 index 00000000..26f0803d --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/package-tree.html @@ -0,0 +1,108 @@ + + + + +com.usatiuk.dhfs.invalidation Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.invalidation

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/invalidation/package-use.html b/com/usatiuk/dhfs/invalidation/package-use.html new file mode 100644 index 00000000..f56ec440 --- /dev/null +++ b/com/usatiuk/dhfs/invalidation/package-use.html @@ -0,0 +1,148 @@ + + + + +Uses of Package com.usatiuk.dhfs.invalidation (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.invalidation

+
+ + +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.html new file mode 100644 index 00000000..07556584 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.html @@ -0,0 +1,202 @@ + + + + +JKleppmannTreeInitialSyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreeInitialSyncProcessor

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeInitialSyncProcessor
+
+
+
+
All Implemented Interfaces:
+
InitialSyncProcessor<JKleppmannTreePersistentData>
+
+
+
@ApplicationScoped +public class JKleppmannTreeInitialSyncProcessor +extends Object +implements InitialSyncProcessor<JKleppmannTreePersistentData>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html new file mode 100644 index 00000000..fbf70253 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html @@ -0,0 +1,311 @@ + + + + +JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
+
+
+
All Implemented Interfaces:
+
StorageInterface<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>
+
+
+
Enclosing class:
+
JKleppmannTreeManager.JKleppmannTree
+
+
+
public class JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface +extends Object +implements StorageInterface<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.html new file mode 100644 index 00000000..afe3a181 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.JKleppmannTree.html @@ -0,0 +1,271 @@ + + + + +JKleppmannTreeManager.JKleppmannTree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreeManager.JKleppmannTree

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
+
+
+
Enclosing class:
+
JKleppmannTreeManager
+
+
+
public class JKleppmannTreeManager.JKleppmannTree +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.html new file mode 100644 index 00000000..7a2076c1 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.html @@ -0,0 +1,204 @@ + + + + +JKleppmannTreeManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreeManager

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager
+
+
+
+
@ApplicationScoped +public class JKleppmannTreeManager +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.html new file mode 100644 index 00000000..d78ee93d --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.html @@ -0,0 +1,189 @@ + + + + +JKleppmannTreeOpExtractor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreeOpExtractor

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpExtractor
+
+
+
+
All Implemented Interfaces:
+
OpExtractor<JKleppmannTreePersistentData>
+
+
+
@ApplicationScoped +public class JKleppmannTreeOpExtractor +extends Object +implements OpExtractor<JKleppmannTreePersistentData>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.html new file mode 100644 index 00000000..a69c3f12 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.html @@ -0,0 +1,189 @@ + + + + +JKleppmannTreeOpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreeOpHandler

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpHandler
+
+
+
+
All Implemented Interfaces:
+
OpHandler<JKleppmannTreeOpWrapper>
+
+
+
@ApplicationScoped +public class JKleppmannTreeOpHandler +extends Object +implements OpHandler<JKleppmannTreeOpWrapper>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.html new file mode 100644 index 00000000..dc74a463 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.html @@ -0,0 +1,294 @@ + + + + +JKleppmannTreeOpWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreeOpWrapper

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
+
+
+
+
All Implemented Interfaces:
+
Op, Serializable
+
+
+
public record JKleppmannTreeOpWrapper(JObjectKey treeName, OpMove<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey> op) +extends Record +implements Op, Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JKleppmannTreeOpWrapper

      +
      public JKleppmannTreeOpWrapper(JObjectKey treeName, + OpMove<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey> op)
      +
      Creates an instance of a JKleppmannTreeOpWrapper record class.
      +
      +
      Parameters:
      +
      treeName - the value for the treeName record component
      +
      op - the value for the op record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getEscapedRefs

      +
      public Collection<JObjectKey> getEscapedRefs()
      +
      +
      Specified by:
      +
      getEscapedRefs in interface Op
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      treeName

      +
      public JObjectKey treeName()
      +
      Returns the value of the treeName record component.
      +
      +
      Returns:
      +
      the value of the treeName record component
      +
      +
      +
    • +
    • +
      +

      op

      + +
      Returns the value of the op record component.
      +
      +
      Returns:
      +
      the value of the op record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.html new file mode 100644 index 00000000..687f65ba --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.html @@ -0,0 +1,200 @@ + + + + +JKleppmannTreePeerInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreePeerInterface

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeerInterface
+
+
+
+
All Implemented Interfaces:
+
PeerInterface<PeerId>
+
+
+
@Singleton +public class JKleppmannTreePeerInterface +extends Object +implements PeerInterface<PeerId>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.html new file mode 100644 index 00000000..cb0f2232 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.html @@ -0,0 +1,189 @@ + + + + +JKleppmannTreePeriodicOpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JKleppmannTreePeriodicOpHandler

+
+
java.lang.Object +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicOpHandler
+
+
+
+
All Implemented Interfaces:
+
OpHandler<JKleppmannTreePeriodicPushOp>
+
+
+
@ApplicationScoped +public class JKleppmannTreePeriodicOpHandler +extends Object +implements OpHandler<JKleppmannTreePeriodicPushOp>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.html b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.html new file mode 100644 index 00000000..e81605a1 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.html @@ -0,0 +1,313 @@ + + + + +JKleppmannTreePeriodicPushOp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreePeriodicPushOp

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
+
+
+
All Implemented Interfaces:
+
Op, Serializable
+
+
+
public record JKleppmannTreePeriodicPushOp(JObjectKey treeName, PeerId from, long timestamp) +extends Record +implements Op, Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JKleppmannTreePeriodicPushOp

      +
      public JKleppmannTreePeriodicPushOp(JObjectKey treeName, + PeerId from, + long timestamp)
      +
      Creates an instance of a JKleppmannTreePeriodicPushOp record class.
      +
      +
      Parameters:
      +
      treeName - the value for the treeName record component
      +
      from - the value for the from record component
      +
      timestamp - the value for the timestamp record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getEscapedRefs

      +
      public Collection<JObjectKey> getEscapedRefs()
      +
      +
      Specified by:
      +
      getEscapedRefs in interface Op
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      treeName

      +
      public JObjectKey treeName()
      +
      Returns the value of the treeName record component.
      +
      +
      Returns:
      +
      the value of the treeName record component
      +
      +
      +
    • +
    • +
      +

      from

      +
      public PeerId from()
      +
      Returns the value of the from record component.
      +
      +
      Returns:
      +
      the value of the from record component
      +
      +
      +
    • +
    • +
      +

      timestamp

      +
      public long timestamp()
      +
      Returns the value of the timestamp record component.
      +
      +
      Returns:
      +
      the value of the timestamp record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeInitialSyncProcessor.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeInitialSyncProcessor.html new file mode 100644 index 00000000..ac5ff3ea --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeInitialSyncProcessor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeInitialSyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeInitialSyncProcessor

+
+No usage of com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeInitialSyncProcessor
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html new file mode 100644 index 00000000..00639106 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface

+
+No usage of com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.html new file mode 100644 index 00000000..313cbebb --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.JKleppmannTree.html @@ -0,0 +1,97 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.html new file mode 100644 index 00000000..9d145403 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeManager.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager

+
+No usage of com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpExtractor.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpExtractor.html new file mode 100644 index 00000000..46c2117e --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpExtractor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpExtractor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpExtractor

+
+No usage of com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpExtractor
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpHandler.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpHandler.html new file mode 100644 index 00000000..318bf337 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpHandler.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpHandler

+
+No usage of com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpHandler
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpWrapper.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpWrapper.html new file mode 100644 index 00000000..a6a95764 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreeOpWrapper.html @@ -0,0 +1,88 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper

+
+
Packages that use JKleppmannTreeOpWrapper
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeerInterface.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeerInterface.html new file mode 100644 index 00000000..8a9da9b9 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeerInterface.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeerInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeerInterface

+
+No usage of com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeerInterface
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicOpHandler.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicOpHandler.html new file mode 100644 index 00000000..68d46d4c --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicOpHandler.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicOpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicOpHandler

+
+No usage of com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicOpHandler
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicPushOp.html b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicPushOp.html new file mode 100644 index 00000000..05ba4668 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/class-use/JKleppmannTreePeriodicPushOp.html @@ -0,0 +1,88 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/package-summary.html b/com/usatiuk/dhfs/jkleppmanntree/package-summary.html new file mode 100644 index 00000000..8819cc0e --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/package-summary.html @@ -0,0 +1,125 @@ + + + + +com.usatiuk.dhfs.jkleppmanntree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.jkleppmanntree

+
+
+
package com.usatiuk.dhfs.jkleppmanntree
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/package-tree.html b/com/usatiuk/dhfs/jkleppmanntree/package-tree.html new file mode 100644 index 00000000..364cfa39 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/package-tree.html @@ -0,0 +1,98 @@ + + + + +com.usatiuk.dhfs.jkleppmanntree Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.jkleppmanntree

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/package-use.html b/com/usatiuk/dhfs/jkleppmanntree/package-use.html new file mode 100644 index 00000000..233e51bf --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/package-use.html @@ -0,0 +1,88 @@ + + + + +Uses of Package com.usatiuk.dhfs.jkleppmanntree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.jkleppmanntree

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.html b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.html new file mode 100644 index 00000000..9b5029a0 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.html @@ -0,0 +1,435 @@ + + + + +JKleppmannTreeNode (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreeNode

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
+
+
+
All Implemented Interfaces:
+
TreeNode<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>, Serializable
+
+
+
public record JKleppmannTreeNode(JObjectKey key, JObjectKey parent, OpMove<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey> lastEffectiveOp, @Nullable JKleppmannTreeNodeMeta meta, org.pcollections.PMap<String,JObjectKey> children) +extends Record +implements TreeNode<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>, Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.html b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.html new file mode 100644 index 00000000..f8ec11ad --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.html @@ -0,0 +1,396 @@ + + + + +JKleppmannTreeNodeHolder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreeNodeHolder

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
+
+
+
All Implemented Interfaces:
+
JDataRefcounted, JData, Serializable
+
+
+
public record JKleppmannTreeNodeHolder(org.pcollections.PCollection<JDataRef> refsFrom, boolean frozen, JKleppmannTreeNode node) +extends Record +implements JDataRefcounted, Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JKleppmannTreeNodeHolder

      +
      public JKleppmannTreeNodeHolder(JKleppmannTreeNode node)
      +
      +
    • +
    • +
      +

      JKleppmannTreeNodeHolder

      +
      public JKleppmannTreeNodeHolder(JKleppmannTreeNode node, + boolean frozen)
      +
      +
    • +
    • +
      +

      JKleppmannTreeNodeHolder

      +
      public JKleppmannTreeNodeHolder(org.pcollections.PCollection<JDataRef> refsFrom, + boolean frozen, + JKleppmannTreeNode node)
      +
      Creates an instance of a JKleppmannTreeNodeHolder record class.
      +
      +
      Parameters:
      +
      refsFrom - the value for the refsFrom record component
      +
      frozen - the value for the frozen record component
      +
      node - the value for the node record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      withNode

      + +
      +
    • +
    • +
      +

      withRefsFrom

      +
      public JKleppmannTreeNodeHolder withRefsFrom(org.pcollections.PCollection<JDataRef> refs)
      +
      +
      Specified by:
      +
      withRefsFrom in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      withFrozen

      +
      public JKleppmannTreeNodeHolder withFrozen(boolean frozen)
      +
      +
      Specified by:
      +
      withFrozen in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      public Collection<JObjectKey> collectRefsTo()
      +
      +
      Specified by:
      +
      collectRefsTo in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      +
      Specified by:
      +
      key in interface JData
      +
      +
      +
    • +
    • +
      +

      estimateSize

      +
      public int estimateSize()
      +
      +
      Specified by:
      +
      estimateSize in interface JData
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      refsFrom

      +
      public org.pcollections.PCollection<JDataRef> refsFrom()
      +
      Returns the value of the refsFrom record component.
      +
      +
      Specified by:
      +
      refsFrom in interface JDataRefcounted
      +
      Returns:
      +
      the value of the refsFrom record component
      +
      +
      +
    • +
    • +
      +

      frozen

      +
      public boolean frozen()
      +
      Returns the value of the frozen record component.
      +
      +
      Specified by:
      +
      frozen in interface JDataRefcounted
      +
      Returns:
      +
      the value of the frozen record component
      +
      +
      +
    • +
    • +
      +

      node

      +
      public JKleppmannTreeNode node()
      +
      Returns the value of the node record component.
      +
      +
      Returns:
      +
      the value of the node record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.html b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.html new file mode 100644 index 00000000..7b31eee4 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.html @@ -0,0 +1,168 @@ + + + + +JKleppmannTreeNodeMeta (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JKleppmannTreeNodeMeta

+
+
+
+
All Superinterfaces:
+
NodeMeta, Serializable
+
+
+
All Known Implementing Classes:
+
JKleppmannTreeNodeMetaDirectory, JKleppmannTreeNodeMetaFile, JKleppmannTreeNodeMetaPeer
+
+
+
public interface JKleppmannTreeNodeMeta +extends NodeMeta
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.html b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.html new file mode 100644 index 00000000..83078c54 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.html @@ -0,0 +1,460 @@ + + + + +JKleppmannTreePersistentData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreePersistentData

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
+
+
+
All Implemented Interfaces:
+
JDataRefcounted, JData, Serializable
+
+
+
public record JKleppmannTreePersistentData(JObjectKey key, org.pcollections.PCollection<JDataRef> refsFrom, boolean frozen, long clock, org.pcollections.PMap<PeerId,org.pcollections.PSortedMap<CombinedTimestamp<Long,PeerId>,OpMove<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>>> queues, org.pcollections.PMap<PeerId,Long> peerTimestampLog, org.pcollections.PSortedMap<CombinedTimestamp<Long,PeerId>,LogRecord<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>> log) +extends Record +implements JDataRefcounted
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JKleppmannTreePersistentData

      +
      public JKleppmannTreePersistentData(JObjectKey key, + org.pcollections.PCollection<JDataRef> refsFrom, + boolean frozen, + long clock, + org.pcollections.PMap<PeerId,org.pcollections.PSortedMap<CombinedTimestamp<Long,PeerId>,OpMove<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>>> queues, + org.pcollections.PMap<PeerId,Long> peerTimestampLog, + org.pcollections.PSortedMap<CombinedTimestamp<Long,PeerId>,LogRecord<Long,PeerId,JKleppmannTreeNodeMeta,JObjectKey>> log)
      +
      Creates an instance of a JKleppmannTreePersistentData record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      refsFrom - the value for the refsFrom record component
      +
      frozen - the value for the frozen record component
      +
      clock - the value for the clock record component
      +
      queues - the value for the queues record component
      +
      peerTimestampLog - the value for the peerTimestampLog record component
      +
      log - the value for the log record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNode.html b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNode.html new file mode 100644 index 00000000..cd106b14 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNode.html @@ -0,0 +1,151 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode

+
+
Packages that use JKleppmannTreeNode
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeHolder.html b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeHolder.html new file mode 100644 index 00000000..4b554c9c --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeHolder.html @@ -0,0 +1,93 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder

+
+
Packages that use JKleppmannTreeNodeHolder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeMeta.html b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeMeta.html new file mode 100644 index 00000000..29b5ebdf --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreeNodeMeta.html @@ -0,0 +1,323 @@ + + + + +Uses of Interface com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta

+
+
Packages that use JKleppmannTreeNodeMeta
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreePersistentData.html b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreePersistentData.html new file mode 100644 index 00000000..b765ff91 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/class-use/JKleppmannTreePersistentData.html @@ -0,0 +1,119 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData

+
+ + +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/package-summary.html b/com/usatiuk/dhfs/jkleppmanntree/structs/package-summary.html new file mode 100644 index 00000000..80307ca4 --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/package-summary.html @@ -0,0 +1,115 @@ + + + + +com.usatiuk.dhfs.jkleppmanntree.structs (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.jkleppmanntree.structs

+
+
+
package com.usatiuk.dhfs.jkleppmanntree.structs
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/package-tree.html b/com/usatiuk/dhfs/jkleppmanntree/structs/package-tree.html new file mode 100644 index 00000000..3bc398eb --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/package-tree.html @@ -0,0 +1,96 @@ + + + + +com.usatiuk.dhfs.jkleppmanntree.structs Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.jkleppmanntree.structs

+
+Package Hierarchies: + +
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jkleppmanntree/structs/package-use.html b/com/usatiuk/dhfs/jkleppmanntree/structs/package-use.html new file mode 100644 index 00000000..33b5cc6f --- /dev/null +++ b/com/usatiuk/dhfs/jkleppmanntree/structs/package-use.html @@ -0,0 +1,133 @@ + + + + +Uses of Package com.usatiuk.dhfs.jkleppmanntree.structs (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.jkleppmanntree.structs

+
+ + +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapEntry.html b/com/usatiuk/dhfs/jmap/JMapEntry.html new file mode 100644 index 00000000..358babf1 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapEntry.html @@ -0,0 +1,336 @@ + + + + +JMapEntry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JMapEntry<K extends JMapKey>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jmap.JMapEntry<K>
+
+
+
+
+
All Implemented Interfaces:
+
JData, Serializable
+
+
+
public record JMapEntry<K extends JMapKey>(JObjectKey key, JObjectKey holder, K extends JMapKey selfKey, JObjectKey ref) +extends Record +implements JData
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    JMapEntry(JObjectKey key, + JObjectKey holder, + K selfKey, + JObjectKey ref)
    +
    +
    Creates an instance of a JMapEntry record class.
    +
    +
    JMapEntry(JObjectKey holder, + K selfKey, + JObjectKey ref)
    +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + + +
    +
    Returns the value of the holder record component.
    +
    + +
    key()
    +
    +
    Returns the value of the key record component.
    +
    + +
    ref()
    +
    +
    Returns the value of the ref record component.
    +
    + + +
    +
    Returns the value of the selfKey record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.usatiuk.objects.JData

    +estimateSize
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JMapEntry

      +
      public JMapEntry(JObjectKey holder, + K selfKey, + JObjectKey ref)
      +
      +
    • +
    • +
      +

      JMapEntry

      +
      public JMapEntry(JObjectKey key, + JObjectKey holder, + K selfKey, + JObjectKey ref)
      +
      Creates an instance of a JMapEntry record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      holder - the value for the holder record component
      +
      selfKey - the value for the selfKey record component
      +
      ref - the value for the ref record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Specified by:
      +
      key in interface JData
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      holder

      +
      public JObjectKey holder()
      +
      Returns the value of the holder record component.
      +
      +
      Returns:
      +
      the value of the holder record component
      +
      +
      +
    • +
    • +
      +

      selfKey

      +
      public K selfKey()
      +
      Returns the value of the selfKey record component.
      +
      +
      Returns:
      +
      the value of the selfKey record component
      +
      +
      +
    • +
    • +
      +

      ref

      +
      public JObjectKey ref()
      +
      Returns the value of the ref record component.
      +
      +
      Returns:
      +
      the value of the ref record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapHelper.html b/com/usatiuk/dhfs/jmap/JMapHelper.html new file mode 100644 index 00000000..62309c49 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapHelper.html @@ -0,0 +1,237 @@ + + + + +JMapHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JMapHelper

+
+
java.lang.Object +
com.usatiuk.dhfs.jmap.JMapHelper
+
+
+
+
@Singleton +public class JMapHelper +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapHolder.html b/com/usatiuk/dhfs/jmap/JMapHolder.html new file mode 100644 index 00000000..57c05b0c --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapHolder.html @@ -0,0 +1,124 @@ + + + + +JMapHolder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JMapHolder<K extends JMapKey>

+
+
+
+
All Superinterfaces:
+
JData, Serializable
+
+
+
All Known Implementing Classes:
+
File
+
+
+
public interface JMapHolder<K extends JMapKey> +extends JData
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +

    Methods inherited from interface com.usatiuk.objects.JData

    +estimateSize, key
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.html b/com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.html new file mode 100644 index 00000000..a785f5f5 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.html @@ -0,0 +1,192 @@ + + + + +JMapHolderRefcounterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JMapHolderRefcounterTxHook

+
+
java.lang.Object +
com.usatiuk.dhfs.jmap.JMapHolderRefcounterTxHook
+
+
+
+
All Implemented Interfaces:
+
PreCommitTxHook
+
+
+
@Singleton +public class JMapHolderRefcounterTxHook +extends Object +implements PreCommitTxHook
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JMapHolderRefcounterTxHook

      +
      public JMapHolderRefcounterTxHook()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapIterator.html b/com/usatiuk/dhfs/jmap/JMapIterator.html new file mode 100644 index 00000000..43871edd --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapIterator.html @@ -0,0 +1,309 @@ + + + + +JMapIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JMapIterator<K extends JMapKey>

+
+
java.lang.Object +
com.usatiuk.dhfs.jmap.JMapIterator<K>
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,JMapEntry<K>>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,JMapEntry<K>>>
+
+
+
public class JMapIterator<K extends JMapKey> +extends Object +implements CloseableKvIterator<K,JMapEntry<K>>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapKey.html b/com/usatiuk/dhfs/jmap/JMapKey.html new file mode 100644 index 00000000..191373e9 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapKey.html @@ -0,0 +1,124 @@ + + + + +JMapKey (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JMapKey

+
+
+
+
All Superinterfaces:
+
Comparable<JMapKey>
+
+
+
All Known Implementing Classes:
+
JMapLongKey
+
+
+
public interface JMapKey +extends Comparable<JMapKey>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +

    Methods inherited from interface java.lang.Comparable

    +compareTo
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapLongKey.html b/com/usatiuk/dhfs/jmap/JMapLongKey.html new file mode 100644 index 00000000..a9acce6f --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapLongKey.html @@ -0,0 +1,294 @@ + + + + +JMapLongKey (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JMapLongKey

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jmap.JMapLongKey
+
+
+
+
+
All Implemented Interfaces:
+
JMapKey, Serializable, Comparable<JMapKey>
+
+
+
public record JMapLongKey(long key) +extends Record +implements JMapKey, Comparable<JMapKey>, Serializable
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    JMapLongKey(long key)
    +
    +
    Creates an instance of a JMapLongKey record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    int
    + +
     
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    long
    +
    key()
    +
    +
    Returns the value of the key record component.
    +
    + +
    max()
    +
     
    + +
    of(long key)
    +
     
    + + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JMapLongKey

      +
      public JMapLongKey(long key)
      +
      Creates an instance of a JMapLongKey record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      of

      +
      public static JMapLongKey of(long key)
      +
      +
    • +
    • +
      +

      max

      +
      public static JMapLongKey max()
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      compareTo

      +
      public int compareTo(@Nonnull + JMapKey o)
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<JMapKey>
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public long key()
      +
      Returns the value of the key record component.
      +
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapRef.html b/com/usatiuk/dhfs/jmap/JMapRef.html new file mode 100644 index 00000000..09ed7142 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapRef.html @@ -0,0 +1,307 @@ + + + + +JMapRef (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JMapRef

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.jmap.JMapRef
+
+
+
+
+
All Implemented Interfaces:
+
JDataRef, Serializable, Comparable<JDataRef>
+
+
+
public record JMapRef(JObjectKey holder, JMapKey mapKey) +extends Record +implements JDataRef
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    JMapRef(JObjectKey holder, + JMapKey mapKey)
    +
    +
    Creates an instance of a JMapRef record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    int
    + +
     
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + + +
    +
    Returns the value of the holder record component.
    +
    + + +
    +
    Returns the value of the mapKey record component.
    +
    + +
    obj()
    +
     
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JMapRef

      +
      public JMapRef(JObjectKey holder, + JMapKey mapKey)
      +
      Creates an instance of a JMapRef record class.
      +
      +
      Parameters:
      +
      holder - the value for the holder record component
      +
      mapKey - the value for the mapKey record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      obj

      +
      public JObjectKey obj()
      +
      +
      Specified by:
      +
      obj in interface JDataRef
      +
      +
      +
    • +
    • +
      +

      compareTo

      +
      public int compareTo(JDataRef o)
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<JDataRef>
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      holder

      +
      public JObjectKey holder()
      +
      Returns the value of the holder record component.
      +
      +
      Returns:
      +
      the value of the holder record component
      +
      +
      +
    • +
    • +
      +

      mapKey

      +
      public JMapKey mapKey()
      +
      Returns the value of the mapKey record component.
      +
      +
      Returns:
      +
      the value of the mapKey record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.html b/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.html new file mode 100644 index 00000000..ec0846bd --- /dev/null +++ b/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.html @@ -0,0 +1,224 @@ + + + + +JMapRefcounterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JMapRefcounterTxHook

+
+
java.lang.Object +
com.usatiuk.dhfs.jmap.JMapRefcounterTxHook
+
+
+
+
All Implemented Interfaces:
+
PreCommitTxHook
+
+
+
@Singleton +public class JMapRefcounterTxHook +extends Object +implements PreCommitTxHook
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapEntry.html b/com/usatiuk/dhfs/jmap/class-use/JMapEntry.html new file mode 100644 index 00000000..3da68598 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapEntry.html @@ -0,0 +1,102 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jmap.JMapEntry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jmap.JMapEntry

+
+
Packages that use JMapEntry
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapHelper.html b/com/usatiuk/dhfs/jmap/class-use/JMapHelper.html new file mode 100644 index 00000000..6eb9275e --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapHelper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jmap.JMapHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jmap.JMapHelper

+
+No usage of com.usatiuk.dhfs.jmap.JMapHelper
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapHolder.html b/com/usatiuk/dhfs/jmap/class-use/JMapHolder.html new file mode 100644 index 00000000..e2f1333c --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapHolder.html @@ -0,0 +1,136 @@ + + + + +Uses of Interface com.usatiuk.dhfs.jmap.JMapHolder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.jmap.JMapHolder

+
+
Packages that use JMapHolder
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapHolderRefcounterTxHook.html b/com/usatiuk/dhfs/jmap/class-use/JMapHolderRefcounterTxHook.html new file mode 100644 index 00000000..1f09916b --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapHolderRefcounterTxHook.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jmap.JMapHolderRefcounterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jmap.JMapHolderRefcounterTxHook

+
+No usage of com.usatiuk.dhfs.jmap.JMapHolderRefcounterTxHook
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapIterator.html b/com/usatiuk/dhfs/jmap/class-use/JMapIterator.html new file mode 100644 index 00000000..99c7e234 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapIterator.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jmap.JMapIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jmap.JMapIterator

+
+No usage of com.usatiuk.dhfs.jmap.JMapIterator
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapKey.html b/com/usatiuk/dhfs/jmap/class-use/JMapKey.html new file mode 100644 index 00000000..03739f4f --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapKey.html @@ -0,0 +1,164 @@ + + + + +Uses of Interface com.usatiuk.dhfs.jmap.JMapKey (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.jmap.JMapKey

+
+
Packages that use JMapKey
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapLongKey.html b/com/usatiuk/dhfs/jmap/class-use/JMapLongKey.html new file mode 100644 index 00000000..45c93179 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapLongKey.html @@ -0,0 +1,90 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jmap.JMapLongKey (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jmap.JMapLongKey

+
+
Packages that use JMapLongKey
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapRef.html b/com/usatiuk/dhfs/jmap/class-use/JMapRef.html new file mode 100644 index 00000000..dbeffe77 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapRef.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.jmap.JMapRef (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.jmap.JMapRef

+
+No usage of com.usatiuk.dhfs.jmap.JMapRef
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/class-use/JMapRefcounterTxHook.html b/com/usatiuk/dhfs/jmap/class-use/JMapRefcounterTxHook.html new file mode 100644 index 00000000..0afe9656 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/class-use/JMapRefcounterTxHook.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.jmap.JMapRefcounterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.jmap.JMapRefcounterTxHook

+
+No usage of com.usatiuk.dhfs.jmap.JMapRefcounterTxHook
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/package-summary.html b/com/usatiuk/dhfs/jmap/package-summary.html new file mode 100644 index 00000000..a931945d --- /dev/null +++ b/com/usatiuk/dhfs/jmap/package-summary.html @@ -0,0 +1,125 @@ + + + + +com.usatiuk.dhfs.jmap (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.jmap

+
+
+
package com.usatiuk.dhfs.jmap
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/package-tree.html b/com/usatiuk/dhfs/jmap/package-tree.html new file mode 100644 index 00000000..3b805590 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/package-tree.html @@ -0,0 +1,114 @@ + + + + +com.usatiuk.dhfs.jmap Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.jmap

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/jmap/package-use.html b/com/usatiuk/dhfs/jmap/package-use.html new file mode 100644 index 00000000..20410bf6 --- /dev/null +++ b/com/usatiuk/dhfs/jmap/package-use.html @@ -0,0 +1,103 @@ + + + + +Uses of Package com.usatiuk.dhfs.jmap (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.jmap

+
+
Packages that use com.usatiuk.dhfs.jmap
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/package-summary.html b/com/usatiuk/dhfs/package-summary.html new file mode 100644 index 00000000..7d66f811 --- /dev/null +++ b/com/usatiuk/dhfs/package-summary.html @@ -0,0 +1,143 @@ + + + + +com.usatiuk.dhfs (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs

+
+
+
package com.usatiuk.dhfs
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/package-tree.html b/com/usatiuk/dhfs/package-tree.html new file mode 100644 index 00000000..34d77b7a --- /dev/null +++ b/com/usatiuk/dhfs/package-tree.html @@ -0,0 +1,84 @@ + + + + +com.usatiuk.dhfs Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/package-use.html b/com/usatiuk/dhfs/package-use.html new file mode 100644 index 00000000..5b860712 --- /dev/null +++ b/com/usatiuk/dhfs/package-use.html @@ -0,0 +1,110 @@ + + + + +Uses of Package com.usatiuk.dhfs (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs

+
+
Packages that use com.usatiuk.dhfs
+
+
Package
+
Description
+ +
 
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/DhfsObjectPeerDiscoveryApi.html b/com/usatiuk/dhfs/peerdiscovery/DhfsObjectPeerDiscoveryApi.html new file mode 100644 index 00000000..34a35e73 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/DhfsObjectPeerDiscoveryApi.html @@ -0,0 +1,168 @@ + + + + +DhfsObjectPeerDiscoveryApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectPeerDiscoveryApi

+
+
java.lang.Object +
com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi
+
+
+
+
public final class DhfsObjectPeerDiscoveryApi +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      registerAllExtensions

      +
      public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)
      +
      +
    • +
    • +
      +

      registerAllExtensions

      +
      public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry)
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.html b/com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.html new file mode 100644 index 00000000..eae2da3e --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.html @@ -0,0 +1,351 @@ + + + + +IpPeerAddress (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class IpPeerAddress

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
+
+
+
All Implemented Interfaces:
+
PeerAddress, Serializable
+
+
+
public record IpPeerAddress(PeerId peer, PeerAddressType type, InetAddress address, int port, int securePort) +extends Record +implements PeerAddress
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    IpPeerAddress(PeerId peer, + PeerAddressType type, + InetAddress address, + int port, + int securePort)
    +
    +
    Creates an instance of a IpPeerAddress record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the address record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + + +
    +
    Returns the value of the peer record component.
    +
    +
    int
    + +
    +
    Returns the value of the port record component.
    +
    +
    int
    + +
    +
    Returns the value of the securePort record component.
    +
    + + +
    +
    Returns a string representation of this record class.
    +
    + + +
    +
    Returns the value of the type record component.
    +
    + + +
     
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      IpPeerAddress

      +
      public IpPeerAddress(PeerId peer, + PeerAddressType type, + InetAddress address, + int port, + int securePort)
      +
      Creates an instance of a IpPeerAddress record class.
      +
      +
      Parameters:
      +
      peer - the value for the peer record component
      +
      type - the value for the type record component
      +
      address - the value for the address record component
      +
      port - the value for the port record component
      +
      securePort - the value for the securePort record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      withType

      +
      public IpPeerAddress withType(PeerAddressType type)
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      peer

      +
      public PeerId peer()
      +
      Returns the value of the peer record component.
      +
      +
      Specified by:
      +
      peer in interface PeerAddress
      +
      Returns:
      +
      the value of the peer record component
      +
      +
      +
    • +
    • +
      +

      type

      +
      public PeerAddressType type()
      +
      Returns the value of the type record component.
      +
      +
      Specified by:
      +
      type in interface PeerAddress
      +
      Returns:
      +
      the value of the type record component
      +
      +
      +
    • +
    • +
      +

      address

      +
      public InetAddress address()
      +
      Returns the value of the address record component.
      +
      +
      Returns:
      +
      the value of the address record component
      +
      +
      +
    • +
    • +
      +

      port

      +
      public int port()
      +
      Returns the value of the port record component.
      +
      +
      Returns:
      +
      the value of the port record component
      +
      +
      +
    • +
    • +
      +

      securePort

      +
      public int securePort()
      +
      Returns the value of the securePort record component.
      +
      +
      Returns:
      +
      the value of the securePort record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.html b/com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.html new file mode 100644 index 00000000..2620cac7 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.html @@ -0,0 +1,188 @@ + + + + +PeerAddrStringHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerAddrStringHelper

+
+
java.lang.Object +
com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper
+
+
+
+
public class PeerAddrStringHelper +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerAddrStringHelper

      +
      public PeerAddrStringHelper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PeerAddress.html b/com/usatiuk/dhfs/peerdiscovery/PeerAddress.html new file mode 100644 index 00000000..5b8b329a --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PeerAddress.html @@ -0,0 +1,161 @@ + + + + +PeerAddress (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerAddress

+
+
+
+
All Superinterfaces:
+
Serializable
+
+
+
All Known Implementing Classes:
+
IpPeerAddress
+
+
+
public interface PeerAddress +extends Serializable
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    + + +
     
    +
    +
    +
    +
    +
  • +
+
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PeerAddressType.html b/com/usatiuk/dhfs/peerdiscovery/PeerAddressType.html new file mode 100644 index 00000000..b185982c --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PeerAddressType.html @@ -0,0 +1,244 @@ + + + + +PeerAddressType (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class PeerAddressType

+
+
java.lang.Object +
java.lang.Enum<PeerAddressType> +
com.usatiuk.dhfs.peerdiscovery.PeerAddressType
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<PeerAddressType>, Constable
+
+
+
public enum PeerAddressType +extends Enum<PeerAddressType>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static PeerAddressType[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static PeerAddressType valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.html b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.html new file mode 100644 index 00000000..fc56924c --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.html @@ -0,0 +1,196 @@ + + + + +PeerDiscoveryDirectory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerDiscoveryDirectory

+
+
java.lang.Object +
com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory
+
+
+
+
@ApplicationScoped +public class PeerDiscoveryDirectory +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerDiscoveryDirectory

      +
      public PeerDiscoveryDirectory()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.Builder.html b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.Builder.html new file mode 100644 index 00000000..a2c73074 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.Builder.html @@ -0,0 +1,659 @@ + + + + +PeerDiscoveryInfo.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerDiscoveryInfo.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<PeerDiscoveryInfo.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder> +
com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PeerDiscoveryInfoOrBuilder, Cloneable
+
+
+
Enclosing class:
+
PeerDiscoveryInfo
+
+
+
public static final class PeerDiscoveryInfo.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder> +implements PeerDiscoveryInfoOrBuilder
+
Protobuf type dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public PeerDiscoveryInfo.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PeerDiscoveryInfo getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public PeerDiscoveryInfo build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public PeerDiscoveryInfo buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public PeerDiscoveryInfo.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public PeerDiscoveryInfo.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public PeerDiscoveryInfo.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public PeerDiscoveryInfo.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public PeerDiscoveryInfo.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public PeerDiscoveryInfo.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerDiscoveryInfo.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerDiscoveryInfo.Builder mergeFrom(PeerDiscoveryInfo other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerDiscoveryInfo.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PeerDiscoveryInfo.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getUuid

      +
      public String getUuid()
      +
      string uuid = 1;
      +
      +
      Specified by:
      +
      getUuid in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The uuid.
      +
      +
      +
    • +
    • +
      +

      getUuidBytes

      +
      public com.google.protobuf.ByteString getUuidBytes()
      +
      string uuid = 1;
      +
      +
      Specified by:
      +
      getUuidBytes in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The bytes for uuid.
      +
      +
      +
    • +
    • +
      +

      setUuid

      +
      public PeerDiscoveryInfo.Builder setUuid(String value)
      +
      string uuid = 1;
      +
      +
      Parameters:
      +
      value - The uuid to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearUuid

      +
      public PeerDiscoveryInfo.Builder clearUuid()
      +
      string uuid = 1;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUuidBytes

      +
      public PeerDiscoveryInfo.Builder setUuidBytes(com.google.protobuf.ByteString value)
      +
      string uuid = 1;
      +
      +
      Parameters:
      +
      value - The bytes for uuid to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      getPort

      +
      public int getPort()
      +
      uint32 port = 2;
      +
      +
      Specified by:
      +
      getPort in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The port.
      +
      +
      +
    • +
    • +
      +

      setPort

      +
      public PeerDiscoveryInfo.Builder setPort(int value)
      +
      uint32 port = 2;
      +
      +
      Parameters:
      +
      value - The port to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearPort

      +
      public PeerDiscoveryInfo.Builder clearPort()
      +
      uint32 port = 2;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      getSecurePort

      +
      public int getSecurePort()
      +
      uint32 securePort = 3;
      +
      +
      Specified by:
      +
      getSecurePort in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The securePort.
      +
      +
      +
    • +
    • +
      +

      setSecurePort

      +
      public PeerDiscoveryInfo.Builder setSecurePort(int value)
      +
      uint32 securePort = 3;
      +
      +
      Parameters:
      +
      value - The securePort to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearSecurePort

      +
      public PeerDiscoveryInfo.Builder clearSecurePort()
      +
      uint32 securePort = 3;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final PeerDiscoveryInfo.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final PeerDiscoveryInfo.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PeerDiscoveryInfo.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.html b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.html new file mode 100644 index 00000000..28012d4f --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfo.html @@ -0,0 +1,755 @@ + + + + +PeerDiscoveryInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerDiscoveryInfo

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PeerDiscoveryInfoOrBuilder, Serializable
+
+
+
public final class PeerDiscoveryInfo +extends com.google.protobuf.GeneratedMessageV3 +implements PeerDiscoveryInfoOrBuilder
+
Protobuf type dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.peerdiscovery.PeerDiscoveryInfo
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    static final int
    + +
     
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<PeerDiscoveryInfo>
    + +
     
    +
    int
    + +
    +
    uint32 port = 2;
    +
    +
    int
    + +
    +
    uint32 securePort = 3;
    +
    +
    int
    + +
     
    + + +
    +
    string uuid = 1;
    +
    +
    com.google.protobuf.ByteString
    + +
    +
    string uuid = 1;
    +
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<PeerDiscoveryInfo>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      UUID_FIELD_NUMBER

      +
      public static final int UUID_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      PORT_FIELD_NUMBER

      +
      public static final int PORT_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      SECUREPORT_FIELD_NUMBER

      +
      public static final int SECUREPORT_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getUuid

      +
      public String getUuid()
      +
      string uuid = 1;
      +
      +
      Specified by:
      +
      getUuid in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The uuid.
      +
      +
      +
    • +
    • +
      +

      getUuidBytes

      +
      public com.google.protobuf.ByteString getUuidBytes()
      +
      string uuid = 1;
      +
      +
      Specified by:
      +
      getUuidBytes in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The bytes for uuid.
      +
      +
      +
    • +
    • +
      +

      getPort

      +
      public int getPort()
      +
      uint32 port = 2;
      +
      +
      Specified by:
      +
      getPort in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The port.
      +
      +
      +
    • +
    • +
      +

      getSecurePort

      +
      public int getSecurePort()
      +
      uint32 securePort = 3;
      +
      +
      Specified by:
      +
      getSecurePort in interface PeerDiscoveryInfoOrBuilder
      +
      Returns:
      +
      The securePort.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PeerDiscoveryInfo parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PeerDiscoveryInfo parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerDiscoveryInfo parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public PeerDiscoveryInfo.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PeerDiscoveryInfo.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PeerDiscoveryInfo.Builder newBuilder(PeerDiscoveryInfo prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public PeerDiscoveryInfo.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected PeerDiscoveryInfo.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static PeerDiscoveryInfo getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<PeerDiscoveryInfo> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<PeerDiscoveryInfo> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PeerDiscoveryInfo getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfoOrBuilder.html b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfoOrBuilder.html new file mode 100644 index 00000000..372fb780 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryInfoOrBuilder.html @@ -0,0 +1,213 @@ + + + + +PeerDiscoveryInfoOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerDiscoveryInfoOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
PeerDiscoveryInfo, PeerDiscoveryInfo.Builder
+
+
+
public interface PeerDiscoveryInfoOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    int
    + +
    +
    uint32 port = 2;
    +
    +
    int
    + +
    +
    uint32 securePort = 3;
    +
    + + +
    +
    string uuid = 1;
    +
    +
    com.google.protobuf.ByteString
    + +
    +
    string uuid = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getUuid

      +
      String getUuid()
      +
      string uuid = 1;
      +
      +
      Returns:
      +
      The uuid.
      +
      +
      +
    • +
    • +
      +

      getUuidBytes

      +
      com.google.protobuf.ByteString getUuidBytes()
      +
      string uuid = 1;
      +
      +
      Returns:
      +
      The bytes for uuid.
      +
      +
      +
    • +
    • +
      +

      getPort

      +
      int getPort()
      +
      uint32 port = 2;
      +
      +
      Returns:
      +
      The port.
      +
      +
      +
    • +
    • +
      +

      getSecurePort

      +
      int getSecurePort()
      +
      uint32 securePort = 3;
      +
      +
      Returns:
      +
      The securePort.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.html b/com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.html new file mode 100644 index 00000000..a12176c9 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.html @@ -0,0 +1,178 @@ + + + + +PersistentStaticPeerDiscovery (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PersistentStaticPeerDiscovery

+
+
java.lang.Object +
com.usatiuk.dhfs.peerdiscovery.PersistentStaticPeerDiscovery
+
+
+
+
@ApplicationScoped +public class PersistentStaticPeerDiscovery +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PersistentStaticPeerDiscovery

      +
      public PersistentStaticPeerDiscovery()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      discoverPeers

      +
      public void discoverPeers()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.html b/com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.html new file mode 100644 index 00000000..f5173d2a --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.html @@ -0,0 +1,178 @@ + + + + +StaticPeerDiscovery (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class StaticPeerDiscovery

+
+
java.lang.Object +
com.usatiuk.dhfs.peerdiscovery.StaticPeerDiscovery
+
+
+
+
@ApplicationScoped +public class StaticPeerDiscovery +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      StaticPeerDiscovery

      +
      public StaticPeerDiscovery(Optional<String> staticPeers)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      discoverPeers

      +
      public void discoverPeers()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/DhfsObjectPeerDiscoveryApi.html b/com/usatiuk/dhfs/peerdiscovery/class-use/DhfsObjectPeerDiscoveryApi.html new file mode 100644 index 00000000..c474bf7d --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/DhfsObjectPeerDiscoveryApi.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi

+
+No usage of com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/IpPeerAddress.html b/com/usatiuk/dhfs/peerdiscovery/class-use/IpPeerAddress.html new file mode 100644 index 00000000..fca88744 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/IpPeerAddress.html @@ -0,0 +1,164 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.peerdiscovery.IpPeerAddress

+
+
Packages that use IpPeerAddress
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddrStringHelper.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddrStringHelper.html new file mode 100644 index 00000000..a2042957 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddrStringHelper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper

+
+No usage of com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddress.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddress.html new file mode 100644 index 00000000..913f28f4 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddress.html @@ -0,0 +1,165 @@ + + + + +Uses of Interface com.usatiuk.dhfs.peerdiscovery.PeerAddress (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.peerdiscovery.PeerAddress

+
+
Packages that use PeerAddress
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddressType.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddressType.html new file mode 100644 index 00000000..98f6078b --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerAddressType.html @@ -0,0 +1,127 @@ + + + + +Uses of Enum Class com.usatiuk.dhfs.peerdiscovery.PeerAddressType (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
com.usatiuk.dhfs.peerdiscovery.PeerAddressType

+
+
Packages that use PeerAddressType
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryDirectory.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryDirectory.html new file mode 100644 index 00000000..5e9db768 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryDirectory.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory

+
+No usage of com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.Builder.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.Builder.html new file mode 100644 index 00000000..37898ebf --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.Builder.html @@ -0,0 +1,175 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder

+
+
Packages that use PeerDiscoveryInfo.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.html new file mode 100644 index 00000000..6a8ced8b --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfo.html @@ -0,0 +1,165 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo

+
+
Packages that use PeerDiscoveryInfo
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfoOrBuilder.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfoOrBuilder.html new file mode 100644 index 00000000..a5919278 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PeerDiscoveryInfoOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfoOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfoOrBuilder

+
+
Packages that use PeerDiscoveryInfoOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/PersistentStaticPeerDiscovery.html b/com/usatiuk/dhfs/peerdiscovery/class-use/PersistentStaticPeerDiscovery.html new file mode 100644 index 00000000..ea5aeb72 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/PersistentStaticPeerDiscovery.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.PersistentStaticPeerDiscovery (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.PersistentStaticPeerDiscovery

+
+No usage of com.usatiuk.dhfs.peerdiscovery.PersistentStaticPeerDiscovery
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/class-use/StaticPeerDiscovery.html b/com/usatiuk/dhfs/peerdiscovery/class-use/StaticPeerDiscovery.html new file mode 100644 index 00000000..87267fb6 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/class-use/StaticPeerDiscovery.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.StaticPeerDiscovery (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.StaticPeerDiscovery

+
+No usage of com.usatiuk.dhfs.peerdiscovery.StaticPeerDiscovery
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.html b/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.html new file mode 100644 index 00000000..3f4a49e4 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.html @@ -0,0 +1,183 @@ + + + + +LocalPeerDiscoveryBroadcaster (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class LocalPeerDiscoveryBroadcaster

+
+
java.lang.Object +
com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryBroadcaster
+
+
+
+
@ApplicationScoped +public class LocalPeerDiscoveryBroadcaster +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      LocalPeerDiscoveryBroadcaster

      +
      public LocalPeerDiscoveryBroadcaster()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      broadcast

      +
      public void broadcast() + throws Exception
      +
      +
      Throws:
      +
      Exception
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.html b/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.html new file mode 100644 index 00000000..e18069bf --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.html @@ -0,0 +1,151 @@ + + + + +LocalPeerDiscoveryClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class LocalPeerDiscoveryClient

+
+
java.lang.Object +
com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryClient
+
+
+
+
@ApplicationScoped +public class LocalPeerDiscoveryClient +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      LocalPeerDiscoveryClient

      +
      public LocalPeerDiscoveryClient()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryBroadcaster.html b/com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryBroadcaster.html new file mode 100644 index 00000000..d6f52223 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryBroadcaster.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryBroadcaster (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryBroadcaster

+
+No usage of com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryBroadcaster
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryClient.html b/com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryClient.html new file mode 100644 index 00000000..3945de79 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/local/class-use/LocalPeerDiscoveryClient.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryClient

+
+No usage of com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryClient
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/local/package-summary.html b/com/usatiuk/dhfs/peerdiscovery/local/package-summary.html new file mode 100644 index 00000000..b7031f7c --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/local/package-summary.html @@ -0,0 +1,109 @@ + + + + +com.usatiuk.dhfs.peerdiscovery.local (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.peerdiscovery.local

+
+
+
package com.usatiuk.dhfs.peerdiscovery.local
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/local/package-tree.html b/com/usatiuk/dhfs/peerdiscovery/local/package-tree.html new file mode 100644 index 00000000..04c971cb --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/local/package-tree.html @@ -0,0 +1,77 @@ + + + + +com.usatiuk.dhfs.peerdiscovery.local Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.peerdiscovery.local

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/local/package-use.html b/com/usatiuk/dhfs/peerdiscovery/local/package-use.html new file mode 100644 index 00000000..f11030f9 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/local/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.usatiuk.dhfs.peerdiscovery.local (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.peerdiscovery.local

+
+No usage of com.usatiuk.dhfs.peerdiscovery.local
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/package-summary.html b/com/usatiuk/dhfs/peerdiscovery/package-summary.html new file mode 100644 index 00000000..67718e31 --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/package-summary.html @@ -0,0 +1,135 @@ + + + + +com.usatiuk.dhfs.peerdiscovery (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.peerdiscovery

+
+
+
package com.usatiuk.dhfs.peerdiscovery
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/package-tree.html b/com/usatiuk/dhfs/peerdiscovery/package-tree.html new file mode 100644 index 00000000..6ea0725f --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/package-tree.html @@ -0,0 +1,153 @@ + + + + +com.usatiuk.dhfs.peerdiscovery Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.peerdiscovery

+
+Package Hierarchies: + +
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • com.google.protobuf.AbstractMessageLite<MessageType,BuilderType> (implements com.google.protobuf.MessageLite) +
        +
      • com.google.protobuf.AbstractMessage (implements com.google.protobuf.Message) + +
      • +
      +
    • +
    • com.google.protobuf.AbstractMessageLite.Builder<MessageType,BuilderType> (implements com.google.protobuf.MessageLite.Builder) +
        +
      • com.google.protobuf.AbstractMessage.Builder<BuilderType> (implements com.google.protobuf.Message.Builder) + +
      • +
      +
    • +
    • com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi
    • +
    • com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper
    • +
    • com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory
    • +
    • com.usatiuk.dhfs.peerdiscovery.PersistentStaticPeerDiscovery
    • +
    • com.usatiuk.dhfs.peerdiscovery.StaticPeerDiscovery
    • +
    +
  • +
+
+
+

Interface Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peerdiscovery/package-use.html b/com/usatiuk/dhfs/peerdiscovery/package-use.html new file mode 100644 index 00000000..58c118ed --- /dev/null +++ b/com/usatiuk/dhfs/peerdiscovery/package-use.html @@ -0,0 +1,139 @@ + + + + +Uses of Package com.usatiuk.dhfs.peerdiscovery (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.peerdiscovery

+
+ + +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/InitialSyncProcessor.html b/com/usatiuk/dhfs/peersync/InitialSyncProcessor.html new file mode 100644 index 00000000..82d1c984 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/InitialSyncProcessor.html @@ -0,0 +1,158 @@ + + + + +InitialSyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface InitialSyncProcessor<T extends JData>

+
+
+
+
All Known Implementing Classes:
+
JKleppmannTreeInitialSyncProcessor, RemoteObjectInitialSyncProcessor
+
+
+
public interface InitialSyncProcessor<T extends JData>
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      prepareForInitialSync

      +
      void prepareForInitialSync(PeerId from, + JObjectKey key)
      +
      +
    • +
    • +
      +

      handleCrash

      +
      void handleCrash(JObjectKey key)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerConnectedEventListener.html b/com/usatiuk/dhfs/peersync/PeerConnectedEventListener.html new file mode 100644 index 00000000..300c09e1 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerConnectedEventListener.html @@ -0,0 +1,147 @@ + + + + +PeerConnectedEventListener (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerConnectedEventListener

+
+
+
+
All Known Implementing Classes:
+
DeferredInvalidationQueueService
+
+
+
public interface PeerConnectedEventListener
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      handlePeerConnected

      +
      void handlePeerConnected(PeerId peerId)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.html b/com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.html new file mode 100644 index 00000000..88819cb8 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.html @@ -0,0 +1,147 @@ + + + + +PeerDisconnectedEventListener (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerDisconnectedEventListener

+
+
+
+
All Known Implementing Classes:
+
RpcClientFactory
+
+
+
public interface PeerDisconnectedEventListener
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      handlePeerDisconnected

      +
      void handlePeerDisconnected(PeerId peerId)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerId.html b/com/usatiuk/dhfs/peersync/PeerId.html new file mode 100644 index 00000000..46ca2576 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerId.html @@ -0,0 +1,293 @@ + + + + +PeerId (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class PeerId

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.peersync.PeerId
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<PeerId>
+
+
+
public record PeerId(JObjectKey id) +extends Record +implements Serializable, Comparable<PeerId>
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerId

      +
      public PeerId(JObjectKey id)
      +
      Creates an instance of a PeerId record class.
      +
      +
      Parameters:
      +
      id - the value for the id record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      of

      +
      public static PeerId of(String id)
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      toJObjectKey

      +
      public JObjectKey toJObjectKey()
      +
      +
    • +
    • +
      +

      compareTo

      +
      public int compareTo(PeerId o)
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<PeerId>
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      id

      +
      public JObjectKey id()
      +
      Returns the value of the id record component.
      +
      +
      Returns:
      +
      the value of the id record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerInfo.html b/com/usatiuk/dhfs/peersync/PeerInfo.html new file mode 100644 index 00000000..691e79ec --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerInfo.html @@ -0,0 +1,401 @@ + + + + +PeerInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class PeerInfo

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.peersync.PeerInfo
+
+
+
+
+
All Implemented Interfaces:
+
JDataRemote, JDataRemoteDto, Serializable
+
+
+
public record PeerInfo(JObjectKey key, PeerId id, com.google.protobuf.ByteString cert, org.pcollections.PMap<PeerId,Long> kickCounter, long lastSeenTimestamp) +extends Record +implements JDataRemote, JDataRemoteDto
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerInfo

      +
      public PeerInfo(PeerId id, + byte[] cert)
      +
      +
    • +
    • +
      +

      PeerInfo

      +
      public PeerInfo(JObjectKey key, + PeerId id, + com.google.protobuf.ByteString cert, + org.pcollections.PMap<PeerId,Long> kickCounter, + long lastSeenTimestamp)
      +
      Creates an instance of a PeerInfo record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      id - the value for the id record component
      +
      cert - the value for the cert record component
      +
      kickCounter - the value for the kickCounter record component
      +
      lastSeenTimestamp - the value for the lastSeenTimestamp record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      parsedCert

      +
      public X509Certificate parsedCert()
      +
      +
    • +
    • +
      +

      withKickCounter

      +
      public PeerInfo withKickCounter(org.pcollections.PMap<PeerId,Long> kickCounter)
      +
      +
    • +
    • +
      +

      withIncrementedKickCounter

      +
      public PeerInfo withIncrementedKickCounter(PeerId peerId)
      +
      +
    • +
    • +
      +

      withLastSeenTimestamp

      +
      public PeerInfo withLastSeenTimestamp(long lastSeenTimestamp)
      +
      +
    • +
    • +
      +

      kickCounterSum

      +
      public long kickCounterSum()
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Specified by:
      +
      key in interface JDataRemote
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      id

      +
      public PeerId id()
      +
      Returns the value of the id record component.
      +
      +
      Returns:
      +
      the value of the id record component
      +
      +
      +
    • +
    • +
      +

      cert

      +
      public com.google.protobuf.ByteString cert()
      +
      Returns the value of the cert record component.
      +
      +
      Returns:
      +
      the value of the cert record component
      +
      +
      +
    • +
    • +
      +

      kickCounter

      +
      public org.pcollections.PMap<PeerId,Long> kickCounter()
      +
      Returns the value of the kickCounter record component.
      +
      +
      Returns:
      +
      the value of the kickCounter record component
      +
      +
      +
    • +
    • +
      +

      lastSeenTimestamp

      +
      public long lastSeenTimestamp()
      +
      Returns the value of the lastSeenTimestamp record component.
      +
      +
      Returns:
      +
      the value of the lastSeenTimestamp record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.html b/com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.html new file mode 100644 index 00000000..1415c82a --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.html @@ -0,0 +1,200 @@ + + + + +PeerInfoProtoSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerInfoProtoSerializer

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.PeerInfoProtoSerializer
+
+
+
+
All Implemented Interfaces:
+
ProtoSerializer<PeerInfoP,PeerInfo>
+
+
+
@Singleton +public class PeerInfoProtoSerializer +extends Object +implements ProtoSerializer<PeerInfoP,PeerInfo>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerInfoService.html b/com/usatiuk/dhfs/peersync/PeerInfoService.html new file mode 100644 index 00000000..5bc3f044 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerInfoService.html @@ -0,0 +1,281 @@ + + + + +PeerInfoService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerInfoService

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.PeerInfoService
+
+
+
+
@ApplicationScoped +public class PeerInfoService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      TREE_KEY

      +
      public static final JObjectKey TREE_KEY
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerInfoService

      +
      public PeerInfoService()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getPeerInfoImpl

      +
      public Optional<PeerInfo> getPeerInfoImpl(JObjectKey key)
      +
      +
    • +
    • +
      +

      existsPeer

      +
      public boolean existsPeer(PeerId peer)
      +
      +
    • +
    • +
      +

      getPeerInfo

      +
      public Optional<PeerInfo> getPeerInfo(PeerId peer)
      +
      +
    • +
    • +
      +

      getPeers

      +
      public List<PeerInfo> getPeers()
      +
      +
    • +
    • +
      +

      getPeersNoSelf

      +
      public List<PeerInfo> getPeersNoSelf()
      +
      +
    • +
    • +
      +

      getSynchronizedPeers

      +
      public List<PeerInfo> getSynchronizedPeers()
      +
      +
    • +
    • +
      +

      getSynchronizedPeersNoSelf

      +
      public List<PeerInfo> getSynchronizedPeersNoSelf()
      +
      +
    • +
    • +
      +

      putPeer

      +
      public void putPeer(PeerId id, + byte[] cert)
      +
      +
    • +
    • +
      +

      removePeer

      +
      public void removePeer(PeerId id)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.html b/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.html new file mode 100644 index 00000000..4a7eb58b --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.html @@ -0,0 +1,194 @@ + + + + +PeerInfoSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerInfoSyncHandler

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.PeerInfoSyncHandler
+
+
+
+
All Implemented Interfaces:
+
ObjSyncHandler<PeerInfo,PeerInfo>
+
+
+
@ApplicationScoped +public class PeerInfoSyncHandler +extends Object +implements ObjSyncHandler<PeerInfo,PeerInfo>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.html b/com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.html new file mode 100644 index 00000000..a2b5e2ce --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.html @@ -0,0 +1,151 @@ + + + + +PeerLastSeenUpdater (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerLastSeenUpdater

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.PeerLastSeenUpdater
+
+
+
+
@ApplicationScoped +public class PeerLastSeenUpdater +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerLastSeenUpdater

      +
      public PeerLastSeenUpdater()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PersistentPeerDataService.html b/com/usatiuk/dhfs/peersync/PersistentPeerDataService.html new file mode 100644 index 00000000..aa134c7b --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PersistentPeerDataService.html @@ -0,0 +1,270 @@ + + + + +PersistentPeerDataService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PersistentPeerDataService

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
+
+
+
@ApplicationScoped +public class PersistentPeerDataService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PersistentPeerDataService

      +
      public PersistentPeerDataService()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSelfUuid

      +
      public PeerId getSelfUuid()
      +
      +
    • +
    • +
      +

      updateCerts

      +
      public void updateCerts()
      +
      +
    • +
    • +
      +

      getSelfKeypair

      +
      public KeyPair getSelfKeypair()
      +
      +
    • +
    • +
      +

      getSelfCertificate

      +
      public X509Certificate getSelfCertificate()
      +
      +
    • +
    • +
      +

      markInitialSyncDone

      +
      public boolean markInitialSyncDone(PeerId peerId)
      +
      +
    • +
    • +
      +

      resetInitialSyncDone

      +
      public boolean resetInitialSyncDone(PeerId peerId)
      +
      +
    • +
    • +
      +

      isInitialSyncDone

      +
      public boolean isInitialSyncDone(PeerId peerId)
      +
      +
    • +
    • +
      +

      getPersistentPeerAddresses

      +
      public List<IpPeerAddress> getPersistentPeerAddresses()
      +
      +
    • +
    • +
      +

      addPersistentPeerAddress

      +
      public void addPersistentPeerAddress(PeerId peerId, + IpPeerAddress address)
      +
      +
    • +
    • +
      +

      removePersistentPeerAddress

      +
      public void removePersistentPeerAddress(PeerId peerId)
      +
      +
    • +
    • +
      +

      getPersistentPeerAddress

      +
      public IpPeerAddress getPersistentPeerAddress(PeerId peerId)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.html b/com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.html new file mode 100644 index 00000000..6edd4a64 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.html @@ -0,0 +1,401 @@ + + + + +PersistentRemoteHostsData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class PersistentRemoteHostsData

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
+
+
+
All Implemented Interfaces:
+
JData, Serializable
+
+
+
public record PersistentRemoteHostsData(PeerId selfUuid, com.google.protobuf.ByteString selfCertificate, com.google.protobuf.ByteString selfKeyPair, org.pcollections.PSet<PeerId> initialSyncDone, org.pcollections.PMap<PeerId,IpPeerAddress> persistentPeerAddress) +extends Record +implements JData, Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      KEY

      +
      public static final JObjectKey KEY
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PersistentRemoteHostsData

      +
      public PersistentRemoteHostsData(PeerId selfUuid, + com.google.protobuf.ByteString selfCertificate, + com.google.protobuf.ByteString selfKeyPair, + org.pcollections.PSet<PeerId> initialSyncDone, + org.pcollections.PMap<PeerId,IpPeerAddress> persistentPeerAddress)
      +
      Creates an instance of a PersistentRemoteHostsData record class.
      +
      +
      Parameters:
      +
      selfUuid - the value for the selfUuid record component
      +
      selfCertificate - the value for the selfCertificate record component
      +
      selfKeyPair - the value for the selfKeyPair record component
      +
      initialSyncDone - the value for the initialSyncDone record component
      +
      persistentPeerAddress - the value for the persistentPeerAddress record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      +
      Specified by:
      +
      key in interface JData
      +
      +
      +
    • +
    • +
      +

      withInitialSyncDone

      +
      public PersistentRemoteHostsData withInitialSyncDone(org.pcollections.PSet<PeerId> initialSyncDone)
      +
      +
    • +
    • +
      +

      withPersistentPeerAddress

      +
      public PersistentRemoteHostsData withPersistentPeerAddress(org.pcollections.PMap<PeerId,IpPeerAddress> persistentPeerAddress)
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      selfUuid

      +
      public PeerId selfUuid()
      +
      Returns the value of the selfUuid record component.
      +
      +
      Returns:
      +
      the value of the selfUuid record component
      +
      +
      +
    • +
    • +
      +

      selfCertificate

      +
      public com.google.protobuf.ByteString selfCertificate()
      +
      Returns the value of the selfCertificate record component.
      +
      +
      Returns:
      +
      the value of the selfCertificate record component
      +
      +
      +
    • +
    • +
      +

      selfKeyPair

      +
      public com.google.protobuf.ByteString selfKeyPair()
      +
      Returns the value of the selfKeyPair record component.
      +
      +
      Returns:
      +
      the value of the selfKeyPair record component
      +
      +
      +
    • +
    • +
      +

      initialSyncDone

      +
      public org.pcollections.PSet<PeerId> initialSyncDone()
      +
      Returns the value of the initialSyncDone record component.
      +
      +
      Returns:
      +
      the value of the initialSyncDone record component
      +
      +
      +
    • +
    • +
      +

      persistentPeerAddress

      +
      public org.pcollections.PMap<PeerId,IpPeerAddress> persistentPeerAddress()
      +
      Returns the value of the persistentPeerAddress record component.
      +
      +
      Returns:
      +
      the value of the persistentPeerAddress record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/ReachablePeerManager.HostStateSnapshot.html b/com/usatiuk/dhfs/peersync/ReachablePeerManager.HostStateSnapshot.html new file mode 100644 index 00000000..4945cf32 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/ReachablePeerManager.HostStateSnapshot.html @@ -0,0 +1,272 @@ + + + + +ReachablePeerManager.HostStateSnapshot (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class ReachablePeerManager.HostStateSnapshot

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot
+
+
+
+
+
Enclosing class:
+
ReachablePeerManager
+
+
+
public static record ReachablePeerManager.HostStateSnapshot(Collection<PeerId> available, Collection<PeerId> unavailable) +extends Record
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      HostStateSnapshot

      +
      public HostStateSnapshot(Collection<PeerId> available, + Collection<PeerId> unavailable)
      +
      Creates an instance of a HostStateSnapshot record class.
      +
      +
      Parameters:
      +
      available - the value for the available record component
      +
      unavailable - the value for the unavailable record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      available

      +
      public Collection<PeerId> available()
      +
      Returns the value of the available record component.
      +
      +
      Returns:
      +
      the value of the available record component
      +
      +
      +
    • +
    • +
      +

      unavailable

      +
      public Collection<PeerId> unavailable()
      +
      Returns the value of the unavailable record component.
      +
      +
      Returns:
      +
      the value of the unavailable record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/ReachablePeerManager.html b/com/usatiuk/dhfs/peersync/ReachablePeerManager.html new file mode 100644 index 00000000..46b7f187 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/ReachablePeerManager.html @@ -0,0 +1,297 @@ + + + + +ReachablePeerManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ReachablePeerManager

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.ReachablePeerManager
+
+
+
+
@ApplicationScoped +public class ReachablePeerManager +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      tryConnectAll

      +
      public void tryConnectAll()
      +
      +
    • +
    • +
      +

      handleConnectionError

      +
      public void handleConnectionError(PeerId host)
      +
      +
    • +
    • +
      +

      handleConnectionError

      +
      public void handleConnectionError(PeerInfo host)
      +
      +
    • +
    • +
      +

      isReachable

      +
      public boolean isReachable(PeerId host)
      +
      +
    • +
    • +
      +

      isReachable

      +
      public boolean isReachable(PeerInfo host)
      +
      +
    • +
    • +
      +

      getAddress

      +
      public PeerAddress getAddress(PeerId host)
      +
      +
    • +
    • +
      +

      getAvailableHosts

      +
      public List<PeerId> getAvailableHosts()
      +
      +
    • +
    • +
      +

      getHostStateSnapshot

      +
      public ReachablePeerManager.HostStateSnapshot getHostStateSnapshot()
      +
      +
    • +
    • +
      +

      removeRemoteHost

      +
      public void removeRemoteHost(PeerId peerId)
      +
      +
    • +
    • +
      +

      selectBestAddress

      +
      public Optional<PeerAddress> selectBestAddress(PeerId host)
      +
      +
    • +
    • +
      +

      addRemoteHost

      +
      public void addRemoteHost(PeerId host, + @Nullable + String cert)
      +
      +
    • +
    • +
      +

      getSeenButNotAddedHosts

      +
      public Collection<org.apache.commons.lang3.tuple.Pair<PeerId,ApiPeerInfo>> getSeenButNotAddedHosts()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/ApiPeerInfo.html b/com/usatiuk/dhfs/peersync/api/ApiPeerInfo.html new file mode 100644 index 00000000..cde67698 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/ApiPeerInfo.html @@ -0,0 +1,268 @@ + + + + +ApiPeerInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class ApiPeerInfo

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.peersync.api.ApiPeerInfo
+
+
+
+
+
public record ApiPeerInfo(String selfUuid, String cert) +extends Record
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    ApiPeerInfo(String selfUuid, + String cert)
    +
    +
    Creates an instance of a ApiPeerInfo record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the cert record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + + +
    +
    Returns the value of the selfUuid record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ApiPeerInfo

      +
      public ApiPeerInfo(String selfUuid, + String cert)
      +
      Creates an instance of a ApiPeerInfo record class.
      +
      +
      Parameters:
      +
      selfUuid - the value for the selfUuid record component
      +
      cert - the value for the cert record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      selfUuid

      +
      public String selfUuid()
      +
      Returns the value of the selfUuid record component.
      +
      +
      Returns:
      +
      the value of the selfUuid record component
      +
      +
      +
    • +
    • +
      +

      cert

      +
      public String cert()
      +
      Returns the value of the cert record component.
      +
      +
      Returns:
      +
      the value of the cert record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/PeerSyncApi.html b/com/usatiuk/dhfs/peersync/api/PeerSyncApi.html new file mode 100644 index 00000000..f4551200 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/PeerSyncApi.html @@ -0,0 +1,180 @@ + + + + +PeerSyncApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerSyncApi

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.api.PeerSyncApi
+
+
+
+
@Path("/peer-info") +public class PeerSyncApi +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerSyncApi

      +
      public PeerSyncApi()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSelfInfo

      +
      @Path("self") +@GET +public ApiPeerInfo getSelfInfo()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.html b/com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.html new file mode 100644 index 00000000..c6d2da8d --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.html @@ -0,0 +1,146 @@ + + + + +PeerSyncApiClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerSyncApiClient

+
+
+
+
@Path("/peer-info") +public interface PeerSyncApiClient
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSelfInfo

      +
      @Path("self") +@GET +ApiPeerInfo getSelfInfo()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.html b/com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.html new file mode 100644 index 00000000..4054c309 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.html @@ -0,0 +1,178 @@ + + + + +PeerSyncApiClientDynamic (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerSyncApiClientDynamic

+
+
java.lang.Object +
com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic
+
+
+
+
@ApplicationScoped +public class PeerSyncApiClientDynamic +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerSyncApiClientDynamic

      +
      public PeerSyncApiClientDynamic()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/class-use/ApiPeerInfo.html b/com/usatiuk/dhfs/peersync/api/class-use/ApiPeerInfo.html new file mode 100644 index 00000000..ac8debe0 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/class-use/ApiPeerInfo.html @@ -0,0 +1,109 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.peersync.api.ApiPeerInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.peersync.api.ApiPeerInfo

+
+
Packages that use ApiPeerInfo
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApi.html b/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApi.html new file mode 100644 index 00000000..1b679338 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApi.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.api.PeerSyncApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.api.PeerSyncApi

+
+No usage of com.usatiuk.dhfs.peersync.api.PeerSyncApi
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClient.html b/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClient.html new file mode 100644 index 00000000..7afb5a2d --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClient.html @@ -0,0 +1,62 @@ + + + + +Uses of Interface com.usatiuk.dhfs.peersync.api.PeerSyncApiClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.peersync.api.PeerSyncApiClient

+
+No usage of com.usatiuk.dhfs.peersync.api.PeerSyncApiClient
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClientDynamic.html b/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClientDynamic.html new file mode 100644 index 00000000..b713d33a --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/class-use/PeerSyncApiClientDynamic.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic

+
+No usage of com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/package-summary.html b/com/usatiuk/dhfs/peersync/api/package-summary.html new file mode 100644 index 00000000..1b50224d --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/package-summary.html @@ -0,0 +1,117 @@ + + + + +com.usatiuk.dhfs.peersync.api (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.peersync.api

+
+
+
package com.usatiuk.dhfs.peersync.api
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/package-tree.html b/com/usatiuk/dhfs/peersync/api/package-tree.html new file mode 100644 index 00000000..7325e7ee --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/package-tree.html @@ -0,0 +1,97 @@ + + + + +com.usatiuk.dhfs.peersync.api Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.peersync.api

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/api/package-use.html b/com/usatiuk/dhfs/peersync/api/package-use.html new file mode 100644 index 00000000..71ba6a98 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/api/package-use.html @@ -0,0 +1,97 @@ + + + + +Uses of Package com.usatiuk.dhfs.peersync.api (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.peersync.api

+
+ +
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/InitialSyncProcessor.html b/com/usatiuk/dhfs/peersync/class-use/InitialSyncProcessor.html new file mode 100644 index 00000000..08643a46 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/InitialSyncProcessor.html @@ -0,0 +1,103 @@ + + + + +Uses of Interface com.usatiuk.dhfs.peersync.InitialSyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.peersync.InitialSyncProcessor

+
+
Packages that use InitialSyncProcessor
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerConnectedEventListener.html b/com/usatiuk/dhfs/peersync/class-use/PeerConnectedEventListener.html new file mode 100644 index 00000000..732fb43c --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerConnectedEventListener.html @@ -0,0 +1,104 @@ + + + + +Uses of Interface com.usatiuk.dhfs.peersync.PeerConnectedEventListener (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.peersync.PeerConnectedEventListener

+
+
Packages that use PeerConnectedEventListener
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerDisconnectedEventListener.html b/com/usatiuk/dhfs/peersync/class-use/PeerDisconnectedEventListener.html new file mode 100644 index 00000000..cbc1c838 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerDisconnectedEventListener.html @@ -0,0 +1,87 @@ + + + + +Uses of Interface com.usatiuk.dhfs.peersync.PeerDisconnectedEventListener (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.peersync.PeerDisconnectedEventListener

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerId.html b/com/usatiuk/dhfs/peersync/class-use/PeerId.html new file mode 100644 index 00000000..38cc970c --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerId.html @@ -0,0 +1,1045 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.peersync.PeerId (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.peersync.PeerId

+
+
Packages that use PeerId
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerInfo.html b/com/usatiuk/dhfs/peersync/class-use/PeerInfo.html new file mode 100644 index 00000000..d001c937 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerInfo.html @@ -0,0 +1,157 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.peersync.PeerInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.peersync.PeerInfo

+
+
Packages that use PeerInfo
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerInfoProtoSerializer.html b/com/usatiuk/dhfs/peersync/class-use/PeerInfoProtoSerializer.html new file mode 100644 index 00000000..d6ac252a --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerInfoProtoSerializer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.PeerInfoProtoSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.PeerInfoProtoSerializer

+
+No usage of com.usatiuk.dhfs.peersync.PeerInfoProtoSerializer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerInfoService.html b/com/usatiuk/dhfs/peersync/class-use/PeerInfoService.html new file mode 100644 index 00000000..583016ce --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerInfoService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.PeerInfoService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.PeerInfoService

+
+No usage of com.usatiuk.dhfs.peersync.PeerInfoService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerInfoSyncHandler.html b/com/usatiuk/dhfs/peersync/class-use/PeerInfoSyncHandler.html new file mode 100644 index 00000000..a69fc8a0 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerInfoSyncHandler.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.PeerInfoSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.PeerInfoSyncHandler

+
+No usage of com.usatiuk.dhfs.peersync.PeerInfoSyncHandler
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PeerLastSeenUpdater.html b/com/usatiuk/dhfs/peersync/class-use/PeerLastSeenUpdater.html new file mode 100644 index 00000000..8f5e3f93 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PeerLastSeenUpdater.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.PeerLastSeenUpdater (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.PeerLastSeenUpdater

+
+No usage of com.usatiuk.dhfs.peersync.PeerLastSeenUpdater
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PersistentPeerDataService.html b/com/usatiuk/dhfs/peersync/class-use/PersistentPeerDataService.html new file mode 100644 index 00000000..9d44e43a --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PersistentPeerDataService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.PersistentPeerDataService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.PersistentPeerDataService

+
+No usage of com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/PersistentRemoteHostsData.html b/com/usatiuk/dhfs/peersync/class-use/PersistentRemoteHostsData.html new file mode 100644 index 00000000..e70007aa --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/PersistentRemoteHostsData.html @@ -0,0 +1,90 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.peersync.PersistentRemoteHostsData

+
+
Packages that use PersistentRemoteHostsData
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.HostStateSnapshot.html b/com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.HostStateSnapshot.html new file mode 100644 index 00000000..7e9451e1 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.HostStateSnapshot.html @@ -0,0 +1,87 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.html b/com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.html new file mode 100644 index 00000000..fb794e48 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/class-use/ReachablePeerManager.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peersync.ReachablePeerManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peersync.ReachablePeerManager

+
+No usage of com.usatiuk.dhfs.peersync.ReachablePeerManager
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/package-summary.html b/com/usatiuk/dhfs/peersync/package-summary.html new file mode 100644 index 00000000..50e5bb3f --- /dev/null +++ b/com/usatiuk/dhfs/peersync/package-summary.html @@ -0,0 +1,137 @@ + + + + +com.usatiuk.dhfs.peersync (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.peersync

+
+
+
package com.usatiuk.dhfs.peersync
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/package-tree.html b/com/usatiuk/dhfs/peersync/package-tree.html new file mode 100644 index 00000000..ebcf9f20 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/package-tree.html @@ -0,0 +1,106 @@ + + + + +com.usatiuk.dhfs.peersync Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.peersync

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/package-use.html b/com/usatiuk/dhfs/peersync/package-use.html new file mode 100644 index 00000000..29ade372 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/package-use.html @@ -0,0 +1,217 @@ + + + + +Uses of Package com.usatiuk.dhfs.peersync (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.peersync

+
+
Packages that use com.usatiuk.dhfs.peersync
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.html b/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.html new file mode 100644 index 00000000..8b936be9 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.html @@ -0,0 +1,337 @@ + + + + +JKleppmannTreeNodeMetaPeer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreeNodeMetaPeer

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
+
+
+
All Implemented Interfaces:
+
JKleppmannTreeNodeMeta, NodeMeta, Serializable
+
+
+
public record JKleppmannTreeNodeMetaPeer(String name, JObjectKey peerId) +extends Record +implements JKleppmannTreeNodeMeta
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JKleppmannTreeNodeMetaPeer

      +
      public JKleppmannTreeNodeMetaPeer(PeerId id)
      +
      +
    • +
    • +
      +

      JKleppmannTreeNodeMetaPeer

      +
      public JKleppmannTreeNodeMetaPeer(String name, + JObjectKey peerId)
      +
      Creates an instance of a JKleppmannTreeNodeMetaPeer record class.
      +
      +
      Parameters:
      +
      name - the value for the name record component
      +
      peerId - the value for the peerId record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      peerIdToNodeId

      +
      public static JObjectKey peerIdToNodeId(PeerId id)
      +
      +
    • +
    • +
      +

      nodeIdToPeerId

      +
      public static PeerId nodeIdToPeerId(JObjectKey id)
      +
      +
    • +
    • +
      +

      withName

      +
      public JKleppmannTreeNodeMeta withName(String name)
      +
      +
      Specified by:
      +
      withName in interface JKleppmannTreeNodeMeta
      +
      Specified by:
      +
      withName in interface NodeMeta
      +
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      public Collection<JObjectKey> collectRefsTo()
      +
      +
      Specified by:
      +
      collectRefsTo in interface JKleppmannTreeNodeMeta
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      name

      +
      public String name()
      +
      Returns the value of the name record component.
      +
      +
      Specified by:
      +
      name in interface NodeMeta
      +
      Returns:
      +
      the value of the name record component
      +
      +
      +
    • +
    • +
      +

      peerId

      +
      public JObjectKey peerId()
      +
      Returns the value of the peerId record component.
      +
      +
      Returns:
      +
      the value of the peerId record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/structs/class-use/JKleppmannTreeNodeMetaPeer.html b/com/usatiuk/dhfs/peersync/structs/class-use/JKleppmannTreeNodeMetaPeer.html new file mode 100644 index 00000000..b1be6537 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/structs/class-use/JKleppmannTreeNodeMetaPeer.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer

+
+No usage of com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/structs/package-summary.html b/com/usatiuk/dhfs/peersync/structs/package-summary.html new file mode 100644 index 00000000..af17f094 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/structs/package-summary.html @@ -0,0 +1,109 @@ + + + + +com.usatiuk.dhfs.peersync.structs (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.peersync.structs

+
+
+
package com.usatiuk.dhfs.peersync.structs
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/structs/package-tree.html b/com/usatiuk/dhfs/peersync/structs/package-tree.html new file mode 100644 index 00000000..a30eac11 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/structs/package-tree.html @@ -0,0 +1,80 @@ + + + + +com.usatiuk.dhfs.peersync.structs Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.peersync.structs

+
+Package Hierarchies: + +
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peersync/structs/package-use.html b/com/usatiuk/dhfs/peersync/structs/package-use.html new file mode 100644 index 00000000..0ca6e047 --- /dev/null +++ b/com/usatiuk/dhfs/peersync/structs/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.usatiuk.dhfs.peersync.structs (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.peersync.structs

+
+No usage of com.usatiuk.dhfs.peersync.structs
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/CertificateTools.html b/com/usatiuk/dhfs/peertrust/CertificateTools.html new file mode 100644 index 00000000..913a1d65 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/CertificateTools.html @@ -0,0 +1,197 @@ + + + + +CertificateTools (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class CertificateTools

+
+
java.lang.Object +
com.usatiuk.dhfs.peertrust.CertificateTools
+
+
+
+
public class CertificateTools +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      CertificateTools

      +
      public CertificateTools()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      certFromBytes

      +
      public static X509Certificate certFromBytes(byte[] bytes)
      +
      +
    • +
    • +
      +

      generateKeyPair

      +
      public static KeyPair generateKeyPair()
      +
      +
    • +
    • +
      +

      generateCertificate

      +
      public static X509Certificate generateCertificate(KeyPair keyPair, + String subject)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.html b/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.html new file mode 100644 index 00000000..0ae3358e --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.html @@ -0,0 +1,224 @@ + + + + +PeerInfoCertUpdateTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerInfoCertUpdateTxHook

+
+
java.lang.Object +
com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook
+
+
+
+
All Implemented Interfaces:
+
PreCommitTxHook
+
+
+
@Singleton +public class PeerInfoCertUpdateTxHook +extends Object +implements PreCommitTxHook
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.html b/com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.html new file mode 100644 index 00000000..c77597c0 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.html @@ -0,0 +1,192 @@ + + + + +PeerRolesAugmentor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerRolesAugmentor

+
+
java.lang.Object +
com.usatiuk.dhfs.peertrust.PeerRolesAugmentor
+
+
+
+
All Implemented Interfaces:
+
io.quarkus.security.identity.SecurityIdentityAugmentor
+
+
+
@ApplicationScoped +public class PeerRolesAugmentor +extends Object +implements io.quarkus.security.identity.SecurityIdentityAugmentor
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    io.smallrye.mutiny.Uni<io.quarkus.security.identity.SecurityIdentity>
    +
    augment(io.quarkus.security.identity.SecurityIdentity identity, + io.quarkus.security.identity.AuthenticationRequestContext context)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +

    Methods inherited from interface io.quarkus.security.identity.SecurityIdentityAugmentor

    +augment, priority
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerRolesAugmentor

      +
      public PeerRolesAugmentor()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      augment

      +
      public io.smallrye.mutiny.Uni<io.quarkus.security.identity.SecurityIdentity> augment(io.quarkus.security.identity.SecurityIdentity identity, + io.quarkus.security.identity.AuthenticationRequestContext context)
      +
      +
      Specified by:
      +
      augment in interface io.quarkus.security.identity.SecurityIdentityAugmentor
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/PeerTrustManager.html b/com/usatiuk/dhfs/peertrust/PeerTrustManager.html new file mode 100644 index 00000000..ec263606 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/PeerTrustManager.html @@ -0,0 +1,232 @@ + + + + +PeerTrustManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerTrustManager

+
+
java.lang.Object +
com.usatiuk.dhfs.peertrust.PeerTrustManager
+
+
+
+
All Implemented Interfaces:
+
TrustManager, X509TrustManager
+
+
+
@ApplicationScoped +public class PeerTrustManager +extends Object +implements X509TrustManager
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.html b/com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.html new file mode 100644 index 00000000..97d16103 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.html @@ -0,0 +1,190 @@ + + + + +PeerTrustServerCustomizer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerTrustServerCustomizer

+
+
java.lang.Object +
com.usatiuk.dhfs.peertrust.PeerTrustServerCustomizer
+
+
+
+
All Implemented Interfaces:
+
io.quarkus.vertx.http.HttpServerOptionsCustomizer
+
+
+
@ApplicationScoped +public class PeerTrustServerCustomizer +extends Object +implements io.quarkus.vertx.http.HttpServerOptionsCustomizer
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerTrustServerCustomizer

      +
      public PeerTrustServerCustomizer()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      customizeHttpsServer

      +
      public void customizeHttpsServer(io.vertx.core.http.HttpServerOptions options)
      +
      +
      Specified by:
      +
      customizeHttpsServer in interface io.quarkus.vertx.http.HttpServerOptionsCustomizer
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/class-use/CertificateTools.html b/com/usatiuk/dhfs/peertrust/class-use/CertificateTools.html new file mode 100644 index 00000000..a9ed2ec7 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/class-use/CertificateTools.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peertrust.CertificateTools (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peertrust.CertificateTools

+
+No usage of com.usatiuk.dhfs.peertrust.CertificateTools
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/class-use/PeerInfoCertUpdateTxHook.html b/com/usatiuk/dhfs/peertrust/class-use/PeerInfoCertUpdateTxHook.html new file mode 100644 index 00000000..385fcc51 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/class-use/PeerInfoCertUpdateTxHook.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook

+
+No usage of com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/class-use/PeerRolesAugmentor.html b/com/usatiuk/dhfs/peertrust/class-use/PeerRolesAugmentor.html new file mode 100644 index 00000000..e1a47961 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/class-use/PeerRolesAugmentor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peertrust.PeerRolesAugmentor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peertrust.PeerRolesAugmentor

+
+No usage of com.usatiuk.dhfs.peertrust.PeerRolesAugmentor
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/class-use/PeerTrustManager.html b/com/usatiuk/dhfs/peertrust/class-use/PeerTrustManager.html new file mode 100644 index 00000000..a34f4bea --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/class-use/PeerTrustManager.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peertrust.PeerTrustManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peertrust.PeerTrustManager

+
+No usage of com.usatiuk.dhfs.peertrust.PeerTrustManager
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/class-use/PeerTrustServerCustomizer.html b/com/usatiuk/dhfs/peertrust/class-use/PeerTrustServerCustomizer.html new file mode 100644 index 00000000..24700dc6 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/class-use/PeerTrustServerCustomizer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.peertrust.PeerTrustServerCustomizer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.peertrust.PeerTrustServerCustomizer

+
+No usage of com.usatiuk.dhfs.peertrust.PeerTrustServerCustomizer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/package-summary.html b/com/usatiuk/dhfs/peertrust/package-summary.html new file mode 100644 index 00000000..b74c3de6 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/package-summary.html @@ -0,0 +1,115 @@ + + + + +com.usatiuk.dhfs.peertrust (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.peertrust

+
+
+
package com.usatiuk.dhfs.peertrust
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/package-tree.html b/com/usatiuk/dhfs/peertrust/package-tree.html new file mode 100644 index 00000000..9c1b273e --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/package-tree.html @@ -0,0 +1,80 @@ + + + + +com.usatiuk.dhfs.peertrust Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.peertrust

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/peertrust/package-use.html b/com/usatiuk/dhfs/peertrust/package-use.html new file mode 100644 index 00000000..f0e02d59 --- /dev/null +++ b/com/usatiuk/dhfs/peertrust/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.usatiuk.dhfs.peertrust (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.peertrust

+
+No usage of com.usatiuk.dhfs.peertrust
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ChunkDataP.Builder.html b/com/usatiuk/dhfs/persistence/ChunkDataP.Builder.html new file mode 100644 index 00000000..6cc8667f --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ChunkDataP.Builder.html @@ -0,0 +1,631 @@ + + + + +ChunkDataP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ChunkDataP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<ChunkDataP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder> +
com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ChunkDataPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
ChunkDataP
+
+
+
public static final class ChunkDataP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder> +implements ChunkDataPOrBuilder
+
Protobuf type dhfs.persistence.ChunkDataP
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public ChunkDataP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public ChunkDataP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public ChunkDataP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public ChunkDataP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public ChunkDataP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public ChunkDataP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public ChunkDataP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public ChunkDataP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public ChunkDataP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public ChunkDataP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public ChunkDataP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public ChunkDataP.Builder mergeFrom(ChunkDataP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public ChunkDataP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<ChunkDataP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      hasKey

      +
      public boolean hasKey()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Specified by:
      +
      hasKey in interface ChunkDataPOrBuilder
      +
      Returns:
      +
      Whether the key field is set.
      +
      +
      +
    • +
    • +
      +

      getKey

      +
      public JObjectKeyP getKey()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Specified by:
      +
      getKey in interface ChunkDataPOrBuilder
      +
      Returns:
      +
      The key.
      +
      +
      +
    • +
    • +
      +

      setKey

      +
      public ChunkDataP.Builder setKey(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
    • +
    • +
      +

      setKey

      +
      public ChunkDataP.Builder setKey(JObjectKeyP.Builder builderForValue)
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
    • +
    • +
      +

      mergeKey

      +
      public ChunkDataP.Builder mergeKey(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
    • +
    • +
      +

      clearKey

      +
      public ChunkDataP.Builder clearKey()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
    • +
    • +
      +

      getKeyBuilder

      +
      public JObjectKeyP.Builder getKeyBuilder()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
    • +
    • +
      +

      getKeyOrBuilder

      +
      public JObjectKeyPOrBuilder getKeyOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Specified by:
      +
      getKeyOrBuilder in interface ChunkDataPOrBuilder
      +
      +
      +
    • +
    • +
      +

      getData

      +
      public com.google.protobuf.ByteString getData()
      +
      bytes data = 2;
      +
      +
      Specified by:
      +
      getData in interface ChunkDataPOrBuilder
      +
      Returns:
      +
      The data.
      +
      +
      +
    • +
    • +
      +

      setData

      +
      public ChunkDataP.Builder setData(com.google.protobuf.ByteString value)
      +
      bytes data = 2;
      +
      +
      Parameters:
      +
      value - The data to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearData

      +
      public ChunkDataP.Builder clearData()
      +
      bytes data = 2;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final ChunkDataP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final ChunkDataP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<ChunkDataP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ChunkDataP.html b/com/usatiuk/dhfs/persistence/ChunkDataP.html new file mode 100644 index 00000000..8c2a7907 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ChunkDataP.html @@ -0,0 +1,736 @@ + + + + +ChunkDataP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ChunkDataP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.ChunkDataP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ChunkDataPOrBuilder, Serializable
+
+
+
public final class ChunkDataP +extends com.google.protobuf.GeneratedMessageV3 +implements ChunkDataPOrBuilder
+
Protobuf type dhfs.persistence.ChunkDataP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.ChunkDataP
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes data = 2;
    +
    +
    static ChunkDataP
    + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP key = 1;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP key = 1;
    +
    +
    com.google.protobuf.Parser<ChunkDataP>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP key = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    +
    static ChunkDataP
    + +
     
    +
    static ChunkDataP
    +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static ChunkDataP
    +
    parseFrom(byte[] data)
    +
     
    +
    static ChunkDataP
    +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static ChunkDataP
    +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    +
    static ChunkDataP
    +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static ChunkDataP
    +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    +
    static ChunkDataP
    +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static ChunkDataP
    + +
     
    +
    static ChunkDataP
    +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static ChunkDataP
    + +
     
    +
    static ChunkDataP
    +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<ChunkDataP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      KEY_FIELD_NUMBER

      +
      public static final int KEY_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      DATA_FIELD_NUMBER

      +
      public static final int DATA_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      hasKey

      +
      public boolean hasKey()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Specified by:
      +
      hasKey in interface ChunkDataPOrBuilder
      +
      Returns:
      +
      Whether the key field is set.
      +
      +
      +
    • +
    • +
      +

      getKey

      +
      public JObjectKeyP getKey()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Specified by:
      +
      getKey in interface ChunkDataPOrBuilder
      +
      Returns:
      +
      The key.
      +
      +
      +
    • +
    • +
      +

      getKeyOrBuilder

      +
      public JObjectKeyPOrBuilder getKeyOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Specified by:
      +
      getKeyOrBuilder in interface ChunkDataPOrBuilder
      +
      +
      +
    • +
    • +
      +

      getData

      +
      public com.google.protobuf.ByteString getData()
      +
      bytes data = 2;
      +
      +
      Specified by:
      +
      getData in interface ChunkDataPOrBuilder
      +
      Returns:
      +
      The data.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static ChunkDataP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static ChunkDataP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ChunkDataP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public ChunkDataP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static ChunkDataP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static ChunkDataP.Builder newBuilder(ChunkDataP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public ChunkDataP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected ChunkDataP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static ChunkDataP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<ChunkDataP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<ChunkDataP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public ChunkDataP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ChunkDataPOrBuilder.html b/com/usatiuk/dhfs/persistence/ChunkDataPOrBuilder.html new file mode 100644 index 00000000..9dbb78fe --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ChunkDataPOrBuilder.html @@ -0,0 +1,209 @@ + + + + +ChunkDataPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ChunkDataPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
ChunkDataP, ChunkDataP.Builder
+
+
+
public interface ChunkDataPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes data = 2;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP key = 1;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP key = 1;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP key = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      hasKey

      +
      boolean hasKey()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Returns:
      +
      Whether the key field is set.
      +
      +
      +
    • +
    • +
      +

      getKey

      +
      JObjectKeyP getKey()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
      Returns:
      +
      The key.
      +
      +
      +
    • +
    • +
      +

      getKeyOrBuilder

      +
      JObjectKeyPOrBuilder getKeyOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP key = 1;
      +
      +
    • +
    • +
      +

      getData

      +
      com.google.protobuf.ByteString getData()
      +
      bytes data = 2;
      +
      +
      Returns:
      +
      The data.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/DhfsObjectPersistence.html b/com/usatiuk/dhfs/persistence/DhfsObjectPersistence.html new file mode 100644 index 00000000..52f51ffc --- /dev/null +++ b/com/usatiuk/dhfs/persistence/DhfsObjectPersistence.html @@ -0,0 +1,168 @@ + + + + +DhfsObjectPersistence (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectPersistence

+
+
java.lang.Object +
com.usatiuk.dhfs.persistence.DhfsObjectPersistence
+
+
+
+
public final class DhfsObjectPersistence +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      registerAllExtensions

      +
      public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)
      +
      +
    • +
    • +
      +

      registerAllExtensions

      +
      public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry)
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/FileDtoP.Builder.html b/com/usatiuk/dhfs/persistence/FileDtoP.Builder.html new file mode 100644 index 00000000..7dd97c50 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/FileDtoP.Builder.html @@ -0,0 +1,523 @@ + + + + +FileDtoP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FileDtoP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<FileDtoP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder> +
com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, FileDtoPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
FileDtoP
+
+
+
public static final class FileDtoP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder> +implements FileDtoPOrBuilder
+
+ TODO: Serialization
+ 
+ + Protobuf type dhfs.persistence.FileDtoP
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
    +
    bytes serializedData = 1;
    +
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setSerializedData(com.google.protobuf.ByteString value)
    +
    +
    bytes serializedData = 1;
    +
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public FileDtoP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public FileDtoP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public FileDtoP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public FileDtoP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public FileDtoP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public FileDtoP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public FileDtoP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public FileDtoP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public FileDtoP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public FileDtoP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public FileDtoP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public FileDtoP.Builder mergeFrom(FileDtoP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public FileDtoP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<FileDtoP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface FileDtoPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      setSerializedData

      +
      public FileDtoP.Builder setSerializedData(com.google.protobuf.ByteString value)
      +
      bytes serializedData = 1;
      +
      +
      Parameters:
      +
      value - The serializedData to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearSerializedData

      +
      public FileDtoP.Builder clearSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final FileDtoP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final FileDtoP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<FileDtoP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/FileDtoP.html b/com/usatiuk/dhfs/persistence/FileDtoP.html new file mode 100644 index 00000000..7469aaf8 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/FileDtoP.html @@ -0,0 +1,672 @@ + + + + +FileDtoP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FileDtoP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.FileDtoP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, FileDtoPOrBuilder, Serializable
+
+
+
public final class FileDtoP +extends com.google.protobuf.GeneratedMessageV3 +implements FileDtoPOrBuilder
+
+ TODO: Serialization
+ 
+ + Protobuf type dhfs.persistence.FileDtoP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    + TODO: Serialization
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    +
    static FileDtoP
    + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<FileDtoP>
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + +
    newBuilder(FileDtoP prototype)
    +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    +
    static FileDtoP
    + +
     
    +
    static FileDtoP
    +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static FileDtoP
    +
    parseFrom(byte[] data)
    +
     
    +
    static FileDtoP
    +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static FileDtoP
    +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    +
    static FileDtoP
    +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static FileDtoP
    +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    +
    static FileDtoP
    +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static FileDtoP
    + +
     
    +
    static FileDtoP
    +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static FileDtoP
    + +
     
    +
    static FileDtoP
    +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<FileDtoP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      SERIALIZEDDATA_FIELD_NUMBER

      +
      public static final int SERIALIZEDDATA_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface FileDtoPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static FileDtoP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static FileDtoP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static FileDtoP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public FileDtoP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static FileDtoP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static FileDtoP.Builder newBuilder(FileDtoP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public FileDtoP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected FileDtoP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static FileDtoP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<FileDtoP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<FileDtoP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public FileDtoP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/FileDtoPOrBuilder.html b/com/usatiuk/dhfs/persistence/FileDtoPOrBuilder.html new file mode 100644 index 00000000..4c3cbd76 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/FileDtoPOrBuilder.html @@ -0,0 +1,165 @@ + + + + +FileDtoPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface FileDtoPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
FileDtoP, FileDtoP.Builder
+
+
+
public interface FileDtoPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSerializedData

      +
      com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JDataP.Builder.html b/com/usatiuk/dhfs/persistence/JDataP.Builder.html new file mode 100644 index 00000000..21442698 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JDataP.Builder.html @@ -0,0 +1,519 @@ + + + + +JDataP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JDataP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<JDataP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder> +
com.usatiuk.dhfs.persistence.JDataP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, JDataPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
JDataP
+
+
+
public static final class JDataP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder> +implements JDataPOrBuilder
+
Protobuf type dhfs.persistence.JDataP
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
    +
    bytes serializedData = 1;
    +
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setSerializedData(com.google.protobuf.ByteString value)
    +
    +
    bytes serializedData = 1;
    +
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public JDataP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public JDataP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public JDataP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public JDataP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public JDataP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public JDataP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public JDataP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public JDataP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public JDataP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public JDataP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JDataP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JDataP.Builder mergeFrom(JDataP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JDataP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<JDataP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface JDataPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      setSerializedData

      +
      public JDataP.Builder setSerializedData(com.google.protobuf.ByteString value)
      +
      bytes serializedData = 1;
      +
      +
      Parameters:
      +
      value - The serializedData to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearSerializedData

      +
      public JDataP.Builder clearSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final JDataP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final JDataP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<JDataP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JDataP.html b/com/usatiuk/dhfs/persistence/JDataP.html new file mode 100644 index 00000000..35acff40 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JDataP.html @@ -0,0 +1,667 @@ + + + + +JDataP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JDataP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.JDataP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, JDataPOrBuilder, Serializable
+
+
+
public final class JDataP +extends com.google.protobuf.GeneratedMessageV3 +implements JDataPOrBuilder
+
Protobuf type dhfs.persistence.JDataP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.JDataP
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    +
    static JDataP
    + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<JDataP>
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + +
    newBuilder(JDataP prototype)
    +
     
    + + +
     
    +
    protected JDataP.Builder
    +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    +
    static JDataP
    + +
     
    +
    static JDataP
    +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static JDataP
    +
    parseFrom(byte[] data)
    +
     
    +
    static JDataP
    +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static JDataP
    +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    +
    static JDataP
    +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static JDataP
    +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    +
    static JDataP
    +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static JDataP
    + +
     
    +
    static JDataP
    +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static JDataP
    + +
     
    +
    static JDataP
    +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<JDataP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      SERIALIZEDDATA_FIELD_NUMBER

      +
      public static final int SERIALIZEDDATA_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface JDataPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static JDataP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static JDataP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public JDataP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static JDataP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static JDataP.Builder newBuilder(JDataP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public JDataP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected JDataP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static JDataP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<JDataP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<JDataP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public JDataP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JDataPOrBuilder.html b/com/usatiuk/dhfs/persistence/JDataPOrBuilder.html new file mode 100644 index 00000000..7d962060 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JDataPOrBuilder.html @@ -0,0 +1,165 @@ + + + + +JDataPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JDataPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
JDataP, JDataP.Builder
+
+
+
public interface JDataPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSerializedData

      +
      com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JDataRemoteDtoP.Builder.html b/com/usatiuk/dhfs/persistence/JDataRemoteDtoP.Builder.html new file mode 100644 index 00000000..c7076438 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JDataRemoteDtoP.Builder.html @@ -0,0 +1,519 @@ + + + + +JDataRemoteDtoP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JDataRemoteDtoP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<JDataRemoteDtoP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder> +
com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, JDataRemoteDtoPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
JDataRemoteDtoP
+
+
+
public static final class JDataRemoteDtoP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder> +implements JDataRemoteDtoPOrBuilder
+
Protobuf type dhfs.persistence.JDataRemoteDtoP
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public JDataRemoteDtoP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public JDataRemoteDtoP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public JDataRemoteDtoP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public JDataRemoteDtoP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public JDataRemoteDtoP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public JDataRemoteDtoP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public JDataRemoteDtoP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public JDataRemoteDtoP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public JDataRemoteDtoP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public JDataRemoteDtoP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JDataRemoteDtoP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JDataRemoteDtoP.Builder mergeFrom(JDataRemoteDtoP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JDataRemoteDtoP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<JDataRemoteDtoP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface JDataRemoteDtoPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      setSerializedData

      +
      public JDataRemoteDtoP.Builder setSerializedData(com.google.protobuf.ByteString value)
      +
      bytes serializedData = 1;
      +
      +
      Parameters:
      +
      value - The serializedData to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearSerializedData

      +
      public JDataRemoteDtoP.Builder clearSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final JDataRemoteDtoP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final JDataRemoteDtoP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<JDataRemoteDtoP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JDataRemoteDtoP.html b/com/usatiuk/dhfs/persistence/JDataRemoteDtoP.html new file mode 100644 index 00000000..874afc6a --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JDataRemoteDtoP.html @@ -0,0 +1,667 @@ + + + + +JDataRemoteDtoP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JDataRemoteDtoP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, JDataRemoteDtoPOrBuilder, Serializable
+
+
+
public final class JDataRemoteDtoP +extends com.google.protobuf.GeneratedMessageV3 +implements JDataRemoteDtoPOrBuilder
+
Protobuf type dhfs.persistence.JDataRemoteDtoP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.JDataRemoteDtoP
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<JDataRemoteDtoP>
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<JDataRemoteDtoP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      SERIALIZEDDATA_FIELD_NUMBER

      +
      public static final int SERIALIZEDDATA_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface JDataRemoteDtoPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static JDataRemoteDtoP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static JDataRemoteDtoP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JDataRemoteDtoP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public JDataRemoteDtoP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static JDataRemoteDtoP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static JDataRemoteDtoP.Builder newBuilder(JDataRemoteDtoP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public JDataRemoteDtoP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected JDataRemoteDtoP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static JDataRemoteDtoP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<JDataRemoteDtoP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<JDataRemoteDtoP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public JDataRemoteDtoP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JDataRemoteDtoPOrBuilder.html b/com/usatiuk/dhfs/persistence/JDataRemoteDtoPOrBuilder.html new file mode 100644 index 00000000..a6f73e8d --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JDataRemoteDtoPOrBuilder.html @@ -0,0 +1,165 @@ + + + + +JDataRemoteDtoPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JDataRemoteDtoPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
JDataRemoteDtoP, JDataRemoteDtoP.Builder
+
+
+
public interface JDataRemoteDtoPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSerializedData

      +
      com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JObjectKeyP.Builder.html b/com/usatiuk/dhfs/persistence/JObjectKeyP.Builder.html new file mode 100644 index 00000000..af458384 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JObjectKeyP.Builder.html @@ -0,0 +1,555 @@ + + + + +JObjectKeyP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JObjectKeyP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<JObjectKeyP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder> +
com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, JObjectKeyPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
JObjectKeyP
+
+
+
public static final class JObjectKeyP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder> +implements JObjectKeyPOrBuilder
+
Protobuf type dhfs.persistence.JObjectKeyP
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + + +
    +
    string name = 1;
    +
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    + + +
    +
    string name = 1;
    +
    +
    com.google.protobuf.ByteString
    + +
    +
    string name = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setName(String value)
    +
    +
    string name = 1;
    +
    + +
    setNameBytes(com.google.protobuf.ByteString value)
    +
    +
    string name = 1;
    +
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public JObjectKeyP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public JObjectKeyP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public JObjectKeyP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public JObjectKeyP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public JObjectKeyP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public JObjectKeyP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public JObjectKeyP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public JObjectKeyP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public JObjectKeyP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public JObjectKeyP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JObjectKeyP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JObjectKeyP.Builder mergeFrom(JObjectKeyP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public JObjectKeyP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<JObjectKeyP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public String getName()
      +
      string name = 1;
      +
      +
      Specified by:
      +
      getName in interface JObjectKeyPOrBuilder
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      getNameBytes

      +
      public com.google.protobuf.ByteString getNameBytes()
      +
      string name = 1;
      +
      +
      Specified by:
      +
      getNameBytes in interface JObjectKeyPOrBuilder
      +
      Returns:
      +
      The bytes for name.
      +
      +
      +
    • +
    • +
      +

      setName

      +
      public JObjectKeyP.Builder setName(String value)
      +
      string name = 1;
      +
      +
      Parameters:
      +
      value - The name to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearName

      +
      public JObjectKeyP.Builder clearName()
      +
      string name = 1;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setNameBytes

      +
      public JObjectKeyP.Builder setNameBytes(com.google.protobuf.ByteString value)
      +
      string name = 1;
      +
      +
      Parameters:
      +
      value - The bytes for name to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final JObjectKeyP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final JObjectKeyP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<JObjectKeyP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JObjectKeyP.html b/com/usatiuk/dhfs/persistence/JObjectKeyP.html new file mode 100644 index 00000000..65b5f04c --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JObjectKeyP.html @@ -0,0 +1,685 @@ + + + + +JObjectKeyP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JObjectKeyP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.JObjectKeyP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, JObjectKeyPOrBuilder, Serializable
+
+
+
public final class JObjectKeyP +extends com.google.protobuf.GeneratedMessageV3 +implements JObjectKeyPOrBuilder
+
Protobuf type dhfs.persistence.JObjectKeyP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.JObjectKeyP
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    + + +
    +
    string name = 1;
    +
    +
    com.google.protobuf.ByteString
    + +
    +
    string name = 1;
    +
    +
    com.google.protobuf.Parser<JObjectKeyP>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<JObjectKeyP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      NAME_FIELD_NUMBER

      +
      public static final int NAME_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public String getName()
      +
      string name = 1;
      +
      +
      Specified by:
      +
      getName in interface JObjectKeyPOrBuilder
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      getNameBytes

      +
      public com.google.protobuf.ByteString getNameBytes()
      +
      string name = 1;
      +
      +
      Specified by:
      +
      getNameBytes in interface JObjectKeyPOrBuilder
      +
      Returns:
      +
      The bytes for name.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static JObjectKeyP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static JObjectKeyP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static JObjectKeyP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public JObjectKeyP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static JObjectKeyP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static JObjectKeyP.Builder newBuilder(JObjectKeyP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public JObjectKeyP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected JObjectKeyP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static JObjectKeyP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<JObjectKeyP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<JObjectKeyP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public JObjectKeyP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/JObjectKeyPOrBuilder.html b/com/usatiuk/dhfs/persistence/JObjectKeyPOrBuilder.html new file mode 100644 index 00000000..83712ad0 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/JObjectKeyPOrBuilder.html @@ -0,0 +1,181 @@ + + + + +JObjectKeyPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JObjectKeyPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
JObjectKeyP, JObjectKeyP.Builder
+
+
+
public interface JObjectKeyPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    string name = 1;
    +
    +
    com.google.protobuf.ByteString
    + +
    +
    string name = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getName

      +
      String getName()
      +
      string name = 1;
      +
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      getNameBytes

      +
      com.google.protobuf.ByteString getNameBytes()
      +
      string name = 1;
      +
      +
      Returns:
      +
      The bytes for name.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ObjectChangelog.Builder.html b/com/usatiuk/dhfs/persistence/ObjectChangelog.Builder.html new file mode 100644 index 00000000..47dd2f8f --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ObjectChangelog.Builder.html @@ -0,0 +1,711 @@ + + + + +ObjectChangelog.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ObjectChangelog.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<ObjectChangelog.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder> +
com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ObjectChangelogOrBuilder, Cloneable
+
+
+
Enclosing class:
+
ObjectChangelog
+
+
+
public static final class ObjectChangelog.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder> +implements ObjectChangelogOrBuilder
+
Protobuf type dhfs.persistence.ObjectChangelog
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public ObjectChangelog.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public ObjectChangelog getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public ObjectChangelog build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public ObjectChangelog buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public ObjectChangelog.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public ObjectChangelog.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public ObjectChangelog.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public ObjectChangelog.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public ObjectChangelog.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public ObjectChangelog.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public ObjectChangelog.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public ObjectChangelog.Builder mergeFrom(ObjectChangelog other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public ObjectChangelog.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<ObjectChangelog.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getEntriesList

      +
      public List<ObjectChangelog.entries_Entry> getEntriesList()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesList in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      getEntriesCount

      +
      public int getEntriesCount()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesCount in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      getEntries

      +
      public ObjectChangelog.entries_Entry getEntries(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntries in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      setEntries

      +
      public ObjectChangelog.Builder setEntries(int index, + ObjectChangelog.entries_Entry value)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      setEntries

      +
      public ObjectChangelog.Builder setEntries(int index, + ObjectChangelog.entries_Entry.Builder builderForValue)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      addEntries

      + +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      addEntries

      +
      public ObjectChangelog.Builder addEntries(int index, + ObjectChangelog.entries_Entry value)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      addEntries

      + +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      addEntries

      +
      public ObjectChangelog.Builder addEntries(int index, + ObjectChangelog.entries_Entry.Builder builderForValue)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      addAllEntries

      +
      public ObjectChangelog.Builder addAllEntries(Iterable<? extends ObjectChangelog.entries_Entry> values)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      clearEntries

      +
      public ObjectChangelog.Builder clearEntries()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      removeEntries

      +
      public ObjectChangelog.Builder removeEntries(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      getEntriesBuilder

      +
      public ObjectChangelog.entries_Entry.Builder getEntriesBuilder(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      getEntriesOrBuilder

      +
      public ObjectChangelog.entries_EntryOrBuilder getEntriesOrBuilder(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesOrBuilder in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      getEntriesOrBuilderList

      +
      public List<? extends ObjectChangelog.entries_EntryOrBuilder> getEntriesOrBuilderList()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesOrBuilderList in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      addEntriesBuilder

      +
      public ObjectChangelog.entries_Entry.Builder addEntriesBuilder()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      addEntriesBuilder

      +
      public ObjectChangelog.entries_Entry.Builder addEntriesBuilder(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      getEntriesBuilderList

      +
      public List<ObjectChangelog.entries_Entry.Builder> getEntriesBuilderList()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final ObjectChangelog.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final ObjectChangelog.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.Builder.html b/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.Builder.html new file mode 100644 index 00000000..0a946b96 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.Builder.html @@ -0,0 +1,631 @@ + + + + +ObjectChangelog.entries_Entry.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ObjectChangelog.entries_Entry.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<ObjectChangelog.entries_Entry.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.entries_Entry.Builder> +
com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ObjectChangelog.entries_EntryOrBuilder, Cloneable
+
+
+
Enclosing class:
+
ObjectChangelog.entries_Entry
+
+
+
public static final class ObjectChangelog.entries_Entry.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<ObjectChangelog.entries_Entry.Builder> +implements ObjectChangelog.entries_EntryOrBuilder
+
Protobuf type dhfs.persistence.ObjectChangelog.entries_Entry
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.html b/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.html new file mode 100644 index 00000000..cbce1bb8 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_Entry.html @@ -0,0 +1,740 @@ + + + + +ObjectChangelog.entries_Entry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ObjectChangelog.entries_Entry

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ObjectChangelog.entries_EntryOrBuilder, Serializable
+
+
+
Enclosing class:
+
ObjectChangelog
+
+
+
public static final class ObjectChangelog.entries_Entry +extends com.google.protobuf.GeneratedMessageV3 +implements ObjectChangelog.entries_EntryOrBuilder
+
Protobuf type dhfs.persistence.ObjectChangelog.entries_Entry
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      KEY_FIELD_NUMBER

      +
      public static final int KEY_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      VALUE_FIELD_NUMBER

      +
      public static final int VALUE_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      hasKey

      +
      public boolean hasKey()
      +
      .dhfs.persistence.PeerIdP key = 1;
      +
      +
      Specified by:
      +
      hasKey in interface ObjectChangelog.entries_EntryOrBuilder
      +
      Returns:
      +
      Whether the key field is set.
      +
      +
      +
    • +
    • +
      +

      getKey

      +
      public PeerIdP getKey()
      +
      .dhfs.persistence.PeerIdP key = 1;
      +
      +
      Specified by:
      +
      getKey in interface ObjectChangelog.entries_EntryOrBuilder
      +
      Returns:
      +
      The key.
      +
      +
      +
    • +
    • +
      +

      getKeyOrBuilder

      +
      public PeerIdPOrBuilder getKeyOrBuilder()
      +
      .dhfs.persistence.PeerIdP key = 1;
      +
      +
      Specified by:
      +
      getKeyOrBuilder in interface ObjectChangelog.entries_EntryOrBuilder
      +
      +
      +
    • +
    • +
      +

      getValue

      +
      public long getValue()
      +
      int64 value = 2;
      +
      +
      Specified by:
      +
      getValue in interface ObjectChangelog.entries_EntryOrBuilder
      +
      Returns:
      +
      The value.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static ObjectChangelog.entries_Entry parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static ObjectChangelog.entries_Entry parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog.entries_Entry parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public ObjectChangelog.entries_Entry.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static ObjectChangelog.entries_Entry.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      + +
      +
    • +
    • +
      +

      toBuilder

      + +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected ObjectChangelog.entries_Entry.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static ObjectChangelog.entries_Entry getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<ObjectChangelog.entries_Entry> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<ObjectChangelog.entries_Entry> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public ObjectChangelog.entries_Entry getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_EntryOrBuilder.html b/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_EntryOrBuilder.html new file mode 100644 index 00000000..9a44cf6f --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ObjectChangelog.entries_EntryOrBuilder.html @@ -0,0 +1,213 @@ + + + + +ObjectChangelog.entries_EntryOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ObjectChangelog.entries_EntryOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
ObjectChangelog.entries_Entry, ObjectChangelog.entries_Entry.Builder
+
+
+
Enclosing class:
+
ObjectChangelog
+
+
+
public static interface ObjectChangelog.entries_EntryOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    .dhfs.persistence.PeerIdP key = 1;
    +
    + + +
    +
    .dhfs.persistence.PeerIdP key = 1;
    +
    +
    long
    + +
    +
    int64 value = 2;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.PeerIdP key = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      hasKey

      +
      boolean hasKey()
      +
      .dhfs.persistence.PeerIdP key = 1;
      +
      +
      Returns:
      +
      Whether the key field is set.
      +
      +
      +
    • +
    • +
      +

      getKey

      +
      PeerIdP getKey()
      +
      .dhfs.persistence.PeerIdP key = 1;
      +
      +
      Returns:
      +
      The key.
      +
      +
      +
    • +
    • +
      +

      getKeyOrBuilder

      +
      PeerIdPOrBuilder getKeyOrBuilder()
      +
      .dhfs.persistence.PeerIdP key = 1;
      +
      +
    • +
    • +
      +

      getValue

      +
      long getValue()
      +
      int64 value = 2;
      +
      +
      Returns:
      +
      The value.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ObjectChangelog.html b/com/usatiuk/dhfs/persistence/ObjectChangelog.html new file mode 100644 index 00000000..4e0bebbd --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ObjectChangelog.html @@ -0,0 +1,737 @@ + + + + +ObjectChangelog (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ObjectChangelog

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.ObjectChangelog
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ObjectChangelogOrBuilder, Serializable
+
+
+
public final class ObjectChangelog +extends com.google.protobuf.GeneratedMessageV3 +implements ObjectChangelogOrBuilder
+
Protobuf type dhfs.persistence.ObjectChangelog
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.ObjectChangelog
    +
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.ObjectChangelog.entries_Entry
    +
    +
    static interface 
    + +
     
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    + +
    getEntries(int index)
    +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    +
    int
    + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    + + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    + + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    + + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    +
    com.google.protobuf.Parser<ObjectChangelog>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<ObjectChangelog>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ENTRIES_FIELD_NUMBER

      +
      public static final int ENTRIES_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getEntriesList

      +
      public List<ObjectChangelog.entries_Entry> getEntriesList()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesList in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      getEntriesOrBuilderList

      +
      public List<? extends ObjectChangelog.entries_EntryOrBuilder> getEntriesOrBuilderList()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesOrBuilderList in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      getEntriesCount

      +
      public int getEntriesCount()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesCount in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      getEntries

      +
      public ObjectChangelog.entries_Entry getEntries(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntries in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      getEntriesOrBuilder

      +
      public ObjectChangelog.entries_EntryOrBuilder getEntriesOrBuilder(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
      Specified by:
      +
      getEntriesOrBuilder in interface ObjectChangelogOrBuilder
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static ObjectChangelog parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static ObjectChangelog parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static ObjectChangelog parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public ObjectChangelog.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static ObjectChangelog.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static ObjectChangelog.Builder newBuilder(ObjectChangelog prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public ObjectChangelog.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected ObjectChangelog.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static ObjectChangelog getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<ObjectChangelog> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<ObjectChangelog> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public ObjectChangelog getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/ObjectChangelogOrBuilder.html b/com/usatiuk/dhfs/persistence/ObjectChangelogOrBuilder.html new file mode 100644 index 00000000..eacde3cf --- /dev/null +++ b/com/usatiuk/dhfs/persistence/ObjectChangelogOrBuilder.html @@ -0,0 +1,209 @@ + + + + +ObjectChangelogOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ObjectChangelogOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
ObjectChangelog, ObjectChangelog.Builder
+
+
+
public interface ObjectChangelogOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    getEntries(int index)
    +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    +
    int
    + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    + + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    + + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    + + +
    +
    repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getEntriesList

      + +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      getEntries

      +
      ObjectChangelog.entries_Entry getEntries(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      getEntriesCount

      +
      int getEntriesCount()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      getEntriesOrBuilderList

      +
      List<? extends ObjectChangelog.entries_EntryOrBuilder> getEntriesOrBuilderList()
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    • +
      +

      getEntriesOrBuilder

      +
      ObjectChangelog.entries_EntryOrBuilder getEntriesOrBuilder(int index)
      +
      repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/PeerIdP.Builder.html b/com/usatiuk/dhfs/persistence/PeerIdP.Builder.html new file mode 100644 index 00000000..be5c0d4a --- /dev/null +++ b/com/usatiuk/dhfs/persistence/PeerIdP.Builder.html @@ -0,0 +1,579 @@ + + + + +PeerIdP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerIdP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<PeerIdP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder> +
com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PeerIdPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
PeerIdP
+
+
+
public static final class PeerIdP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder> +implements PeerIdPOrBuilder
+
Protobuf type dhfs.persistence.PeerIdP
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + +
    setId(JObjectKeyP.Builder builderForValue)
    +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public PeerIdP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PeerIdP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public PeerIdP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public PeerIdP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public PeerIdP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public PeerIdP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public PeerIdP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public PeerIdP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public PeerIdP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public PeerIdP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerIdP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerIdP.Builder mergeFrom(PeerIdP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerIdP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PeerIdP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      hasId

      +
      public boolean hasId()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Specified by:
      +
      hasId in interface PeerIdPOrBuilder
      +
      Returns:
      +
      Whether the id field is set.
      +
      +
      +
    • +
    • +
      +

      getId

      +
      public JObjectKeyP getId()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Specified by:
      +
      getId in interface PeerIdPOrBuilder
      +
      Returns:
      +
      The id.
      +
      +
      +
    • +
    • +
      +

      setId

      +
      public PeerIdP.Builder setId(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
    • +
    • +
      +

      setId

      +
      public PeerIdP.Builder setId(JObjectKeyP.Builder builderForValue)
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
    • +
    • +
      +

      mergeId

      +
      public PeerIdP.Builder mergeId(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
    • +
    • +
      +

      clearId

      +
      public PeerIdP.Builder clearId()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
    • +
    • +
      +

      getIdBuilder

      +
      public JObjectKeyP.Builder getIdBuilder()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
    • +
    • +
      +

      getIdOrBuilder

      +
      public JObjectKeyPOrBuilder getIdOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Specified by:
      +
      getIdOrBuilder in interface PeerIdPOrBuilder
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final PeerIdP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final PeerIdP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PeerIdP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/PeerIdP.html b/com/usatiuk/dhfs/persistence/PeerIdP.html new file mode 100644 index 00000000..d98e3560 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/PeerIdP.html @@ -0,0 +1,701 @@ + + + + +PeerIdP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerIdP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.PeerIdP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PeerIdPOrBuilder, Serializable
+
+
+
public final class PeerIdP +extends com.google.protobuf.GeneratedMessageV3 +implements PeerIdPOrBuilder
+
Protobuf type dhfs.persistence.PeerIdP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.PeerIdP
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    +
    static PeerIdP
    + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    +
    com.google.protobuf.Parser<PeerIdP>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + +
    newBuilder(PeerIdP prototype)
    +
     
    + + +
     
    +
    protected PeerIdP.Builder
    +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    +
    static PeerIdP
    + +
     
    +
    static PeerIdP
    +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerIdP
    +
    parseFrom(byte[] data)
    +
     
    +
    static PeerIdP
    +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerIdP
    +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    +
    static PeerIdP
    +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerIdP
    +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    +
    static PeerIdP
    +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerIdP
    + +
     
    +
    static PeerIdP
    +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerIdP
    + +
     
    +
    static PeerIdP
    +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<PeerIdP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ID_FIELD_NUMBER

      +
      public static final int ID_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      hasId

      +
      public boolean hasId()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Specified by:
      +
      hasId in interface PeerIdPOrBuilder
      +
      Returns:
      +
      Whether the id field is set.
      +
      +
      +
    • +
    • +
      +

      getId

      +
      public JObjectKeyP getId()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Specified by:
      +
      getId in interface PeerIdPOrBuilder
      +
      Returns:
      +
      The id.
      +
      +
      +
    • +
    • +
      +

      getIdOrBuilder

      +
      public JObjectKeyPOrBuilder getIdOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Specified by:
      +
      getIdOrBuilder in interface PeerIdPOrBuilder
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PeerIdP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PeerIdP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerIdP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public PeerIdP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PeerIdP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PeerIdP.Builder newBuilder(PeerIdP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public PeerIdP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected PeerIdP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static PeerIdP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<PeerIdP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<PeerIdP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PeerIdP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/PeerIdPOrBuilder.html b/com/usatiuk/dhfs/persistence/PeerIdPOrBuilder.html new file mode 100644 index 00000000..f8ce87ec --- /dev/null +++ b/com/usatiuk/dhfs/persistence/PeerIdPOrBuilder.html @@ -0,0 +1,193 @@ + + + + +PeerIdPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerIdPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
PeerIdP, PeerIdP.Builder
+
+
+
public interface PeerIdPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP id = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      hasId

      +
      boolean hasId()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Returns:
      +
      Whether the id field is set.
      +
      +
      +
    • +
    • +
      +

      getId

      +
      JObjectKeyP getId()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
      Returns:
      +
      The id.
      +
      +
      +
    • +
    • +
      +

      getIdOrBuilder

      +
      JObjectKeyPOrBuilder getIdOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP id = 1;
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/PeerInfoP.Builder.html b/com/usatiuk/dhfs/persistence/PeerInfoP.Builder.html new file mode 100644 index 00000000..21d1ef0e --- /dev/null +++ b/com/usatiuk/dhfs/persistence/PeerInfoP.Builder.html @@ -0,0 +1,519 @@ + + + + +PeerInfoP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerInfoP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<PeerInfoP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder> +
com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PeerInfoPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
PeerInfoP
+
+
+
public static final class PeerInfoP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder> +implements PeerInfoPOrBuilder
+
Protobuf type dhfs.persistence.PeerInfoP
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
    +
    bytes serializedData = 1;
    +
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setSerializedData(com.google.protobuf.ByteString value)
    +
    +
    bytes serializedData = 1;
    +
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public PeerInfoP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PeerInfoP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public PeerInfoP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public PeerInfoP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public PeerInfoP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public PeerInfoP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public PeerInfoP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public PeerInfoP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public PeerInfoP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public PeerInfoP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerInfoP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerInfoP.Builder mergeFrom(PeerInfoP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PeerInfoP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PeerInfoP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface PeerInfoPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      setSerializedData

      +
      public PeerInfoP.Builder setSerializedData(com.google.protobuf.ByteString value)
      +
      bytes serializedData = 1;
      +
      +
      Parameters:
      +
      value - The serializedData to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearSerializedData

      +
      public PeerInfoP.Builder clearSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final PeerInfoP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final PeerInfoP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PeerInfoP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/PeerInfoP.html b/com/usatiuk/dhfs/persistence/PeerInfoP.html new file mode 100644 index 00000000..1a67ddcc --- /dev/null +++ b/com/usatiuk/dhfs/persistence/PeerInfoP.html @@ -0,0 +1,667 @@ + + + + +PeerInfoP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerInfoP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.persistence.PeerInfoP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PeerInfoPOrBuilder, Serializable
+
+
+
public final class PeerInfoP +extends com.google.protobuf.GeneratedMessageV3 +implements PeerInfoPOrBuilder
+
Protobuf type dhfs.persistence.PeerInfoP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.persistence.PeerInfoP
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    +
    static PeerInfoP
    + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<PeerInfoP>
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + +
    newBuilder(PeerInfoP prototype)
    +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    +
    static PeerInfoP
    + +
     
    +
    static PeerInfoP
    +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerInfoP
    +
    parseFrom(byte[] data)
    +
     
    +
    static PeerInfoP
    +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerInfoP
    +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    +
    static PeerInfoP
    +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerInfoP
    +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    +
    static PeerInfoP
    +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerInfoP
    + +
     
    +
    static PeerInfoP
    +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PeerInfoP
    + +
     
    +
    static PeerInfoP
    +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<PeerInfoP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      SERIALIZEDDATA_FIELD_NUMBER

      +
      public static final int SERIALIZEDDATA_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface PeerInfoPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PeerInfoP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PeerInfoP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PeerInfoP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public PeerInfoP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PeerInfoP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PeerInfoP.Builder newBuilder(PeerInfoP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public PeerInfoP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected PeerInfoP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static PeerInfoP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<PeerInfoP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<PeerInfoP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PeerInfoP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/PeerInfoPOrBuilder.html b/com/usatiuk/dhfs/persistence/PeerInfoPOrBuilder.html new file mode 100644 index 00000000..c466f132 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/PeerInfoPOrBuilder.html @@ -0,0 +1,165 @@ + + + + +PeerInfoPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerInfoPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
PeerInfoP, PeerInfoP.Builder
+
+
+
public interface PeerInfoPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSerializedData

      +
      com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ChunkDataP.Builder.html b/com/usatiuk/dhfs/persistence/class-use/ChunkDataP.Builder.html new file mode 100644 index 00000000..6267c42b --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ChunkDataP.Builder.html @@ -0,0 +1,170 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.ChunkDataP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.ChunkDataP.Builder

+
+
Packages that use ChunkDataP.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ChunkDataP.html b/com/usatiuk/dhfs/persistence/class-use/ChunkDataP.html new file mode 100644 index 00000000..6a62d77f --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ChunkDataP.html @@ -0,0 +1,165 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.ChunkDataP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.ChunkDataP

+
+
Packages that use ChunkDataP
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ChunkDataPOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/ChunkDataPOrBuilder.html new file mode 100644 index 00000000..96c5145b --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ChunkDataPOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.ChunkDataPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.ChunkDataPOrBuilder

+
+
Packages that use ChunkDataPOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/DhfsObjectPersistence.html b/com/usatiuk/dhfs/persistence/class-use/DhfsObjectPersistence.html new file mode 100644 index 00000000..e43a2122 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/DhfsObjectPersistence.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.DhfsObjectPersistence (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.DhfsObjectPersistence

+
+No usage of com.usatiuk.dhfs.persistence.DhfsObjectPersistence
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/FileDtoP.Builder.html b/com/usatiuk/dhfs/persistence/class-use/FileDtoP.Builder.html new file mode 100644 index 00000000..0938e913 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/FileDtoP.Builder.html @@ -0,0 +1,150 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.FileDtoP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.FileDtoP.Builder

+
+
Packages that use FileDtoP.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/FileDtoP.html b/com/usatiuk/dhfs/persistence/class-use/FileDtoP.html new file mode 100644 index 00000000..4068bb9d --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/FileDtoP.html @@ -0,0 +1,165 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.FileDtoP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.FileDtoP

+
+
Packages that use FileDtoP
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/FileDtoPOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/FileDtoPOrBuilder.html new file mode 100644 index 00000000..5ab3ccce --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/FileDtoPOrBuilder.html @@ -0,0 +1,96 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.FileDtoPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.FileDtoPOrBuilder

+
+
Packages that use FileDtoPOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JDataP.Builder.html b/com/usatiuk/dhfs/persistence/class-use/JDataP.Builder.html new file mode 100644 index 00000000..d9c945ac --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JDataP.Builder.html @@ -0,0 +1,150 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.JDataP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.JDataP.Builder

+
+
Packages that use JDataP.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JDataP.html b/com/usatiuk/dhfs/persistence/class-use/JDataP.html new file mode 100644 index 00000000..c6f2ae08 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JDataP.html @@ -0,0 +1,165 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.JDataP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.JDataP

+
+
Packages that use JDataP
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JDataPOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/JDataPOrBuilder.html new file mode 100644 index 00000000..f8c14506 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JDataPOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.JDataPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.JDataPOrBuilder

+
+
Packages that use JDataPOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.Builder.html b/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.Builder.html new file mode 100644 index 00000000..db34ddd3 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.Builder.html @@ -0,0 +1,179 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder

+
+
Packages that use JDataRemoteDtoP.Builder
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.html b/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.html new file mode 100644 index 00000000..2e3a3005 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoP.html @@ -0,0 +1,234 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.JDataRemoteDtoP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.JDataRemoteDtoP

+
+
Packages that use JDataRemoteDtoP
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoPOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoPOrBuilder.html new file mode 100644 index 00000000..fde65d5b --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JDataRemoteDtoPOrBuilder.html @@ -0,0 +1,122 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.JDataRemoteDtoPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.JDataRemoteDtoPOrBuilder

+
+
Packages that use JDataRemoteDtoPOrBuilder
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.Builder.html b/com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.Builder.html new file mode 100644 index 00000000..7f92301f --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.Builder.html @@ -0,0 +1,263 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.JObjectKeyP.Builder

+
+
Packages that use JObjectKeyP.Builder
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.html b/com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.html new file mode 100644 index 00000000..91cbbeb7 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JObjectKeyP.html @@ -0,0 +1,373 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.JObjectKeyP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.JObjectKeyP

+
+
Packages that use JObjectKeyP
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/JObjectKeyPOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/JObjectKeyPOrBuilder.html new file mode 100644 index 00000000..d64bd37f --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/JObjectKeyPOrBuilder.html @@ -0,0 +1,209 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.JObjectKeyPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.JObjectKeyPOrBuilder

+
+
Packages that use JObjectKeyPOrBuilder
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.Builder.html b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.Builder.html new file mode 100644 index 00000000..d7a03b42 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.Builder.html @@ -0,0 +1,218 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.ObjectChangelog.Builder

+
+
Packages that use ObjectChangelog.Builder
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.Builder.html b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.Builder.html new file mode 100644 index 00000000..7f83bff7 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.Builder.html @@ -0,0 +1,219 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.html b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.html new file mode 100644 index 00000000..0efddb9b --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_Entry.html @@ -0,0 +1,223 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_EntryOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_EntryOrBuilder.html new file mode 100644 index 00000000..b35574e5 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.entries_EntryOrBuilder.html @@ -0,0 +1,136 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.ObjectChangelog.entries_EntryOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.ObjectChangelog.entries_EntryOrBuilder

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.html b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.html new file mode 100644 index 00000000..620df71d --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelog.html @@ -0,0 +1,209 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.ObjectChangelog (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.ObjectChangelog

+
+
Packages that use ObjectChangelog
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/ObjectChangelogOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelogOrBuilder.html new file mode 100644 index 00000000..21ddb219 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/ObjectChangelogOrBuilder.html @@ -0,0 +1,122 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.ObjectChangelogOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.ObjectChangelogOrBuilder

+
+
Packages that use ObjectChangelogOrBuilder
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/PeerIdP.Builder.html b/com/usatiuk/dhfs/persistence/class-use/PeerIdP.Builder.html new file mode 100644 index 00000000..0b06d7fa --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/PeerIdP.Builder.html @@ -0,0 +1,176 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.PeerIdP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.PeerIdP.Builder

+
+
Packages that use PeerIdP.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/PeerIdP.html b/com/usatiuk/dhfs/persistence/class-use/PeerIdP.html new file mode 100644 index 00000000..97789d09 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/PeerIdP.html @@ -0,0 +1,190 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.PeerIdP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.PeerIdP

+
+
Packages that use PeerIdP
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/PeerIdPOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/PeerIdPOrBuilder.html new file mode 100644 index 00000000..5eee93ef --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/PeerIdPOrBuilder.html @@ -0,0 +1,115 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.PeerIdPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.PeerIdPOrBuilder

+
+
Packages that use PeerIdPOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/PeerInfoP.Builder.html b/com/usatiuk/dhfs/persistence/class-use/PeerInfoP.Builder.html new file mode 100644 index 00000000..6a4c441d --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/PeerInfoP.Builder.html @@ -0,0 +1,150 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.PeerInfoP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.PeerInfoP.Builder

+
+
Packages that use PeerInfoP.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/PeerInfoP.html b/com/usatiuk/dhfs/persistence/class-use/PeerInfoP.html new file mode 100644 index 00000000..331c4e77 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/PeerInfoP.html @@ -0,0 +1,190 @@ + + + + +Uses of Class com.usatiuk.dhfs.persistence.PeerInfoP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.persistence.PeerInfoP

+
+
Packages that use PeerInfoP
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/class-use/PeerInfoPOrBuilder.html b/com/usatiuk/dhfs/persistence/class-use/PeerInfoPOrBuilder.html new file mode 100644 index 00000000..338ba3c1 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/class-use/PeerInfoPOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.persistence.PeerInfoPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.persistence.PeerInfoPOrBuilder

+
+
Packages that use PeerInfoPOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/package-summary.html b/com/usatiuk/dhfs/persistence/package-summary.html new file mode 100644 index 00000000..9bb45339 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/package-summary.html @@ -0,0 +1,201 @@ + + + + +com.usatiuk.dhfs.persistence (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.persistence

+
+
+
package com.usatiuk.dhfs.persistence
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/package-tree.html b/com/usatiuk/dhfs/persistence/package-tree.html new file mode 100644 index 00000000..ced32aeb --- /dev/null +++ b/com/usatiuk/dhfs/persistence/package-tree.html @@ -0,0 +1,140 @@ + + + + +com.usatiuk.dhfs.persistence Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.persistence

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/persistence/package-use.html b/com/usatiuk/dhfs/persistence/package-use.html new file mode 100644 index 00000000..58c61394 --- /dev/null +++ b/com/usatiuk/dhfs/persistence/package-use.html @@ -0,0 +1,260 @@ + + + + +Uses of Package com.usatiuk.dhfs.persistence (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.persistence

+
+ + +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/DeleterTxHook.html b/com/usatiuk/dhfs/refcount/DeleterTxHook.html new file mode 100644 index 00000000..ceb9ee76 --- /dev/null +++ b/com/usatiuk/dhfs/refcount/DeleterTxHook.html @@ -0,0 +1,234 @@ + + + + +DeleterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DeleterTxHook

+
+
java.lang.Object +
com.usatiuk.dhfs.refcount.DeleterTxHook
+
+
+
+
All Implemented Interfaces:
+
PreCommitTxHook
+
+
+
@Singleton +public class DeleterTxHook +extends Object +implements PreCommitTxHook
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/JDataNormalRef.html b/com/usatiuk/dhfs/refcount/JDataNormalRef.html new file mode 100644 index 00000000..6d088f08 --- /dev/null +++ b/com/usatiuk/dhfs/refcount/JDataNormalRef.html @@ -0,0 +1,277 @@ + + + + +JDataNormalRef (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JDataNormalRef

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.refcount.JDataNormalRef
+
+
+
+
+
All Implemented Interfaces:
+
JDataRef, Serializable, Comparable<JDataRef>
+
+
+
public record JDataNormalRef(JObjectKey obj) +extends Record +implements JDataRef
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
    +
    Creates an instance of a JDataNormalRef record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    int
    + +
     
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + +
    obj()
    +
    +
    Returns the value of the obj record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JDataNormalRef

      +
      public JDataNormalRef(JObjectKey obj)
      +
      Creates an instance of a JDataNormalRef record class.
      +
      +
      Parameters:
      +
      obj - the value for the obj record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      compareTo

      +
      public int compareTo(JDataRef o)
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<JDataRef>
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      obj

      +
      public JObjectKey obj()
      +
      Returns the value of the obj record component.
      +
      +
      Specified by:
      +
      obj in interface JDataRef
      +
      Returns:
      +
      the value of the obj record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/JDataRef.html b/com/usatiuk/dhfs/refcount/JDataRef.html new file mode 100644 index 00000000..fbabbe2b --- /dev/null +++ b/com/usatiuk/dhfs/refcount/JDataRef.html @@ -0,0 +1,155 @@ + + + + +JDataRef (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JDataRef

+
+
+
+
All Superinterfaces:
+
Comparable<JDataRef>, Serializable
+
+
+
All Known Implementing Classes:
+
JDataNormalRef, JMapRef
+
+
+
public interface JDataRef +extends Comparable<JDataRef>, Serializable
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    obj()
    +
     
    +
    +
    +
    +
    +

    Methods inherited from interface java.lang.Comparable

    +compareTo
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/JDataRefcounted.html b/com/usatiuk/dhfs/refcount/JDataRefcounted.html new file mode 100644 index 00000000..b42e39ba --- /dev/null +++ b/com/usatiuk/dhfs/refcount/JDataRefcounted.html @@ -0,0 +1,191 @@ + + + + +JDataRefcounted (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JDataRefcounted

+
+
+
+
All Superinterfaces:
+
JData, Serializable
+
+
+
All Known Implementing Classes:
+
JKleppmannTreeNodeHolder, JKleppmannTreePersistentData, RemoteObjectDataWrapper, RemoteObjectMeta
+
+
+
public interface JDataRefcounted +extends JData
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      refsFrom

      +
      org.pcollections.PCollection<JDataRef> refsFrom()
      +
      +
    • +
    • +
      +

      withRefsFrom

      +
      JDataRefcounted withRefsFrom(org.pcollections.PCollection<JDataRef> refs)
      +
      +
    • +
    • +
      +

      frozen

      +
      boolean frozen()
      +
      +
    • +
    • +
      +

      withFrozen

      +
      JDataRefcounted withFrozen(boolean frozen)
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      default Collection<JObjectKey> collectRefsTo()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/RefcounterTxHook.html b/com/usatiuk/dhfs/refcount/RefcounterTxHook.html new file mode 100644 index 00000000..43bffc13 --- /dev/null +++ b/com/usatiuk/dhfs/refcount/RefcounterTxHook.html @@ -0,0 +1,234 @@ + + + + +RefcounterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RefcounterTxHook

+
+
java.lang.Object +
com.usatiuk.dhfs.refcount.RefcounterTxHook
+
+
+
+
All Implemented Interfaces:
+
PreCommitTxHook
+
+
+
@Singleton +public class RefcounterTxHook +extends Object +implements PreCommitTxHook
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/class-use/DeleterTxHook.html b/com/usatiuk/dhfs/refcount/class-use/DeleterTxHook.html new file mode 100644 index 00000000..37e47d0a --- /dev/null +++ b/com/usatiuk/dhfs/refcount/class-use/DeleterTxHook.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.refcount.DeleterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.refcount.DeleterTxHook

+
+No usage of com.usatiuk.dhfs.refcount.DeleterTxHook
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/class-use/JDataNormalRef.html b/com/usatiuk/dhfs/refcount/class-use/JDataNormalRef.html new file mode 100644 index 00000000..7170f39d --- /dev/null +++ b/com/usatiuk/dhfs/refcount/class-use/JDataNormalRef.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.refcount.JDataNormalRef (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.refcount.JDataNormalRef

+
+No usage of com.usatiuk.dhfs.refcount.JDataNormalRef
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/class-use/JDataRef.html b/com/usatiuk/dhfs/refcount/class-use/JDataRef.html new file mode 100644 index 00000000..866461f2 --- /dev/null +++ b/com/usatiuk/dhfs/refcount/class-use/JDataRef.html @@ -0,0 +1,260 @@ + + + + +Uses of Interface com.usatiuk.dhfs.refcount.JDataRef (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.refcount.JDataRef

+
+
Packages that use JDataRef
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/class-use/JDataRefcounted.html b/com/usatiuk/dhfs/refcount/class-use/JDataRefcounted.html new file mode 100644 index 00000000..5836f1ef --- /dev/null +++ b/com/usatiuk/dhfs/refcount/class-use/JDataRefcounted.html @@ -0,0 +1,128 @@ + + + + +Uses of Interface com.usatiuk.dhfs.refcount.JDataRefcounted (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.refcount.JDataRefcounted

+
+
Packages that use JDataRefcounted
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/class-use/RefcounterTxHook.html b/com/usatiuk/dhfs/refcount/class-use/RefcounterTxHook.html new file mode 100644 index 00000000..5cf88d40 --- /dev/null +++ b/com/usatiuk/dhfs/refcount/class-use/RefcounterTxHook.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.refcount.RefcounterTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.refcount.RefcounterTxHook

+
+No usage of com.usatiuk.dhfs.refcount.RefcounterTxHook
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/package-summary.html b/com/usatiuk/dhfs/refcount/package-summary.html new file mode 100644 index 00000000..0c97f609 --- /dev/null +++ b/com/usatiuk/dhfs/refcount/package-summary.html @@ -0,0 +1,117 @@ + + + + +com.usatiuk.dhfs.refcount (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.refcount

+
+
+
package com.usatiuk.dhfs.refcount
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/package-tree.html b/com/usatiuk/dhfs/refcount/package-tree.html new file mode 100644 index 00000000..3eb794d0 --- /dev/null +++ b/com/usatiuk/dhfs/refcount/package-tree.html @@ -0,0 +1,111 @@ + + + + +com.usatiuk.dhfs.refcount Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.refcount

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/refcount/package-use.html b/com/usatiuk/dhfs/refcount/package-use.html new file mode 100644 index 00000000..3628fcfc --- /dev/null +++ b/com/usatiuk/dhfs/refcount/package-use.html @@ -0,0 +1,129 @@ + + + + +Uses of Package com.usatiuk.dhfs.refcount (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.refcount

+
+
Packages that use com.usatiuk.dhfs.refcount
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/ConflictResolver.html b/com/usatiuk/dhfs/remoteobj/ConflictResolver.html new file mode 100644 index 00000000..c6a888a0 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/ConflictResolver.html @@ -0,0 +1,147 @@ + + + + +ConflictResolver (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ConflictResolver

+
+
+
+
public interface ConflictResolver
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.html b/com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.html new file mode 100644 index 00000000..144943d0 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.html @@ -0,0 +1,185 @@ + + + + +DefaultObjSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DefaultObjSyncHandler

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.DefaultObjSyncHandler
+
+
+
+
@ApplicationScoped +public class DefaultObjSyncHandler +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DefaultObjSyncHandler

      +
      public DefaultObjSyncHandler()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.html b/com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.html new file mode 100644 index 00000000..6beeb8ba --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.html @@ -0,0 +1,189 @@ + + + + +IndexUpdateOpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class IndexUpdateOpHandler

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.IndexUpdateOpHandler
+
+
+
+
All Implemented Interfaces:
+
OpHandler<IndexUpdateOp>
+
+
+
@ApplicationScoped +public class IndexUpdateOpHandler +extends Object +implements OpHandler<IndexUpdateOp>
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      IndexUpdateOpHandler

      +
      public IndexUpdateOpHandler()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/JDataRemote.html b/com/usatiuk/dhfs/remoteobj/JDataRemote.html new file mode 100644 index 00000000..50094ba7 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/JDataRemote.html @@ -0,0 +1,179 @@ + + + + +JDataRemote (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JDataRemote

+
+
+
+
All Superinterfaces:
+
Serializable
+
+
+
All Known Implementing Classes:
+
ChunkData, File, PeerInfo
+
+
+
public interface JDataRemote +extends Serializable
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/JDataRemoteDto.html b/com/usatiuk/dhfs/remoteobj/JDataRemoteDto.html new file mode 100644 index 00000000..f309934f --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/JDataRemoteDto.html @@ -0,0 +1,152 @@ + + + + +JDataRemoteDto (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JDataRemoteDto

+
+
+
+
All Superinterfaces:
+
Serializable
+
+
+
All Known Implementing Classes:
+
ChunkData, FileDto, PeerInfo
+
+
+
public interface JDataRemoteDto +extends Serializable
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    default Class<? extends JDataRemote>
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/JDataRemotePush.html b/com/usatiuk/dhfs/remoteobj/JDataRemotePush.html new file mode 100644 index 00000000..fab2a261 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/JDataRemotePush.html @@ -0,0 +1,101 @@ + + + + +JDataRemotePush (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Annotation Interface JDataRemotePush

+
+
+
+
@Retention(RUNTIME) +@Target(TYPE) +public @interface JDataRemotePush
+
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.html b/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.html new file mode 100644 index 00000000..cb038395 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.html @@ -0,0 +1,154 @@ + + + + +ObjSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ObjSyncHandler<T extends JDataRemote,D extends JDataRemoteDto>

+
+
+
+
All Known Implementing Classes:
+
FileSyncHandler, PeerInfoSyncHandler
+
+
+
public interface ObjSyncHandler<T extends JDataRemote,D extends JDataRemoteDto>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    +
    handleRemoteUpdate(PeerId from, + JObjectKey key, + org.pcollections.PMap<PeerId,Long> receivedChangelog, + D receivedData)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      handleRemoteUpdate

      +
      void handleRemoteUpdate(PeerId from, + JObjectKey key, + org.pcollections.PMap<PeerId,Long> receivedChangelog, + @Nullable + D receivedData)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/ReceivedObject.html b/com/usatiuk/dhfs/remoteobj/ReceivedObject.html new file mode 100644 index 00000000..e2e7391d --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/ReceivedObject.html @@ -0,0 +1,268 @@ + + + + +ReceivedObject (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class ReceivedObject

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.remoteobj.ReceivedObject
+
+
+
+
+
public record ReceivedObject(org.pcollections.PMap<PeerId,Long> changelog, JDataRemoteDto data) +extends Record
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    ReceivedObject(org.pcollections.PMap<PeerId,Long> changelog, + JDataRemoteDto data)
    +
    +
    Creates an instance of a ReceivedObject record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    org.pcollections.PMap<PeerId,Long>
    + +
    +
    Returns the value of the changelog record component.
    +
    + + +
    +
    Returns the value of the data record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ReceivedObject

      +
      public ReceivedObject(org.pcollections.PMap<PeerId,Long> changelog, + JDataRemoteDto data)
      +
      Creates an instance of a ReceivedObject record class.
      +
      +
      Parameters:
      +
      changelog - the value for the changelog record component
      +
      data - the value for the data record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      changelog

      +
      public org.pcollections.PMap<PeerId,Long> changelog()
      +
      Returns the value of the changelog record component.
      +
      +
      Returns:
      +
      the value of the changelog record component
      +
      +
      +
    • +
    • +
      +

      data

      +
      public JDataRemoteDto data()
      +
      Returns the value of the data record component.
      +
      +
      Returns:
      +
      the value of the data record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.html b/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.html new file mode 100644 index 00000000..65266a03 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.html @@ -0,0 +1,234 @@ + + + + +RemoteObjPusherTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteObjPusherTxHook

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook
+
+
+
+
All Implemented Interfaces:
+
PreCommitTxHook
+
+
+
@Singleton +public class RemoteObjPusherTxHook +extends Object +implements PreCommitTxHook
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.html b/com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.html new file mode 100644 index 00000000..e87297df --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.html @@ -0,0 +1,394 @@ + + + + +RemoteObjectDataWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class RemoteObjectDataWrapper<T extends JDataRemote>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper<T>
+
+
+
+
+
All Implemented Interfaces:
+
JDataRefcounted, JData, Serializable
+
+
+
public record RemoteObjectDataWrapper<T extends JDataRemote>(JObjectKey key, org.pcollections.PCollection<JDataRef> refsFrom, boolean frozen, T extends JDataRemote data) +extends Record +implements JDataRefcounted
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      RemoteObjectDataWrapper

      +
      public RemoteObjectDataWrapper(T data)
      +
      +
    • +
    • +
      +

      RemoteObjectDataWrapper

      +
      public RemoteObjectDataWrapper(JObjectKey key, + org.pcollections.PCollection<JDataRef> refsFrom, + boolean frozen, + T data)
      +
      Creates an instance of a RemoteObjectDataWrapper record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      refsFrom - the value for the refsFrom record component
      +
      frozen - the value for the frozen record component
      +
      data - the value for the data record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      withRefsFrom

      +
      public RemoteObjectDataWrapper<T> withRefsFrom(org.pcollections.PCollection<JDataRef> refs)
      +
      +
      Specified by:
      +
      withRefsFrom in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      withFrozen

      +
      public RemoteObjectDataWrapper<T> withFrozen(boolean frozen)
      +
      +
      Specified by:
      +
      withFrozen in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      withData

      +
      public RemoteObjectDataWrapper<T> withData(T data)
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      public Collection<JObjectKey> collectRefsTo()
      +
      +
      Specified by:
      +
      collectRefsTo in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      estimateSize

      +
      public int estimateSize()
      +
      +
      Specified by:
      +
      estimateSize in interface JData
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Specified by:
      +
      key in interface JData
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      refsFrom

      +
      public org.pcollections.PCollection<JDataRef> refsFrom()
      +
      Returns the value of the refsFrom record component.
      +
      +
      Specified by:
      +
      refsFrom in interface JDataRefcounted
      +
      Returns:
      +
      the value of the refsFrom record component
      +
      +
      +
    • +
    • +
      +

      frozen

      +
      public boolean frozen()
      +
      Returns the value of the frozen record component.
      +
      +
      Specified by:
      +
      frozen in interface JDataRefcounted
      +
      Returns:
      +
      the value of the frozen record component
      +
      +
      +
    • +
    • +
      +

      data

      +
      public T data()
      +
      Returns the value of the data record component.
      +
      +
      Returns:
      +
      the value of the data record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.html b/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.html new file mode 100644 index 00000000..92633198 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.html @@ -0,0 +1,180 @@ + + + + +RemoteObjectDeleter (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteObjectDeleter

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.RemoteObjectDeleter
+
+
+
+
@ApplicationScoped +public class RemoteObjectDeleter +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      RemoteObjectDeleter

      +
      public RemoteObjectDeleter(long deletionDelay, + long canDeleteRetryDelay)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      putDeletionCandidate

      +
      public void putDeletionCandidate(RemoteObjectMeta obj)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.html b/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.html new file mode 100644 index 00000000..d34f0052 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.html @@ -0,0 +1,202 @@ + + + + +RemoteObjectInitialSyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteObjectInitialSyncProcessor

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.RemoteObjectInitialSyncProcessor
+
+
+
+
All Implemented Interfaces:
+
InitialSyncProcessor<RemoteObjectMeta>
+
+
+
@ApplicationScoped +public class RemoteObjectInitialSyncProcessor +extends Object +implements InitialSyncProcessor<RemoteObjectMeta>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.html b/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.html new file mode 100644 index 00000000..40893fc9 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.html @@ -0,0 +1,590 @@ + + + + +RemoteObjectMeta (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class RemoteObjectMeta

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
+
+
+
All Implemented Interfaces:
+
JDataRefcounted, JData, Serializable
+
+
+
public record RemoteObjectMeta(JObjectKey key, org.pcollections.PCollection<JDataRef> refsFrom, boolean frozen, org.pcollections.PMap<PeerId,Long> knownRemoteVersions, Class<? extends JDataRemote> knownType, org.pcollections.PSet<PeerId> confirmedDeletes, boolean seen, org.pcollections.PMap<PeerId,Long> changelog, boolean hasLocalData) +extends Record +implements JDataRefcounted
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      RemoteObjectMeta

      +
      public RemoteObjectMeta(JDataRemote data, + PeerId initialPeer)
      +
      +
    • +
    • +
      +

      RemoteObjectMeta

      +
      public RemoteObjectMeta(JObjectKey key, + org.pcollections.PMap<PeerId,Long> remoteChangelog)
      +
      +
    • +
    • +
      +

      RemoteObjectMeta

      +
      public RemoteObjectMeta(JObjectKey key)
      +
      +
    • +
    • +
      +

      RemoteObjectMeta

      +
      public RemoteObjectMeta(JObjectKey key, + org.pcollections.PCollection<JDataRef> refsFrom, + boolean frozen, + org.pcollections.PMap<PeerId,Long> knownRemoteVersions, + Class<? extends JDataRemote> knownType, + org.pcollections.PSet<PeerId> confirmedDeletes, + boolean seen, + org.pcollections.PMap<PeerId,Long> changelog, + boolean hasLocalData)
      +
      Creates an instance of a RemoteObjectMeta record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      refsFrom - the value for the refsFrom record component
      +
      frozen - the value for the frozen record component
      +
      knownRemoteVersions - the value for the knownRemoteVersions record component
      +
      knownType - the value for the knownType record component
      +
      confirmedDeletes - the value for the confirmedDeletes record component
      +
      seen - the value for the seen record component
      +
      changelog - the value for the changelog record component
      +
      hasLocalData - the value for the hasLocalData record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      ofMetaKey

      +
      public static JObjectKey ofMetaKey(JObjectKey key)
      +
      +
    • +
    • +
      +

      ofDataKey

      +
      public static JObjectKey ofDataKey(JObjectKey key)
      +
      +
    • +
    • +
      +

      dataKey

      +
      public JObjectKey dataKey()
      +
      +
    • +
    • +
      +

      withRefsFrom

      +
      public RemoteObjectMeta withRefsFrom(org.pcollections.PCollection<JDataRef> refs)
      +
      +
      Specified by:
      +
      withRefsFrom in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      withFrozen

      +
      public RemoteObjectMeta withFrozen(boolean frozen)
      +
      +
      Specified by:
      +
      withFrozen in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      withKnownRemoteVersions

      +
      public RemoteObjectMeta withKnownRemoteVersions(org.pcollections.PMap<PeerId,Long> knownRemoteVersions)
      +
      +
    • +
    • +
      +

      withKnownType

      +
      public RemoteObjectMeta withKnownType(Class<? extends JDataRemote> knownType)
      +
      +
    • +
    • +
      +

      withConfirmedDeletes

      +
      public RemoteObjectMeta withConfirmedDeletes(org.pcollections.PSet<PeerId> confirmedDeletes)
      +
      +
    • +
    • +
      +

      withSeen

      +
      public RemoteObjectMeta withSeen(boolean seen)
      +
      +
    • +
    • +
      +

      withChangelog

      +
      public RemoteObjectMeta withChangelog(org.pcollections.PMap<PeerId,Long> changelog)
      +
      +
    • +
    • +
      +

      withHaveLocal

      +
      public RemoteObjectMeta withHaveLocal(boolean haveLocal)
      +
      +
    • +
    • +
      +

      versionSum

      +
      public long versionSum()
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      public Collection<JObjectKey> collectRefsTo()
      +
      +
      Specified by:
      +
      collectRefsTo in interface JDataRefcounted
      +
      +
      +
    • +
    • +
      +

      estimateSize

      +
      public int estimateSize()
      +
      +
      Specified by:
      +
      estimateSize in interface JData
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Specified by:
      +
      key in interface JData
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      refsFrom

      +
      public org.pcollections.PCollection<JDataRef> refsFrom()
      +
      Returns the value of the refsFrom record component.
      +
      +
      Specified by:
      +
      refsFrom in interface JDataRefcounted
      +
      Returns:
      +
      the value of the refsFrom record component
      +
      +
      +
    • +
    • +
      +

      frozen

      +
      public boolean frozen()
      +
      Returns the value of the frozen record component.
      +
      +
      Specified by:
      +
      frozen in interface JDataRefcounted
      +
      Returns:
      +
      the value of the frozen record component
      +
      +
      +
    • +
    • +
      +

      knownRemoteVersions

      +
      public org.pcollections.PMap<PeerId,Long> knownRemoteVersions()
      +
      Returns the value of the knownRemoteVersions record component.
      +
      +
      Returns:
      +
      the value of the knownRemoteVersions record component
      +
      +
      +
    • +
    • +
      +

      knownType

      +
      public Class<? extends JDataRemote> knownType()
      +
      Returns the value of the knownType record component.
      +
      +
      Returns:
      +
      the value of the knownType record component
      +
      +
      +
    • +
    • +
      +

      confirmedDeletes

      +
      public org.pcollections.PSet<PeerId> confirmedDeletes()
      +
      Returns the value of the confirmedDeletes record component.
      +
      +
      Returns:
      +
      the value of the confirmedDeletes record component
      +
      +
      +
    • +
    • +
      +

      seen

      +
      public boolean seen()
      +
      Returns the value of the seen record component.
      +
      +
      Returns:
      +
      the value of the seen record component
      +
      +
      +
    • +
    • +
      +

      changelog

      +
      public org.pcollections.PMap<PeerId,Long> changelog()
      +
      Returns the value of the changelog record component.
      +
      +
      Returns:
      +
      the value of the changelog record component
      +
      +
      +
    • +
    • +
      +

      hasLocalData

      +
      public boolean hasLocalData()
      +
      Returns the value of the hasLocalData record component.
      +
      +
      Returns:
      +
      the value of the hasLocalData record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/RemoteTransaction.html b/com/usatiuk/dhfs/remoteobj/RemoteTransaction.html new file mode 100644 index 00000000..22ce6d27 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/RemoteTransaction.html @@ -0,0 +1,227 @@ + + + + +RemoteTransaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteTransaction

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
+
+
+
@Singleton +public class RemoteTransaction +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/SyncHandler.html b/com/usatiuk/dhfs/remoteobj/SyncHandler.html new file mode 100644 index 00000000..5d2d3439 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/SyncHandler.html @@ -0,0 +1,206 @@ + + + + +SyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SyncHandler

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.SyncHandler
+
+
+
+
@ApplicationScoped +public class SyncHandler +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SyncHandler

      +
      public SyncHandler(jakarta.enterprise.inject.Instance<ObjSyncHandler<?,?>> syncHandlers, + jakarta.enterprise.inject.Instance<InitialSyncProcessor<?>> initialSyncProcessors)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      handleRemoteUpdate

      +
      public <D extends JDataRemoteDto> void handleRemoteUpdate(PeerId from, + JObjectKey key, + org.pcollections.PMap<PeerId,Long> receivedChangelog, + @Nullable + D receivedData)
      +
      +
    • +
    • +
      +

      resyncAfterCrash

      +
      public void resyncAfterCrash(@Observes @Priority(100000) + io.quarkus.runtime.StartupEvent event)
      +
      +
    • +
    • +
      +

      doInitialSync

      +
      public void doInitialSync(PeerId peer)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/SyncHandlerService.html b/com/usatiuk/dhfs/remoteobj/SyncHandlerService.html new file mode 100644 index 00000000..88b032f4 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/SyncHandlerService.html @@ -0,0 +1,151 @@ + + + + +SyncHandlerService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SyncHandlerService

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.SyncHandlerService
+
+
+
+
@ApplicationScoped +public class SyncHandlerService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SyncHandlerService

      +
      public SyncHandlerService()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/SyncHelper.ChangelogCmpResult.html b/com/usatiuk/dhfs/remoteobj/SyncHelper.ChangelogCmpResult.html new file mode 100644 index 00000000..2bbb07c8 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/SyncHelper.ChangelogCmpResult.html @@ -0,0 +1,256 @@ + + + + +SyncHelper.ChangelogCmpResult (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class SyncHelper.ChangelogCmpResult

+
+
java.lang.Object +
java.lang.Enum<SyncHelper.ChangelogCmpResult> +
com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<SyncHelper.ChangelogCmpResult>, Constable
+
+
+
Enclosing class:
+
SyncHelper
+
+
+
public static enum SyncHelper.ChangelogCmpResult +extends Enum<SyncHelper.ChangelogCmpResult>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static SyncHelper.ChangelogCmpResult[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static SyncHelper.ChangelogCmpResult valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/SyncHelper.html b/com/usatiuk/dhfs/remoteobj/SyncHelper.html new file mode 100644 index 00000000..76a8d149 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/SyncHelper.html @@ -0,0 +1,194 @@ + + + + +SyncHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SyncHelper

+
+
java.lang.Object +
com.usatiuk.dhfs.remoteobj.SyncHelper
+
+
+
+
public class SyncHelper +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SyncHelper

      +
      public SyncHelper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/ConflictResolver.html b/com/usatiuk/dhfs/remoteobj/class-use/ConflictResolver.html new file mode 100644 index 00000000..0a74f633 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/ConflictResolver.html @@ -0,0 +1,62 @@ + + + + +Uses of Interface com.usatiuk.dhfs.remoteobj.ConflictResolver (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.remoteobj.ConflictResolver

+
+No usage of com.usatiuk.dhfs.remoteobj.ConflictResolver
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/DefaultObjSyncHandler.html b/com/usatiuk/dhfs/remoteobj/class-use/DefaultObjSyncHandler.html new file mode 100644 index 00000000..5e7e8397 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/DefaultObjSyncHandler.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.DefaultObjSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.DefaultObjSyncHandler

+
+No usage of com.usatiuk.dhfs.remoteobj.DefaultObjSyncHandler
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/IndexUpdateOpHandler.html b/com/usatiuk/dhfs/remoteobj/class-use/IndexUpdateOpHandler.html new file mode 100644 index 00000000..7914b4bd --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/IndexUpdateOpHandler.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.IndexUpdateOpHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.IndexUpdateOpHandler

+
+No usage of com.usatiuk.dhfs.remoteobj.IndexUpdateOpHandler
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/JDataRemote.html b/com/usatiuk/dhfs/remoteobj/class-use/JDataRemote.html new file mode 100644 index 00000000..de3d5218 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/JDataRemote.html @@ -0,0 +1,263 @@ + + + + +Uses of Interface com.usatiuk.dhfs.remoteobj.JDataRemote (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.remoteobj.JDataRemote

+
+
Packages that use JDataRemote
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/JDataRemoteDto.html b/com/usatiuk/dhfs/remoteobj/class-use/JDataRemoteDto.html new file mode 100644 index 00000000..7a13f59f --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/JDataRemoteDto.html @@ -0,0 +1,267 @@ + + + + +Uses of Interface com.usatiuk.dhfs.remoteobj.JDataRemoteDto (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.remoteobj.JDataRemoteDto

+
+
Packages that use JDataRemoteDto
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/JDataRemotePush.html b/com/usatiuk/dhfs/remoteobj/class-use/JDataRemotePush.html new file mode 100644 index 00000000..3b1d10b4 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/JDataRemotePush.html @@ -0,0 +1,87 @@ + + + + +Uses of Annotation Interface com.usatiuk.dhfs.remoteobj.JDataRemotePush (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Annotation Interface
com.usatiuk.dhfs.remoteobj.JDataRemotePush

+
+
Packages that use JDataRemotePush
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/ObjSyncHandler.html b/com/usatiuk/dhfs/remoteobj/class-use/ObjSyncHandler.html new file mode 100644 index 00000000..42ea58eb --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/ObjSyncHandler.html @@ -0,0 +1,122 @@ + + + + +Uses of Interface com.usatiuk.dhfs.remoteobj.ObjSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.remoteobj.ObjSyncHandler

+
+
Packages that use ObjSyncHandler
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/ReceivedObject.html b/com/usatiuk/dhfs/remoteobj/class-use/ReceivedObject.html new file mode 100644 index 00000000..4686db31 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/ReceivedObject.html @@ -0,0 +1,116 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.remoteobj.ReceivedObject (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.remoteobj.ReceivedObject

+
+
Packages that use ReceivedObject
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjPusherTxHook.html b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjPusherTxHook.html new file mode 100644 index 00000000..a78ffaa5 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjPusherTxHook.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook

+
+No usage of com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDataWrapper.html b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDataWrapper.html new file mode 100644 index 00000000..547d9d37 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDataWrapper.html @@ -0,0 +1,93 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper

+
+
Packages that use RemoteObjectDataWrapper
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDeleter.html b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDeleter.html new file mode 100644 index 00000000..9b816913 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectDeleter.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.RemoteObjectDeleter (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.RemoteObjectDeleter

+
+No usage of com.usatiuk.dhfs.remoteobj.RemoteObjectDeleter
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectInitialSyncProcessor.html b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectInitialSyncProcessor.html new file mode 100644 index 00000000..9aaaccdb --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectInitialSyncProcessor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.RemoteObjectInitialSyncProcessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.RemoteObjectInitialSyncProcessor

+
+No usage of com.usatiuk.dhfs.remoteobj.RemoteObjectInitialSyncProcessor
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectMeta.html b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectMeta.html new file mode 100644 index 00000000..a364c3b3 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/RemoteObjectMeta.html @@ -0,0 +1,148 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.remoteobj.RemoteObjectMeta

+
+
Packages that use RemoteObjectMeta
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/RemoteTransaction.html b/com/usatiuk/dhfs/remoteobj/class-use/RemoteTransaction.html new file mode 100644 index 00000000..52921f60 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/RemoteTransaction.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.RemoteTransaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.RemoteTransaction

+
+No usage of com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/SyncHandler.html b/com/usatiuk/dhfs/remoteobj/class-use/SyncHandler.html new file mode 100644 index 00000000..eb0c0d07 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/SyncHandler.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.SyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.SyncHandler

+
+No usage of com.usatiuk.dhfs.remoteobj.SyncHandler
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/SyncHandlerService.html b/com/usatiuk/dhfs/remoteobj/class-use/SyncHandlerService.html new file mode 100644 index 00000000..6c51d578 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/SyncHandlerService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.SyncHandlerService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.SyncHandlerService

+
+No usage of com.usatiuk.dhfs.remoteobj.SyncHandlerService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.ChangelogCmpResult.html b/com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.ChangelogCmpResult.html new file mode 100644 index 00000000..c92dfffd --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.ChangelogCmpResult.html @@ -0,0 +1,99 @@ + + + + +Uses of Enum Class com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.html b/com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.html new file mode 100644 index 00000000..646ddb5b --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/class-use/SyncHelper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.remoteobj.SyncHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.remoteobj.SyncHelper

+
+No usage of com.usatiuk.dhfs.remoteobj.SyncHelper
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/package-summary.html b/com/usatiuk/dhfs/remoteobj/package-summary.html new file mode 100644 index 00000000..0f694032 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/package-summary.html @@ -0,0 +1,143 @@ + + + + +com.usatiuk.dhfs.remoteobj (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.remoteobj

+
+
+
package com.usatiuk.dhfs.remoteobj
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/package-tree.html b/com/usatiuk/dhfs/remoteobj/package-tree.html new file mode 100644 index 00000000..fbce2338 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/package-tree.html @@ -0,0 +1,133 @@ + + + + +com.usatiuk.dhfs.remoteobj Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.remoteobj

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Annotation Interface Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/remoteobj/package-use.html b/com/usatiuk/dhfs/remoteobj/package-use.html new file mode 100644 index 00000000..eb093c91 --- /dev/null +++ b/com/usatiuk/dhfs/remoteobj/package-use.html @@ -0,0 +1,175 @@ + + + + +Uses of Package com.usatiuk.dhfs.remoteobj (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.remoteobj

+
+
Packages that use com.usatiuk.dhfs.remoteobj
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/CanDeleteReply.Builder.html b/com/usatiuk/dhfs/repository/CanDeleteReply.Builder.html new file mode 100644 index 00000000..3ae5c074 --- /dev/null +++ b/com/usatiuk/dhfs/repository/CanDeleteReply.Builder.html @@ -0,0 +1,763 @@ + + + + +CanDeleteReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class CanDeleteReply.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<CanDeleteReply.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder> +
com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, CanDeleteReplyOrBuilder, Cloneable
+
+
+
Enclosing class:
+
CanDeleteReply
+
+
+
public static final class CanDeleteReply.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder> +implements CanDeleteReplyOrBuilder
+
Protobuf type dhfs.sync.CanDeleteReply
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public CanDeleteReply.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public CanDeleteReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public CanDeleteReply build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public CanDeleteReply buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public CanDeleteReply.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public CanDeleteReply.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public CanDeleteReply.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public CanDeleteReply.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public CanDeleteReply.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public CanDeleteReply.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public CanDeleteReply.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public CanDeleteReply.Builder mergeFrom(CanDeleteReply other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public CanDeleteReply.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<CanDeleteReply.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getDeletionCandidate

      +
      public boolean getDeletionCandidate()
      +
      bool deletionCandidate = 2;
      +
      +
      Specified by:
      +
      getDeletionCandidate in interface CanDeleteReplyOrBuilder
      +
      Returns:
      +
      The deletionCandidate.
      +
      +
      +
    • +
    • +
      +

      setDeletionCandidate

      +
      public CanDeleteReply.Builder setDeletionCandidate(boolean value)
      +
      bool deletionCandidate = 2;
      +
      +
      Parameters:
      +
      value - The deletionCandidate to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearDeletionCandidate

      +
      public CanDeleteReply.Builder clearDeletionCandidate()
      +
      bool deletionCandidate = 2;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      getReferrersList

      +
      public List<JObjectKeyP> getReferrersList()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersList in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      getReferrersCount

      +
      public int getReferrersCount()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersCount in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      getReferrers

      +
      public JObjectKeyP getReferrers(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrers in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      setReferrers

      +
      public CanDeleteReply.Builder setReferrers(int index, + JObjectKeyP value)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      setReferrers

      +
      public CanDeleteReply.Builder setReferrers(int index, + JObjectKeyP.Builder builderForValue)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      addReferrers

      +
      public CanDeleteReply.Builder addReferrers(JObjectKeyP value)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      addReferrers

      +
      public CanDeleteReply.Builder addReferrers(int index, + JObjectKeyP value)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      addReferrers

      +
      public CanDeleteReply.Builder addReferrers(JObjectKeyP.Builder builderForValue)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      addReferrers

      +
      public CanDeleteReply.Builder addReferrers(int index, + JObjectKeyP.Builder builderForValue)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      addAllReferrers

      +
      public CanDeleteReply.Builder addAllReferrers(Iterable<? extends JObjectKeyP> values)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      clearReferrers

      +
      public CanDeleteReply.Builder clearReferrers()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      removeReferrers

      +
      public CanDeleteReply.Builder removeReferrers(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      getReferrersBuilder

      +
      public JObjectKeyP.Builder getReferrersBuilder(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      getReferrersOrBuilder

      +
      public JObjectKeyPOrBuilder getReferrersOrBuilder(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersOrBuilder in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      getReferrersOrBuilderList

      +
      public List<? extends JObjectKeyPOrBuilder> getReferrersOrBuilderList()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersOrBuilderList in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      addReferrersBuilder

      +
      public JObjectKeyP.Builder addReferrersBuilder()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      addReferrersBuilder

      +
      public JObjectKeyP.Builder addReferrersBuilder(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      getReferrersBuilderList

      +
      public List<JObjectKeyP.Builder> getReferrersBuilderList()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final CanDeleteReply.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final CanDeleteReply.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteReply.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/CanDeleteReply.html b/com/usatiuk/dhfs/repository/CanDeleteReply.html new file mode 100644 index 00000000..7ede5757 --- /dev/null +++ b/com/usatiuk/dhfs/repository/CanDeleteReply.html @@ -0,0 +1,764 @@ + + + + +CanDeleteReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class CanDeleteReply

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.CanDeleteReply
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, CanDeleteReplyOrBuilder, Serializable
+
+
+
public final class CanDeleteReply +extends com.google.protobuf.GeneratedMessageV3 +implements CanDeleteReplyOrBuilder
+
Protobuf type dhfs.sync.CanDeleteReply
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.CanDeleteReply
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    boolean
    + +
    +
    bool deletionCandidate = 2;
    +
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<CanDeleteReply>
    + +
     
    + +
    getReferrers(int index)
    +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    +
    int
    + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    + + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    + + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    + + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<CanDeleteReply>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      DELETIONCANDIDATE_FIELD_NUMBER

      +
      public static final int DELETIONCANDIDATE_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      REFERRERS_FIELD_NUMBER

      +
      public static final int REFERRERS_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDeletionCandidate

      +
      public boolean getDeletionCandidate()
      +
      bool deletionCandidate = 2;
      +
      +
      Specified by:
      +
      getDeletionCandidate in interface CanDeleteReplyOrBuilder
      +
      Returns:
      +
      The deletionCandidate.
      +
      +
      +
    • +
    • +
      +

      getReferrersList

      +
      public List<JObjectKeyP> getReferrersList()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersList in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      getReferrersOrBuilderList

      +
      public List<? extends JObjectKeyPOrBuilder> getReferrersOrBuilderList()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersOrBuilderList in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      getReferrersCount

      +
      public int getReferrersCount()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersCount in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      getReferrers

      +
      public JObjectKeyP getReferrers(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrers in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      getReferrersOrBuilder

      +
      public JObjectKeyPOrBuilder getReferrersOrBuilder(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
      Specified by:
      +
      getReferrersOrBuilder in interface CanDeleteReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static CanDeleteReply parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static CanDeleteReply parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteReply parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public CanDeleteReply.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static CanDeleteReply.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static CanDeleteReply.Builder newBuilder(CanDeleteReply prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public CanDeleteReply.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected CanDeleteReply.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static CanDeleteReply getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<CanDeleteReply> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<CanDeleteReply> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public CanDeleteReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/CanDeleteReplyOrBuilder.html b/com/usatiuk/dhfs/repository/CanDeleteReplyOrBuilder.html new file mode 100644 index 00000000..76243ee3 --- /dev/null +++ b/com/usatiuk/dhfs/repository/CanDeleteReplyOrBuilder.html @@ -0,0 +1,225 @@ + + + + +CanDeleteReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface CanDeleteReplyOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
CanDeleteReply, CanDeleteReply.Builder
+
+
+
public interface CanDeleteReplyOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
    +
    bool deletionCandidate = 2;
    +
    + +
    getReferrers(int index)
    +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    +
    int
    + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    + + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    + + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    + + +
    +
    repeated .dhfs.persistence.JObjectKeyP referrers = 3;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDeletionCandidate

      +
      boolean getDeletionCandidate()
      +
      bool deletionCandidate = 2;
      +
      +
      Returns:
      +
      The deletionCandidate.
      +
      +
      +
    • +
    • +
      +

      getReferrersList

      +
      List<JObjectKeyP> getReferrersList()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      getReferrers

      +
      JObjectKeyP getReferrers(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      getReferrersCount

      +
      int getReferrersCount()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      getReferrersOrBuilderList

      +
      List<? extends JObjectKeyPOrBuilder> getReferrersOrBuilderList()
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    • +
      +

      getReferrersOrBuilder

      +
      JObjectKeyPOrBuilder getReferrersOrBuilder(int index)
      +
      repeated .dhfs.persistence.JObjectKeyP referrers = 3;
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/CanDeleteRequest.Builder.html b/com/usatiuk/dhfs/repository/CanDeleteRequest.Builder.html new file mode 100644 index 00000000..590544aa --- /dev/null +++ b/com/usatiuk/dhfs/repository/CanDeleteRequest.Builder.html @@ -0,0 +1,579 @@ + + + + +CanDeleteRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class CanDeleteRequest.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<CanDeleteRequest.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder> +
com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, CanDeleteRequestOrBuilder, Cloneable
+
+
+
Enclosing class:
+
CanDeleteRequest
+
+
+
public static final class CanDeleteRequest.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder> +implements CanDeleteRequestOrBuilder
+
Protobuf type dhfs.sync.CanDeleteRequest
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public CanDeleteRequest.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public CanDeleteRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public CanDeleteRequest build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public CanDeleteRequest buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public CanDeleteRequest.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public CanDeleteRequest.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public CanDeleteRequest.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public CanDeleteRequest.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public CanDeleteRequest.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public CanDeleteRequest.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public CanDeleteRequest.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public CanDeleteRequest.Builder mergeFrom(CanDeleteRequest other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public CanDeleteRequest.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<CanDeleteRequest.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      hasName

      +
      public boolean hasName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      hasName in interface CanDeleteRequestOrBuilder
      +
      Returns:
      +
      Whether the name field is set.
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public JObjectKeyP getName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getName in interface CanDeleteRequestOrBuilder
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      setName

      +
      public CanDeleteRequest.Builder setName(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      setName

      +
      public CanDeleteRequest.Builder setName(JObjectKeyP.Builder builderForValue)
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      mergeName

      +
      public CanDeleteRequest.Builder mergeName(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      clearName

      +
      public CanDeleteRequest.Builder clearName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      getNameBuilder

      +
      public JObjectKeyP.Builder getNameBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      getNameOrBuilder

      +
      public JObjectKeyPOrBuilder getNameOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getNameOrBuilder in interface CanDeleteRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final CanDeleteRequest.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final CanDeleteRequest.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<CanDeleteRequest.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/CanDeleteRequest.html b/com/usatiuk/dhfs/repository/CanDeleteRequest.html new file mode 100644 index 00000000..feffb438 --- /dev/null +++ b/com/usatiuk/dhfs/repository/CanDeleteRequest.html @@ -0,0 +1,701 @@ + + + + +CanDeleteRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class CanDeleteRequest

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.CanDeleteRequest
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, CanDeleteRequestOrBuilder, Serializable
+
+
+
public final class CanDeleteRequest +extends com.google.protobuf.GeneratedMessageV3 +implements CanDeleteRequestOrBuilder
+
Protobuf type dhfs.sync.CanDeleteRequest
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.CanDeleteRequest
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    com.google.protobuf.Parser<CanDeleteRequest>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<CanDeleteRequest>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      NAME_FIELD_NUMBER

      +
      public static final int NAME_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      hasName

      +
      public boolean hasName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      hasName in interface CanDeleteRequestOrBuilder
      +
      Returns:
      +
      Whether the name field is set.
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public JObjectKeyP getName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getName in interface CanDeleteRequestOrBuilder
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      getNameOrBuilder

      +
      public JObjectKeyPOrBuilder getNameOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getNameOrBuilder in interface CanDeleteRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static CanDeleteRequest parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static CanDeleteRequest parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static CanDeleteRequest parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public CanDeleteRequest.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static CanDeleteRequest.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static CanDeleteRequest.Builder newBuilder(CanDeleteRequest prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public CanDeleteRequest.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected CanDeleteRequest.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static CanDeleteRequest getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<CanDeleteRequest> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<CanDeleteRequest> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public CanDeleteRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/CanDeleteRequestOrBuilder.html b/com/usatiuk/dhfs/repository/CanDeleteRequestOrBuilder.html new file mode 100644 index 00000000..6ef9922d --- /dev/null +++ b/com/usatiuk/dhfs/repository/CanDeleteRequestOrBuilder.html @@ -0,0 +1,193 @@ + + + + +CanDeleteRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface CanDeleteRequestOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
CanDeleteRequest, CanDeleteRequest.Builder
+
+
+
public interface CanDeleteRequestOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      hasName

      +
      boolean hasName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Returns:
      +
      Whether the name field is set.
      +
      +
      +
    • +
    • +
      +

      getName

      +
      JObjectKeyP getName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      getNameOrBuilder

      +
      JObjectKeyPOrBuilder getNameOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncApi.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncApi.html new file mode 100644 index 00000000..e6e949ca --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncApi.html @@ -0,0 +1,168 @@ + + + + +DhfsObjectSyncApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncApi

+
+
java.lang.Object +
com.usatiuk.dhfs.repository.DhfsObjectSyncApi
+
+
+
+
public final class DhfsObjectSyncApi +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      registerAllExtensions

      +
      public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)
      +
      +
    • +
    • +
      +

      registerAllExtensions

      +
      public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry)
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpc.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpc.html new file mode 100644 index 00000000..aad3e5a9 --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpc.html @@ -0,0 +1,181 @@ + + + + +DhfsObjectSyncGrpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface DhfsObjectSyncGrpc

+
+
+
+
All Superinterfaces:
+
io.quarkus.grpc.MutinyService
+
+
+
All Known Implementing Classes:
+
DhfsObjectSyncGrpcClient, RemoteObjectServiceServer
+
+
+
@Generated(value="by Mutiny Grpc generator", + comments="Source: dhfs_sync.proto") +public interface DhfsObjectSyncGrpc +extends io.quarkus.grpc.MutinyService
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcBean.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcBean.html new file mode 100644 index 00000000..265cb878 --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcBean.html @@ -0,0 +1,208 @@ + + + + +DhfsObjectSyncGrpcBean (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncGrpcBean

+
+ +
+
+
All Implemented Interfaces:
+
io.grpc.BindableService, io.quarkus.grpc.MutinyBean
+
+
+
@Generated(value="by Mutiny Grpc generator", + comments="Source: dhfs_sync.proto") +public class DhfsObjectSyncGrpcBean +extends MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase +implements io.grpc.BindableService, io.quarkus.grpc.MutinyBean
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcClient.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcClient.html new file mode 100644 index 00000000..6a836d5e --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcClient.html @@ -0,0 +1,257 @@ + + + + +DhfsObjectSyncGrpcClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncGrpcClient

+
+
java.lang.Object +
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
+
+
+
All Implemented Interfaces:
+
DhfsObjectSyncGrpc, io.quarkus.grpc.MutinyClient<MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub>, io.quarkus.grpc.MutinyService
+
+
+
@Generated(value="by Mutiny Grpc generator", + comments="Source: dhfs_sync.proto") +public class DhfsObjectSyncGrpcClient +extends Object +implements DhfsObjectSyncGrpc, io.quarkus.grpc.MutinyClient<MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.AsyncService.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.AsyncService.html new file mode 100644 index 00000000..eb1a85a4 --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.AsyncService.html @@ -0,0 +1,186 @@ + + + + +DhfsObjectSyncGrpcGrpc.AsyncService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface DhfsObjectSyncGrpcGrpc.AsyncService

+
+
+
+
All Known Implementing Classes:
+
DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
+
+
Enclosing class:
+
DhfsObjectSyncGrpcGrpc
+
+
+
public static interface DhfsObjectSyncGrpcGrpc.AsyncService
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html new file mode 100644 index 00000000..2fecf2ce --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html @@ -0,0 +1,216 @@ + + + + +DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub

+
+
java.lang.Object +
io.grpc.stub.AbstractStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub> +
io.grpc.stub.AbstractBlockingStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub> +
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub
+
+
+
+
+
+
Enclosing class:
+
DhfsObjectSyncGrpcGrpc
+
+
+
public static class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub +extends io.grpc.stub.AbstractBlockingStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub>
+
A stub to allow clients to do synchronous rpc calls to service DhfsObjectSyncGrpc.
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html new file mode 100644 index 00000000..0742fa28 --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html @@ -0,0 +1,216 @@ + + + + +DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub

+
+
java.lang.Object +
io.grpc.stub.AbstractStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub> +
io.grpc.stub.AbstractFutureStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub> +
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub
+
+
+
+
+
+
Enclosing class:
+
DhfsObjectSyncGrpcGrpc
+
+
+
public static class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub +extends io.grpc.stub.AbstractFutureStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub>
+
A stub to allow clients to do ListenableFuture-style rpc calls to service DhfsObjectSyncGrpc.
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    +

    Nested classes/interfaces inherited from class io.grpc.stub.AbstractStub

    +io.grpc.stub.AbstractStub.StubFactory<T extends io.grpc.stub.AbstractStub<T>>
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions)
    +
     
    +
    com.google.common.util.concurrent.ListenableFuture<CanDeleteReply>
    + +
     
    +
    com.google.common.util.concurrent.ListenableFuture<GetObjectReply>
    + +
     
    +
    com.google.common.util.concurrent.ListenableFuture<OpPushReply>
    + +
     
    +
    com.google.common.util.concurrent.ListenableFuture<PingReply>
    +
    ping(PingRequest request)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class io.grpc.stub.AbstractFutureStub

    +newStub, newStub
    +
    +

    Methods inherited from class io.grpc.stub.AbstractStub

    +getCallOptions, getChannel, withCallCredentials, withChannel, withCompression, withDeadline, withDeadlineAfter, withDeadlineAfter, withExecutor, withInterceptors, withMaxInboundMessageSize, withMaxOutboundMessageSize, withOnReadyThreshold, withOption, withWaitForReady
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html new file mode 100644 index 00000000..dd7b9d58 --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html @@ -0,0 +1,194 @@ + + + + +DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase

+
+
java.lang.Object +
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
+
+
+
All Implemented Interfaces:
+
DhfsObjectSyncGrpcGrpc.AsyncService, io.grpc.BindableService
+
+
+
Enclosing class:
+
DhfsObjectSyncGrpcGrpc
+
+
+
public abstract static class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase +extends Object +implements io.grpc.BindableService, DhfsObjectSyncGrpcGrpc.AsyncService
+
Base class for the server implementation of the service DhfsObjectSyncGrpc.
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DhfsObjectSyncGrpcImplBase

      +
      public DhfsObjectSyncGrpcImplBase()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      bindService

      +
      public io.grpc.ServerServiceDefinition bindService()
      +
      +
      Specified by:
      +
      bindService in interface io.grpc.BindableService
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html new file mode 100644 index 00000000..2c2f7702 --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html @@ -0,0 +1,224 @@ + + + + +DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub

+
+
java.lang.Object +
io.grpc.stub.AbstractStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub> +
io.grpc.stub.AbstractAsyncStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub> +
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub
+
+
+
+
+
+
Enclosing class:
+
DhfsObjectSyncGrpcGrpc
+
+
+
public static class DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub +extends io.grpc.stub.AbstractAsyncStub<DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub>
+
A stub to allow clients to do asynchronous rpc calls to service DhfsObjectSyncGrpc.
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    +

    Nested classes/interfaces inherited from class io.grpc.stub.AbstractStub

    +io.grpc.stub.AbstractStub.StubFactory<T extends io.grpc.stub.AbstractStub<T>>
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions)
    +
     
    +
    void
    +
    canDelete(CanDeleteRequest request, + io.grpc.stub.StreamObserver<CanDeleteReply> responseObserver)
    +
     
    +
    void
    +
    getObject(GetObjectRequest request, + io.grpc.stub.StreamObserver<GetObjectReply> responseObserver)
    +
     
    +
    void
    +
    opPush(OpPushRequest request, + io.grpc.stub.StreamObserver<OpPushReply> responseObserver)
    +
     
    +
    void
    +
    ping(PingRequest request, + io.grpc.stub.StreamObserver<PingReply> responseObserver)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class io.grpc.stub.AbstractAsyncStub

    +newStub, newStub
    +
    +

    Methods inherited from class io.grpc.stub.AbstractStub

    +getCallOptions, getChannel, withCallCredentials, withChannel, withCompression, withDeadline, withDeadlineAfter, withDeadlineAfter, withExecutor, withInterceptors, withMaxInboundMessageSize, withMaxOutboundMessageSize, withOnReadyThreshold, withOption, withWaitForReady
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.html b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.html new file mode 100644 index 00000000..85870424 --- /dev/null +++ b/com/usatiuk/dhfs/repository/DhfsObjectSyncGrpcGrpc.html @@ -0,0 +1,305 @@ + + + + +DhfsObjectSyncGrpcGrpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsObjectSyncGrpcGrpc

+
+
java.lang.Object +
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
+
+
+
@Generated(value="by gRPC proto compiler (version 1.69.1)", + comments="Source: dhfs_sync.proto") +public final class DhfsObjectSyncGrpcGrpc +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/GetObjectReply.Builder.html b/com/usatiuk/dhfs/repository/GetObjectReply.Builder.html new file mode 100644 index 00000000..fd5a36b9 --- /dev/null +++ b/com/usatiuk/dhfs/repository/GetObjectReply.Builder.html @@ -0,0 +1,691 @@ + + + + +GetObjectReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class GetObjectReply.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<GetObjectReply.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder> +
com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, GetObjectReplyOrBuilder, Cloneable
+
+
+
Enclosing class:
+
GetObjectReply
+
+
+
public static final class GetObjectReply.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder> +implements GetObjectReplyOrBuilder
+
Protobuf type dhfs.sync.GetObjectReply
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public GetObjectReply.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public GetObjectReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public GetObjectReply build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public GetObjectReply buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public GetObjectReply.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public GetObjectReply.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public GetObjectReply.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public GetObjectReply.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public GetObjectReply.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public GetObjectReply.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public GetObjectReply.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public GetObjectReply.Builder mergeFrom(GetObjectReply other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public GetObjectReply.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<GetObjectReply.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      hasChangelog

      +
      public boolean hasChangelog()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Specified by:
      +
      hasChangelog in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      Whether the changelog field is set.
      +
      +
      +
    • +
    • +
      +

      getChangelog

      +
      public ObjectChangelog getChangelog()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Specified by:
      +
      getChangelog in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      The changelog.
      +
      +
      +
    • +
    • +
      +

      setChangelog

      +
      public GetObjectReply.Builder setChangelog(ObjectChangelog value)
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
    • +
    • +
      +

      setChangelog

      +
      public GetObjectReply.Builder setChangelog(ObjectChangelog.Builder builderForValue)
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
    • +
    • +
      +

      mergeChangelog

      +
      public GetObjectReply.Builder mergeChangelog(ObjectChangelog value)
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
    • +
    • +
      +

      clearChangelog

      +
      public GetObjectReply.Builder clearChangelog()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
    • +
    • +
      +

      getChangelogBuilder

      +
      public ObjectChangelog.Builder getChangelogBuilder()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
    • +
    • +
      +

      getChangelogOrBuilder

      +
      public ObjectChangelogOrBuilder getChangelogOrBuilder()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Specified by:
      +
      getChangelogOrBuilder in interface GetObjectReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      hasPushedData

      +
      public boolean hasPushedData()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Specified by:
      +
      hasPushedData in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      Whether the pushedData field is set.
      +
      +
      +
    • +
    • +
      +

      getPushedData

      +
      public JDataRemoteDtoP getPushedData()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Specified by:
      +
      getPushedData in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      The pushedData.
      +
      +
      +
    • +
    • +
      +

      setPushedData

      +
      public GetObjectReply.Builder setPushedData(JDataRemoteDtoP value)
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
    • +
    • +
      +

      setPushedData

      +
      public GetObjectReply.Builder setPushedData(JDataRemoteDtoP.Builder builderForValue)
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
    • +
    • +
      +

      mergePushedData

      +
      public GetObjectReply.Builder mergePushedData(JDataRemoteDtoP value)
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
    • +
    • +
      +

      clearPushedData

      +
      public GetObjectReply.Builder clearPushedData()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
    • +
    • +
      +

      getPushedDataBuilder

      +
      public JDataRemoteDtoP.Builder getPushedDataBuilder()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
    • +
    • +
      +

      getPushedDataOrBuilder

      +
      public JDataRemoteDtoPOrBuilder getPushedDataOrBuilder()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Specified by:
      +
      getPushedDataOrBuilder in interface GetObjectReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final GetObjectReply.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final GetObjectReply.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectReply.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/GetObjectReply.html b/com/usatiuk/dhfs/repository/GetObjectReply.html new file mode 100644 index 00000000..39618cdc --- /dev/null +++ b/com/usatiuk/dhfs/repository/GetObjectReply.html @@ -0,0 +1,770 @@ + + + + +GetObjectReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class GetObjectReply

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.GetObjectReply
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, GetObjectReplyOrBuilder, Serializable
+
+
+
public final class GetObjectReply +extends com.google.protobuf.GeneratedMessageV3 +implements GetObjectReplyOrBuilder
+
Protobuf type dhfs.sync.GetObjectReply
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.GetObjectReply
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
    +
    .dhfs.persistence.ObjectChangelog changelog = 5;
    +
    + + +
    +
    .dhfs.persistence.ObjectChangelog changelog = 5;
    +
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<GetObjectReply>
    + +
     
    + + +
    +
    .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
    +
    + + +
    +
    .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
    +
    +
    int
    + +
     
    +
    boolean
    + +
    +
    .dhfs.persistence.ObjectChangelog changelog = 5;
    +
    +
    int
    + +
     
    +
    boolean
    + +
    +
    .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<GetObjectReply>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      CHANGELOG_FIELD_NUMBER

      +
      public static final int CHANGELOG_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      PUSHEDDATA_FIELD_NUMBER

      +
      public static final int PUSHEDDATA_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      hasChangelog

      +
      public boolean hasChangelog()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Specified by:
      +
      hasChangelog in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      Whether the changelog field is set.
      +
      +
      +
    • +
    • +
      +

      getChangelog

      +
      public ObjectChangelog getChangelog()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Specified by:
      +
      getChangelog in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      The changelog.
      +
      +
      +
    • +
    • +
      +

      getChangelogOrBuilder

      +
      public ObjectChangelogOrBuilder getChangelogOrBuilder()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Specified by:
      +
      getChangelogOrBuilder in interface GetObjectReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      hasPushedData

      +
      public boolean hasPushedData()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Specified by:
      +
      hasPushedData in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      Whether the pushedData field is set.
      +
      +
      +
    • +
    • +
      +

      getPushedData

      +
      public JDataRemoteDtoP getPushedData()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Specified by:
      +
      getPushedData in interface GetObjectReplyOrBuilder
      +
      Returns:
      +
      The pushedData.
      +
      +
      +
    • +
    • +
      +

      getPushedDataOrBuilder

      +
      public JDataRemoteDtoPOrBuilder getPushedDataOrBuilder()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Specified by:
      +
      getPushedDataOrBuilder in interface GetObjectReplyOrBuilder
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static GetObjectReply parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static GetObjectReply parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectReply parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public GetObjectReply.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static GetObjectReply.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static GetObjectReply.Builder newBuilder(GetObjectReply prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public GetObjectReply.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected GetObjectReply.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static GetObjectReply getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<GetObjectReply> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<GetObjectReply> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public GetObjectReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/GetObjectReplyOrBuilder.html b/com/usatiuk/dhfs/repository/GetObjectReplyOrBuilder.html new file mode 100644 index 00000000..fe6f2816 --- /dev/null +++ b/com/usatiuk/dhfs/repository/GetObjectReplyOrBuilder.html @@ -0,0 +1,237 @@ + + + + +GetObjectReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface GetObjectReplyOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
GetObjectReply, GetObjectReply.Builder
+
+
+
public interface GetObjectReplyOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    .dhfs.persistence.ObjectChangelog changelog = 5;
    +
    + + +
    +
    .dhfs.persistence.ObjectChangelog changelog = 5;
    +
    + + +
    +
    .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
    +
    + + +
    +
    .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.ObjectChangelog changelog = 5;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      hasChangelog

      +
      boolean hasChangelog()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Returns:
      +
      Whether the changelog field is set.
      +
      +
      +
    • +
    • +
      +

      getChangelog

      +
      ObjectChangelog getChangelog()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
      Returns:
      +
      The changelog.
      +
      +
      +
    • +
    • +
      +

      getChangelogOrBuilder

      +
      ObjectChangelogOrBuilder getChangelogOrBuilder()
      +
      .dhfs.persistence.ObjectChangelog changelog = 5;
      +
      +
    • +
    • +
      +

      hasPushedData

      +
      boolean hasPushedData()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Returns:
      +
      Whether the pushedData field is set.
      +
      +
      +
    • +
    • +
      +

      getPushedData

      +
      JDataRemoteDtoP getPushedData()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
      Returns:
      +
      The pushedData.
      +
      +
      +
    • +
    • +
      +

      getPushedDataOrBuilder

      +
      JDataRemoteDtoPOrBuilder getPushedDataOrBuilder()
      +
      .dhfs.persistence.JDataRemoteDtoP pushedData = 6;
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/GetObjectRequest.Builder.html b/com/usatiuk/dhfs/repository/GetObjectRequest.Builder.html new file mode 100644 index 00000000..4f2a3290 --- /dev/null +++ b/com/usatiuk/dhfs/repository/GetObjectRequest.Builder.html @@ -0,0 +1,579 @@ + + + + +GetObjectRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class GetObjectRequest.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<GetObjectRequest.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder> +
com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, GetObjectRequestOrBuilder, Cloneable
+
+
+
Enclosing class:
+
GetObjectRequest
+
+
+
public static final class GetObjectRequest.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder> +implements GetObjectRequestOrBuilder
+
Protobuf type dhfs.sync.GetObjectRequest
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public GetObjectRequest.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public GetObjectRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public GetObjectRequest build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public GetObjectRequest buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public GetObjectRequest.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public GetObjectRequest.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public GetObjectRequest.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public GetObjectRequest.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public GetObjectRequest.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public GetObjectRequest.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public GetObjectRequest.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public GetObjectRequest.Builder mergeFrom(GetObjectRequest other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public GetObjectRequest.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<GetObjectRequest.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      hasName

      +
      public boolean hasName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      hasName in interface GetObjectRequestOrBuilder
      +
      Returns:
      +
      Whether the name field is set.
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public JObjectKeyP getName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getName in interface GetObjectRequestOrBuilder
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      setName

      +
      public GetObjectRequest.Builder setName(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      setName

      +
      public GetObjectRequest.Builder setName(JObjectKeyP.Builder builderForValue)
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      mergeName

      +
      public GetObjectRequest.Builder mergeName(JObjectKeyP value)
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      clearName

      +
      public GetObjectRequest.Builder clearName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      getNameBuilder

      +
      public JObjectKeyP.Builder getNameBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    • +
      +

      getNameOrBuilder

      +
      public JObjectKeyPOrBuilder getNameOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getNameOrBuilder in interface GetObjectRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final GetObjectRequest.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final GetObjectRequest.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<GetObjectRequest.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/GetObjectRequest.html b/com/usatiuk/dhfs/repository/GetObjectRequest.html new file mode 100644 index 00000000..21b56d57 --- /dev/null +++ b/com/usatiuk/dhfs/repository/GetObjectRequest.html @@ -0,0 +1,701 @@ + + + + +GetObjectRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class GetObjectRequest

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.GetObjectRequest
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, GetObjectRequestOrBuilder, Serializable
+
+
+
public final class GetObjectRequest +extends com.google.protobuf.GeneratedMessageV3 +implements GetObjectRequestOrBuilder
+
Protobuf type dhfs.sync.GetObjectRequest
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.GetObjectRequest
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    com.google.protobuf.Parser<GetObjectRequest>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<GetObjectRequest>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      NAME_FIELD_NUMBER

      +
      public static final int NAME_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      hasName

      +
      public boolean hasName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      hasName in interface GetObjectRequestOrBuilder
      +
      Returns:
      +
      Whether the name field is set.
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public JObjectKeyP getName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getName in interface GetObjectRequestOrBuilder
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      getNameOrBuilder

      +
      public JObjectKeyPOrBuilder getNameOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Specified by:
      +
      getNameOrBuilder in interface GetObjectRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static GetObjectRequest parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static GetObjectRequest parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static GetObjectRequest parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public GetObjectRequest.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static GetObjectRequest.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static GetObjectRequest.Builder newBuilder(GetObjectRequest prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public GetObjectRequest.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected GetObjectRequest.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static GetObjectRequest getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<GetObjectRequest> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<GetObjectRequest> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public GetObjectRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/GetObjectRequestOrBuilder.html b/com/usatiuk/dhfs/repository/GetObjectRequestOrBuilder.html new file mode 100644 index 00000000..243420c9 --- /dev/null +++ b/com/usatiuk/dhfs/repository/GetObjectRequestOrBuilder.html @@ -0,0 +1,193 @@ + + + + +GetObjectRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface GetObjectRequestOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
GetObjectRequest, GetObjectRequest.Builder
+
+
+
public interface GetObjectRequestOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    + + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    boolean
    + +
    +
    .dhfs.persistence.JObjectKeyP name = 2;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      hasName

      +
      boolean hasName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Returns:
      +
      Whether the name field is set.
      +
      +
      +
    • +
    • +
      +

      getName

      +
      JObjectKeyP getName()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
      Returns:
      +
      The name.
      +
      +
      +
    • +
    • +
      +

      getNameOrBuilder

      +
      JObjectKeyPOrBuilder getNameOrBuilder()
      +
      .dhfs.persistence.JObjectKeyP name = 2;
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html b/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html new file mode 100644 index 00000000..14bfe186 --- /dev/null +++ b/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html @@ -0,0 +1,246 @@ + + + + +MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase

+
+
java.lang.Object +
com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
+
+
+
All Implemented Interfaces:
+
io.grpc.BindableService
+
+
+
Direct Known Subclasses:
+
DhfsObjectSyncGrpcBean
+
+
+
Enclosing class:
+
MutinyDhfsObjectSyncGrpcGrpc
+
+
+
public abstract static class MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase +extends Object +implements io.grpc.BindableService
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DhfsObjectSyncGrpcImplBase

      +
      public DhfsObjectSyncGrpcImplBase()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html b/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html new file mode 100644 index 00000000..9bd5cd4b --- /dev/null +++ b/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html @@ -0,0 +1,215 @@ + + + + +MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub

+
+
java.lang.Object +
io.grpc.stub.AbstractStub<MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub> +
com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub
+
+
+
+
+
All Implemented Interfaces:
+
io.quarkus.grpc.MutinyStub
+
+
+
Enclosing class:
+
MutinyDhfsObjectSyncGrpcGrpc
+
+
+
public static class MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub +extends io.grpc.stub.AbstractStub<MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub> +implements io.quarkus.grpc.MutinyStub
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.html b/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.html new file mode 100644 index 00000000..fbc780f4 --- /dev/null +++ b/com/usatiuk/dhfs/repository/MutinyDhfsObjectSyncGrpcGrpc.html @@ -0,0 +1,175 @@ + + + + +MutinyDhfsObjectSyncGrpcGrpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MutinyDhfsObjectSyncGrpcGrpc

+
+
java.lang.Object +
com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc
+
+
+
+
All Implemented Interfaces:
+
io.quarkus.grpc.MutinyGrpc
+
+
+
@Generated(value="by Mutiny Grpc generator", + comments="Source: dhfs_sync.proto") +public final class MutinyDhfsObjectSyncGrpcGrpc +extends Object +implements io.quarkus.grpc.MutinyGrpc
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpP.Builder.html b/com/usatiuk/dhfs/repository/OpP.Builder.html new file mode 100644 index 00000000..f323abb5 --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpP.Builder.html @@ -0,0 +1,519 @@ + + + + +OpP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpP.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<OpP.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder> +
com.usatiuk.dhfs.repository.OpP.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, OpPOrBuilder, Cloneable
+
+
+
Enclosing class:
+
OpP
+
+
+
public static final class OpP.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder> +implements OpPOrBuilder
+
Protobuf type dhfs.sync.OpP
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
    +
    bytes serializedData = 1;
    +
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + +
    mergeFrom(OpP other)
    +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setSerializedData(com.google.protobuf.ByteString value)
    +
    +
    bytes serializedData = 1;
    +
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public OpP.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public OpP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public OpP build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public OpP buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public OpP.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public OpP.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public OpP.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public OpP.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public OpP.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public OpP.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpP.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpP.Builder mergeFrom(OpP other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpP.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<OpP.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface OpPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      setSerializedData

      +
      public OpP.Builder setSerializedData(com.google.protobuf.ByteString value)
      +
      bytes serializedData = 1;
      +
      +
      Parameters:
      +
      value - The serializedData to set.
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      clearSerializedData

      +
      public OpP.Builder clearSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      This builder for chaining.
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final OpP.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final OpP.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OpP.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpP.html b/com/usatiuk/dhfs/repository/OpP.html new file mode 100644 index 00000000..ea12eb5c --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpP.html @@ -0,0 +1,667 @@ + + + + +OpP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpP

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.OpP
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, OpPOrBuilder, Serializable
+
+
+
public final class OpP +extends com.google.protobuf.GeneratedMessageV3 +implements OpPOrBuilder
+
Protobuf type dhfs.sync.OpP
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.OpP
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    +
    static OpP
    + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<OpP>
    + +
     
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + +
    newBuilder(OpP prototype)
    +
     
    + + +
     
    +
    protected OpP.Builder
    +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    +
    static OpP
    + +
     
    +
    static OpP
    +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static OpP
    +
    parseFrom(byte[] data)
    +
     
    +
    static OpP
    +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static OpP
    +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    +
    static OpP
    +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static OpP
    +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    +
    static OpP
    +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static OpP
    + +
     
    +
    static OpP
    +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static OpP
    + +
     
    +
    static OpP
    +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<OpP>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      SERIALIZEDDATA_FIELD_NUMBER

      +
      public static final int SERIALIZEDDATA_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getSerializedData

      +
      public com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Specified by:
      +
      getSerializedData in interface OpPOrBuilder
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static OpP parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static OpP parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpP parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public OpP.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static OpP.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static OpP.Builder newBuilder(OpP prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public OpP.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected OpP.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static OpP getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<OpP> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<OpP> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public OpP getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpPOrBuilder.html b/com/usatiuk/dhfs/repository/OpPOrBuilder.html new file mode 100644 index 00000000..01103289 --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpPOrBuilder.html @@ -0,0 +1,165 @@ + + + + +OpPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface OpPOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
OpP, OpP.Builder
+
+
+
public interface OpPOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    com.google.protobuf.ByteString
    + +
    +
    bytes serializedData = 1;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSerializedData

      +
      com.google.protobuf.ByteString getSerializedData()
      +
      bytes serializedData = 1;
      +
      +
      Returns:
      +
      The serializedData.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpPushReply.Builder.html b/com/usatiuk/dhfs/repository/OpPushReply.Builder.html new file mode 100644 index 00000000..f2d71d17 --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpPushReply.Builder.html @@ -0,0 +1,467 @@ + + + + +OpPushReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpPushReply.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<OpPushReply.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder> +
com.usatiuk.dhfs.repository.OpPushReply.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, OpPushReplyOrBuilder, Cloneable
+
+
+
Enclosing class:
+
OpPushReply
+
+
+
public static final class OpPushReply.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder> +implements OpPushReplyOrBuilder
+
Protobuf type dhfs.sync.OpPushReply
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public OpPushReply.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public OpPushReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public OpPushReply build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public OpPushReply buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public OpPushReply.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public OpPushReply.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public OpPushReply.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public OpPushReply.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public OpPushReply.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public OpPushReply.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpPushReply.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpPushReply.Builder mergeFrom(OpPushReply other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpPushReply.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<OpPushReply.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final OpPushReply.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final OpPushReply.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushReply.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpPushReply.html b/com/usatiuk/dhfs/repository/OpPushReply.html new file mode 100644 index 00000000..70c5bd31 --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpPushReply.html @@ -0,0 +1,618 @@ + + + + +OpPushReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpPushReply

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.OpPushReply
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, OpPushReplyOrBuilder, Serializable
+
+
+
public final class OpPushReply +extends com.google.protobuf.GeneratedMessageV3 +implements OpPushReplyOrBuilder
+
Protobuf type dhfs.sync.OpPushReply
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.OpPushReply
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<OpPushReply>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<OpPushReply>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static OpPushReply parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static OpPushReply parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushReply parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public OpPushReply.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static OpPushReply.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static OpPushReply.Builder newBuilder(OpPushReply prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public OpPushReply.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected OpPushReply.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static OpPushReply getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<OpPushReply> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<OpPushReply> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public OpPushReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpPushReplyOrBuilder.html b/com/usatiuk/dhfs/repository/OpPushReplyOrBuilder.html new file mode 100644 index 00000000..5357d9aa --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpPushReplyOrBuilder.html @@ -0,0 +1,127 @@ + + + + +OpPushReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface OpPushReplyOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
OpPushReply, OpPushReply.Builder
+
+
+
public interface OpPushReplyOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpPushRequest.Builder.html b/com/usatiuk/dhfs/repository/OpPushRequest.Builder.html new file mode 100644 index 00000000..ab4bb939 --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpPushRequest.Builder.html @@ -0,0 +1,711 @@ + + + + +OpPushRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpPushRequest.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<OpPushRequest.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder> +
com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, OpPushRequestOrBuilder, Cloneable
+
+
+
Enclosing class:
+
OpPushRequest
+
+
+
public static final class OpPushRequest.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder> +implements OpPushRequestOrBuilder
+
Protobuf type dhfs.sync.OpPushRequest
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public OpPushRequest.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public OpPushRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public OpPushRequest build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public OpPushRequest buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public OpPushRequest.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public OpPushRequest.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public OpPushRequest.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public OpPushRequest.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public OpPushRequest.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public OpPushRequest.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpPushRequest.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpPushRequest.Builder mergeFrom(OpPushRequest other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public OpPushRequest.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<OpPushRequest.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getMsgList

      +
      public List<OpP> getMsgList()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgList in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      getMsgCount

      +
      public int getMsgCount()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgCount in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      getMsg

      +
      public OpP getMsg(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsg in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      setMsg

      +
      public OpPushRequest.Builder setMsg(int index, + OpP value)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      setMsg

      +
      public OpPushRequest.Builder setMsg(int index, + OpP.Builder builderForValue)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      addMsg

      +
      public OpPushRequest.Builder addMsg(OpP value)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      addMsg

      +
      public OpPushRequest.Builder addMsg(int index, + OpP value)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      addMsg

      +
      public OpPushRequest.Builder addMsg(OpP.Builder builderForValue)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      addMsg

      +
      public OpPushRequest.Builder addMsg(int index, + OpP.Builder builderForValue)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      addAllMsg

      +
      public OpPushRequest.Builder addAllMsg(Iterable<? extends OpP> values)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      clearMsg

      +
      public OpPushRequest.Builder clearMsg()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      removeMsg

      +
      public OpPushRequest.Builder removeMsg(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      getMsgBuilder

      +
      public OpP.Builder getMsgBuilder(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      getMsgOrBuilder

      +
      public OpPOrBuilder getMsgOrBuilder(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgOrBuilder in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      getMsgOrBuilderList

      +
      public List<? extends OpPOrBuilder> getMsgOrBuilderList()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgOrBuilderList in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      addMsgBuilder

      +
      public OpP.Builder addMsgBuilder()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      addMsgBuilder

      +
      public OpP.Builder addMsgBuilder(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      getMsgBuilderList

      +
      public List<OpP.Builder> getMsgBuilderList()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final OpPushRequest.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final OpPushRequest.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OpPushRequest.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpPushRequest.html b/com/usatiuk/dhfs/repository/OpPushRequest.html new file mode 100644 index 00000000..b463db5b --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpPushRequest.html @@ -0,0 +1,729 @@ + + + + +OpPushRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class OpPushRequest

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.OpPushRequest
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, OpPushRequestOrBuilder, Serializable
+
+
+
public final class OpPushRequest +extends com.google.protobuf.GeneratedMessageV3 +implements OpPushRequestOrBuilder
+
Protobuf type dhfs.sync.OpPushRequest
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.OpPushRequest
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final int
    + +
     
    +
    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    + +
    getMsg(int index)
    +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    +
    int
    + +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    + + +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    + +
    getMsgOrBuilder(int index)
    +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    +
    List<? extends OpPOrBuilder>
    + +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    +
    com.google.protobuf.Parser<OpPushRequest>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<OpPushRequest>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      MSG_FIELD_NUMBER

      +
      public static final int MSG_FIELD_NUMBER
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getMsgList

      +
      public List<OpP> getMsgList()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgList in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      getMsgOrBuilderList

      +
      public List<? extends OpPOrBuilder> getMsgOrBuilderList()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgOrBuilderList in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      getMsgCount

      +
      public int getMsgCount()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgCount in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      getMsg

      +
      public OpP getMsg(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsg in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      getMsgOrBuilder

      +
      public OpPOrBuilder getMsgOrBuilder(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
      Specified by:
      +
      getMsgOrBuilder in interface OpPushRequestOrBuilder
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static OpPushRequest parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static OpPushRequest parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static OpPushRequest parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public OpPushRequest.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static OpPushRequest.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static OpPushRequest.Builder newBuilder(OpPushRequest prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public OpPushRequest.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected OpPushRequest.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static OpPushRequest getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<OpPushRequest> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<OpPushRequest> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public OpPushRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/OpPushRequestOrBuilder.html b/com/usatiuk/dhfs/repository/OpPushRequestOrBuilder.html new file mode 100644 index 00000000..ccc0ff5a --- /dev/null +++ b/com/usatiuk/dhfs/repository/OpPushRequestOrBuilder.html @@ -0,0 +1,209 @@ + + + + +OpPushRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface OpPushRequestOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
OpPushRequest, OpPushRequest.Builder
+
+
+
public interface OpPushRequestOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    getMsg(int index)
    +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    +
    int
    + +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    + + +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    + +
    getMsgOrBuilder(int index)
    +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    +
    List<? extends OpPOrBuilder>
    + +
    +
    repeated .dhfs.sync.OpP msg = 2;
    +
    +
    +
    +
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getMsgList

      +
      List<OpP> getMsgList()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      getMsg

      +
      OpP getMsg(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      getMsgCount

      +
      int getMsgCount()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      getMsgOrBuilderList

      +
      List<? extends OpPOrBuilder> getMsgOrBuilderList()
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    • +
      +

      getMsgOrBuilder

      +
      OpPOrBuilder getMsgOrBuilder(int index)
      +
      repeated .dhfs.sync.OpP msg = 2;
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/PingReply.Builder.html b/com/usatiuk/dhfs/repository/PingReply.Builder.html new file mode 100644 index 00000000..dd9561fa --- /dev/null +++ b/com/usatiuk/dhfs/repository/PingReply.Builder.html @@ -0,0 +1,467 @@ + + + + +PingReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PingReply.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<PingReply.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder> +
com.usatiuk.dhfs.repository.PingReply.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PingReplyOrBuilder, Cloneable
+
+
+
Enclosing class:
+
PingReply
+
+
+
public static final class PingReply.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder> +implements PingReplyOrBuilder
+
Protobuf type dhfs.sync.PingReply
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public PingReply.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PingReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public PingReply build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public PingReply buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public PingReply.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public PingReply.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public PingReply.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public PingReply.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public PingReply.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public PingReply.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PingReply.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PingReply.Builder mergeFrom(PingReply other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PingReply.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PingReply.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final PingReply.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final PingReply.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PingReply.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/PingReply.html b/com/usatiuk/dhfs/repository/PingReply.html new file mode 100644 index 00000000..fdc58d5d --- /dev/null +++ b/com/usatiuk/dhfs/repository/PingReply.html @@ -0,0 +1,618 @@ + + + + +PingReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PingReply

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.PingReply
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PingReplyOrBuilder, Serializable
+
+
+
public final class PingReply +extends com.google.protobuf.GeneratedMessageV3 +implements PingReplyOrBuilder
+
Protobuf type dhfs.sync.PingReply
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.PingReply
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    +
    static PingReply
    + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<PingReply>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + +
    newBuilder(PingReply prototype)
    +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    +
    static PingReply
    + +
     
    +
    static PingReply
    +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PingReply
    +
    parseFrom(byte[] data)
    +
     
    +
    static PingReply
    +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PingReply
    +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    +
    static PingReply
    +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PingReply
    +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    +
    static PingReply
    +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PingReply
    + +
     
    +
    static PingReply
    +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static PingReply
    + +
     
    +
    static PingReply
    +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<PingReply>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PingReply parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PingReply parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingReply parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public PingReply.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PingReply.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PingReply.Builder newBuilder(PingReply prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public PingReply.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected PingReply.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static PingReply getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<PingReply> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<PingReply> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PingReply getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/PingReplyOrBuilder.html b/com/usatiuk/dhfs/repository/PingReplyOrBuilder.html new file mode 100644 index 00000000..a1e49503 --- /dev/null +++ b/com/usatiuk/dhfs/repository/PingReplyOrBuilder.html @@ -0,0 +1,127 @@ + + + + +PingReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PingReplyOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
PingReply, PingReply.Builder
+
+
+
public interface PingReplyOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/PingRequest.Builder.html b/com/usatiuk/dhfs/repository/PingRequest.Builder.html new file mode 100644 index 00000000..5a758736 --- /dev/null +++ b/com/usatiuk/dhfs/repository/PingRequest.Builder.html @@ -0,0 +1,467 @@ + + + + +PingRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PingRequest.Builder

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite.Builder +
com.google.protobuf.AbstractMessage.Builder<PingRequest.Builder> +
com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder> +
com.usatiuk.dhfs.repository.PingRequest.Builder
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PingRequestOrBuilder, Cloneable
+
+
+
Enclosing class:
+
PingRequest
+
+
+
public static final class PingRequest.Builder +extends com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder> +implements PingRequestOrBuilder
+
Protobuf type dhfs.sync.PingRequest
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
    +
     
    + +
    clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
    +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + +
    mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    mergeFrom(com.google.protobuf.Message other)
    +
     
    + + +
     
    + +
    mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    + +
    setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
    +
     
    + +
    setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
    +
     
    + +
    setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder

    +getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage.Builder

    +findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

    +addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
    +
    +

    Methods inherited from class java.lang.Object

    +equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.Message.Builder

    +mergeDelimitedFrom, mergeDelimitedFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite.Builder

    +mergeFrom
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clear

      +
      public PingRequest.Builder clear()
      +
      +
      Specified by:
      +
      clear in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clear in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDescriptorForType

      +
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      +
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      +
      Overrides:
      +
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PingRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    • +
      +

      build

      +
      public PingRequest build()
      +
      +
      Specified by:
      +
      build in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      build in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      buildPartial

      +
      public PingRequest buildPartial()
      +
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      buildPartial in interface com.google.protobuf.MessageLite.Builder
      +
      +
      +
    • +
    • +
      +

      clone

      +
      public PingRequest.Builder clone()
      +
      +
      Specified by:
      +
      clone in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      clone in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setField

      +
      public PingRequest.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      setField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearField

      +
      public PingRequest.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      +
      +
      Specified by:
      +
      clearField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      clearOneof

      +
      public PingRequest.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      +
      +
      Specified by:
      +
      clearOneof in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      setRepeatedField

      +
      public PingRequest.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + Object value)
      +
      +
      Specified by:
      +
      setRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      addRepeatedField

      +
      public PingRequest.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + Object value)
      +
      +
      Specified by:
      +
      addRepeatedField in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PingRequest.Builder mergeFrom(com.google.protobuf.Message other)
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PingRequest.Builder mergeFrom(PingRequest other)
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeFrom

      +
      public PingRequest.Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.Message.Builder
      +
      Specified by:
      +
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      +
      Overrides:
      +
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PingRequest.Builder>
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      setUnknownFields

      +
      public final PingRequest.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      setUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    • +
      +

      mergeUnknownFields

      +
      public final PingRequest.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      +
      +
      Specified by:
      +
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      +
      Overrides:
      +
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<PingRequest.Builder>
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/PingRequest.html b/com/usatiuk/dhfs/repository/PingRequest.html new file mode 100644 index 00000000..7c2ec4fe --- /dev/null +++ b/com/usatiuk/dhfs/repository/PingRequest.html @@ -0,0 +1,618 @@ + + + + +PingRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PingRequest

+
+
java.lang.Object +
com.google.protobuf.AbstractMessageLite +
com.google.protobuf.AbstractMessage +
com.google.protobuf.GeneratedMessageV3 +
com.usatiuk.dhfs.repository.PingRequest
+
+
+
+
+
+
+
All Implemented Interfaces:
+
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, PingRequestOrBuilder, Serializable
+
+
+
public final class PingRequest +extends com.google.protobuf.GeneratedMessageV3 +implements PingRequestOrBuilder
+
Protobuf type dhfs.sync.PingRequest
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    Nested Classes
    +
    +
    Modifier and Type
    +
    Class
    +
    Description
    +
    static final class 
    + +
    +
    Protobuf type dhfs.sync.PingRequest
    +
    +
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    +com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
    +
    +

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    +com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    +

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    +alwaysUseFieldBuilders, unknownFields
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessage

    +memoizedSize
    +
    +

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    +memoizedHashCode
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    + +
     
    + + +
     
    + + +
     
    +
    static final com.google.protobuf.Descriptors.Descriptor
    + +
     
    +
    com.google.protobuf.Parser<PingRequest>
    + +
     
    +
    int
    + +
     
    +
    int
    + +
     
    +
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    + +
     
    +
    final boolean
    + +
     
    + + +
     
    + + +
     
    + + +
     
    + +
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
    +
     
    +
    protected Object
    +
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
    +
     
    + + +
     
    + +
    parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(byte[] data)
    +
     
    + +
    parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data)
    +
     
    + +
    parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input)
    +
     
    + +
    parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    + + +
     
    + +
    parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry)
    +
     
    +
    static com.google.protobuf.Parser<PingRequest>
    + +
     
    + + +
     
    +
    void
    +
    writeTo(com.google.protobuf.CodedOutputStream output)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    +canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessage

    +findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
    +
    +

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    +addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.google.protobuf.MessageLite

    +toByteArray, toByteString, writeDelimitedTo, writeTo
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newInstance

      +
      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      +
      +
      Overrides:
      +
      newInstance in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDescriptor

      +
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      +
      +
    • +
    • +
      +

      internalGetFieldAccessorTable

      +
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      +
      +
      Specified by:
      +
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      isInitialized

      +
      public final boolean isInitialized()
      +
      +
      Specified by:
      +
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Overrides:
      +
      isInitialized in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      writeTo

      +
      public void writeTo(com.google.protobuf.CodedOutputStream output) + throws IOException
      +
      +
      Specified by:
      +
      writeTo in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      writeTo in class com.google.protobuf.GeneratedMessageV3
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getSerializedSize

      +
      public int getSerializedSize()
      +
      +
      Specified by:
      +
      getSerializedSize in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public boolean equals(Object obj)
      +
      +
      Specified by:
      +
      equals in interface com.google.protobuf.Message
      +
      Overrides:
      +
      equals in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public int hashCode()
      +
      +
      Specified by:
      +
      hashCode in interface com.google.protobuf.Message
      +
      Overrides:
      +
      hashCode in class com.google.protobuf.AbstractMessage
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException
      +
      +
      Throws:
      +
      com.google.protobuf.InvalidProtocolBufferException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PingRequest parseDelimitedFrom(InputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseDelimitedFrom

      +
      public static PingRequest parseDelimitedFrom(InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(com.google.protobuf.CodedInputStream input) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      parseFrom

      +
      public static PingRequest parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      public PingRequest.Builder newBuilderForType()
      +
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      newBuilderForType in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PingRequest.Builder newBuilder()
      +
      +
    • +
    • +
      +

      newBuilder

      +
      public static PingRequest.Builder newBuilder(PingRequest prototype)
      +
      +
    • +
    • +
      +

      toBuilder

      +
      public PingRequest.Builder toBuilder()
      +
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.Message
      +
      Specified by:
      +
      toBuilder in interface com.google.protobuf.MessageLite
      +
      +
      +
    • +
    • +
      +

      newBuilderForType

      +
      protected PingRequest.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      +
      +
      Specified by:
      +
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstance

      +
      public static PingRequest getDefaultInstance()
      +
      +
    • +
    • +
      +

      parser

      +
      public static com.google.protobuf.Parser<PingRequest> parser()
      +
      +
    • +
    • +
      +

      getParserForType

      +
      public com.google.protobuf.Parser<PingRequest> getParserForType()
      +
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.Message
      +
      Specified by:
      +
      getParserForType in interface com.google.protobuf.MessageLite
      +
      Overrides:
      +
      getParserForType in class com.google.protobuf.GeneratedMessageV3
      +
      +
      +
    • +
    • +
      +

      getDefaultInstanceForType

      +
      public PingRequest getDefaultInstanceForType()
      +
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      +
      Specified by:
      +
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/PingRequestOrBuilder.html b/com/usatiuk/dhfs/repository/PingRequestOrBuilder.html new file mode 100644 index 00000000..03e92618 --- /dev/null +++ b/com/usatiuk/dhfs/repository/PingRequestOrBuilder.html @@ -0,0 +1,127 @@ + + + + +PingRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PingRequestOrBuilder

+
+
+
+
All Superinterfaces:
+
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
+
+
+
All Known Implementing Classes:
+
PingRequest, PingRequest.Builder
+
+
+
public interface PingRequestOrBuilder +extends com.google.protobuf.MessageOrBuilder
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    +isInitialized
    +
    +

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    +findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/CanDeleteReply.Builder.html b/com/usatiuk/dhfs/repository/class-use/CanDeleteReply.Builder.html new file mode 100644 index 00000000..64fa9e76 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/CanDeleteReply.Builder.html @@ -0,0 +1,199 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.CanDeleteReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.CanDeleteReply.Builder

+
+
Packages that use CanDeleteReply.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/CanDeleteReply.html b/com/usatiuk/dhfs/repository/class-use/CanDeleteReply.html new file mode 100644 index 00000000..307b737b --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/CanDeleteReply.html @@ -0,0 +1,227 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.CanDeleteReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.CanDeleteReply

+
+
Packages that use CanDeleteReply
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/CanDeleteReplyOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/CanDeleteReplyOrBuilder.html new file mode 100644 index 00000000..c5bf691b --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/CanDeleteReplyOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder

+
+
Packages that use CanDeleteReplyOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.Builder.html b/com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.Builder.html new file mode 100644 index 00000000..077d6c58 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.Builder.html @@ -0,0 +1,160 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.CanDeleteRequest.Builder

+
+
Packages that use CanDeleteRequest.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.html b/com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.html new file mode 100644 index 00000000..3cfbff23 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/CanDeleteRequest.html @@ -0,0 +1,217 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.CanDeleteRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.CanDeleteRequest

+
+
Packages that use CanDeleteRequest
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/CanDeleteRequestOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/CanDeleteRequestOrBuilder.html new file mode 100644 index 00000000..209c1600 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/CanDeleteRequestOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.CanDeleteRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.CanDeleteRequestOrBuilder

+
+
Packages that use CanDeleteRequestOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncApi.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncApi.html new file mode 100644 index 00000000..57173469 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncApi.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncApi

+
+No usage of com.usatiuk.dhfs.repository.DhfsObjectSyncApi
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpc.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpc.html new file mode 100644 index 00000000..a349437e --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpc.html @@ -0,0 +1,103 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpc

+
+
Packages that use DhfsObjectSyncGrpc
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcBean.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcBean.html new file mode 100644 index 00000000..31050c10 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcBean.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcBean (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcBean

+
+No usage of com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcBean
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcClient.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcClient.html new file mode 100644 index 00000000..33aef3e2 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcClient.html @@ -0,0 +1,87 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient

+
+
Packages that use DhfsObjectSyncGrpcClient
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.AsyncService.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.AsyncService.html new file mode 100644 index 00000000..82a19fa5 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.AsyncService.html @@ -0,0 +1,98 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.AsyncService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.AsyncService

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html new file mode 100644 index 00000000..d7436c25 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub.html @@ -0,0 +1,110 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub

+
+ +
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html new file mode 100644 index 00000000..e02ba22b --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub.html @@ -0,0 +1,93 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html new file mode 100644 index 00000000..9de70bae --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase

+
+No usage of com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html new file mode 100644 index 00000000..86d67895 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub.html @@ -0,0 +1,93 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.html b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.html new file mode 100644 index 00000000..fdd31b53 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/DhfsObjectSyncGrpcGrpc.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc

+
+No usage of com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/GetObjectReply.Builder.html b/com/usatiuk/dhfs/repository/class-use/GetObjectReply.Builder.html new file mode 100644 index 00000000..718e0c25 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/GetObjectReply.Builder.html @@ -0,0 +1,180 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.GetObjectReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.GetObjectReply.Builder

+
+
Packages that use GetObjectReply.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/GetObjectReply.html b/com/usatiuk/dhfs/repository/class-use/GetObjectReply.html new file mode 100644 index 00000000..797c6160 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/GetObjectReply.html @@ -0,0 +1,241 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.GetObjectReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.GetObjectReply

+
+
Packages that use GetObjectReply
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/GetObjectReplyOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/GetObjectReplyOrBuilder.html new file mode 100644 index 00000000..63d0843f --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/GetObjectReplyOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder

+
+
Packages that use GetObjectReplyOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/GetObjectRequest.Builder.html b/com/usatiuk/dhfs/repository/class-use/GetObjectRequest.Builder.html new file mode 100644 index 00000000..315b0262 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/GetObjectRequest.Builder.html @@ -0,0 +1,160 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.GetObjectRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.GetObjectRequest.Builder

+
+
Packages that use GetObjectRequest.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/GetObjectRequest.html b/com/usatiuk/dhfs/repository/class-use/GetObjectRequest.html new file mode 100644 index 00000000..c6d846b1 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/GetObjectRequest.html @@ -0,0 +1,217 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.GetObjectRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.GetObjectRequest

+
+
Packages that use GetObjectRequest
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/GetObjectRequestOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/GetObjectRequestOrBuilder.html new file mode 100644 index 00000000..abca8732 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/GetObjectRequestOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.GetObjectRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.GetObjectRequestOrBuilder

+
+
Packages that use GetObjectRequestOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html b/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html new file mode 100644 index 00000000..9828a70b --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase.html @@ -0,0 +1,98 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html b/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html new file mode 100644 index 00000000..68f6e361 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub.html @@ -0,0 +1,119 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.html b/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.html new file mode 100644 index 00000000..5f66add8 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/MutinyDhfsObjectSyncGrpcGrpc.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc

+
+No usage of com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpP.Builder.html b/com/usatiuk/dhfs/repository/class-use/OpP.Builder.html new file mode 100644 index 00000000..b3e15fe3 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpP.Builder.html @@ -0,0 +1,199 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.OpP.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.OpP.Builder

+
+
Packages that use OpP.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpP.html b/com/usatiuk/dhfs/repository/class-use/OpP.html new file mode 100644 index 00000000..67628f70 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpP.html @@ -0,0 +1,248 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.OpP (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.OpP

+
+
Packages that use OpP
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpPOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/OpPOrBuilder.html new file mode 100644 index 00000000..257687bc --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpPOrBuilder.html @@ -0,0 +1,136 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.OpPOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.OpPOrBuilder

+
+
Packages that use OpPOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpPushReply.Builder.html b/com/usatiuk/dhfs/repository/class-use/OpPushReply.Builder.html new file mode 100644 index 00000000..347c5edd --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpPushReply.Builder.html @@ -0,0 +1,140 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.OpPushReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.OpPushReply.Builder

+
+
Packages that use OpPushReply.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpPushReply.html b/com/usatiuk/dhfs/repository/class-use/OpPushReply.html new file mode 100644 index 00000000..b804f21d --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpPushReply.html @@ -0,0 +1,233 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.OpPushReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.OpPushReply

+
+
Packages that use OpPushReply
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpPushReplyOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/OpPushReplyOrBuilder.html new file mode 100644 index 00000000..53549afb --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpPushReplyOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.OpPushReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.OpPushReplyOrBuilder

+
+
Packages that use OpPushReplyOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpPushRequest.Builder.html b/com/usatiuk/dhfs/repository/class-use/OpPushRequest.Builder.html new file mode 100644 index 00000000..b0e0b6d0 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpPushRequest.Builder.html @@ -0,0 +1,189 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.OpPushRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.OpPushRequest.Builder

+
+
Packages that use OpPushRequest.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpPushRequest.html b/com/usatiuk/dhfs/repository/class-use/OpPushRequest.html new file mode 100644 index 00000000..c56cc5e4 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpPushRequest.html @@ -0,0 +1,217 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.OpPushRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.OpPushRequest

+
+
Packages that use OpPushRequest
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/OpPushRequestOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/OpPushRequestOrBuilder.html new file mode 100644 index 00000000..5cdf9864 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/OpPushRequestOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.OpPushRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.OpPushRequestOrBuilder

+
+
Packages that use OpPushRequestOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/PingReply.Builder.html b/com/usatiuk/dhfs/repository/class-use/PingReply.Builder.html new file mode 100644 index 00000000..f1545442 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/PingReply.Builder.html @@ -0,0 +1,140 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.PingReply.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.PingReply.Builder

+
+
Packages that use PingReply.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/PingReply.html b/com/usatiuk/dhfs/repository/class-use/PingReply.html new file mode 100644 index 00000000..3106b6c8 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/PingReply.html @@ -0,0 +1,223 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.PingReply (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.PingReply

+
+
Packages that use PingReply
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/PingReplyOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/PingReplyOrBuilder.html new file mode 100644 index 00000000..d51ff03f --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/PingReplyOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.PingReplyOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.PingReplyOrBuilder

+
+
Packages that use PingReplyOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/PingRequest.Builder.html b/com/usatiuk/dhfs/repository/class-use/PingRequest.Builder.html new file mode 100644 index 00000000..e51514aa --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/PingRequest.Builder.html @@ -0,0 +1,140 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.PingRequest.Builder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.PingRequest.Builder

+
+
Packages that use PingRequest.Builder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/PingRequest.html b/com/usatiuk/dhfs/repository/class-use/PingRequest.html new file mode 100644 index 00000000..bee39850 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/PingRequest.html @@ -0,0 +1,217 @@ + + + + +Uses of Class com.usatiuk.dhfs.repository.PingRequest (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.repository.PingRequest

+
+
Packages that use PingRequest
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/class-use/PingRequestOrBuilder.html b/com/usatiuk/dhfs/repository/class-use/PingRequestOrBuilder.html new file mode 100644 index 00000000..0ba3d233 --- /dev/null +++ b/com/usatiuk/dhfs/repository/class-use/PingRequestOrBuilder.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface com.usatiuk.dhfs.repository.PingRequestOrBuilder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.repository.PingRequestOrBuilder

+
+
Packages that use PingRequestOrBuilder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/package-summary.html b/com/usatiuk/dhfs/repository/package-summary.html new file mode 100644 index 00000000..7d17e6a4 --- /dev/null +++ b/com/usatiuk/dhfs/repository/package-summary.html @@ -0,0 +1,231 @@ + + + + +com.usatiuk.dhfs.repository (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.repository

+
+
+
package com.usatiuk.dhfs.repository
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/package-tree.html b/com/usatiuk/dhfs/repository/package-tree.html new file mode 100644 index 00000000..8c0c8e34 --- /dev/null +++ b/com/usatiuk/dhfs/repository/package-tree.html @@ -0,0 +1,175 @@ + + + + +com.usatiuk.dhfs.repository Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.repository

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/repository/package-use.html b/com/usatiuk/dhfs/repository/package-use.html new file mode 100644 index 00000000..667595de --- /dev/null +++ b/com/usatiuk/dhfs/repository/package-use.html @@ -0,0 +1,258 @@ + + + + +Uses of Package com.usatiuk.dhfs.repository (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.repository

+
+
Packages that use com.usatiuk.dhfs.repository
+
+
Package
+
Description
+ +
 
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.html b/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.html new file mode 100644 index 00000000..917d5ac7 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.html @@ -0,0 +1,213 @@ + + + + +RemoteObjectServiceClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteObjectServiceClient

+
+
java.lang.Object +
com.usatiuk.dhfs.rpc.RemoteObjectServiceClient
+
+
+
+
@ApplicationScoped +public class RemoteObjectServiceClient +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.html b/com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.html new file mode 100644 index 00000000..7a62140a --- /dev/null +++ b/com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.html @@ -0,0 +1,226 @@ + + + + +RemoteObjectServiceServer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteObjectServiceServer

+
+
java.lang.Object +
com.usatiuk.dhfs.rpc.RemoteObjectServiceServer
+
+
+
+
All Implemented Interfaces:
+
DhfsObjectSyncGrpc, io.quarkus.grpc.MutinyService
+
+
+
@RolesAllowed("cluster-member") +public class RemoteObjectServiceServer +extends Object +implements DhfsObjectSyncGrpc
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.html b/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.html new file mode 100644 index 00000000..9ea0df7e --- /dev/null +++ b/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.html @@ -0,0 +1,213 @@ + + + + +RemoteObjectServiceServerImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RemoteObjectServiceServerImpl

+
+
java.lang.Object +
com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl
+
+
+
+
@ApplicationScoped +public class RemoteObjectServiceServerImpl +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/RpcChannelFactory.html b/com/usatiuk/dhfs/rpc/RpcChannelFactory.html new file mode 100644 index 00000000..197af314 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/RpcChannelFactory.html @@ -0,0 +1,151 @@ + + + + +RpcChannelFactory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RpcChannelFactory

+
+
java.lang.Object +
com.usatiuk.dhfs.rpc.RpcChannelFactory
+
+
+
+
@ApplicationScoped +public class RpcChannelFactory +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      RpcChannelFactory

      +
      public RpcChannelFactory()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/RpcClientFactory.ObjectSyncClientFunction.html b/com/usatiuk/dhfs/rpc/RpcClientFactory.ObjectSyncClientFunction.html new file mode 100644 index 00000000..b673a998 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/RpcClientFactory.ObjectSyncClientFunction.html @@ -0,0 +1,154 @@ + + + + +RpcClientFactory.ObjectSyncClientFunction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface RpcClientFactory.ObjectSyncClientFunction<R>

+
+
+
+
Enclosing class:
+
RpcClientFactory
+
+
+
Functional Interface:
+
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
+
+
+
@FunctionalInterface +public static interface RpcClientFactory.ObjectSyncClientFunction<R>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/RpcClientFactory.html b/com/usatiuk/dhfs/rpc/RpcClientFactory.html new file mode 100644 index 00000000..bbbdaf19 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/RpcClientFactory.html @@ -0,0 +1,256 @@ + + + + +RpcClientFactory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RpcClientFactory

+
+
java.lang.Object +
com.usatiuk.dhfs.rpc.RpcClientFactory
+
+
+
+
All Implemented Interfaces:
+
PeerDisconnectedEventListener
+
+
+
@ApplicationScoped +public class RpcClientFactory +extends Object +implements PeerDisconnectedEventListener
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.html b/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.html new file mode 100644 index 00000000..59f9f6ba --- /dev/null +++ b/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.html @@ -0,0 +1,200 @@ + + + + +TemporaryReceivedObjectSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TemporaryReceivedObjectSerializer

+
+
java.lang.Object +
com.usatiuk.dhfs.rpc.TemporaryReceivedObjectSerializer
+
+
+
+
All Implemented Interfaces:
+
ProtoSerializer<GetObjectReply,ReceivedObject>
+
+
+
@ApplicationScoped +public class TemporaryReceivedObjectSerializer +extends Object +implements ProtoSerializer<GetObjectReply,ReceivedObject>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.html b/com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.html new file mode 100644 index 00000000..da50b532 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.html @@ -0,0 +1,200 @@ + + + + +TemporaryRemoteObjectSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TemporaryRemoteObjectSerializer

+
+
java.lang.Object +
com.usatiuk.dhfs.rpc.TemporaryRemoteObjectSerializer
+
+
+
+
All Implemented Interfaces:
+
ProtoSerializer<JDataRemoteDtoP,JDataRemoteDto>
+
+
+
@ApplicationScoped +public class TemporaryRemoteObjectSerializer +extends Object +implements ProtoSerializer<JDataRemoteDtoP,JDataRemoteDto>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceClient.html b/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceClient.html new file mode 100644 index 00000000..81ffd669 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceClient.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.rpc.RemoteObjectServiceClient (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.rpc.RemoteObjectServiceClient

+
+No usage of com.usatiuk.dhfs.rpc.RemoteObjectServiceClient
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServer.html b/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServer.html new file mode 100644 index 00000000..6984aef4 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.rpc.RemoteObjectServiceServer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.rpc.RemoteObjectServiceServer

+
+No usage of com.usatiuk.dhfs.rpc.RemoteObjectServiceServer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServerImpl.html b/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServerImpl.html new file mode 100644 index 00000000..ddccce74 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/RemoteObjectServiceServerImpl.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl

+
+No usage of com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/RpcChannelFactory.html b/com/usatiuk/dhfs/rpc/class-use/RpcChannelFactory.html new file mode 100644 index 00000000..cf809db8 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/RpcChannelFactory.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.rpc.RpcChannelFactory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.rpc.RpcChannelFactory

+
+No usage of com.usatiuk.dhfs.rpc.RpcChannelFactory
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.ObjectSyncClientFunction.html b/com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.ObjectSyncClientFunction.html new file mode 100644 index 00000000..914a71e6 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.ObjectSyncClientFunction.html @@ -0,0 +1,105 @@ + + + + +Uses of Interface com.usatiuk.dhfs.rpc.RpcClientFactory.ObjectSyncClientFunction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.rpc.RpcClientFactory.ObjectSyncClientFunction

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.html b/com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.html new file mode 100644 index 00000000..bfba51b9 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/RpcClientFactory.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.rpc.RpcClientFactory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.rpc.RpcClientFactory

+
+No usage of com.usatiuk.dhfs.rpc.RpcClientFactory
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/TemporaryReceivedObjectSerializer.html b/com/usatiuk/dhfs/rpc/class-use/TemporaryReceivedObjectSerializer.html new file mode 100644 index 00000000..a3497fcb --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/TemporaryReceivedObjectSerializer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.rpc.TemporaryReceivedObjectSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.rpc.TemporaryReceivedObjectSerializer

+
+No usage of com.usatiuk.dhfs.rpc.TemporaryReceivedObjectSerializer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/class-use/TemporaryRemoteObjectSerializer.html b/com/usatiuk/dhfs/rpc/class-use/TemporaryRemoteObjectSerializer.html new file mode 100644 index 00000000..5f809c3f --- /dev/null +++ b/com/usatiuk/dhfs/rpc/class-use/TemporaryRemoteObjectSerializer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.rpc.TemporaryRemoteObjectSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.rpc.TemporaryRemoteObjectSerializer

+
+No usage of com.usatiuk.dhfs.rpc.TemporaryRemoteObjectSerializer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/package-summary.html b/com/usatiuk/dhfs/rpc/package-summary.html new file mode 100644 index 00000000..cab57674 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/package-summary.html @@ -0,0 +1,123 @@ + + + + +com.usatiuk.dhfs.rpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.rpc

+
+
+
package com.usatiuk.dhfs.rpc
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/package-tree.html b/com/usatiuk/dhfs/rpc/package-tree.html new file mode 100644 index 00000000..032d460b --- /dev/null +++ b/com/usatiuk/dhfs/rpc/package-tree.html @@ -0,0 +1,88 @@ + + + + +com.usatiuk.dhfs.rpc Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.rpc

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/rpc/package-use.html b/com/usatiuk/dhfs/rpc/package-use.html new file mode 100644 index 00000000..213efa89 --- /dev/null +++ b/com/usatiuk/dhfs/rpc/package-use.html @@ -0,0 +1,84 @@ + + + + +Uses of Package com.usatiuk.dhfs.rpc (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.rpc

+
+
Packages that use com.usatiuk.dhfs.rpc
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/syncmap/DtoMapper.html b/com/usatiuk/dhfs/syncmap/DtoMapper.html new file mode 100644 index 00000000..7d52bfc4 --- /dev/null +++ b/com/usatiuk/dhfs/syncmap/DtoMapper.html @@ -0,0 +1,156 @@ + + + + +DtoMapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface DtoMapper<F extends JDataRemote,D extends JDataRemoteDto>

+
+
+
+
All Known Implementing Classes:
+
FileDtoMapper
+
+
+
public interface DtoMapper<F extends JDataRemote,D extends JDataRemoteDto>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    fromDto(D dto)
    +
     
    + +
    toDto(F obj)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toDto

      +
      D toDto(F obj)
      +
      +
    • +
    • +
      +

      fromDto

      +
      F fromDto(D dto)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/syncmap/DtoMapperService.html b/com/usatiuk/dhfs/syncmap/DtoMapperService.html new file mode 100644 index 00000000..71318b53 --- /dev/null +++ b/com/usatiuk/dhfs/syncmap/DtoMapperService.html @@ -0,0 +1,197 @@ + + + + +DtoMapperService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DtoMapperService

+
+
java.lang.Object +
com.usatiuk.dhfs.syncmap.DtoMapperService
+
+
+
+
@Singleton +public class DtoMapperService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DtoMapperService

      +
      public DtoMapperService(jakarta.enterprise.inject.Instance<DtoMapper<?,?>> dtoMappers)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/syncmap/class-use/DtoMapper.html b/com/usatiuk/dhfs/syncmap/class-use/DtoMapper.html new file mode 100644 index 00000000..29702e3f --- /dev/null +++ b/com/usatiuk/dhfs/syncmap/class-use/DtoMapper.html @@ -0,0 +1,105 @@ + + + + +Uses of Interface com.usatiuk.dhfs.syncmap.DtoMapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.dhfs.syncmap.DtoMapper

+
+
Packages that use DtoMapper
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/syncmap/class-use/DtoMapperService.html b/com/usatiuk/dhfs/syncmap/class-use/DtoMapperService.html new file mode 100644 index 00000000..1cb09748 --- /dev/null +++ b/com/usatiuk/dhfs/syncmap/class-use/DtoMapperService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.syncmap.DtoMapperService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.syncmap.DtoMapperService

+
+No usage of com.usatiuk.dhfs.syncmap.DtoMapperService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/syncmap/package-summary.html b/com/usatiuk/dhfs/syncmap/package-summary.html new file mode 100644 index 00000000..19a2c447 --- /dev/null +++ b/com/usatiuk/dhfs/syncmap/package-summary.html @@ -0,0 +1,111 @@ + + + + +com.usatiuk.dhfs.syncmap (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.syncmap

+
+
+
package com.usatiuk.dhfs.syncmap
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/syncmap/package-tree.html b/com/usatiuk/dhfs/syncmap/package-tree.html new file mode 100644 index 00000000..f9bc562f --- /dev/null +++ b/com/usatiuk/dhfs/syncmap/package-tree.html @@ -0,0 +1,82 @@ + + + + +com.usatiuk.dhfs.syncmap Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.syncmap

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/syncmap/package-use.html b/com/usatiuk/dhfs/syncmap/package-use.html new file mode 100644 index 00000000..fe74a0ba --- /dev/null +++ b/com/usatiuk/dhfs/syncmap/package-use.html @@ -0,0 +1,97 @@ + + + + +Uses of Package com.usatiuk.dhfs.syncmap (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.syncmap

+
+
Packages that use com.usatiuk.dhfs.syncmap
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/KnownPeerPut.html b/com/usatiuk/dhfs/webapi/KnownPeerPut.html new file mode 100644 index 00000000..c544424c --- /dev/null +++ b/com/usatiuk/dhfs/webapi/KnownPeerPut.html @@ -0,0 +1,251 @@ + + + + +KnownPeerPut (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class KnownPeerPut

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.webapi.KnownPeerPut
+
+
+
+
+
public record KnownPeerPut(@Nullable String cert) +extends Record
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
    +
    Creates an instance of a KnownPeerPut record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the cert record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      KnownPeerPut

      +
      public KnownPeerPut(@Nullable + String cert)
      +
      Creates an instance of a KnownPeerPut record class.
      +
      +
      Parameters:
      +
      cert - the value for the cert record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      cert

      +
      @Nullable +public String cert()
      +
      Returns the value of the cert record component.
      +
      +
      Returns:
      +
      the value of the cert record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/PeerAddressInfo.html b/com/usatiuk/dhfs/webapi/PeerAddressInfo.html new file mode 100644 index 00000000..76875a16 --- /dev/null +++ b/com/usatiuk/dhfs/webapi/PeerAddressInfo.html @@ -0,0 +1,268 @@ + + + + +PeerAddressInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class PeerAddressInfo

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.webapi.PeerAddressInfo
+
+
+
+
+
public record PeerAddressInfo(String uuid, String address) +extends Record
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    PeerAddressInfo(String uuid, + String address)
    +
    +
    Creates an instance of a PeerAddressInfo record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the address record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    + + +
    +
    Returns the value of the uuid record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerAddressInfo

      +
      public PeerAddressInfo(String uuid, + String address)
      +
      Creates an instance of a PeerAddressInfo record class.
      +
      +
      Parameters:
      +
      uuid - the value for the uuid record component
      +
      address - the value for the address record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      uuid

      +
      public String uuid()
      +
      Returns the value of the uuid record component.
      +
      +
      Returns:
      +
      the value of the uuid record component
      +
      +
      +
    • +
    • +
      +

      address

      +
      public String address()
      +
      Returns the value of the address record component.
      +
      +
      Returns:
      +
      the value of the address record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/PeerInfo.html b/com/usatiuk/dhfs/webapi/PeerInfo.html new file mode 100644 index 00000000..27fd5554 --- /dev/null +++ b/com/usatiuk/dhfs/webapi/PeerInfo.html @@ -0,0 +1,289 @@ + + + + +PeerInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class PeerInfo

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.webapi.PeerInfo
+
+
+
+
+
public record PeerInfo(String uuid, String cert, @Nullable String knownAddress) +extends Record
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    PeerInfo(String uuid, + String cert, + String knownAddress)
    +
    +
    Creates an instance of a PeerInfo record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the cert record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + + +
    +
    Returns the value of the knownAddress record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    + + +
    +
    Returns the value of the uuid record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerInfo

      +
      public PeerInfo(String uuid, + String cert, + @Nullable + String knownAddress)
      +
      Creates an instance of a PeerInfo record class.
      +
      +
      Parameters:
      +
      uuid - the value for the uuid record component
      +
      cert - the value for the cert record component
      +
      knownAddress - the value for the knownAddress record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      uuid

      +
      public String uuid()
      +
      Returns the value of the uuid record component.
      +
      +
      Returns:
      +
      the value of the uuid record component
      +
      +
      +
    • +
    • +
      +

      cert

      +
      public String cert()
      +
      Returns the value of the cert record component.
      +
      +
      Returns:
      +
      the value of the cert record component
      +
      +
      +
    • +
    • +
      +

      knownAddress

      +
      @Nullable +public String knownAddress()
      +
      Returns the value of the knownAddress record component.
      +
      +
      Returns:
      +
      the value of the knownAddress record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/PeerManagementApi.html b/com/usatiuk/dhfs/webapi/PeerManagementApi.html new file mode 100644 index 00000000..a93a35ec --- /dev/null +++ b/com/usatiuk/dhfs/webapi/PeerManagementApi.html @@ -0,0 +1,217 @@ + + + + +PeerManagementApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PeerManagementApi

+
+
java.lang.Object +
com.usatiuk.dhfs.webapi.PeerManagementApi
+
+
+
+
@Path("/peers-manage") +public class PeerManagementApi +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PeerManagementApi

      +
      public PeerManagementApi()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      knownPeers

      +
      @Path("known-peers") +@GET +public List<PeerInfo> knownPeers()
      +
      +
    • +
    • +
      +

      addPeer

      +
      @Path("known-peers/{peerId}") +@PUT +public void addPeer(@PathParam("peerId") + String peerId, + KnownPeerPut knownPeerPut)
      +
      +
    • +
    • +
      +

      deletePeer

      +
      @Path("known-peers/{peerId}") +@DELETE +public void deletePeer(@PathParam("peerId") + String peerId)
      +
      +
    • +
    • +
      +

      availablePeers

      +
      @Path("available-peers") +@GET +public Collection<PeerInfo> availablePeers()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.html b/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.html new file mode 100644 index 00000000..0a9bb68d --- /dev/null +++ b/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.html @@ -0,0 +1,218 @@ + + + + +PersistentPeerAddressApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PersistentPeerAddressApi

+
+
java.lang.Object +
com.usatiuk.dhfs.webapi.PersistentPeerAddressApi
+
+
+
+
@Path("/peers-addr-manage") +public class PersistentPeerAddressApi +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PersistentPeerAddressApi

      +
      public PersistentPeerAddressApi()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      addPeerAddress

      +
      @Path("{peerId}") +@PUT +public void addPeerAddress(String peerAddr, + @PathParam("peerId") + String peerId)
      +
      +
    • +
    • +
      +

      deletePeerAddress

      +
      @Path("{peerId}") +@DELETE +public void deletePeerAddress(@PathParam("peerId") + String peerId)
      +
      +
    • +
    • +
      +

      getPeerAddress

      +
      @Path("{peerId}") +@GET +public String getPeerAddress(@PathParam("peerId") + String peerId)
      +
      +
    • +
    • +
      +

      getPeerAddresses

      +
      @Path("") +@GET +public Collection<PeerAddressInfo> getPeerAddresses()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/SelfInfo.html b/com/usatiuk/dhfs/webapi/SelfInfo.html new file mode 100644 index 00000000..7b3dc143 --- /dev/null +++ b/com/usatiuk/dhfs/webapi/SelfInfo.html @@ -0,0 +1,268 @@ + + + + +SelfInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class SelfInfo

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfs.webapi.SelfInfo
+
+
+
+
+
public record SelfInfo(String uuid, String cert) +extends Record
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    SelfInfo(String uuid, + String cert)
    +
    +
    Creates an instance of a SelfInfo record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the cert record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    + + +
    +
    Returns the value of the uuid record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SelfInfo

      +
      public SelfInfo(String uuid, + String cert)
      +
      Creates an instance of a SelfInfo record class.
      +
      +
      Parameters:
      +
      uuid - the value for the uuid record component
      +
      cert - the value for the cert record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      uuid

      +
      public String uuid()
      +
      Returns the value of the uuid record component.
      +
      +
      Returns:
      +
      the value of the uuid record component
      +
      +
      +
    • +
    • +
      +

      cert

      +
      public String cert()
      +
      Returns the value of the cert record component.
      +
      +
      Returns:
      +
      the value of the cert record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/class-use/KnownPeerPut.html b/com/usatiuk/dhfs/webapi/class-use/KnownPeerPut.html new file mode 100644 index 00000000..5ffc3d66 --- /dev/null +++ b/com/usatiuk/dhfs/webapi/class-use/KnownPeerPut.html @@ -0,0 +1,88 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.webapi.KnownPeerPut (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.webapi.KnownPeerPut

+
+
Packages that use KnownPeerPut
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/class-use/PeerAddressInfo.html b/com/usatiuk/dhfs/webapi/class-use/PeerAddressInfo.html new file mode 100644 index 00000000..0fc83e9e --- /dev/null +++ b/com/usatiuk/dhfs/webapi/class-use/PeerAddressInfo.html @@ -0,0 +1,87 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.webapi.PeerAddressInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.webapi.PeerAddressInfo

+
+
Packages that use PeerAddressInfo
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/class-use/PeerInfo.html b/com/usatiuk/dhfs/webapi/class-use/PeerInfo.html new file mode 100644 index 00000000..0665419f --- /dev/null +++ b/com/usatiuk/dhfs/webapi/class-use/PeerInfo.html @@ -0,0 +1,90 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.webapi.PeerInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.webapi.PeerInfo

+
+
Packages that use PeerInfo
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/class-use/PeerManagementApi.html b/com/usatiuk/dhfs/webapi/class-use/PeerManagementApi.html new file mode 100644 index 00000000..4cf90b9e --- /dev/null +++ b/com/usatiuk/dhfs/webapi/class-use/PeerManagementApi.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.webapi.PeerManagementApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.webapi.PeerManagementApi

+
+No usage of com.usatiuk.dhfs.webapi.PeerManagementApi
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/class-use/PersistentPeerAddressApi.html b/com/usatiuk/dhfs/webapi/class-use/PersistentPeerAddressApi.html new file mode 100644 index 00000000..ce669aec --- /dev/null +++ b/com/usatiuk/dhfs/webapi/class-use/PersistentPeerAddressApi.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.webapi.PersistentPeerAddressApi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.webapi.PersistentPeerAddressApi

+
+No usage of com.usatiuk.dhfs.webapi.PersistentPeerAddressApi
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/class-use/SelfInfo.html b/com/usatiuk/dhfs/webapi/class-use/SelfInfo.html new file mode 100644 index 00000000..68039181 --- /dev/null +++ b/com/usatiuk/dhfs/webapi/class-use/SelfInfo.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.dhfs.webapi.SelfInfo (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfs.webapi.SelfInfo

+
+No usage of com.usatiuk.dhfs.webapi.SelfInfo
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/package-summary.html b/com/usatiuk/dhfs/webapi/package-summary.html new file mode 100644 index 00000000..b814424b --- /dev/null +++ b/com/usatiuk/dhfs/webapi/package-summary.html @@ -0,0 +1,119 @@ + + + + +com.usatiuk.dhfs.webapi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.webapi

+
+
+
package com.usatiuk.dhfs.webapi
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/package-tree.html b/com/usatiuk/dhfs/webapi/package-tree.html new file mode 100644 index 00000000..bc7a0f82 --- /dev/null +++ b/com/usatiuk/dhfs/webapi/package-tree.html @@ -0,0 +1,94 @@ + + + + +com.usatiuk.dhfs.webapi Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.webapi

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webapi/package-use.html b/com/usatiuk/dhfs/webapi/package-use.html new file mode 100644 index 00000000..2bf18346 --- /dev/null +++ b/com/usatiuk/dhfs/webapi/package-use.html @@ -0,0 +1,88 @@ + + + + +Uses of Package com.usatiuk.dhfs.webapi (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.webapi

+
+
Packages that use com.usatiuk.dhfs.webapi
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webui/WebUiRouter.html b/com/usatiuk/dhfs/webui/WebUiRouter.html new file mode 100644 index 00000000..d061d694 --- /dev/null +++ b/com/usatiuk/dhfs/webui/WebUiRouter.html @@ -0,0 +1,178 @@ + + + + +WebUiRouter (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class WebUiRouter

+
+
java.lang.Object +
com.usatiuk.dhfs.webui.WebUiRouter
+
+
+
+
@ApplicationScoped +public class WebUiRouter +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      handle

      +
      public void handle(io.vertx.ext.web.RoutingContext event)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webui/class-use/WebUiRouter.html b/com/usatiuk/dhfs/webui/class-use/WebUiRouter.html new file mode 100644 index 00000000..3b6b6269 --- /dev/null +++ b/com/usatiuk/dhfs/webui/class-use/WebUiRouter.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfs.webui.WebUiRouter (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfs.webui.WebUiRouter

+
+No usage of com.usatiuk.dhfs.webui.WebUiRouter
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webui/package-summary.html b/com/usatiuk/dhfs/webui/package-summary.html new file mode 100644 index 00000000..047f50a1 --- /dev/null +++ b/com/usatiuk/dhfs/webui/package-summary.html @@ -0,0 +1,107 @@ + + + + +com.usatiuk.dhfs.webui (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfs.webui

+
+
+
package com.usatiuk.dhfs.webui
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webui/package-tree.html b/com/usatiuk/dhfs/webui/package-tree.html new file mode 100644 index 00000000..c8f305ed --- /dev/null +++ b/com/usatiuk/dhfs/webui/package-tree.html @@ -0,0 +1,76 @@ + + + + +com.usatiuk.dhfs.webui Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfs.webui

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfs/webui/package-use.html b/com/usatiuk/dhfs/webui/package-use.html new file mode 100644 index 00000000..20dde6f1 --- /dev/null +++ b/com/usatiuk/dhfs/webui/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.usatiuk.dhfs.webui (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfs.webui

+
+No usage of com.usatiuk.dhfs.webui
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/ChunkData.html b/com/usatiuk/dhfsfs/objects/ChunkData.html new file mode 100644 index 00000000..10c6f3c2 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/ChunkData.html @@ -0,0 +1,308 @@ + + + + +ChunkData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class ChunkData

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfsfs.objects.ChunkData
+
+
+
+
+
Record Components:
+
key - unique key
+
data - binary data
+
+
+
All Implemented Interfaces:
+
JDataRemote, JDataRemoteDto, Serializable
+
+
+
public record ChunkData(JObjectKey key, com.google.protobuf.ByteString data) +extends Record +implements JDataRemote, JDataRemoteDto
+
ChunkData is a data structure that represents an immutable binary blob
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    ChunkData(JObjectKey key, + com.google.protobuf.ByteString data)
    +
    +
    Creates an instance of a ChunkData record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    com.google.protobuf.ByteString
    + +
    +
    Returns the value of the data record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    int
    + +
     
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + +
    key()
    +
    +
    Returns the value of the key record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.usatiuk.dhfs.remoteobj.JDataRemote

    +collectRefsTo, dtoClass
    +
    +

    Methods inherited from interface com.usatiuk.dhfs.remoteobj.JDataRemoteDto

    +objClass
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ChunkData

      +
      public ChunkData(JObjectKey key, + com.google.protobuf.ByteString data)
      +
      Creates an instance of a ChunkData record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      data - the value for the data record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      estimateSize

      +
      public int estimateSize()
      +
      +
      Specified by:
      +
      estimateSize in interface JDataRemote
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Specified by:
      +
      key in interface JDataRemote
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      data

      +
      public com.google.protobuf.ByteString data()
      +
      Returns the value of the data record component.
      +
      +
      Returns:
      +
      the value of the data record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/File.html b/com/usatiuk/dhfsfs/objects/File.html new file mode 100644 index 00000000..dc6547c1 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/File.html @@ -0,0 +1,437 @@ + + + + +File (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class File

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfsfs.objects.File
+
+
+
+
+
Record Components:
+
key - unique key
+
mode - file mode
+
cTime - creation time
+
mTime - modification time
+
symlink - true if the file is a symlink, false otherwise
+
+
+
All Implemented Interfaces:
+
JMapHolder<JMapLongKey>, JDataRemote, JData, Serializable
+
+
+
public record File(JObjectKey key, long mode, long cTime, long mTime, boolean symlink) +extends Record +implements JDataRemote, JMapHolder<JMapLongKey>
+
File is a data structure that represents a file in the file system
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      File

      +
      public File(JObjectKey key, + long mode, + long cTime, + long mTime, + boolean symlink)
      +
      Creates an instance of a File record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      mode - the value for the mode record component
      +
      cTime - the value for the cTime record component
      +
      mTime - the value for the mTime record component
      +
      symlink - the value for the symlink record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      withSymlink

      +
      public File withSymlink(boolean symlink)
      +
      +
    • +
    • +
      +

      withMode

      +
      public File withMode(long mode)
      +
      +
    • +
    • +
      +

      withCTime

      +
      public File withCTime(long cTime)
      +
      +
    • +
    • +
      +

      withMTime

      +
      public File withMTime(long mTime)
      +
      +
    • +
    • +
      +

      withCurrentMTime

      +
      public File withCurrentMTime()
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      public Collection<JObjectKey> collectRefsTo()
      +
      +
      Specified by:
      +
      collectRefsTo in interface JDataRemote
      +
      +
      +
    • +
    • +
      +

      estimateSize

      +
      public int estimateSize()
      +
      +
      Specified by:
      +
      estimateSize in interface JData
      +
      Specified by:
      +
      estimateSize in interface JDataRemote
      +
      +
      +
    • +
    • +
      +

      dtoClass

      +
      public Class<? extends JDataRemoteDto> dtoClass()
      +
      +
      Specified by:
      +
      dtoClass in interface JDataRemote
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Specified by:
      +
      key in interface JData
      +
      Specified by:
      +
      key in interface JDataRemote
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      mode

      +
      public long mode()
      +
      Returns the value of the mode record component.
      +
      +
      Returns:
      +
      the value of the mode record component
      +
      +
      +
    • +
    • +
      +

      cTime

      +
      public long cTime()
      +
      Returns the value of the cTime record component.
      +
      +
      Returns:
      +
      the value of the cTime record component
      +
      +
      +
    • +
    • +
      +

      mTime

      +
      public long mTime()
      +
      Returns the value of the mTime record component.
      +
      +
      Returns:
      +
      the value of the mTime record component
      +
      +
      +
    • +
    • +
      +

      symlink

      +
      public boolean symlink()
      +
      Returns the value of the symlink record component.
      +
      +
      Returns:
      +
      the value of the symlink record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/FileDto.html b/com/usatiuk/dhfsfs/objects/FileDto.html new file mode 100644 index 00000000..31ac9419 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/FileDto.html @@ -0,0 +1,300 @@ + + + + +FileDto (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class FileDto

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfsfs.objects.FileDto
+
+
+
+
+
Record Components:
+
file - the file
+
chunks - the list of chunks, each represented as a pair of a long and a JObjectKey
+
+
+
All Implemented Interfaces:
+
JDataRemoteDto, Serializable
+
+
+
public record FileDto(File file, List<org.apache.commons.lang3.tuple.Pair<Long,JObjectKey>> chunks) +extends Record +implements JDataRemoteDto
+
FileDto is a data transfer object that contains a file and its chunks.
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    FileDto(File file, + List<org.apache.commons.lang3.tuple.Pair<Long,JObjectKey>> chunks)
    +
    +
    Creates an instance of a FileDto record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    List<org.apache.commons.lang3.tuple.Pair<Long,JObjectKey>>
    + +
    +
    Returns the value of the chunks record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    + + +
    +
    Returns the value of the file record component.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    Class<? extends JDataRemote>
    + +
     
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      FileDto

      +
      public FileDto(File file, + List<org.apache.commons.lang3.tuple.Pair<Long,JObjectKey>> chunks)
      +
      Creates an instance of a FileDto record class.
      +
      +
      Parameters:
      +
      file - the value for the file record component
      +
      chunks - the value for the chunks record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      objClass

      +
      public Class<? extends JDataRemote> objClass()
      +
      +
      Specified by:
      +
      objClass in interface JDataRemoteDto
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      file

      +
      public File file()
      +
      Returns the value of the file record component.
      +
      +
      Returns:
      +
      the value of the file record component
      +
      +
      +
    • +
    • +
      +

      chunks

      +
      public List<org.apache.commons.lang3.tuple.Pair<Long,JObjectKey>> chunks()
      +
      Returns the value of the chunks record component.
      +
      +
      Returns:
      +
      the value of the chunks record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/FileDtoMapper.html b/com/usatiuk/dhfsfs/objects/FileDtoMapper.html new file mode 100644 index 00000000..14cd831b --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/FileDtoMapper.html @@ -0,0 +1,201 @@ + + + + +FileDtoMapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FileDtoMapper

+
+
java.lang.Object +
com.usatiuk.dhfsfs.objects.FileDtoMapper
+
+
+
+
All Implemented Interfaces:
+
DtoMapper<File,FileDto>
+
+
+
@ApplicationScoped +public class FileDtoMapper +extends Object +implements DtoMapper<File,FileDto>
+
Maps a File object to a FileDto object and vice versa.
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/FileHelper.html b/com/usatiuk/dhfsfs/objects/FileHelper.html new file mode 100644 index 00000000..8e84a66b --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/FileHelper.html @@ -0,0 +1,210 @@ + + + + +FileHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FileHelper

+
+
java.lang.Object +
com.usatiuk.dhfsfs.objects.FileHelper
+
+
+
+
@ApplicationScoped +public class FileHelper +extends Object
+
Helper class for working with files.
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      FileHelper

      +
      public FileHelper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getChunks

      +
      public List<org.apache.commons.lang3.tuple.Pair<Long,JObjectKey>> getChunks(File file)
      +
      Get the chunks of a file. + Transaction is expected to be already started.
      +
      +
      Parameters:
      +
      file - the file to get chunks from
      +
      Returns:
      +
      a list of pairs of chunk offset and chunk key
      +
      +
      +
    • +
    • +
      +

      replaceChunks

      +
      public void replaceChunks(File file, + List<org.apache.commons.lang3.tuple.Pair<Long,JObjectKey>> chunks)
      +
      Replace the chunks of a file. + All previous chunks will be deleted. + Transaction is expected to be already started.
      +
      +
      Parameters:
      +
      file - the file to replace chunks in
      +
      chunks - the list of pairs of chunk offset and chunk key
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/FileSyncHandler.html b/com/usatiuk/dhfsfs/objects/FileSyncHandler.html new file mode 100644 index 00000000..0869055c --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/FileSyncHandler.html @@ -0,0 +1,195 @@ + + + + +FileSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FileSyncHandler

+
+
java.lang.Object +
com.usatiuk.dhfsfs.objects.FileSyncHandler
+
+
+
+
All Implemented Interfaces:
+
ObjSyncHandler<File,FileDto>
+
+
+
@ApplicationScoped +public class FileSyncHandler +extends Object +implements ObjSyncHandler<File,FileDto>
+
Handles synchronization of file objects.
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      FileSyncHandler

      +
      public FileSyncHandler()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.html b/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.html new file mode 100644 index 00000000..917266e1 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.html @@ -0,0 +1,297 @@ + + + + +JKleppmannTreeNodeMetaDirectory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreeNodeMetaDirectory

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
+
+
+
+
Record Components:
+
name - the name of the directory
+
+
+
All Implemented Interfaces:
+
JKleppmannTreeNodeMeta, NodeMeta, Serializable
+
+
+
public record JKleppmannTreeNodeMetaDirectory(String name) +extends Record +implements JKleppmannTreeNodeMeta
+
JKleppmannTreeNodeMetaDirectory is a record that represents a directory in the JKleppmann tree.
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JKleppmannTreeNodeMetaDirectory

      +
      public JKleppmannTreeNodeMetaDirectory(String name)
      +
      Creates an instance of a JKleppmannTreeNodeMetaDirectory record class.
      +
      +
      Parameters:
      +
      name - the value for the name record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      withName

      +
      public JKleppmannTreeNodeMeta withName(String name)
      +
      +
      Specified by:
      +
      withName in interface JKleppmannTreeNodeMeta
      +
      Specified by:
      +
      withName in interface NodeMeta
      +
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      public Collection<JObjectKey> collectRefsTo()
      +
      +
      Specified by:
      +
      collectRefsTo in interface JKleppmannTreeNodeMeta
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      name

      +
      public String name()
      +
      Returns the value of the name record component.
      +
      +
      Specified by:
      +
      name in interface NodeMeta
      +
      Returns:
      +
      the value of the name record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.html b/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.html new file mode 100644 index 00000000..295a29e2 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.html @@ -0,0 +1,317 @@ + + + + +JKleppmannTreeNodeMetaFile (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JKleppmannTreeNodeMetaFile

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
+
+
+
Record Components:
+
name - the name of the file
+
fileIno - a reference to the `File` object
+
+
+
All Implemented Interfaces:
+
JKleppmannTreeNodeMeta, NodeMeta, Serializable
+
+
+
public record JKleppmannTreeNodeMetaFile(String name, JObjectKey fileIno) +extends Record +implements JKleppmannTreeNodeMeta
+
JKleppmannTreeNodeMetaFile is a record that represents a file in the JKleppmann tree.
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JKleppmannTreeNodeMetaFile

      +
      public JKleppmannTreeNodeMetaFile(String name, + JObjectKey fileIno)
      +
      Creates an instance of a JKleppmannTreeNodeMetaFile record class.
      +
      +
      Parameters:
      +
      name - the value for the name record component
      +
      fileIno - the value for the fileIno record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      withName

      +
      public JKleppmannTreeNodeMeta withName(String name)
      +
      +
      Specified by:
      +
      withName in interface JKleppmannTreeNodeMeta
      +
      Specified by:
      +
      withName in interface NodeMeta
      +
      +
      +
    • +
    • +
      +

      collectRefsTo

      +
      public Collection<JObjectKey> collectRefsTo()
      +
      +
      Specified by:
      +
      collectRefsTo in interface JKleppmannTreeNodeMeta
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      name

      +
      public String name()
      +
      Returns the value of the name record component.
      +
      +
      Specified by:
      +
      name in interface NodeMeta
      +
      Returns:
      +
      the value of the name record component
      +
      +
      +
    • +
    • +
      +

      fileIno

      +
      public JObjectKey fileIno()
      +
      Returns the value of the fileIno record component.
      +
      +
      Returns:
      +
      the value of the fileIno record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/ChunkData.html b/com/usatiuk/dhfsfs/objects/class-use/ChunkData.html new file mode 100644 index 00000000..5ce8a28d --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/ChunkData.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.dhfsfs.objects.ChunkData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfsfs.objects.ChunkData

+
+No usage of com.usatiuk.dhfsfs.objects.ChunkData
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/File.html b/com/usatiuk/dhfsfs/objects/class-use/File.html new file mode 100644 index 00000000..aa5fa6e0 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/File.html @@ -0,0 +1,139 @@ + + + + +Uses of Record Class com.usatiuk.dhfsfs.objects.File (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfsfs.objects.File

+
+
Packages that use File
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/FileDto.html b/com/usatiuk/dhfsfs/objects/class-use/FileDto.html new file mode 100644 index 00000000..339cd386 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/FileDto.html @@ -0,0 +1,102 @@ + + + + +Uses of Record Class com.usatiuk.dhfsfs.objects.FileDto (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfsfs.objects.FileDto

+
+
Packages that use FileDto
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/FileDtoMapper.html b/com/usatiuk/dhfsfs/objects/class-use/FileDtoMapper.html new file mode 100644 index 00000000..f9a11174 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/FileDtoMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfs.objects.FileDtoMapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfs.objects.FileDtoMapper

+
+No usage of com.usatiuk.dhfsfs.objects.FileDtoMapper
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/FileHelper.html b/com/usatiuk/dhfsfs/objects/class-use/FileHelper.html new file mode 100644 index 00000000..df12d9ad --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/FileHelper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfs.objects.FileHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfs.objects.FileHelper

+
+No usage of com.usatiuk.dhfsfs.objects.FileHelper
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/FileSyncHandler.html b/com/usatiuk/dhfsfs/objects/class-use/FileSyncHandler.html new file mode 100644 index 00000000..44172146 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/FileSyncHandler.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfs.objects.FileSyncHandler (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfs.objects.FileSyncHandler

+
+No usage of com.usatiuk.dhfsfs.objects.FileSyncHandler
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaDirectory.html b/com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaDirectory.html new file mode 100644 index 00000000..9fd5aa90 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaDirectory.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory

+
+No usage of com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaFile.html b/com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaFile.html new file mode 100644 index 00000000..e5837b78 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/class-use/JKleppmannTreeNodeMetaFile.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile

+
+No usage of com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/package-summary.html b/com/usatiuk/dhfsfs/objects/package-summary.html new file mode 100644 index 00000000..c11c7d0b --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/package-summary.html @@ -0,0 +1,128 @@ + + + + +com.usatiuk.dhfsfs.objects (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfsfs.objects

+
+
+
package com.usatiuk.dhfsfs.objects
+
+
    +
  • +
    +
    +
    +
    +
    Class
    +
    Description
    + +
    +
    ChunkData is a data structure that represents an immutable binary blob
    +
    + +
    +
    File is a data structure that represents a file in the file system
    +
    + +
    +
    FileDto is a data transfer object that contains a file and its chunks.
    +
    + +
    +
    Maps a File object to a FileDto object and vice versa.
    +
    + +
    +
    Helper class for working with files.
    +
    + +
    +
    Handles synchronization of file objects.
    +
    + +
    +
    JKleppmannTreeNodeMetaDirectory is a record that represents a directory in the JKleppmann tree.
    +
    + +
    +
    JKleppmannTreeNodeMetaFile is a record that represents a file in the JKleppmann tree.
    +
    +
    +
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/package-tree.html b/com/usatiuk/dhfsfs/objects/package-tree.html new file mode 100644 index 00000000..49ef488b --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/package-tree.html @@ -0,0 +1,96 @@ + + + + +com.usatiuk.dhfsfs.objects Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfsfs.objects

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/objects/package-use.html b/com/usatiuk/dhfsfs/objects/package-use.html new file mode 100644 index 00000000..1e4defc8 --- /dev/null +++ b/com/usatiuk/dhfsfs/objects/package-use.html @@ -0,0 +1,90 @@ + + + + +Uses of Package com.usatiuk.dhfsfs.objects (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfsfs.objects

+
+
Packages that use com.usatiuk.dhfsfs.objects
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/DhfsFileService.html b/com/usatiuk/dhfsfs/service/DhfsFileService.html new file mode 100644 index 00000000..3212af0f --- /dev/null +++ b/com/usatiuk/dhfsfs/service/DhfsFileService.html @@ -0,0 +1,534 @@ + + + + +DhfsFileService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsFileService

+
+
java.lang.Object +
com.usatiuk.dhfsfs.service.DhfsFileService
+
+
+
+
@ApplicationScoped +public class DhfsFileService +extends Object
+
Actual filesystem implementation.
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DhfsFileService

      +
      public DhfsFileService()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getattr

      +
      public Optional<GetattrRes> getattr(JObjectKey uuid)
      +
      Get the attributes of a file or directory.
      +
      +
      Parameters:
      +
      uuid - the UUID of the file or directory
      +
      Returns:
      +
      the attributes of the file or directory
      +
      +
      +
    • +
    • +
      +

      open

      +
      public Optional<JObjectKey> open(String name)
      +
      Try to resolve a path to a file or directory.
      +
      +
      Parameters:
      +
      name - the path to resolve
      +
      Returns:
      +
      the key of the file or directory, or an empty optional if it does not exist
      +
      +
      +
    • +
    • +
      +

      create

      +
      public Optional<JObjectKey> create(String name, + long mode)
      +
      Create a new file with the given name and mode.
      +
      +
      Parameters:
      +
      name - the name of the file
      +
      mode - the mode of the file
      +
      Returns:
      +
      the key of the created file
      +
      +
      +
    • +
    • +
      +

      inoToParent

      +
      public org.apache.commons.lang3.tuple.Pair<String,JObjectKey> inoToParent(JObjectKey ino)
      +
      Get the parent directory of a file or directory.
      +
      +
      Parameters:
      +
      ino - the key of the file or directory
      +
      Returns:
      +
      the parent directory
      +
      +
      +
    • +
    • +
      +

      mkdir

      +
      public void mkdir(String name, + long mode)
      +
      Create a new directory with the given name and mode.
      +
      +
      Parameters:
      +
      name - the name of the directory
      +
      mode - the mode of the directory
      +
      +
      +
    • +
    • +
      +

      unlink

      +
      public void unlink(String name)
      +
      Unlink a file or directory.
      +
      +
      Parameters:
      +
      name - the name of the file or directory
      +
      Throws:
      +
      DirectoryNotEmptyException - if the directory is not empty and recursive delete is not allowed
      +
      +
      +
    • +
    • +
      +

      rename

      +
      public Boolean rename(String from, + String to)
      +
      Rename a file or directory.
      +
      +
      Parameters:
      +
      from - the old name
      +
      to - the new name
      +
      Returns:
      +
      true if the rename was successful, false otherwise
      +
      +
      +
    • +
    • +
      +

      chmod

      +
      public Boolean chmod(JObjectKey uuid, + long mode)
      +
      Change the mode of a file or directory.
      +
      +
      Parameters:
      +
      uuid - the ID of the file or directory
      +
      mode - the new mode
      +
      Returns:
      +
      true if the mode was changed successfully, false otherwise
      +
      +
      +
    • +
    • +
      +

      readDir

      +
      public Iterable<String> readDir(String name)
      +
      Read the contents of a directory.
      +
      +
      Parameters:
      +
      name - the path of the directory
      +
      Returns:
      +
      an iterable of the names of the files in the directory
      +
      +
      +
    • +
    • +
      +

      read

      +
      public com.google.protobuf.ByteString read(JObjectKey fileUuid, + long offset, + int length)
      +
      Read the contents of a file.
      +
      +
      Parameters:
      +
      fileUuid - the ID of the file
      +
      offset - the offset to start reading from
      +
      length - the number of bytes to read
      +
      Returns:
      +
      the contents of the file as a ByteString
      +
      +
      +
    • +
    • +
      +

      write

      +
      public Long write(JObjectKey fileUuid, + long offset, + com.google.protobuf.ByteString data)
      +
      Write data to a file.
      +
      +
      Parameters:
      +
      fileUuid - the ID of the file
      +
      offset - the offset to write to
      +
      data - the data to write
      +
      Returns:
      +
      the number of bytes written
      +
      +
      +
    • +
    • +
      +

      truncate

      +
      public Boolean truncate(JObjectKey fileUuid, + long length)
      +
      Truncate a file to the given length.
      +
      +
      Parameters:
      +
      fileUuid - the ID of the file
      +
      length - the new length of the file
      +
      Returns:
      +
      true if the truncate was successful, false otherwise
      +
      +
      +
    • +
    • +
      +

      readlink

      +
      public String readlink(JObjectKey uuid)
      +
      Read the contents of a symlink.
      +
      +
      Parameters:
      +
      uuid - the ID of the symlink
      +
      Returns:
      +
      the contents of the symlink as a string
      +
      +
      +
    • +
    • +
      +

      readlinkBS

      +
      public com.google.protobuf.ByteString readlinkBS(JObjectKey uuid)
      +
      Read the contents of a symlink as a ByteString.
      +
      +
      Parameters:
      +
      uuid - the ID of the symlink
      +
      Returns:
      +
      the contents of the symlink as a ByteString
      +
      +
      +
    • +
    • +
      +

      symlink

      +
      public JObjectKey symlink(String oldpath, + String newpath)
      +
      Create a symlink.
      +
      +
      Parameters:
      +
      oldpath - the target of the symlink
      +
      newpath - the path of the symlink
      +
      Returns:
      +
      the key of the created symlink
      +
      +
      +
    • +
    • +
      +

      setTimes

      +
      public Boolean setTimes(JObjectKey fileUuid, + long atimeMs, + long mtimeMs)
      +
      Set the access and modification times of a file.
      +
      +
      Parameters:
      +
      fileUuid - the ID of the file
      +
      atimeMs - the access time in milliseconds
      +
      mtimeMs - the modification time in milliseconds
      +
      Returns:
      +
      true if the times were set successfully, false otherwise
      +
      +
      +
    • +
    • +
      +

      size

      +
      public long size(JObjectKey fileUuid)
      +
      Get the size of a file.
      +
      +
      Parameters:
      +
      fileUuid - the ID of the file
      +
      Returns:
      +
      the size of the file
      +
      +
      +
    • +
    • +
      +

      write

      +
      public Long write(JObjectKey fileUuid, + long offset, + byte[] data)
      +
      Write data to a file.
      +
      +
      Parameters:
      +
      fileUuid - the ID of the file
      +
      offset - the offset to write to
      +
      data - the data to write
      +
      Returns:
      +
      the number of bytes written
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.html b/com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.html new file mode 100644 index 00000000..a21ff557 --- /dev/null +++ b/com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.html @@ -0,0 +1,205 @@ + + + + +DirectoryNotEmptyException (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DirectoryNotEmptyException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
java.lang.RuntimeException +
com.usatiuk.dhfsfs.service.DirectoryNotEmptyException
+
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class DirectoryNotEmptyException +extends RuntimeException
+
DirectoryNotEmptyException is thrown when a directory is not empty. + This exception is used to indicate that a directory cannot be deleted + because it contains files or subdirectories.
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DirectoryNotEmptyException

      +
      public DirectoryNotEmptyException()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/GetattrRes.html b/com/usatiuk/dhfsfs/service/GetattrRes.html new file mode 100644 index 00000000..825c3eaa --- /dev/null +++ b/com/usatiuk/dhfsfs/service/GetattrRes.html @@ -0,0 +1,314 @@ + + + + +GetattrRes (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class GetattrRes

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.dhfsfs.service.GetattrRes
+
+
+
+
+
Record Components:
+
mtime - File modification time
+
ctime - File creation time
+
mode - File mode
+
type - File type
+
+
+
public record GetattrRes(long mtime, long ctime, long mode, GetattrType type) +extends Record
+
GetattrRes is a record that represents the result of a getattr operation.
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    GetattrRes(long mtime, + long ctime, + long mode, + GetattrType type)
    +
    +
    Creates an instance of a GetattrRes record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    long
    + +
    +
    Returns the value of the ctime record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    long
    + +
    +
    Returns the value of the mode record component.
    +
    +
    long
    + +
    +
    Returns the value of the mtime record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    + + +
    +
    Returns the value of the type record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      GetattrRes

      +
      public GetattrRes(long mtime, + long ctime, + long mode, + GetattrType type)
      +
      Creates an instance of a GetattrRes record class.
      +
      +
      Parameters:
      +
      mtime - the value for the mtime record component
      +
      ctime - the value for the ctime record component
      +
      mode - the value for the mode record component
      +
      type - the value for the type record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      mtime

      +
      public long mtime()
      +
      Returns the value of the mtime record component.
      +
      +
      Returns:
      +
      the value of the mtime record component
      +
      +
      +
    • +
    • +
      +

      ctime

      +
      public long ctime()
      +
      Returns the value of the ctime record component.
      +
      +
      Returns:
      +
      the value of the ctime record component
      +
      +
      +
    • +
    • +
      +

      mode

      +
      public long mode()
      +
      Returns the value of the mode record component.
      +
      +
      Returns:
      +
      the value of the mode record component
      +
      +
      +
    • +
    • +
      +

      type

      +
      public GetattrType type()
      +
      Returns the value of the type record component.
      +
      +
      Returns:
      +
      the value of the type record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/GetattrType.html b/com/usatiuk/dhfsfs/service/GetattrType.html new file mode 100644 index 00000000..3e36991e --- /dev/null +++ b/com/usatiuk/dhfsfs/service/GetattrType.html @@ -0,0 +1,244 @@ + + + + +GetattrType (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class GetattrType

+
+
java.lang.Object +
java.lang.Enum<GetattrType> +
com.usatiuk.dhfsfs.service.GetattrType
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<GetattrType>, Constable
+
+
+
public enum GetattrType +extends Enum<GetattrType>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      FILE

      +
      public static final GetattrType FILE
      +
      +
    • +
    • +
      +

      DIRECTORY

      +
      public static final GetattrType DIRECTORY
      +
      +
    • +
    • + +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static GetattrType[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static GetattrType valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/class-use/DhfsFileService.html b/com/usatiuk/dhfsfs/service/class-use/DhfsFileService.html new file mode 100644 index 00000000..a7135d24 --- /dev/null +++ b/com/usatiuk/dhfsfs/service/class-use/DhfsFileService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfs.service.DhfsFileService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfs.service.DhfsFileService

+
+No usage of com.usatiuk.dhfsfs.service.DhfsFileService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/class-use/DirectoryNotEmptyException.html b/com/usatiuk/dhfsfs/service/class-use/DirectoryNotEmptyException.html new file mode 100644 index 00000000..404dff19 --- /dev/null +++ b/com/usatiuk/dhfsfs/service/class-use/DirectoryNotEmptyException.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfs.service.DirectoryNotEmptyException (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfs.service.DirectoryNotEmptyException

+
+No usage of com.usatiuk.dhfsfs.service.DirectoryNotEmptyException
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/class-use/GetattrRes.html b/com/usatiuk/dhfsfs/service/class-use/GetattrRes.html new file mode 100644 index 00000000..673bedbf --- /dev/null +++ b/com/usatiuk/dhfsfs/service/class-use/GetattrRes.html @@ -0,0 +1,89 @@ + + + + +Uses of Record Class com.usatiuk.dhfsfs.service.GetattrRes (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.dhfsfs.service.GetattrRes

+
+
Packages that use GetattrRes
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/class-use/GetattrType.html b/com/usatiuk/dhfsfs/service/class-use/GetattrType.html new file mode 100644 index 00000000..2b1ac204 --- /dev/null +++ b/com/usatiuk/dhfsfs/service/class-use/GetattrType.html @@ -0,0 +1,114 @@ + + + + +Uses of Enum Class com.usatiuk.dhfsfs.service.GetattrType (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
com.usatiuk.dhfsfs.service.GetattrType

+
+
Packages that use GetattrType
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/package-summary.html b/com/usatiuk/dhfsfs/service/package-summary.html new file mode 100644 index 00000000..31c48ca6 --- /dev/null +++ b/com/usatiuk/dhfsfs/service/package-summary.html @@ -0,0 +1,110 @@ + + + + +com.usatiuk.dhfsfs.service (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfsfs.service

+
+
+
package com.usatiuk.dhfsfs.service
+
+
    +
  • +
    +
    +
    +
    +
    Class
    +
    Description
    + +
    +
    Actual filesystem implementation.
    +
    + +
    +
    DirectoryNotEmptyException is thrown when a directory is not empty.
    +
    + +
    +
    GetattrRes is a record that represents the result of a getattr operation.
    +
    + +
     
    +
    +
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/package-tree.html b/com/usatiuk/dhfsfs/service/package-tree.html new file mode 100644 index 00000000..ef50f920 --- /dev/null +++ b/com/usatiuk/dhfsfs/service/package-tree.html @@ -0,0 +1,117 @@ + + + + +com.usatiuk.dhfsfs.service Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfsfs.service

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfs/service/package-use.html b/com/usatiuk/dhfsfs/service/package-use.html new file mode 100644 index 00000000..11ff7e4b --- /dev/null +++ b/com/usatiuk/dhfsfs/service/package-use.html @@ -0,0 +1,88 @@ + + + + +Uses of Package com.usatiuk.dhfsfs.service (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfsfs.service

+
+
Packages that use com.usatiuk.dhfsfs.service
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/DhfsFuse.html b/com/usatiuk/dhfsfuse/DhfsFuse.html new file mode 100644 index 00000000..194446a3 --- /dev/null +++ b/com/usatiuk/dhfsfuse/DhfsFuse.html @@ -0,0 +1,557 @@ + + + + +DhfsFuse (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DhfsFuse

+
+
java.lang.Object +
ru.serce.jnrfuse.AbstractFuseFS +
ru.serce.jnrfuse.FuseStubFS +
com.usatiuk.dhfsfuse.DhfsFuse
+
+
+
+
+
+
All Implemented Interfaces:
+
ru.serce.jnrfuse.FuseFS, ru.serce.jnrfuse.Mountable
+
+
+
@ApplicationScoped +public class DhfsFuse +extends ru.serce.jnrfuse.FuseStubFS
+
+
+
    + +
  • +
    +

    Field Summary

    +
    +

    Fields inherited from class ru.serce.jnrfuse.AbstractFuseFS

    +fuseOperations, libFuse, mounted, mountPoint
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    int
    +
    chmod(String path, + long mode)
    +
     
    +
    int
    +
    chown(String path, + long uid, + long gid)
    +
     
    +
    int
    +
    create(String path, + long mode, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    int
    +
    getattr(String path, + ru.serce.jnrfuse.struct.FileStat stat)
    +
     
    +
    int
    +
    mkdir(String path, + long mode)
    +
     
    +
    int
    +
    open(String path, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    int
    +
    read(String path, + jnr.ffi.Pointer buf, + long size, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    int
    +
    readdir(String path, + jnr.ffi.Pointer buf, + ru.serce.jnrfuse.FuseFillDir filler, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    int
    +
    readlink(String path, + jnr.ffi.Pointer buf, + long size)
    +
     
    +
    int
    +
    release(String path, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    int
    +
    rename(String path, + String newName)
    +
     
    +
    int
    +
    rmdir(String path)
    +
     
    +
    int
    +
    statfs(String path, + ru.serce.jnrfuse.struct.Statvfs stbuf)
    +
     
    +
    int
    +
    symlink(String oldpath, + String newpath)
    +
     
    +
    int
    +
    truncate(String path, + long size)
    +
     
    +
    int
    +
    unlink(String path)
    +
     
    +
    int
    +
    utimens(String path, + ru.serce.jnrfuse.struct.Timespec[] timespec)
    +
     
    +
    int
    +
    write(String path, + ByteBuffer buffer, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    int
    +
    write(String path, + jnr.ffi.Pointer buf, + long size, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    int
    +
    write_buf(String path, + ru.serce.jnrfuse.struct.FuseBufvec buf, + long off, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class ru.serce.jnrfuse.FuseStubFS

    +access, bmap, destroy, fallocate, fgetattr, flock, flush, fsync, fsyncdir, ftruncate, getxattr, init, ioctl, link, listxattr, lock, mknod, opendir, poll, read_buf, releasedir, removexattr, setxattr
    +
    +

    Methods inherited from class ru.serce.jnrfuse.AbstractFuseFS

    +getContext, getFSName, mount, umount
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +

    Methods inherited from interface ru.serce.jnrfuse.Mountable

    +mount, mount, mount
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DhfsFuse

      +
      public DhfsFuse()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      statfs

      +
      public int statfs(String path, + ru.serce.jnrfuse.struct.Statvfs stbuf)
      +
      +
      Specified by:
      +
      statfs in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      statfs in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      getattr

      +
      public int getattr(String path, + ru.serce.jnrfuse.struct.FileStat stat)
      +
      +
      Specified by:
      +
      getattr in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      getattr in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      utimens

      +
      public int utimens(String path, + ru.serce.jnrfuse.struct.Timespec[] timespec)
      +
      +
      Specified by:
      +
      utimens in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      utimens in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      open

      +
      public int open(String path, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
      Specified by:
      +
      open in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      open in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      release

      +
      public int release(String path, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
      Specified by:
      +
      release in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      release in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      read

      +
      public int read(String path, + jnr.ffi.Pointer buf, + long size, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
      Specified by:
      +
      read in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      read in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      write

      +
      public int write(String path, + jnr.ffi.Pointer buf, + long size, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
      Specified by:
      +
      write in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      write in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      write

      +
      public int write(String path, + ByteBuffer buffer, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
    • +
    • +
      +

      create

      +
      public int create(String path, + long mode, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
      Specified by:
      +
      create in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      create in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      mkdir

      +
      public int mkdir(String path, + long mode)
      +
      +
      Specified by:
      +
      mkdir in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      mkdir in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      rmdir

      +
      public int rmdir(String path)
      +
      +
      Specified by:
      +
      rmdir in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      rmdir in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      rename

      +
      public int rename(String path, + String newName)
      +
      +
      Specified by:
      +
      rename in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      rename in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      unlink

      +
      public int unlink(String path)
      +
      +
      Specified by:
      +
      unlink in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      unlink in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      truncate

      +
      public int truncate(String path, + long size)
      +
      +
      Specified by:
      +
      truncate in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      truncate in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      chmod

      +
      public int chmod(String path, + long mode)
      +
      +
      Specified by:
      +
      chmod in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      chmod in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      readdir

      +
      public int readdir(String path, + jnr.ffi.Pointer buf, + ru.serce.jnrfuse.FuseFillDir filler, + long offset, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
      Specified by:
      +
      readdir in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      readdir in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      readlink

      +
      public int readlink(String path, + jnr.ffi.Pointer buf, + long size)
      +
      +
      Specified by:
      +
      readlink in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      readlink in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      chown

      +
      public int chown(String path, + long uid, + long gid)
      +
      +
      Specified by:
      +
      chown in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      chown in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      symlink

      +
      public int symlink(String oldpath, + String newpath)
      +
      +
      Specified by:
      +
      symlink in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      symlink in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    • +
      +

      write_buf

      +
      public int write_buf(String path, + ru.serce.jnrfuse.struct.FuseBufvec buf, + long off, + ru.serce.jnrfuse.struct.FuseFileInfo fi)
      +
      +
      Specified by:
      +
      write_buf in interface ru.serce.jnrfuse.FuseFS
      +
      Overrides:
      +
      write_buf in class ru.serce.jnrfuse.FuseStubFS
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/JnrPtrByteOutput.html b/com/usatiuk/dhfsfuse/JnrPtrByteOutput.html new file mode 100644 index 00000000..99c843cf --- /dev/null +++ b/com/usatiuk/dhfsfuse/JnrPtrByteOutput.html @@ -0,0 +1,245 @@ + + + + +JnrPtrByteOutput (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JnrPtrByteOutput

+
+
java.lang.Object +
com.google.protobuf.ByteOutput +
com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
+
+
+
+
public class JnrPtrByteOutput +extends com.google.protobuf.ByteOutput
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JnrPtrByteOutput

      +
      public JnrPtrByteOutput(jnr.ffi.Pointer backing, + long size)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      write

      +
      public void write(byte value)
      +
      +
      Specified by:
      +
      write in class com.google.protobuf.ByteOutput
      +
      +
      +
    • +
    • +
      +

      write

      +
      public void write(byte[] value, + int offset, + int length)
      +
      +
      Specified by:
      +
      write in class com.google.protobuf.ByteOutput
      +
      +
      +
    • +
    • +
      +

      writeLazy

      +
      public void writeLazy(byte[] value, + int offset, + int length)
      +
      +
      Specified by:
      +
      writeLazy in class com.google.protobuf.ByteOutput
      +
      +
      +
    • +
    • +
      +

      write

      +
      public void write(ByteBuffer value)
      +
      +
      Specified by:
      +
      write in class com.google.protobuf.ByteOutput
      +
      +
      +
    • +
    • +
      +

      writeLazy

      +
      public void writeLazy(ByteBuffer value)
      +
      +
      Specified by:
      +
      writeLazy in class com.google.protobuf.ByteOutput
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/Main.DhfsStorageServerApp.html b/com/usatiuk/dhfsfuse/Main.DhfsStorageServerApp.html new file mode 100644 index 00000000..929c83fc --- /dev/null +++ b/com/usatiuk/dhfsfuse/Main.DhfsStorageServerApp.html @@ -0,0 +1,193 @@ + + + + +Main.DhfsStorageServerApp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class Main.DhfsStorageServerApp

+
+
java.lang.Object +
com.usatiuk.dhfsfuse.Main.DhfsStorageServerApp
+
+
+
+
All Implemented Interfaces:
+
io.quarkus.runtime.QuarkusApplication
+
+
+
Enclosing class:
+
Main
+
+
+
public static class Main.DhfsStorageServerApp +extends Object +implements io.quarkus.runtime.QuarkusApplication
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DhfsStorageServerApp

      +
      public DhfsStorageServerApp()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      run

      +
      public int run(String... args) + throws Exception
      +
      +
      Specified by:
      +
      run in interface io.quarkus.runtime.QuarkusApplication
      +
      Throws:
      +
      Exception
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/Main.html b/com/usatiuk/dhfsfuse/Main.html new file mode 100644 index 00000000..44fa8501 --- /dev/null +++ b/com/usatiuk/dhfsfuse/Main.html @@ -0,0 +1,192 @@ + + + + +Main (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class Main

+
+
java.lang.Object +
com.usatiuk.dhfsfuse.Main
+
+
+
+
public class Main +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      Main

      +
      public Main()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      main

      +
      public static void main(String... args)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/class-use/DhfsFuse.html b/com/usatiuk/dhfsfuse/class-use/DhfsFuse.html new file mode 100644 index 00000000..7165a75a --- /dev/null +++ b/com/usatiuk/dhfsfuse/class-use/DhfsFuse.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfuse.DhfsFuse (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfuse.DhfsFuse

+
+No usage of com.usatiuk.dhfsfuse.DhfsFuse
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/class-use/JnrPtrByteOutput.html b/com/usatiuk/dhfsfuse/class-use/JnrPtrByteOutput.html new file mode 100644 index 00000000..7bb45ddc --- /dev/null +++ b/com/usatiuk/dhfsfuse/class-use/JnrPtrByteOutput.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfuse.JnrPtrByteOutput (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfuse.JnrPtrByteOutput

+
+No usage of com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/class-use/Main.DhfsStorageServerApp.html b/com/usatiuk/dhfsfuse/class-use/Main.DhfsStorageServerApp.html new file mode 100644 index 00000000..e49dcc28 --- /dev/null +++ b/com/usatiuk/dhfsfuse/class-use/Main.DhfsStorageServerApp.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfuse.Main.DhfsStorageServerApp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfuse.Main.DhfsStorageServerApp

+
+No usage of com.usatiuk.dhfsfuse.Main.DhfsStorageServerApp
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/class-use/Main.html b/com/usatiuk/dhfsfuse/class-use/Main.html new file mode 100644 index 00000000..b2374d38 --- /dev/null +++ b/com/usatiuk/dhfsfuse/class-use/Main.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.dhfsfuse.Main (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.dhfsfuse.Main

+
+No usage of com.usatiuk.dhfsfuse.Main
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/package-summary.html b/com/usatiuk/dhfsfuse/package-summary.html new file mode 100644 index 00000000..0812fadb --- /dev/null +++ b/com/usatiuk/dhfsfuse/package-summary.html @@ -0,0 +1,102 @@ + + + + +com.usatiuk.dhfsfuse (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.dhfsfuse

+
+
+
package com.usatiuk.dhfsfuse
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/package-tree.html b/com/usatiuk/dhfsfuse/package-tree.html new file mode 100644 index 00000000..4fff79c0 --- /dev/null +++ b/com/usatiuk/dhfsfuse/package-tree.html @@ -0,0 +1,91 @@ + + + + +com.usatiuk.dhfsfuse Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.dhfsfuse

+
+Package Hierarchies: + +
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • ru.serce.jnrfuse.AbstractFuseFS (implements ru.serce.jnrfuse.FuseFS) +
        +
      • ru.serce.jnrfuse.FuseStubFS + +
      • +
      +
    • +
    • com.google.protobuf.ByteOutput + +
    • +
    • com.usatiuk.dhfsfuse.Main
    • +
    • com.usatiuk.dhfsfuse.Main.DhfsStorageServerApp (implements io.quarkus.runtime.QuarkusApplication)
    • +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/dhfsfuse/package-use.html b/com/usatiuk/dhfsfuse/package-use.html new file mode 100644 index 00000000..4289f222 --- /dev/null +++ b/com/usatiuk/dhfsfuse/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.usatiuk.dhfsfuse (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.dhfsfuse

+
+No usage of com.usatiuk.dhfsfuse
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/AlreadyExistsException.html b/com/usatiuk/kleppmanntree/AlreadyExistsException.html new file mode 100644 index 00000000..3566f0c7 --- /dev/null +++ b/com/usatiuk/kleppmanntree/AlreadyExistsException.html @@ -0,0 +1,202 @@ + + + + +AlreadyExistsException (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AlreadyExistsException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
java.lang.RuntimeException +
com.usatiuk.kleppmanntree.AlreadyExistsException
+
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class AlreadyExistsException +extends RuntimeException
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AlreadyExistsException

      +
      public AlreadyExistsException(String message)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/Clock.html b/com/usatiuk/kleppmanntree/Clock.html new file mode 100644 index 00000000..149671ec --- /dev/null +++ b/com/usatiuk/kleppmanntree/Clock.html @@ -0,0 +1,161 @@ + + + + +Clock (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Clock<TimestampT extends Comparable<TimestampT>>

+
+
+
+
public interface Clock<TimestampT extends Comparable<TimestampT>>
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/CombinedTimestamp.html b/com/usatiuk/kleppmanntree/CombinedTimestamp.html new file mode 100644 index 00000000..0457f12c --- /dev/null +++ b/com/usatiuk/kleppmanntree/CombinedTimestamp.html @@ -0,0 +1,294 @@ + + + + +CombinedTimestamp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class CombinedTimestamp<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.kleppmanntree.CombinedTimestamp<TimestampT,PeerIdT>
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<CombinedTimestamp<TimestampT,PeerIdT>>
+
+
+
public record CombinedTimestamp<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>>(TimestampT extends Comparable<TimestampT> timestamp, PeerIdT extends Comparable<PeerIdT> nodeId) +extends Record +implements Comparable<CombinedTimestamp<TimestampT,PeerIdT>>, Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      CombinedTimestamp

      +
      public CombinedTimestamp(TimestampT timestamp, + PeerIdT nodeId)
      +
      Creates an instance of a CombinedTimestamp record class.
      +
      +
      Parameters:
      +
      timestamp - the value for the timestamp record component
      +
      nodeId - the value for the nodeId record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      compareTo

      +
      public int compareTo(CombinedTimestamp<TimestampT,PeerIdT> o)
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<TimestampT extends Comparable<TimestampT>>
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      timestamp

      +
      public TimestampT timestamp()
      +
      Returns the value of the timestamp record component.
      +
      +
      Returns:
      +
      the value of the timestamp record component
      +
      +
      +
    • +
    • +
      +

      nodeId

      +
      public PeerIdT nodeId()
      +
      Returns the value of the nodeId record component.
      +
      +
      Returns:
      +
      the value of the nodeId record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/KleppmannTree.html b/com/usatiuk/kleppmanntree/KleppmannTree.html new file mode 100644 index 00000000..98335510 --- /dev/null +++ b/com/usatiuk/kleppmanntree/KleppmannTree.html @@ -0,0 +1,271 @@ + + + + +KleppmannTree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class KleppmannTree<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
java.lang.Object +
com.usatiuk.kleppmanntree.KleppmannTree<TimestampT,PeerIdT,MetaT,NodeIdT>
+
+
+
+
public class KleppmannTree<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT> +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/LogEffect.html b/com/usatiuk/kleppmanntree/LogEffect.html new file mode 100644 index 00000000..723e29bb --- /dev/null +++ b/com/usatiuk/kleppmanntree/LogEffect.html @@ -0,0 +1,356 @@ + + + + +LogEffect (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class LogEffect<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.kleppmanntree.LogEffect<TimestampT,PeerIdT,MetaT,NodeIdT>
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public record LogEffect<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>(LogEffectOld<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT> oldInfo, OpMove<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT> effectiveOp, NodeIdT newParentId, MetaT extends NodeMeta newMeta, NodeIdT childId) +extends Record +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      LogEffect

      +
      public LogEffect(LogEffectOld<TimestampT,PeerIdT,MetaT,NodeIdT> oldInfo, + OpMove<TimestampT,PeerIdT,MetaT,NodeIdT> effectiveOp, + NodeIdT newParentId, + MetaT newMeta, + NodeIdT childId)
      +
      Creates an instance of a LogEffect record class.
      +
      +
      Parameters:
      +
      oldInfo - the value for the oldInfo record component
      +
      effectiveOp - the value for the effectiveOp record component
      +
      newParentId - the value for the newParentId record component
      +
      newMeta - the value for the newMeta record component
      +
      childId - the value for the childId record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      oldName

      +
      public String oldName()
      +
      +
    • +
    • +
      +

      newName

      +
      public String newName()
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      oldInfo

      + +
      Returns the value of the oldInfo record component.
      +
      +
      Returns:
      +
      the value of the oldInfo record component
      +
      +
      +
    • +
    • +
      +

      effectiveOp

      +
      public OpMove<TimestampT,PeerIdT,MetaT,NodeIdT> effectiveOp()
      +
      Returns the value of the effectiveOp record component.
      +
      +
      Returns:
      +
      the value of the effectiveOp record component
      +
      +
      +
    • +
    • +
      +

      newParentId

      +
      public NodeIdT newParentId()
      +
      Returns the value of the newParentId record component.
      +
      +
      Returns:
      +
      the value of the newParentId record component
      +
      +
      +
    • +
    • +
      +

      newMeta

      +
      public MetaT newMeta()
      +
      Returns the value of the newMeta record component.
      +
      +
      Returns:
      +
      the value of the newMeta record component
      +
      +
      +
    • +
    • +
      +

      childId

      +
      public NodeIdT childId()
      +
      Returns the value of the childId record component.
      +
      +
      Returns:
      +
      the value of the childId record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/LogEffectOld.html b/com/usatiuk/kleppmanntree/LogEffectOld.html new file mode 100644 index 00000000..2ff8e56f --- /dev/null +++ b/com/usatiuk/kleppmanntree/LogEffectOld.html @@ -0,0 +1,300 @@ + + + + +LogEffectOld (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class LogEffectOld<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.kleppmanntree.LogEffectOld<TimestampT,PeerIdT,MetaT,NodeIdT>
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public record LogEffectOld<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>(OpMove<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT> oldEffectiveMove, NodeIdT oldParent, MetaT extends NodeMeta oldMeta) +extends Record +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      LogEffectOld

      +
      public LogEffectOld(OpMove<TimestampT,PeerIdT,MetaT,NodeIdT> oldEffectiveMove, + NodeIdT oldParent, + MetaT oldMeta)
      +
      Creates an instance of a LogEffectOld record class.
      +
      +
      Parameters:
      +
      oldEffectiveMove - the value for the oldEffectiveMove record component
      +
      oldParent - the value for the oldParent record component
      +
      oldMeta - the value for the oldMeta record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      oldEffectiveMove

      +
      public OpMove<TimestampT,PeerIdT,MetaT,NodeIdT> oldEffectiveMove()
      +
      Returns the value of the oldEffectiveMove record component.
      +
      +
      Returns:
      +
      the value of the oldEffectiveMove record component
      +
      +
      +
    • +
    • +
      +

      oldParent

      +
      public NodeIdT oldParent()
      +
      Returns the value of the oldParent record component.
      +
      +
      Returns:
      +
      the value of the oldParent record component
      +
      +
      +
    • +
    • +
      +

      oldMeta

      +
      public MetaT oldMeta()
      +
      Returns the value of the oldMeta record component.
      +
      +
      Returns:
      +
      the value of the oldMeta record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/LogInterface.html b/com/usatiuk/kleppmanntree/LogInterface.html new file mode 100644 index 00000000..b1ad85d7 --- /dev/null +++ b/com/usatiuk/kleppmanntree/LogInterface.html @@ -0,0 +1,230 @@ + + + + +LogInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface LogInterface<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
+
+
public interface LogInterface<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/LogRecord.html b/com/usatiuk/kleppmanntree/LogRecord.html new file mode 100644 index 00000000..1c3b98f6 --- /dev/null +++ b/com/usatiuk/kleppmanntree/LogRecord.html @@ -0,0 +1,281 @@ + + + + +LogRecord (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class LogRecord<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.kleppmanntree.LogRecord<TimestampT,PeerIdT,MetaT,NodeIdT>
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public record LogRecord<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>(OpMove<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT> op, List<LogEffect<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>> effects) +extends Record +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      op

      + +
      Returns the value of the op record component.
      +
      +
      Returns:
      +
      the value of the op record component
      +
      +
      +
    • +
    • +
      +

      effects

      + +
      Returns the value of the effects record component.
      +
      +
      Returns:
      +
      the value of the effects record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/NodeMeta.html b/com/usatiuk/kleppmanntree/NodeMeta.html new file mode 100644 index 00000000..c8f97f3c --- /dev/null +++ b/com/usatiuk/kleppmanntree/NodeMeta.html @@ -0,0 +1,165 @@ + + + + +NodeMeta (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface NodeMeta

+
+
+
+
All Superinterfaces:
+
Serializable
+
+
+
All Known Subinterfaces:
+
JKleppmannTreeNodeMeta
+
+
+
All Known Implementing Classes:
+
JKleppmannTreeNodeMetaDirectory, JKleppmannTreeNodeMetaFile, JKleppmannTreeNodeMetaPeer
+
+
+
public interface NodeMeta +extends Serializable
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    + + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/OpMove.html b/com/usatiuk/kleppmanntree/OpMove.html new file mode 100644 index 00000000..d242b8cd --- /dev/null +++ b/com/usatiuk/kleppmanntree/OpMove.html @@ -0,0 +1,328 @@ + + + + +OpMove (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class OpMove<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.kleppmanntree.OpMove<TimestampT,PeerIdT,MetaT,NodeIdT>
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public record OpMove<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>(CombinedTimestamp<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>> timestamp, NodeIdT newParentId, MetaT extends NodeMeta newMeta, NodeIdT childId) +extends Record +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      OpMove

      +
      public OpMove(CombinedTimestamp<TimestampT,PeerIdT> timestamp, + NodeIdT newParentId, + MetaT newMeta, + NodeIdT childId)
      +
      Creates an instance of a OpMove record class.
      +
      +
      Parameters:
      +
      timestamp - the value for the timestamp record component
      +
      newParentId - the value for the newParentId record component
      +
      newMeta - the value for the newMeta record component
      +
      childId - the value for the childId record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      newName

      +
      public String newName()
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      timestamp

      +
      public CombinedTimestamp<TimestampT,PeerIdT> timestamp()
      +
      Returns the value of the timestamp record component.
      +
      +
      Returns:
      +
      the value of the timestamp record component
      +
      +
      +
    • +
    • +
      +

      newParentId

      +
      public NodeIdT newParentId()
      +
      Returns the value of the newParentId record component.
      +
      +
      Returns:
      +
      the value of the newParentId record component
      +
      +
      +
    • +
    • +
      +

      newMeta

      +
      public MetaT newMeta()
      +
      Returns the value of the newMeta record component.
      +
      +
      Returns:
      +
      the value of the newMeta record component
      +
      +
      +
    • +
    • +
      +

      childId

      +
      public NodeIdT childId()
      +
      Returns the value of the childId record component.
      +
      +
      Returns:
      +
      the value of the childId record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/OpRecorder.html b/com/usatiuk/kleppmanntree/OpRecorder.html new file mode 100644 index 00000000..2ea71895 --- /dev/null +++ b/com/usatiuk/kleppmanntree/OpRecorder.html @@ -0,0 +1,154 @@ + + + + +OpRecorder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface OpRecorder<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
+
+
public interface OpRecorder<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/PeerInterface.html b/com/usatiuk/kleppmanntree/PeerInterface.html new file mode 100644 index 00000000..0534ebaf --- /dev/null +++ b/com/usatiuk/kleppmanntree/PeerInterface.html @@ -0,0 +1,156 @@ + + + + +PeerInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerInterface<PeerIdT extends Comparable<PeerIdT>>

+
+
+
+
All Known Implementing Classes:
+
JKleppmannTreePeerInterface
+
+
+
public interface PeerInterface<PeerIdT extends Comparable<PeerIdT>>
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/PeerTimestampLogInterface.html b/com/usatiuk/kleppmanntree/PeerTimestampLogInterface.html new file mode 100644 index 00000000..173fd0b1 --- /dev/null +++ b/com/usatiuk/kleppmanntree/PeerTimestampLogInterface.html @@ -0,0 +1,154 @@ + + + + +PeerTimestampLogInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PeerTimestampLogInterface<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>>

+
+
+
+
public interface PeerTimestampLogInterface<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>>
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/StorageInterface.html b/com/usatiuk/kleppmanntree/StorageInterface.html new file mode 100644 index 00000000..d7e38545 --- /dev/null +++ b/com/usatiuk/kleppmanntree/StorageInterface.html @@ -0,0 +1,232 @@ + + + + +StorageInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface StorageInterface<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
+
+
All Known Implementing Classes:
+
JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
+
+
public interface StorageInterface<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/TreeNode.html b/com/usatiuk/kleppmanntree/TreeNode.html new file mode 100644 index 00000000..3dfcc031 --- /dev/null +++ b/com/usatiuk/kleppmanntree/TreeNode.html @@ -0,0 +1,234 @@ + + + + +TreeNode (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface TreeNode<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT>

+
+
+
+
All Superinterfaces:
+
Serializable
+
+
+
All Known Implementing Classes:
+
JKleppmannTreeNode
+
+
+
public interface TreeNode<TimestampT extends Comparable<TimestampT>,PeerIdT extends Comparable<PeerIdT>,MetaT extends NodeMeta,NodeIdT> +extends Serializable
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/AlreadyExistsException.html b/com/usatiuk/kleppmanntree/class-use/AlreadyExistsException.html new file mode 100644 index 00000000..fcc255fd --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/AlreadyExistsException.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.kleppmanntree.AlreadyExistsException (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.kleppmanntree.AlreadyExistsException

+
+No usage of com.usatiuk.kleppmanntree.AlreadyExistsException
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/Clock.html b/com/usatiuk/kleppmanntree/class-use/Clock.html new file mode 100644 index 00000000..a5f311da --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/Clock.html @@ -0,0 +1,90 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.Clock (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.Clock

+
+
Packages that use Clock
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/CombinedTimestamp.html b/com/usatiuk/kleppmanntree/class-use/CombinedTimestamp.html new file mode 100644 index 00000000..2d55253f --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/CombinedTimestamp.html @@ -0,0 +1,212 @@ + + + + +Uses of Record Class com.usatiuk.kleppmanntree.CombinedTimestamp (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.kleppmanntree.CombinedTimestamp

+
+
Packages that use CombinedTimestamp
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/KleppmannTree.html b/com/usatiuk/kleppmanntree/class-use/KleppmannTree.html new file mode 100644 index 00000000..77c7fb65 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/KleppmannTree.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.kleppmanntree.KleppmannTree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.kleppmanntree.KleppmannTree

+
+No usage of com.usatiuk.kleppmanntree.KleppmannTree
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/LogEffect.html b/com/usatiuk/kleppmanntree/class-use/LogEffect.html new file mode 100644 index 00000000..14f990f9 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/LogEffect.html @@ -0,0 +1,101 @@ + + + + +Uses of Record Class com.usatiuk.kleppmanntree.LogEffect (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.kleppmanntree.LogEffect

+
+
Packages that use LogEffect
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/LogEffectOld.html b/com/usatiuk/kleppmanntree/class-use/LogEffectOld.html new file mode 100644 index 00000000..e7185451 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/LogEffectOld.html @@ -0,0 +1,104 @@ + + + + +Uses of Record Class com.usatiuk.kleppmanntree.LogEffectOld (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.kleppmanntree.LogEffectOld

+
+
Packages that use LogEffectOld
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/LogInterface.html b/com/usatiuk/kleppmanntree/class-use/LogInterface.html new file mode 100644 index 00000000..f07c2bf5 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/LogInterface.html @@ -0,0 +1,103 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.LogInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.LogInterface

+
+
Packages that use LogInterface
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/LogRecord.html b/com/usatiuk/kleppmanntree/class-use/LogRecord.html new file mode 100644 index 00000000..dc47594f --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/LogRecord.html @@ -0,0 +1,158 @@ + + + + +Uses of Record Class com.usatiuk.kleppmanntree.LogRecord (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.kleppmanntree.LogRecord

+
+
Packages that use LogRecord
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/NodeMeta.html b/com/usatiuk/kleppmanntree/class-use/NodeMeta.html new file mode 100644 index 00000000..2738984a --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/NodeMeta.html @@ -0,0 +1,175 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.NodeMeta (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.NodeMeta

+
+
Packages that use NodeMeta
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/OpMove.html b/com/usatiuk/kleppmanntree/class-use/OpMove.html new file mode 100644 index 00000000..1989f4ee --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/OpMove.html @@ -0,0 +1,259 @@ + + + + +Uses of Record Class com.usatiuk.kleppmanntree.OpMove (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.kleppmanntree.OpMove

+
+
Packages that use OpMove
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/OpRecorder.html b/com/usatiuk/kleppmanntree/class-use/OpRecorder.html new file mode 100644 index 00000000..c08500c6 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/OpRecorder.html @@ -0,0 +1,90 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.OpRecorder (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.OpRecorder

+
+
Packages that use OpRecorder
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/PeerInterface.html b/com/usatiuk/kleppmanntree/class-use/PeerInterface.html new file mode 100644 index 00000000..6b53b340 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/PeerInterface.html @@ -0,0 +1,106 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.PeerInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.PeerInterface

+
+
Packages that use PeerInterface
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/PeerTimestampLogInterface.html b/com/usatiuk/kleppmanntree/class-use/PeerTimestampLogInterface.html new file mode 100644 index 00000000..85654f7b --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/PeerTimestampLogInterface.html @@ -0,0 +1,103 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.PeerTimestampLogInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.PeerTimestampLogInterface

+
+
Packages that use PeerTimestampLogInterface
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/StorageInterface.html b/com/usatiuk/kleppmanntree/class-use/StorageInterface.html new file mode 100644 index 00000000..29aa5240 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/StorageInterface.html @@ -0,0 +1,106 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.StorageInterface (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.StorageInterface

+
+
Packages that use StorageInterface
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/class-use/TreeNode.html b/com/usatiuk/kleppmanntree/class-use/TreeNode.html new file mode 100644 index 00000000..42c48b84 --- /dev/null +++ b/com/usatiuk/kleppmanntree/class-use/TreeNode.html @@ -0,0 +1,166 @@ + + + + +Uses of Interface com.usatiuk.kleppmanntree.TreeNode (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.kleppmanntree.TreeNode

+
+
Packages that use TreeNode
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/package-summary.html b/com/usatiuk/kleppmanntree/package-summary.html new file mode 100644 index 00000000..97393f5e --- /dev/null +++ b/com/usatiuk/kleppmanntree/package-summary.html @@ -0,0 +1,126 @@ + + + + +com.usatiuk.kleppmanntree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.kleppmanntree

+
+
+
package com.usatiuk.kleppmanntree
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/package-tree.html b/com/usatiuk/kleppmanntree/package-tree.html new file mode 100644 index 00000000..be0469ea --- /dev/null +++ b/com/usatiuk/kleppmanntree/package-tree.html @@ -0,0 +1,124 @@ + + + + +com.usatiuk.kleppmanntree Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.kleppmanntree

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/kleppmanntree/package-use.html b/com/usatiuk/kleppmanntree/package-use.html new file mode 100644 index 00000000..16b53185 --- /dev/null +++ b/com/usatiuk/kleppmanntree/package-use.html @@ -0,0 +1,178 @@ + + + + +Uses of Package com.usatiuk.kleppmanntree (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.kleppmanntree

+
+
Packages that use com.usatiuk.kleppmanntree
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JData.html b/com/usatiuk/objects/JData.html new file mode 100644 index 00000000..c34529b2 --- /dev/null +++ b/com/usatiuk/objects/JData.html @@ -0,0 +1,165 @@ + + + + +JData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JData

+
+
+
+
All Superinterfaces:
+
Serializable
+
+
+
All Known Subinterfaces:
+
JDataRefcounted, JMapHolder<K>
+
+
+
All Known Implementing Classes:
+
File, JKleppmannTreeNodeHolder, JKleppmannTreePersistentData, JMapEntry, PersistentRemoteHostsData, RemoteObjectDataWrapper, RemoteObjectMeta
+
+
+
public interface JData +extends Serializable
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    default int
    + +
     
    + +
    key()
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      key

      +
      JObjectKey key()
      +
      +
    • +
    • +
      +

      estimateSize

      +
      default int estimateSize()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JDataVersionedWrapper.html b/com/usatiuk/objects/JDataVersionedWrapper.html new file mode 100644 index 00000000..681d2177 --- /dev/null +++ b/com/usatiuk/objects/JDataVersionedWrapper.html @@ -0,0 +1,184 @@ + + + + +JDataVersionedWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JDataVersionedWrapper

+
+
+
+
All Superinterfaces:
+
Data<JDataVersionedWrapper>, MaybeTombstone<JDataVersionedWrapper>
+
+
+
All Known Implementing Classes:
+
JDataVersionedWrapperImpl, JDataVersionedWrapperLazy
+
+
+
public sealed interface JDataVersionedWrapper +extends Data<JDataVersionedWrapper> +permits JDataVersionedWrapperLazy, JDataVersionedWrapperImpl
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JDataVersionedWrapperImpl.html b/com/usatiuk/objects/JDataVersionedWrapperImpl.html new file mode 100644 index 00000000..2bc7eb38 --- /dev/null +++ b/com/usatiuk/objects/JDataVersionedWrapperImpl.html @@ -0,0 +1,303 @@ + + + + +JDataVersionedWrapperImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JDataVersionedWrapperImpl

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
+
+
+
All Implemented Interfaces:
+
Data<JDataVersionedWrapper>, MaybeTombstone<JDataVersionedWrapper>, JDataVersionedWrapper, Serializable
+
+
+
public record JDataVersionedWrapperImpl(@Nonnull JData data, long version) +extends Record +implements Serializable, JDataVersionedWrapper
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    JDataVersionedWrapperImpl(JData data, + long version)
    +
    +
    Creates an instance of a JDataVersionedWrapperImpl record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the data record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    int
    + +
     
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    long
    + +
    +
    Returns the value of the version record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface com.usatiuk.objects.JDataVersionedWrapper

    +value
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JDataVersionedWrapperImpl

      +
      public JDataVersionedWrapperImpl(@Nonnull + JData data, + long version)
      +
      Creates an instance of a JDataVersionedWrapperImpl record class.
      +
      +
      Parameters:
      +
      data - the value for the data record component
      +
      version - the value for the version record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      estimateSize

      +
      public int estimateSize()
      +
      +
      Specified by:
      +
      estimateSize in interface JDataVersionedWrapper
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      data

      +
      @Nonnull +public JData data()
      +
      Returns the value of the data record component.
      +
      +
      Specified by:
      +
      data in interface JDataVersionedWrapper
      +
      Returns:
      +
      the value of the data record component
      +
      +
      +
    • +
    • +
      +

      version

      +
      public long version()
      +
      Returns the value of the version record component.
      +
      +
      Specified by:
      +
      version in interface JDataVersionedWrapper
      +
      Returns:
      +
      the value of the version record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JDataVersionedWrapperLazy.html b/com/usatiuk/objects/JDataVersionedWrapperLazy.html new file mode 100644 index 00000000..2b450dbd --- /dev/null +++ b/com/usatiuk/objects/JDataVersionedWrapperLazy.html @@ -0,0 +1,228 @@ + + + + +JDataVersionedWrapperLazy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JDataVersionedWrapperLazy

+
+
java.lang.Object +
com.usatiuk.objects.JDataVersionedWrapperLazy
+
+
+
+
All Implemented Interfaces:
+
Data<JDataVersionedWrapper>, MaybeTombstone<JDataVersionedWrapper>, JDataVersionedWrapper
+
+
+
public final class JDataVersionedWrapperLazy +extends Object +implements JDataVersionedWrapper
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JDataVersionedWrapperLazy

      +
      public JDataVersionedWrapperLazy(long version, + int estimatedSize, + Supplier<JData> producer)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JDataVersionedWrapperSerializer.html b/com/usatiuk/objects/JDataVersionedWrapperSerializer.html new file mode 100644 index 00000000..ca5c0a56 --- /dev/null +++ b/com/usatiuk/objects/JDataVersionedWrapperSerializer.html @@ -0,0 +1,187 @@ + + + + +JDataVersionedWrapperSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JDataVersionedWrapperSerializer

+
+
java.lang.Object +
com.usatiuk.objects.JDataVersionedWrapperSerializer
+
+
+
+
@Singleton +public class JDataVersionedWrapperSerializer +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JDataVersionedWrapperSerializer

      +
      public JDataVersionedWrapperSerializer()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JObjectKey.html b/com/usatiuk/objects/JObjectKey.html new file mode 100644 index 00000000..6297ee38 --- /dev/null +++ b/com/usatiuk/objects/JObjectKey.html @@ -0,0 +1,280 @@ + + + + +JObjectKey (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface JObjectKey

+
+
+
+
All Superinterfaces:
+
Comparable<JObjectKey>, Serializable
+
+
+
All Known Implementing Classes:
+
JObjectKeyImpl, JObjectKeyMax, JObjectKeyMin
+
+
+
public sealed interface JObjectKey +extends Serializable, Comparable<JObjectKey> +permits JObjectKeyImpl, JObjectKeyMax, JObjectKeyMin
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JObjectKeyImpl.html b/com/usatiuk/objects/JObjectKeyImpl.html new file mode 100644 index 00000000..6d163d31 --- /dev/null +++ b/com/usatiuk/objects/JObjectKeyImpl.html @@ -0,0 +1,280 @@ + + + + +JObjectKeyImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JObjectKeyImpl

+
+
java.lang.Object +
com.usatiuk.objects.JObjectKeyImpl
+
+
+
+
All Implemented Interfaces:
+
JObjectKey, Serializable, Comparable<JObjectKey>
+
+
+
public final class JObjectKeyImpl +extends Object +implements JObjectKey
+
+
See Also:
+
+ +
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JObjectKeyMax.html b/com/usatiuk/objects/JObjectKeyMax.html new file mode 100644 index 00000000..7e2bac0b --- /dev/null +++ b/com/usatiuk/objects/JObjectKeyMax.html @@ -0,0 +1,294 @@ + + + + +JObjectKeyMax (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JObjectKeyMax

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.JObjectKeyMax
+
+
+
+
+
All Implemented Interfaces:
+
JObjectKey, Serializable, Comparable<JObjectKey>
+
+
+
public record JObjectKeyMax() +extends Record +implements JObjectKey
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JObjectKeyMax

      +
      public JObjectKeyMax()
      +
      Creates an instance of a JObjectKeyMax record class.
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      compareTo

      +
      public int compareTo(JObjectKey o)
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<JObjectKey>
      +
      Specified by:
      +
      compareTo in interface JObjectKey
      +
      +
      +
    • +
    • +
      +

      toByteBuffer

      +
      public ByteBuffer toByteBuffer()
      +
      +
      Specified by:
      +
      toByteBuffer in interface JObjectKey
      +
      +
      +
    • +
    • +
      +

      value

      +
      public String value()
      +
      +
      Specified by:
      +
      value in interface JObjectKey
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in interface JObjectKey
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JObjectKeyMin.html b/com/usatiuk/objects/JObjectKeyMin.html new file mode 100644 index 00000000..abbd9b98 --- /dev/null +++ b/com/usatiuk/objects/JObjectKeyMin.html @@ -0,0 +1,294 @@ + + + + +JObjectKeyMin (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class JObjectKeyMin

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.JObjectKeyMin
+
+
+
+
+
All Implemented Interfaces:
+
JObjectKey, Serializable, Comparable<JObjectKey>
+
+
+
public record JObjectKeyMin() +extends Record +implements JObjectKey
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JObjectKeyMin

      +
      public JObjectKeyMin()
      +
      Creates an instance of a JObjectKeyMin record class.
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      compareTo

      +
      public int compareTo(JObjectKey o)
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<JObjectKey>
      +
      Specified by:
      +
      compareTo in interface JObjectKey
      +
      +
      +
    • +
    • +
      +

      toByteBuffer

      +
      public ByteBuffer toByteBuffer()
      +
      +
      Specified by:
      +
      toByteBuffer in interface JObjectKey
      +
      +
      +
    • +
    • +
      +

      value

      +
      public String value()
      +
      +
      Specified by:
      +
      value in interface JObjectKey
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in interface JObjectKey
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/JavaDataSerializer.html b/com/usatiuk/objects/JavaDataSerializer.html new file mode 100644 index 00000000..b92968c2 --- /dev/null +++ b/com/usatiuk/objects/JavaDataSerializer.html @@ -0,0 +1,200 @@ + + + + +JavaDataSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class JavaDataSerializer

+
+
java.lang.Object +
com.usatiuk.objects.JavaDataSerializer
+
+
+
+
All Implemented Interfaces:
+
ObjectSerializer<JData>
+
+
+
@ApplicationScoped +public class JavaDataSerializer +extends Object +implements ObjectSerializer<JData>
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      JavaDataSerializer

      +
      public JavaDataSerializer()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/ObjectSerializer.html b/com/usatiuk/objects/ObjectSerializer.html new file mode 100644 index 00000000..7222da24 --- /dev/null +++ b/com/usatiuk/objects/ObjectSerializer.html @@ -0,0 +1,156 @@ + + + + +ObjectSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ObjectSerializer<T>

+
+
+
+
All Known Implementing Classes:
+
JavaDataSerializer
+
+
+
public interface ObjectSerializer<T>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    com.google.protobuf.ByteString
    +
    serialize(T obj)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      serialize

      +
      com.google.protobuf.ByteString serialize(T obj)
      +
      +
    • +
    • +
      +

      deserialize

      +
      T deserialize(ByteBuffer data)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JData.html b/com/usatiuk/objects/class-use/JData.html new file mode 100644 index 00000000..dc19c347 --- /dev/null +++ b/com/usatiuk/objects/class-use/JData.html @@ -0,0 +1,526 @@ + + + + +Uses of Interface com.usatiuk.objects.JData (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.JData

+
+
Packages that use JData
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JDataVersionedWrapper.html b/com/usatiuk/objects/class-use/JDataVersionedWrapper.html new file mode 100644 index 00000000..06f88c4a --- /dev/null +++ b/com/usatiuk/objects/class-use/JDataVersionedWrapper.html @@ -0,0 +1,166 @@ + + + + +Uses of Interface com.usatiuk.objects.JDataVersionedWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.JDataVersionedWrapper

+
+
Packages that use JDataVersionedWrapper
+
+
Package
+
Description
+ +
 
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JDataVersionedWrapperImpl.html b/com/usatiuk/objects/class-use/JDataVersionedWrapperImpl.html new file mode 100644 index 00000000..ddc4d3f3 --- /dev/null +++ b/com/usatiuk/objects/class-use/JDataVersionedWrapperImpl.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.objects.JDataVersionedWrapperImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.JDataVersionedWrapperImpl

+
+No usage of com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JDataVersionedWrapperLazy.html b/com/usatiuk/objects/class-use/JDataVersionedWrapperLazy.html new file mode 100644 index 00000000..ba281b0d --- /dev/null +++ b/com/usatiuk/objects/class-use/JDataVersionedWrapperLazy.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.JDataVersionedWrapperLazy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.JDataVersionedWrapperLazy

+
+No usage of com.usatiuk.objects.JDataVersionedWrapperLazy
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JDataVersionedWrapperSerializer.html b/com/usatiuk/objects/class-use/JDataVersionedWrapperSerializer.html new file mode 100644 index 00000000..6e8f48fa --- /dev/null +++ b/com/usatiuk/objects/class-use/JDataVersionedWrapperSerializer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.JDataVersionedWrapperSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.JDataVersionedWrapperSerializer

+
+No usage of com.usatiuk.objects.JDataVersionedWrapperSerializer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JObjectKey.html b/com/usatiuk/objects/class-use/JObjectKey.html new file mode 100644 index 00000000..8e311312 --- /dev/null +++ b/com/usatiuk/objects/class-use/JObjectKey.html @@ -0,0 +1,1504 @@ + + + + +Uses of Interface com.usatiuk.objects.JObjectKey (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.JObjectKey

+
+
Packages that use JObjectKey
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JObjectKeyImpl.html b/com/usatiuk/objects/class-use/JObjectKeyImpl.html new file mode 100644 index 00000000..90a47546 --- /dev/null +++ b/com/usatiuk/objects/class-use/JObjectKeyImpl.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.JObjectKeyImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.JObjectKeyImpl

+
+No usage of com.usatiuk.objects.JObjectKeyImpl
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JObjectKeyMax.html b/com/usatiuk/objects/class-use/JObjectKeyMax.html new file mode 100644 index 00000000..fa2a32b8 --- /dev/null +++ b/com/usatiuk/objects/class-use/JObjectKeyMax.html @@ -0,0 +1,87 @@ + + + + +Uses of Record Class com.usatiuk.objects.JObjectKeyMax (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.JObjectKeyMax

+
+
Packages that use JObjectKeyMax
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JObjectKeyMin.html b/com/usatiuk/objects/class-use/JObjectKeyMin.html new file mode 100644 index 00000000..998d9ca4 --- /dev/null +++ b/com/usatiuk/objects/class-use/JObjectKeyMin.html @@ -0,0 +1,87 @@ + + + + +Uses of Record Class com.usatiuk.objects.JObjectKeyMin (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.JObjectKeyMin

+
+
Packages that use JObjectKeyMin
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/JavaDataSerializer.html b/com/usatiuk/objects/class-use/JavaDataSerializer.html new file mode 100644 index 00000000..d7cf3202 --- /dev/null +++ b/com/usatiuk/objects/class-use/JavaDataSerializer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.JavaDataSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.JavaDataSerializer

+
+No usage of com.usatiuk.objects.JavaDataSerializer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/class-use/ObjectSerializer.html b/com/usatiuk/objects/class-use/ObjectSerializer.html new file mode 100644 index 00000000..da9d3bc8 --- /dev/null +++ b/com/usatiuk/objects/class-use/ObjectSerializer.html @@ -0,0 +1,87 @@ + + + + +Uses of Interface com.usatiuk.objects.ObjectSerializer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.ObjectSerializer

+
+
Packages that use ObjectSerializer
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/CloseableKvIterator.html b/com/usatiuk/objects/iterators/CloseableKvIterator.html new file mode 100644 index 00000000..c6caa95c --- /dev/null +++ b/com/usatiuk/objects/iterators/CloseableKvIterator.html @@ -0,0 +1,222 @@ + + + + +CloseableKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface CloseableKvIterator<K extends Comparable<? super K>,V>

+
+
+
+
All Superinterfaces:
+
AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>
+
+
+
All Known Implementing Classes:
+
JMapIterator, KeyPredicateKvIterator, MappingKvIterator, MergingKvIterator, NavigableMapKvIterator, ReversedKvIterator, ReversibleKvIterator, TombstoneSkippingIterator
+
+
+
public interface CloseableKvIterator<K extends Comparable<? super K>,V> +extends Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>, AutoCloseable
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      peekNextKey

      +
      K peekNextKey()
      +
      +
    • +
    • +
      +

      skip

      +
      void skip()
      +
      +
    • +
    • +
      +

      peekPrevKey

      +
      K peekPrevKey()
      +
      +
    • +
    • +
      +

      prev

      +
      org.apache.commons.lang3.tuple.Pair<K,V> prev()
      +
      +
    • +
    • +
      +

      hasPrev

      +
      boolean hasPrev()
      +
      +
    • +
    • +
      +

      skipPrev

      +
      void skipPrev()
      +
      +
    • +
    • +
      +

      reversed

      +
      default CloseableKvIterator<K,V> reversed()
      +
      +
    • +
    • +
      +

      close

      +
      void close()
      +
      +
      Specified by:
      +
      close in interface AutoCloseable
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/Data.html b/com/usatiuk/objects/iterators/Data.html new file mode 100644 index 00000000..07e39641 --- /dev/null +++ b/com/usatiuk/objects/iterators/Data.html @@ -0,0 +1,156 @@ + + + + +Data (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Data<V>

+
+
+
+
All Superinterfaces:
+
MaybeTombstone<V>
+
+
+
All Known Subinterfaces:
+
JDataVersionedWrapper
+
+
+
All Known Implementing Classes:
+
DataWrapper, JDataVersionedWrapperImpl, JDataVersionedWrapperLazy, PendingWrite
+
+
+
public interface Data<V> +extends MaybeTombstone<V>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      value

      +
      V value()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/DataWrapper.html b/com/usatiuk/objects/iterators/DataWrapper.html new file mode 100644 index 00000000..27de483d --- /dev/null +++ b/com/usatiuk/objects/iterators/DataWrapper.html @@ -0,0 +1,256 @@ + + + + +DataWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class DataWrapper<V>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.iterators.DataWrapper<V>
+
+
+
+
+
All Implemented Interfaces:
+
Data<V>, MaybeTombstone<V>
+
+
+
public record DataWrapper<V>(V value) +extends Record +implements Data<V>
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    DataWrapper(V value)
    +
    +
    Creates an instance of a DataWrapper record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    + + +
    +
    Returns the value of the value record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DataWrapper

      +
      public DataWrapper(V value)
      +
      Creates an instance of a DataWrapper record class.
      +
      +
      Parameters:
      +
      value - the value for the value record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      value

      +
      public V value()
      +
      Returns the value of the value record component.
      +
      +
      Specified by:
      +
      value in interface Data<V>
      +
      Returns:
      +
      the value of the value record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/IteratorStart.html b/com/usatiuk/objects/iterators/IteratorStart.html new file mode 100644 index 00000000..4da8b56b --- /dev/null +++ b/com/usatiuk/objects/iterators/IteratorStart.html @@ -0,0 +1,252 @@ + + + + +IteratorStart (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class IteratorStart

+
+
java.lang.Object +
java.lang.Enum<IteratorStart> +
com.usatiuk.objects.iterators.IteratorStart
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<IteratorStart>, Constable
+
+
+
public enum IteratorStart +extends Enum<IteratorStart>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static IteratorStart[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static IteratorStart valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/KeyPredicateKvIterator.html b/com/usatiuk/objects/iterators/KeyPredicateKvIterator.html new file mode 100644 index 00000000..26627e77 --- /dev/null +++ b/com/usatiuk/objects/iterators/KeyPredicateKvIterator.html @@ -0,0 +1,285 @@ + + + + +KeyPredicateKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class KeyPredicateKvIterator<K extends Comparable<K>,V>

+
+
java.lang.Object +
com.usatiuk.objects.iterators.ReversibleKvIterator<K,V> +
com.usatiuk.objects.iterators.KeyPredicateKvIterator<K,V>
+
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,V>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>
+
+
+
public class KeyPredicateKvIterator<K extends Comparable<K>,V> +extends ReversibleKvIterator<K,V>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/MappingKvIterator.html b/com/usatiuk/objects/iterators/MappingKvIterator.html new file mode 100644 index 00000000..f67ebf03 --- /dev/null +++ b/com/usatiuk/objects/iterators/MappingKvIterator.html @@ -0,0 +1,313 @@ + + + + +MappingKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MappingKvIterator<K extends Comparable<K>,V,V_T>

+
+
java.lang.Object +
com.usatiuk.objects.iterators.MappingKvIterator<K,V,V_T>
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,V_T>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V_T>>
+
+
+
public class MappingKvIterator<K extends Comparable<K>,V,V_T> +extends Object +implements CloseableKvIterator<K,V_T>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/MaybeTombstone.html b/com/usatiuk/objects/iterators/MaybeTombstone.html new file mode 100644 index 00000000..1cc65983 --- /dev/null +++ b/com/usatiuk/objects/iterators/MaybeTombstone.html @@ -0,0 +1,110 @@ + + + + +MaybeTombstone (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface MaybeTombstone<T>

+
+
+
+
All Known Subinterfaces:
+
Data<V>, JDataVersionedWrapper, PendingWriteEntry, Tombstone<V>
+
+
+
All Known Implementing Classes:
+
DataWrapper, JDataVersionedWrapperImpl, JDataVersionedWrapperLazy, PendingDelete, PendingWrite, TombstoneImpl
+
+
+
public interface MaybeTombstone<T>
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/MergingKvIterator.html b/com/usatiuk/objects/iterators/MergingKvIterator.html new file mode 100644 index 00000000..7a662068 --- /dev/null +++ b/com/usatiuk/objects/iterators/MergingKvIterator.html @@ -0,0 +1,296 @@ + + + + +MergingKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MergingKvIterator<K extends Comparable<K>,V>

+
+
java.lang.Object +
com.usatiuk.objects.iterators.ReversibleKvIterator<K,V> +
com.usatiuk.objects.iterators.MergingKvIterator<K,V>
+
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,V>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>
+
+
+
public class MergingKvIterator<K extends Comparable<K>,V> +extends ReversibleKvIterator<K,V>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/NavigableMapKvIterator.html b/com/usatiuk/objects/iterators/NavigableMapKvIterator.html new file mode 100644 index 00000000..ad3a935b --- /dev/null +++ b/com/usatiuk/objects/iterators/NavigableMapKvIterator.html @@ -0,0 +1,283 @@ + + + + +NavigableMapKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class NavigableMapKvIterator<K extends Comparable<K>,V>

+
+
java.lang.Object +
com.usatiuk.objects.iterators.ReversibleKvIterator<K,V> +
com.usatiuk.objects.iterators.NavigableMapKvIterator<K,V>
+
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,V>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>
+
+
+
public class NavigableMapKvIterator<K extends Comparable<K>,V> +extends ReversibleKvIterator<K,V>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/ReversedKvIterator.html b/com/usatiuk/objects/iterators/ReversedKvIterator.html new file mode 100644 index 00000000..2d010d1f --- /dev/null +++ b/com/usatiuk/objects/iterators/ReversedKvIterator.html @@ -0,0 +1,308 @@ + + + + +ReversedKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ReversedKvIterator<K extends Comparable<? super K>,V>

+
+
java.lang.Object +
com.usatiuk.objects.iterators.ReversedKvIterator<K,V>
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,V>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>
+
+
+
public class ReversedKvIterator<K extends Comparable<? super K>,V> +extends Object +implements CloseableKvIterator<K,V>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/ReversibleKvIterator.html b/com/usatiuk/objects/iterators/ReversibleKvIterator.html new file mode 100644 index 00000000..c6d85147 --- /dev/null +++ b/com/usatiuk/objects/iterators/ReversibleKvIterator.html @@ -0,0 +1,361 @@ + + + + +ReversibleKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ReversibleKvIterator<K extends Comparable<K>,V>

+
+
java.lang.Object +
com.usatiuk.objects.iterators.ReversibleKvIterator<K,V>
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,V>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>
+
+
+
Direct Known Subclasses:
+
KeyPredicateKvIterator, MergingKvIterator, NavigableMapKvIterator, TombstoneSkippingIterator
+
+
+
public abstract class ReversibleKvIterator<K extends Comparable<K>,V> +extends Object +implements CloseableKvIterator<K,V>
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      _goingForward

      +
      protected boolean _goingForward
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ReversibleKvIterator

      +
      public ReversibleKvIterator()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/Tombstone.html b/com/usatiuk/objects/iterators/Tombstone.html new file mode 100644 index 00000000..669657a5 --- /dev/null +++ b/com/usatiuk/objects/iterators/Tombstone.html @@ -0,0 +1,111 @@ + + + + +Tombstone (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Tombstone<V>

+
+
+
+
All Superinterfaces:
+
MaybeTombstone<V>
+
+
+
All Known Implementing Classes:
+
PendingDelete, TombstoneImpl
+
+
+
public interface Tombstone<V> +extends MaybeTombstone<V>
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/TombstoneImpl.html b/com/usatiuk/objects/iterators/TombstoneImpl.html new file mode 100644 index 00000000..d79c62b0 --- /dev/null +++ b/com/usatiuk/objects/iterators/TombstoneImpl.html @@ -0,0 +1,234 @@ + + + + +TombstoneImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class TombstoneImpl<V>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.iterators.TombstoneImpl<V>
+
+
+
+
+
All Implemented Interfaces:
+
MaybeTombstone<V>, Tombstone<V>
+
+
+
public record TombstoneImpl<V>() +extends Record +implements Tombstone<V>
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
    +
    Creates an instance of a TombstoneImpl record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TombstoneImpl

      +
      public TombstoneImpl()
      +
      Creates an instance of a TombstoneImpl record class.
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/TombstoneSkippingIterator.html b/com/usatiuk/objects/iterators/TombstoneSkippingIterator.html new file mode 100644 index 00000000..ce8621b6 --- /dev/null +++ b/com/usatiuk/objects/iterators/TombstoneSkippingIterator.html @@ -0,0 +1,283 @@ + + + + +TombstoneSkippingIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TombstoneSkippingIterator<K extends Comparable<K>,V>

+
+
java.lang.Object +
com.usatiuk.objects.iterators.ReversibleKvIterator<K,V> +
com.usatiuk.objects.iterators.TombstoneSkippingIterator<K,V>
+
+
+
+
+
All Implemented Interfaces:
+
CloseableKvIterator<K,V>, AutoCloseable, Iterator<org.apache.commons.lang3.tuple.Pair<K,V>>
+
+
+
public class TombstoneSkippingIterator<K extends Comparable<K>,V> +extends ReversibleKvIterator<K,V>
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/CloseableKvIterator.html b/com/usatiuk/objects/iterators/class-use/CloseableKvIterator.html new file mode 100644 index 00000000..c7e2113d --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/CloseableKvIterator.html @@ -0,0 +1,238 @@ + + + + +Uses of Interface com.usatiuk.objects.iterators.CloseableKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.iterators.CloseableKvIterator

+
+
Packages that use CloseableKvIterator
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/Data.html b/com/usatiuk/objects/iterators/class-use/Data.html new file mode 100644 index 00000000..096abdcb --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/Data.html @@ -0,0 +1,131 @@ + + + + +Uses of Interface com.usatiuk.objects.iterators.Data (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.iterators.Data

+
+
Packages that use Data
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/DataWrapper.html b/com/usatiuk/objects/iterators/class-use/DataWrapper.html new file mode 100644 index 00000000..d94043a0 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/DataWrapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.objects.iterators.DataWrapper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.iterators.DataWrapper

+
+No usage of com.usatiuk.objects.iterators.DataWrapper
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/IteratorStart.html b/com/usatiuk/objects/iterators/class-use/IteratorStart.html new file mode 100644 index 00000000..d2ef1a08 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/IteratorStart.html @@ -0,0 +1,183 @@ + + + + +Uses of Enum Class com.usatiuk.objects.iterators.IteratorStart (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
com.usatiuk.objects.iterators.IteratorStart

+
+
Packages that use IteratorStart
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/KeyPredicateKvIterator.html b/com/usatiuk/objects/iterators/class-use/KeyPredicateKvIterator.html new file mode 100644 index 00000000..a04e19e5 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/KeyPredicateKvIterator.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.iterators.KeyPredicateKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.iterators.KeyPredicateKvIterator

+
+No usage of com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/MappingKvIterator.html b/com/usatiuk/objects/iterators/class-use/MappingKvIterator.html new file mode 100644 index 00000000..f80edd8c --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/MappingKvIterator.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.iterators.MappingKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.iterators.MappingKvIterator

+
+No usage of com.usatiuk.objects.iterators.MappingKvIterator
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/MaybeTombstone.html b/com/usatiuk/objects/iterators/class-use/MaybeTombstone.html new file mode 100644 index 00000000..3afb2a2c --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/MaybeTombstone.html @@ -0,0 +1,186 @@ + + + + +Uses of Interface com.usatiuk.objects.iterators.MaybeTombstone (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.iterators.MaybeTombstone

+
+
Packages that use MaybeTombstone
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/MergingKvIterator.html b/com/usatiuk/objects/iterators/class-use/MergingKvIterator.html new file mode 100644 index 00000000..2c492110 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/MergingKvIterator.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.iterators.MergingKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.iterators.MergingKvIterator

+
+No usage of com.usatiuk.objects.iterators.MergingKvIterator
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/NavigableMapKvIterator.html b/com/usatiuk/objects/iterators/class-use/NavigableMapKvIterator.html new file mode 100644 index 00000000..d6d16a69 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/NavigableMapKvIterator.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.iterators.NavigableMapKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.iterators.NavigableMapKvIterator

+
+No usage of com.usatiuk.objects.iterators.NavigableMapKvIterator
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/ReversedKvIterator.html b/com/usatiuk/objects/iterators/class-use/ReversedKvIterator.html new file mode 100644 index 00000000..c113b0d4 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/ReversedKvIterator.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.iterators.ReversedKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.iterators.ReversedKvIterator

+
+No usage of com.usatiuk.objects.iterators.ReversedKvIterator
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/ReversibleKvIterator.html b/com/usatiuk/objects/iterators/class-use/ReversibleKvIterator.html new file mode 100644 index 00000000..36cdc9e0 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/ReversibleKvIterator.html @@ -0,0 +1,96 @@ + + + + +Uses of Class com.usatiuk.objects.iterators.ReversibleKvIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.iterators.ReversibleKvIterator

+
+
Packages that use ReversibleKvIterator
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/Tombstone.html b/com/usatiuk/objects/iterators/class-use/Tombstone.html new file mode 100644 index 00000000..e8e078ec --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/Tombstone.html @@ -0,0 +1,103 @@ + + + + +Uses of Interface com.usatiuk.objects.iterators.Tombstone (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.iterators.Tombstone

+
+
Packages that use Tombstone
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/TombstoneImpl.html b/com/usatiuk/objects/iterators/class-use/TombstoneImpl.html new file mode 100644 index 00000000..e6d93f28 --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/TombstoneImpl.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.objects.iterators.TombstoneImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.iterators.TombstoneImpl

+
+No usage of com.usatiuk.objects.iterators.TombstoneImpl
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/class-use/TombstoneSkippingIterator.html b/com/usatiuk/objects/iterators/class-use/TombstoneSkippingIterator.html new file mode 100644 index 00000000..41e8579a --- /dev/null +++ b/com/usatiuk/objects/iterators/class-use/TombstoneSkippingIterator.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.iterators.TombstoneSkippingIterator (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.iterators.TombstoneSkippingIterator

+
+No usage of com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/package-summary.html b/com/usatiuk/objects/iterators/package-summary.html new file mode 100644 index 00000000..44823818 --- /dev/null +++ b/com/usatiuk/objects/iterators/package-summary.html @@ -0,0 +1,141 @@ + + + + +com.usatiuk.objects.iterators (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.objects.iterators

+
+
+
package com.usatiuk.objects.iterators
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/package-tree.html b/com/usatiuk/objects/iterators/package-tree.html new file mode 100644 index 00000000..85de7e1c --- /dev/null +++ b/com/usatiuk/objects/iterators/package-tree.html @@ -0,0 +1,135 @@ + + + + +com.usatiuk.objects.iterators Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.objects.iterators

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+

Record Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • java.lang.Record +
        +
      • com.usatiuk.objects.iterators.DataWrapper<V> (implements com.usatiuk.objects.iterators.Data<V>)
      • +
      • com.usatiuk.objects.iterators.TombstoneImpl<V> (implements com.usatiuk.objects.iterators.Tombstone<V>)
      • +
      +
    • +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/iterators/package-use.html b/com/usatiuk/objects/iterators/package-use.html new file mode 100644 index 00000000..c866c334 --- /dev/null +++ b/com/usatiuk/objects/iterators/package-use.html @@ -0,0 +1,173 @@ + + + + +Uses of Package com.usatiuk.objects.iterators (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.objects.iterators

+
+ + +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/package-summary.html b/com/usatiuk/objects/package-summary.html new file mode 100644 index 00000000..4b94c436 --- /dev/null +++ b/com/usatiuk/objects/package-summary.html @@ -0,0 +1,135 @@ + + + + +com.usatiuk.objects (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.objects

+
+
+
package com.usatiuk.objects
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/package-tree.html b/com/usatiuk/objects/package-tree.html new file mode 100644 index 00000000..47d50232 --- /dev/null +++ b/com/usatiuk/objects/package-tree.html @@ -0,0 +1,121 @@ + + + + +com.usatiuk.objects Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.objects

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/package-use.html b/com/usatiuk/objects/package-use.html new file mode 100644 index 00000000..3d369d6d --- /dev/null +++ b/com/usatiuk/objects/package-use.html @@ -0,0 +1,324 @@ + + + + +Uses of Package com.usatiuk.objects (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.objects

+
+
Packages that use com.usatiuk.objects
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/snapshot/Snapshot.html b/com/usatiuk/objects/snapshot/Snapshot.html new file mode 100644 index 00000000..79113844 --- /dev/null +++ b/com/usatiuk/objects/snapshot/Snapshot.html @@ -0,0 +1,182 @@ + + + + +Snapshot (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Snapshot<K extends Comparable<K>,V>

+
+
+
+
All Superinterfaces:
+
AutoCloseable
+
+
+
public interface Snapshot<K extends Comparable<K>,V> +extends AutoCloseable
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/snapshot/class-use/Snapshot.html b/com/usatiuk/objects/snapshot/class-use/Snapshot.html new file mode 100644 index 00000000..43c465eb --- /dev/null +++ b/com/usatiuk/objects/snapshot/class-use/Snapshot.html @@ -0,0 +1,102 @@ + + + + +Uses of Interface com.usatiuk.objects.snapshot.Snapshot (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.snapshot.Snapshot

+
+
Packages that use Snapshot
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/snapshot/package-summary.html b/com/usatiuk/objects/snapshot/package-summary.html new file mode 100644 index 00000000..0aa7a8f5 --- /dev/null +++ b/com/usatiuk/objects/snapshot/package-summary.html @@ -0,0 +1,113 @@ + + + + +com.usatiuk.objects.snapshot (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.objects.snapshot

+
+
+
package com.usatiuk.objects.snapshot
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/snapshot/package-tree.html b/com/usatiuk/objects/snapshot/package-tree.html new file mode 100644 index 00000000..5dd75ad0 --- /dev/null +++ b/com/usatiuk/objects/snapshot/package-tree.html @@ -0,0 +1,76 @@ + + + + +com.usatiuk.objects.snapshot Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.objects.snapshot

+
+Package Hierarchies: + +
+

Interface Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/snapshot/package-use.html b/com/usatiuk/objects/snapshot/package-use.html new file mode 100644 index 00000000..83650bac --- /dev/null +++ b/com/usatiuk/objects/snapshot/package-use.html @@ -0,0 +1,84 @@ + + + + +Uses of Package com.usatiuk.objects.snapshot (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.objects.snapshot

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/CachingObjectPersistentStore.html b/com/usatiuk/objects/stores/CachingObjectPersistentStore.html new file mode 100644 index 00000000..e2149b55 --- /dev/null +++ b/com/usatiuk/objects/stores/CachingObjectPersistentStore.html @@ -0,0 +1,189 @@ + + + + +CachingObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class CachingObjectPersistentStore

+
+
java.lang.Object +
com.usatiuk.objects.stores.CachingObjectPersistentStore
+
+
+
+
@ApplicationScoped +public class CachingObjectPersistentStore +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/LmdbObjectPersistentStore.html b/com/usatiuk/objects/stores/LmdbObjectPersistentStore.html new file mode 100644 index 00000000..b99cab71 --- /dev/null +++ b/com/usatiuk/objects/stores/LmdbObjectPersistentStore.html @@ -0,0 +1,228 @@ + + + + +LmdbObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class LmdbObjectPersistentStore

+
+
java.lang.Object +
com.usatiuk.objects.stores.LmdbObjectPersistentStore
+
+
+
+
All Implemented Interfaces:
+
ObjectPersistentStore
+
+
+
@ApplicationScoped +public class LmdbObjectPersistentStore +extends Object +implements ObjectPersistentStore
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/MemoryObjectPersistentStore.html b/com/usatiuk/objects/stores/MemoryObjectPersistentStore.html new file mode 100644 index 00000000..743c8368 --- /dev/null +++ b/com/usatiuk/objects/stores/MemoryObjectPersistentStore.html @@ -0,0 +1,228 @@ + + + + +MemoryObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MemoryObjectPersistentStore

+
+
java.lang.Object +
com.usatiuk.objects.stores.MemoryObjectPersistentStore
+
+
+
+
All Implemented Interfaces:
+
ObjectPersistentStore
+
+
+
@ApplicationScoped +public class MemoryObjectPersistentStore +extends Object +implements ObjectPersistentStore
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/ObjectPersistentStore.html b/com/usatiuk/objects/stores/ObjectPersistentStore.html new file mode 100644 index 00000000..29320044 --- /dev/null +++ b/com/usatiuk/objects/stores/ObjectPersistentStore.html @@ -0,0 +1,176 @@ + + + + +ObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ObjectPersistentStore

+
+
+
+
All Known Implementing Classes:
+
LmdbObjectPersistentStore, MemoryObjectPersistentStore
+
+
+
public interface ObjectPersistentStore
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSnapshot

      + +
      +
    • +
    • +
      +

      commitTx

      +
      void commitTx(TxManifestRaw names, + long txId)
      +
      +
    • +
    • +
      +

      getTotalSpace

      +
      long getTotalSpace()
      +
      +
    • +
    • +
      +

      getFreeSpace

      +
      long getFreeSpace()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/PendingDelete.html b/com/usatiuk/objects/stores/PendingDelete.html new file mode 100644 index 00000000..1198b05c --- /dev/null +++ b/com/usatiuk/objects/stores/PendingDelete.html @@ -0,0 +1,275 @@ + + + + +PendingDelete (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class PendingDelete

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.stores.PendingDelete
+
+
+
+
+
All Implemented Interfaces:
+
MaybeTombstone<JDataVersionedWrapper>, Tombstone<JDataVersionedWrapper>, PendingWriteEntry
+
+
+
public record PendingDelete(JObjectKey key, long bundleId) +extends Record +implements PendingWriteEntry, Tombstone<JDataVersionedWrapper>
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    PendingDelete(JObjectKey key, + long bundleId)
    +
    +
    Creates an instance of a PendingDelete record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    long
    + +
    +
    Returns the value of the bundleId record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + +
    key()
    +
    +
    Returns the value of the key record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PendingDelete

      +
      public PendingDelete(JObjectKey key, + long bundleId)
      +
      Creates an instance of a PendingDelete record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      bundleId - the value for the bundleId record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    • +
      +

      bundleId

      +
      public long bundleId()
      +
      Returns the value of the bundleId record component.
      +
      +
      Specified by:
      +
      bundleId in interface PendingWriteEntry
      +
      Returns:
      +
      the value of the bundleId record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/PendingWrite.html b/com/usatiuk/objects/stores/PendingWrite.html new file mode 100644 index 00000000..be86d678 --- /dev/null +++ b/com/usatiuk/objects/stores/PendingWrite.html @@ -0,0 +1,277 @@ + + + + +PendingWrite (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class PendingWrite

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.stores.PendingWrite
+
+
+
+
+
All Implemented Interfaces:
+
Data<JDataVersionedWrapper>, MaybeTombstone<JDataVersionedWrapper>, PendingWriteEntry
+
+
+
public record PendingWrite(JDataVersionedWrapper value, long bundleId) +extends Record +implements PendingWriteEntry, Data<JDataVersionedWrapper>
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    PendingWrite(JDataVersionedWrapper value, + long bundleId)
    +
    +
    Creates an instance of a PendingWrite record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    long
    + +
    +
    Returns the value of the bundleId record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    + + +
    +
    Returns the value of the value record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PendingWrite

      +
      public PendingWrite(JDataVersionedWrapper value, + long bundleId)
      +
      Creates an instance of a PendingWrite record class.
      +
      +
      Parameters:
      +
      value - the value for the value record component
      +
      bundleId - the value for the bundleId record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      value

      +
      public JDataVersionedWrapper value()
      +
      Returns the value of the value record component.
      +
      +
      Specified by:
      +
      value in interface Data<JDataVersionedWrapper>
      +
      Returns:
      +
      the value of the value record component
      +
      +
      +
    • +
    • +
      +

      bundleId

      +
      public long bundleId()
      +
      Returns the value of the bundleId record component.
      +
      +
      Specified by:
      +
      bundleId in interface PendingWriteEntry
      +
      Returns:
      +
      the value of the bundleId record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/PendingWriteEntry.html b/com/usatiuk/objects/stores/PendingWriteEntry.html new file mode 100644 index 00000000..a24ffd29 --- /dev/null +++ b/com/usatiuk/objects/stores/PendingWriteEntry.html @@ -0,0 +1,152 @@ + + + + +PendingWriteEntry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PendingWriteEntry

+
+
+
+
All Superinterfaces:
+
MaybeTombstone<JDataVersionedWrapper>
+
+
+
All Known Implementing Classes:
+
PendingDelete, PendingWrite
+
+
+
public interface PendingWriteEntry +extends MaybeTombstone<JDataVersionedWrapper>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    long
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      bundleId

      +
      long bundleId()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/SerializingObjectPersistentStore.html b/com/usatiuk/objects/stores/SerializingObjectPersistentStore.html new file mode 100644 index 00000000..ff507dde --- /dev/null +++ b/com/usatiuk/objects/stores/SerializingObjectPersistentStore.html @@ -0,0 +1,178 @@ + + + + +SerializingObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SerializingObjectPersistentStore

+
+
java.lang.Object +
com.usatiuk.objects.stores.SerializingObjectPersistentStore
+
+
+
+
@ApplicationScoped +public class SerializingObjectPersistentStore +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SerializingObjectPersistentStore

      +
      public SerializingObjectPersistentStore()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/TxManifestObj.html b/com/usatiuk/objects/stores/TxManifestObj.html new file mode 100644 index 00000000..582e99bd --- /dev/null +++ b/com/usatiuk/objects/stores/TxManifestObj.html @@ -0,0 +1,281 @@ + + + + +TxManifestObj (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class TxManifestObj<T>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.stores.TxManifestObj<T>
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public record TxManifestObj<T>(Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,T>> written, Collection<JObjectKey> deleted) +extends Record +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TxManifestObj

      +
      public TxManifestObj(Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,T>> written, + Collection<JObjectKey> deleted)
      +
      Creates an instance of a TxManifestObj record class.
      +
      +
      Parameters:
      +
      written - the value for the written record component
      +
      deleted - the value for the deleted record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      written

      +
      public Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,T>> written()
      +
      Returns the value of the written record component.
      +
      +
      Returns:
      +
      the value of the written record component
      +
      +
      +
    • +
    • +
      +

      deleted

      +
      public Collection<JObjectKey> deleted()
      +
      Returns the value of the deleted record component.
      +
      +
      Returns:
      +
      the value of the deleted record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/TxManifestRaw.html b/com/usatiuk/objects/stores/TxManifestRaw.html new file mode 100644 index 00000000..338ca0d8 --- /dev/null +++ b/com/usatiuk/objects/stores/TxManifestRaw.html @@ -0,0 +1,281 @@ + + + + +TxManifestRaw (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class TxManifestRaw

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.stores.TxManifestRaw
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public record TxManifestRaw(Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,com.google.protobuf.ByteString>> written, Collection<JObjectKey> deleted) +extends Record +implements Serializable
+
+
See Also:
+
+ +
+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    TxManifestRaw(Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,com.google.protobuf.ByteString>> written, + Collection<JObjectKey> deleted)
    +
    +
    Creates an instance of a TxManifestRaw record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the deleted record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,com.google.protobuf.ByteString>>
    + +
    +
    Returns the value of the written record component.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TxManifestRaw

      +
      public TxManifestRaw(Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,com.google.protobuf.ByteString>> written, + Collection<JObjectKey> deleted)
      +
      Creates an instance of a TxManifestRaw record class.
      +
      +
      Parameters:
      +
      written - the value for the written record component
      +
      deleted - the value for the deleted record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      written

      +
      public Collection<org.apache.commons.lang3.tuple.Pair<JObjectKey,com.google.protobuf.ByteString>> written()
      +
      Returns the value of the written record component.
      +
      +
      Returns:
      +
      the value of the written record component
      +
      +
      +
    • +
    • +
      +

      deleted

      +
      public Collection<JObjectKey> deleted()
      +
      Returns the value of the deleted record component.
      +
      +
      Returns:
      +
      the value of the deleted record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/WritebackObjectPersistentStore.html b/com/usatiuk/objects/stores/WritebackObjectPersistentStore.html new file mode 100644 index 00000000..fba06574 --- /dev/null +++ b/com/usatiuk/objects/stores/WritebackObjectPersistentStore.html @@ -0,0 +1,198 @@ + + + + +WritebackObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class WritebackObjectPersistentStore

+
+
java.lang.Object +
com.usatiuk.objects.stores.WritebackObjectPersistentStore
+
+
+
+
@ApplicationScoped +public class WritebackObjectPersistentStore +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/CachingObjectPersistentStore.html b/com/usatiuk/objects/stores/class-use/CachingObjectPersistentStore.html new file mode 100644 index 00000000..d32de1b1 --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/CachingObjectPersistentStore.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.stores.CachingObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.stores.CachingObjectPersistentStore

+
+No usage of com.usatiuk.objects.stores.CachingObjectPersistentStore
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/LmdbObjectPersistentStore.html b/com/usatiuk/objects/stores/class-use/LmdbObjectPersistentStore.html new file mode 100644 index 00000000..aa75fa53 --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/LmdbObjectPersistentStore.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.stores.LmdbObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.stores.LmdbObjectPersistentStore

+
+No usage of com.usatiuk.objects.stores.LmdbObjectPersistentStore
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/MemoryObjectPersistentStore.html b/com/usatiuk/objects/stores/class-use/MemoryObjectPersistentStore.html new file mode 100644 index 00000000..6f772d99 --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/MemoryObjectPersistentStore.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.stores.MemoryObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.stores.MemoryObjectPersistentStore

+
+No usage of com.usatiuk.objects.stores.MemoryObjectPersistentStore
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/ObjectPersistentStore.html b/com/usatiuk/objects/stores/class-use/ObjectPersistentStore.html new file mode 100644 index 00000000..7f8462c5 --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/ObjectPersistentStore.html @@ -0,0 +1,90 @@ + + + + +Uses of Interface com.usatiuk.objects.stores.ObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.stores.ObjectPersistentStore

+
+
Packages that use ObjectPersistentStore
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/PendingDelete.html b/com/usatiuk/objects/stores/class-use/PendingDelete.html new file mode 100644 index 00000000..b0a00ea0 --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/PendingDelete.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.objects.stores.PendingDelete (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.stores.PendingDelete

+
+No usage of com.usatiuk.objects.stores.PendingDelete
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/PendingWrite.html b/com/usatiuk/objects/stores/class-use/PendingWrite.html new file mode 100644 index 00000000..bbb1785a --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/PendingWrite.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.objects.stores.PendingWrite (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.stores.PendingWrite

+
+No usage of com.usatiuk.objects.stores.PendingWrite
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/PendingWriteEntry.html b/com/usatiuk/objects/stores/class-use/PendingWriteEntry.html new file mode 100644 index 00000000..fe3ecb8a --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/PendingWriteEntry.html @@ -0,0 +1,90 @@ + + + + +Uses of Interface com.usatiuk.objects.stores.PendingWriteEntry (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.stores.PendingWriteEntry

+
+
Packages that use PendingWriteEntry
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/SerializingObjectPersistentStore.html b/com/usatiuk/objects/stores/class-use/SerializingObjectPersistentStore.html new file mode 100644 index 00000000..d2efcbeb --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/SerializingObjectPersistentStore.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.stores.SerializingObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.stores.SerializingObjectPersistentStore

+
+No usage of com.usatiuk.objects.stores.SerializingObjectPersistentStore
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/TxManifestObj.html b/com/usatiuk/objects/stores/class-use/TxManifestObj.html new file mode 100644 index 00000000..4b5ba54f --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/TxManifestObj.html @@ -0,0 +1,88 @@ + + + + +Uses of Record Class com.usatiuk.objects.stores.TxManifestObj (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.stores.TxManifestObj

+
+
Packages that use TxManifestObj
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/TxManifestRaw.html b/com/usatiuk/objects/stores/class-use/TxManifestRaw.html new file mode 100644 index 00000000..be5b7f2b --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/TxManifestRaw.html @@ -0,0 +1,96 @@ + + + + +Uses of Record Class com.usatiuk.objects.stores.TxManifestRaw (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.stores.TxManifestRaw

+
+
Packages that use TxManifestRaw
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/class-use/WritebackObjectPersistentStore.html b/com/usatiuk/objects/stores/class-use/WritebackObjectPersistentStore.html new file mode 100644 index 00000000..aabdd6e2 --- /dev/null +++ b/com/usatiuk/objects/stores/class-use/WritebackObjectPersistentStore.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.stores.WritebackObjectPersistentStore (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.stores.WritebackObjectPersistentStore

+
+No usage of com.usatiuk.objects.stores.WritebackObjectPersistentStore
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/package-summary.html b/com/usatiuk/objects/stores/package-summary.html new file mode 100644 index 00000000..d024e727 --- /dev/null +++ b/com/usatiuk/objects/stores/package-summary.html @@ -0,0 +1,135 @@ + + + + +com.usatiuk.objects.stores (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.objects.stores

+
+
+
package com.usatiuk.objects.stores
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/package-tree.html b/com/usatiuk/objects/stores/package-tree.html new file mode 100644 index 00000000..e88332f6 --- /dev/null +++ b/com/usatiuk/objects/stores/package-tree.html @@ -0,0 +1,108 @@ + + + + +com.usatiuk.objects.stores Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.objects.stores

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/stores/package-use.html b/com/usatiuk/objects/stores/package-use.html new file mode 100644 index 00000000..762a23b8 --- /dev/null +++ b/com/usatiuk/objects/stores/package-use.html @@ -0,0 +1,90 @@ + + + + +Uses of Package com.usatiuk.objects.stores (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.objects.stores

+
+
Packages that use com.usatiuk.objects.stores
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/CurrentTransaction.html b/com/usatiuk/objects/transaction/CurrentTransaction.html new file mode 100644 index 00000000..bf095758 --- /dev/null +++ b/com/usatiuk/objects/transaction/CurrentTransaction.html @@ -0,0 +1,272 @@ + + + + +CurrentTransaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class CurrentTransaction

+
+
java.lang.Object +
com.usatiuk.objects.transaction.CurrentTransaction
+
+
+
+
All Implemented Interfaces:
+
Transaction, TransactionHandle
+
+
+
@Singleton +public class CurrentTransaction +extends Object +implements Transaction
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/PreCommitTxHook.html b/com/usatiuk/objects/transaction/PreCommitTxHook.html new file mode 100644 index 00000000..3ad887e5 --- /dev/null +++ b/com/usatiuk/objects/transaction/PreCommitTxHook.html @@ -0,0 +1,182 @@ + + + + +PreCommitTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PreCommitTxHook

+
+
+
+
All Known Implementing Classes:
+
AutosyncTxHook, DeleterTxHook, JMapHolderRefcounterTxHook, JMapRefcounterTxHook, PeerInfoCertUpdateTxHook, RefcounterTxHook, RemoteObjPusherTxHook
+
+
+
public interface PreCommitTxHook
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      onChange

      +
      default void onChange(JObjectKey key, + JData old, + JData cur)
      +
      +
    • +
    • +
      +

      onCreate

      +
      default void onCreate(JObjectKey key, + JData cur)
      +
      +
    • +
    • +
      +

      onDelete

      +
      default void onDelete(JObjectKey key, + JData cur)
      +
      +
    • +
    • +
      +

      getPriority

      +
      default int getPriority()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/Transaction.html b/com/usatiuk/objects/transaction/Transaction.html new file mode 100644 index 00000000..8596ac5e --- /dev/null +++ b/com/usatiuk/objects/transaction/Transaction.html @@ -0,0 +1,213 @@ + + + + +Transaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Transaction

+
+
+
+
All Superinterfaces:
+
TransactionHandle
+
+
+
All Known Implementing Classes:
+
CurrentTransaction
+
+
+
public interface Transaction +extends TransactionHandle
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TransactionHandle.html b/com/usatiuk/objects/transaction/TransactionHandle.html new file mode 100644 index 00000000..925b2566 --- /dev/null +++ b/com/usatiuk/objects/transaction/TransactionHandle.html @@ -0,0 +1,151 @@ + + + + +TransactionHandle (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface TransactionHandle

+
+
+
+
All Known Subinterfaces:
+
Transaction
+
+
+
All Known Implementing Classes:
+
CurrentTransaction
+
+
+
public interface TransactionHandle
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    +
    onFlush(Runnable runnable)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      onFlush

      +
      void onFlush(Runnable runnable)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TransactionManager.html b/com/usatiuk/objects/transaction/TransactionManager.html new file mode 100644 index 00000000..e6bb4ea0 --- /dev/null +++ b/com/usatiuk/objects/transaction/TransactionManager.html @@ -0,0 +1,280 @@ + + + + +TransactionManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface TransactionManager

+
+
+
+
All Known Implementing Classes:
+
TransactionManagerImpl
+
+
+
public interface TransactionManager
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      begin

      +
      void begin()
      +
      +
    • +
    • +
      +

      commit

      + +
      +
    • +
    • +
      +

      rollback

      +
      void rollback()
      +
      +
    • +
    • +
      +

      runTries

      +
      default <T> T runTries(Supplier<T> supplier, + int tries, + boolean nest)
      +
      +
    • +
    • +
      +

      runTries

      +
      default TransactionHandle runTries(Runnable fn, + int tries, + boolean nest)
      +
      +
    • +
    • +
      +

      runTries

      +
      default <T> T runTries(Supplier<T> supplier, + int tries)
      +
      +
    • +
    • +
      +

      runTries

      +
      default TransactionHandle runTries(Runnable fn, + int tries)
      +
      +
    • +
    • +
      +

      run

      +
      default TransactionHandle run(Runnable fn, + boolean nest)
      +
      +
    • +
    • +
      +

      run

      +
      default <T> T run(Supplier<T> supplier, + boolean nest)
      +
      +
    • +
    • +
      +

      run

      +
      default TransactionHandle run(Runnable fn)
      +
      +
    • +
    • +
      +

      run

      +
      default <T> T run(Supplier<T> supplier)
      +
      +
    • +
    • +
      +

      executeTx

      +
      default void executeTx(Runnable fn)
      +
      +
    • +
    • +
      +

      executeTx

      +
      default <T> T executeTx(Supplier<T> supplier)
      +
      +
    • +
    • +
      +

      current

      +
      Transaction current()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TransactionManagerImpl.html b/com/usatiuk/objects/transaction/TransactionManagerImpl.html new file mode 100644 index 00000000..c0504bba --- /dev/null +++ b/com/usatiuk/objects/transaction/TransactionManagerImpl.html @@ -0,0 +1,230 @@ + + + + +TransactionManagerImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TransactionManagerImpl

+
+
java.lang.Object +
com.usatiuk.objects.transaction.TransactionManagerImpl
+
+
+
+
All Implemented Interfaces:
+
TransactionManager
+
+
+
@Singleton +public class TransactionManagerImpl +extends Object +implements TransactionManager
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TransactionService.html b/com/usatiuk/objects/transaction/TransactionService.html new file mode 100644 index 00000000..063fc05d --- /dev/null +++ b/com/usatiuk/objects/transaction/TransactionService.html @@ -0,0 +1,169 @@ + + + + +TransactionService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TransactionService

+
+
java.lang.Object +
com.usatiuk.objects.transaction.TransactionService
+
+
+
+
@ApplicationScoped +public class TransactionService +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      createTransaction

      +
      public com.usatiuk.objects.transaction.TransactionImpl createTransaction()
      +
      +
    • +
    • +
      +

      commit

      +
      public org.apache.commons.lang3.tuple.Pair<Collection<Runnable>,TransactionHandle> commit(com.usatiuk.objects.transaction.TransactionImpl tx)
      +
      +
    • +
    • +
      +

      rollback

      +
      public void rollback(com.usatiuk.objects.transaction.TransactionImpl tx)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TxCommitException.html b/com/usatiuk/objects/transaction/TxCommitException.html new file mode 100644 index 00000000..5152ec15 --- /dev/null +++ b/com/usatiuk/objects/transaction/TxCommitException.html @@ -0,0 +1,181 @@ + + + + +TxCommitException (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TxCommitException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
java.lang.RuntimeException +
com.usatiuk.objects.transaction.TxCommitException
+
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class TxCommitException +extends RuntimeException
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TxCommitException

      +
      public TxCommitException(String message)
      +
      +
    • +
    • +
      +

      TxCommitException

      +
      public TxCommitException(String message, + Throwable cause)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TxRecord.TxObjectRecord.html b/com/usatiuk/objects/transaction/TxRecord.TxObjectRecord.html new file mode 100644 index 00000000..c8ccee92 --- /dev/null +++ b/com/usatiuk/objects/transaction/TxRecord.TxObjectRecord.html @@ -0,0 +1,152 @@ + + + + +TxRecord.TxObjectRecord (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface TxRecord.TxObjectRecord<T>

+
+
+
+
All Known Implementing Classes:
+
TxRecord.TxObjectRecordDeleted, TxRecord.TxObjectRecordWrite
+
+
+
Enclosing class:
+
TxRecord
+
+
+
public static sealed interface TxRecord.TxObjectRecord<T> +permits TxRecord.TxObjectRecordWrite<T>, TxRecord.TxObjectRecordDeleted
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    key()
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TxRecord.TxObjectRecordDeleted.html b/com/usatiuk/objects/transaction/TxRecord.TxObjectRecordDeleted.html new file mode 100644 index 00000000..d601b300 --- /dev/null +++ b/com/usatiuk/objects/transaction/TxRecord.TxObjectRecordDeleted.html @@ -0,0 +1,260 @@ + + + + +TxRecord.TxObjectRecordDeleted (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class TxRecord.TxObjectRecordDeleted

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted
+
+
+
+
+
All Implemented Interfaces:
+
TxRecord.TxObjectRecord<JData>
+
+
+
Enclosing class:
+
TxRecord
+
+
+
public static record TxRecord.TxObjectRecordDeleted(JObjectKey key) +extends Record +implements TxRecord.TxObjectRecord<JData>
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
    +
    Creates an instance of a TxObjectRecordDeleted record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + +
    key()
    +
    +
    Returns the value of the key record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TxObjectRecordDeleted

      +
      public TxObjectRecordDeleted(JObjectKey key)
      +
      Creates an instance of a TxObjectRecordDeleted record class.
      +
      +
      Parameters:
      +
      key - the value for the key record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      Returns the value of the key record component.
      +
      +
      Specified by:
      +
      key in interface TxRecord.TxObjectRecord<JData>
      +
      Returns:
      +
      the value of the key record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TxRecord.TxObjectRecordWrite.html b/com/usatiuk/objects/transaction/TxRecord.TxObjectRecordWrite.html new file mode 100644 index 00000000..28702da6 --- /dev/null +++ b/com/usatiuk/objects/transaction/TxRecord.TxObjectRecordWrite.html @@ -0,0 +1,271 @@ + + + + +TxRecord.TxObjectRecordWrite (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class TxRecord.TxObjectRecordWrite<T extends JData>

+
+
java.lang.Object +
java.lang.Record +
com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite<T>
+
+
+
+
+
All Implemented Interfaces:
+
TxRecord.TxObjectRecord<T>
+
+
+
Enclosing class:
+
TxRecord
+
+
+
public static record TxRecord.TxObjectRecordWrite<T extends JData>(JData data) +extends Record +implements TxRecord.TxObjectRecord<T>
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
    +
    Creates an instance of a TxObjectRecordWrite record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the value of the data record component.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    + +
    key()
    +
     
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TxObjectRecordWrite

      +
      public TxObjectRecordWrite(JData data)
      +
      Creates an instance of a TxObjectRecordWrite record class.
      +
      +
      Parameters:
      +
      data - the value for the data record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      key

      +
      public JObjectKey key()
      +
      +
      Specified by:
      +
      key in interface TxRecord.TxObjectRecord<T extends JData>
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      data

      +
      public JData data()
      +
      Returns the value of the data record component.
      +
      +
      Returns:
      +
      the value of the data record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/TxRecord.html b/com/usatiuk/objects/transaction/TxRecord.html new file mode 100644 index 00000000..3444dad3 --- /dev/null +++ b/com/usatiuk/objects/transaction/TxRecord.html @@ -0,0 +1,171 @@ + + + + +TxRecord (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class TxRecord

+
+
java.lang.Object +
com.usatiuk.objects.transaction.TxRecord
+
+
+
+
public class TxRecord +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TxRecord

      +
      public TxRecord()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/CurrentTransaction.html b/com/usatiuk/objects/transaction/class-use/CurrentTransaction.html new file mode 100644 index 00000000..fa83796e --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/CurrentTransaction.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.transaction.CurrentTransaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.transaction.CurrentTransaction

+
+No usage of com.usatiuk.objects.transaction.CurrentTransaction
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/PreCommitTxHook.html b/com/usatiuk/objects/transaction/class-use/PreCommitTxHook.html new file mode 100644 index 00000000..8661b4d1 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/PreCommitTxHook.html @@ -0,0 +1,157 @@ + + + + +Uses of Interface com.usatiuk.objects.transaction.PreCommitTxHook (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.transaction.PreCommitTxHook

+
+
Packages that use PreCommitTxHook
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/Transaction.html b/com/usatiuk/objects/transaction/class-use/Transaction.html new file mode 100644 index 00000000..3be3d088 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/Transaction.html @@ -0,0 +1,99 @@ + + + + +Uses of Interface com.usatiuk.objects.transaction.Transaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.transaction.Transaction

+
+
Packages that use Transaction
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TransactionHandle.html b/com/usatiuk/objects/transaction/class-use/TransactionHandle.html new file mode 100644 index 00000000..b1bf9b1d --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TransactionHandle.html @@ -0,0 +1,133 @@ + + + + +Uses of Interface com.usatiuk.objects.transaction.TransactionHandle (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.transaction.TransactionHandle

+
+
Packages that use TransactionHandle
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TransactionManager.html b/com/usatiuk/objects/transaction/class-use/TransactionManager.html new file mode 100644 index 00000000..c4358dde --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TransactionManager.html @@ -0,0 +1,87 @@ + + + + +Uses of Interface com.usatiuk.objects.transaction.TransactionManager (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.transaction.TransactionManager

+
+
Packages that use TransactionManager
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TransactionManagerImpl.html b/com/usatiuk/objects/transaction/class-use/TransactionManagerImpl.html new file mode 100644 index 00000000..bd1d5995 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TransactionManagerImpl.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.transaction.TransactionManagerImpl (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.transaction.TransactionManagerImpl

+
+No usage of com.usatiuk.objects.transaction.TransactionManagerImpl
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TransactionService.html b/com/usatiuk/objects/transaction/class-use/TransactionService.html new file mode 100644 index 00000000..c53d8c65 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TransactionService.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.transaction.TransactionService (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.transaction.TransactionService

+
+No usage of com.usatiuk.objects.transaction.TransactionService
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TxCommitException.html b/com/usatiuk/objects/transaction/class-use/TxCommitException.html new file mode 100644 index 00000000..9df621b7 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TxCommitException.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.transaction.TxCommitException (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.transaction.TxCommitException

+
+No usage of com.usatiuk.objects.transaction.TxCommitException
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecord.html b/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecord.html new file mode 100644 index 00000000..c7492d1a --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecord.html @@ -0,0 +1,106 @@ + + + + +Uses of Interface com.usatiuk.objects.transaction.TxRecord.TxObjectRecord (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.objects.transaction.TxRecord.TxObjectRecord

+
+
Packages that use TxRecord.TxObjectRecord
+ +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordDeleted.html b/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordDeleted.html new file mode 100644 index 00000000..baa28844 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordDeleted.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted

+
+No usage of com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordWrite.html b/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordWrite.html new file mode 100644 index 00000000..fdbc5a53 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TxRecord.TxObjectRecordWrite.html @@ -0,0 +1,62 @@ + + + + +Uses of Record Class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Record Class
com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite

+
+No usage of com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/class-use/TxRecord.html b/com/usatiuk/objects/transaction/class-use/TxRecord.html new file mode 100644 index 00000000..3981ed58 --- /dev/null +++ b/com/usatiuk/objects/transaction/class-use/TxRecord.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.objects.transaction.TxRecord (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.objects.transaction.TxRecord

+
+No usage of com.usatiuk.objects.transaction.TxRecord
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/package-summary.html b/com/usatiuk/objects/transaction/package-summary.html new file mode 100644 index 00000000..5ef42268 --- /dev/null +++ b/com/usatiuk/objects/transaction/package-summary.html @@ -0,0 +1,137 @@ + + + + +com.usatiuk.objects.transaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.objects.transaction

+
+
+
package com.usatiuk.objects.transaction
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/package-tree.html b/com/usatiuk/objects/transaction/package-tree.html new file mode 100644 index 00000000..a0ce3065 --- /dev/null +++ b/com/usatiuk/objects/transaction/package-tree.html @@ -0,0 +1,120 @@ + + + + +com.usatiuk.objects.transaction Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.objects.transaction

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/objects/transaction/package-use.html b/com/usatiuk/objects/transaction/package-use.html new file mode 100644 index 00000000..9ddda648 --- /dev/null +++ b/com/usatiuk/objects/transaction/package-use.html @@ -0,0 +1,168 @@ + + + + +Uses of Package com.usatiuk.objects.transaction (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.objects.transaction

+
+ + +
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/AutoCloseableNoThrow.html b/com/usatiuk/utils/AutoCloseableNoThrow.html new file mode 100644 index 00000000..030a2884 --- /dev/null +++ b/com/usatiuk/utils/AutoCloseableNoThrow.html @@ -0,0 +1,152 @@ + + + + +AutoCloseableNoThrow (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface AutoCloseableNoThrow

+
+
+
+
All Superinterfaces:
+
AutoCloseable
+
+
+
public interface AutoCloseableNoThrow +extends AutoCloseable
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/ByteUtils.html b/com/usatiuk/utils/ByteUtils.html new file mode 100644 index 00000000..a9a1d56d --- /dev/null +++ b/com/usatiuk/utils/ByteUtils.html @@ -0,0 +1,195 @@ + + + + +ByteUtils (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ByteUtils

+
+
java.lang.Object +
com.usatiuk.utils.ByteUtils
+
+
+
+
public class ByteUtils +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ByteUtils

      +
      public ByteUtils()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      longToBytes

      +
      public static byte[] longToBytes(long val)
      +
      +
    • +
    • +
      +

      bytesToLong

      +
      public static long bytesToLong(byte[] bytes)
      +
      +
    • +
    • +
      +

      longToBb

      +
      public static ByteBuffer longToBb(long val)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/DataLocker.html b/com/usatiuk/utils/DataLocker.html new file mode 100644 index 00000000..42c78742 --- /dev/null +++ b/com/usatiuk/utils/DataLocker.html @@ -0,0 +1,188 @@ + + + + +DataLocker (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DataLocker

+
+
java.lang.Object +
com.usatiuk.utils.DataLocker
+
+
+
+
public class DataLocker +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DataLocker

      +
      public DataLocker()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/HashSetDelayedBlockingQueue.html b/com/usatiuk/utils/HashSetDelayedBlockingQueue.html new file mode 100644 index 00000000..9b5ff7bf --- /dev/null +++ b/com/usatiuk/utils/HashSetDelayedBlockingQueue.html @@ -0,0 +1,342 @@ + + + + +HashSetDelayedBlockingQueue (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class HashSetDelayedBlockingQueue<T>

+
+
java.lang.Object +
com.usatiuk.utils.HashSetDelayedBlockingQueue<T>
+
+
+
+
public class HashSetDelayedBlockingQueue<T> +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/ListUtils.html b/com/usatiuk/utils/ListUtils.html new file mode 100644 index 00000000..20560331 --- /dev/null +++ b/com/usatiuk/utils/ListUtils.html @@ -0,0 +1,207 @@ + + + + +ListUtils (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ListUtils

+
+
java.lang.Object +
com.usatiuk.utils.ListUtils
+
+
+
+
public class ListUtils +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ListUtils

      +
      public ListUtils()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      prependAndMap

      +
      public static <T, +T_V> List<T_V> prependAndMap(T_V item, + List<T> suffix, + Function<T,T_V> suffixFn)
      +
      +
    • +
    • +
      +

      prepend

      +
      public static <T> List<T> prepend(T item, + List<T> suffix)
      +
      +
    • +
    • +
      +

      map

      +
      public static <T, +T_V> List<T_V> map(List<T> suffix, + Function<T,T_V> suffixFn)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/SerializationHelper.html b/com/usatiuk/utils/SerializationHelper.html new file mode 100644 index 00000000..5f29a042 --- /dev/null +++ b/com/usatiuk/utils/SerializationHelper.html @@ -0,0 +1,216 @@ + + + + +SerializationHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SerializationHelper

+
+
java.lang.Object +
com.usatiuk.utils.SerializationHelper
+
+
+
+
public abstract class SerializationHelper +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SerializationHelper

      +
      public SerializationHelper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      deserialize

      +
      public static <T> T deserialize(InputStream inputStream)
      +
      +
    • +
    • +
      +

      deserialize

      +
      public static <T> T deserialize(byte[] objectData, + int offset)
      +
      +
    • +
    • +
      +

      deserialize

      +
      public static <T> T deserialize(byte[] objectData)
      +
      +
    • +
    • +
      +

      serializeArray

      +
      public static <T extends Serializable> byte[] serializeArray(T obj)
      +
      +
    • +
    • +
      +

      serialize

      +
      public static <T extends Serializable> +com.google.protobuf.ByteString serialize(T obj)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.html b/com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.html new file mode 100644 index 00000000..87910d87 --- /dev/null +++ b/com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.html @@ -0,0 +1,218 @@ + + + + +StatusRuntimeExceptionNoStacktrace (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class StatusRuntimeExceptionNoStacktrace

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
java.lang.RuntimeException +
io.grpc.StatusRuntimeException +
com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace
+
+
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class StatusRuntimeExceptionNoStacktrace +extends io.grpc.StatusRuntimeException
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      StatusRuntimeExceptionNoStacktrace

      +
      public StatusRuntimeExceptionNoStacktrace(io.grpc.Status status)
      +
      +
    • +
    • +
      +

      StatusRuntimeExceptionNoStacktrace

      +
      public StatusRuntimeExceptionNoStacktrace(io.grpc.Status status, + @Nullable + io.grpc.Metadata trailers)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/UninitializedByteBuffer.html b/com/usatiuk/utils/UninitializedByteBuffer.html new file mode 100644 index 00000000..b59b39f5 --- /dev/null +++ b/com/usatiuk/utils/UninitializedByteBuffer.html @@ -0,0 +1,186 @@ + + + + +UninitializedByteBuffer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class UninitializedByteBuffer

+
+
java.lang.Object +
com.usatiuk.utils.UninitializedByteBuffer
+
+
+
+
public class UninitializedByteBuffer +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      UninitializedByteBuffer

      +
      public UninitializedByteBuffer()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      allocate

      +
      public static ByteBuffer allocate(int capacity)
      +
      +
    • +
    • +
      +

      getAddress

      +
      public static long getAddress(ByteBuffer buffer)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/UnsafeAccessor.html b/com/usatiuk/utils/UnsafeAccessor.html new file mode 100644 index 00000000..6ea2b809 --- /dev/null +++ b/com/usatiuk/utils/UnsafeAccessor.html @@ -0,0 +1,188 @@ + + + + +UnsafeAccessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class UnsafeAccessor

+
+
java.lang.Object +
com.usatiuk.utils.UnsafeAccessor
+
+
+
+
public abstract class UnsafeAccessor +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      NIO

      +
      public static final jdk.internal.access.JavaNioAccess NIO
      +
      +
    • +
    • +
      +

      UNSAFE

      +
      public static final sun.misc.Unsafe UNSAFE
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      UnsafeAccessor

      +
      public UnsafeAccessor()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/AutoCloseableNoThrow.html b/com/usatiuk/utils/class-use/AutoCloseableNoThrow.html new file mode 100644 index 00000000..8facdb1e --- /dev/null +++ b/com/usatiuk/utils/class-use/AutoCloseableNoThrow.html @@ -0,0 +1,90 @@ + + + + +Uses of Interface com.usatiuk.utils.AutoCloseableNoThrow (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
com.usatiuk.utils.AutoCloseableNoThrow

+
+
Packages that use AutoCloseableNoThrow
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/ByteUtils.html b/com/usatiuk/utils/class-use/ByteUtils.html new file mode 100644 index 00000000..5598f074 --- /dev/null +++ b/com/usatiuk/utils/class-use/ByteUtils.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.ByteUtils (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.ByteUtils

+
+No usage of com.usatiuk.utils.ByteUtils
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/DataLocker.html b/com/usatiuk/utils/class-use/DataLocker.html new file mode 100644 index 00000000..33de5914 --- /dev/null +++ b/com/usatiuk/utils/class-use/DataLocker.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.DataLocker (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.DataLocker

+
+No usage of com.usatiuk.utils.DataLocker
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/HashSetDelayedBlockingQueue.html b/com/usatiuk/utils/class-use/HashSetDelayedBlockingQueue.html new file mode 100644 index 00000000..2960a97c --- /dev/null +++ b/com/usatiuk/utils/class-use/HashSetDelayedBlockingQueue.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.HashSetDelayedBlockingQueue (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.HashSetDelayedBlockingQueue

+
+No usage of com.usatiuk.utils.HashSetDelayedBlockingQueue
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/ListUtils.html b/com/usatiuk/utils/class-use/ListUtils.html new file mode 100644 index 00000000..bbfa85ea --- /dev/null +++ b/com/usatiuk/utils/class-use/ListUtils.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.ListUtils (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.ListUtils

+
+No usage of com.usatiuk.utils.ListUtils
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/SerializationHelper.html b/com/usatiuk/utils/class-use/SerializationHelper.html new file mode 100644 index 00000000..087580e7 --- /dev/null +++ b/com/usatiuk/utils/class-use/SerializationHelper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.SerializationHelper (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.SerializationHelper

+
+No usage of com.usatiuk.utils.SerializationHelper
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/StatusRuntimeExceptionNoStacktrace.html b/com/usatiuk/utils/class-use/StatusRuntimeExceptionNoStacktrace.html new file mode 100644 index 00000000..13ef1f65 --- /dev/null +++ b/com/usatiuk/utils/class-use/StatusRuntimeExceptionNoStacktrace.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace

+
+No usage of com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/UninitializedByteBuffer.html b/com/usatiuk/utils/class-use/UninitializedByteBuffer.html new file mode 100644 index 00000000..25e718a1 --- /dev/null +++ b/com/usatiuk/utils/class-use/UninitializedByteBuffer.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.UninitializedByteBuffer (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.UninitializedByteBuffer

+
+No usage of com.usatiuk.utils.UninitializedByteBuffer
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/class-use/UnsafeAccessor.html b/com/usatiuk/utils/class-use/UnsafeAccessor.html new file mode 100644 index 00000000..46dba73e --- /dev/null +++ b/com/usatiuk/utils/class-use/UnsafeAccessor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.usatiuk.utils.UnsafeAccessor (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
com.usatiuk.utils.UnsafeAccessor

+
+No usage of com.usatiuk.utils.UnsafeAccessor
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/package-summary.html b/com/usatiuk/utils/package-summary.html new file mode 100644 index 00000000..6f5b8621 --- /dev/null +++ b/com/usatiuk/utils/package-summary.html @@ -0,0 +1,114 @@ + + + + +com.usatiuk.utils (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package com.usatiuk.utils

+
+
+
package com.usatiuk.utils
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/package-tree.html b/com/usatiuk/utils/package-tree.html new file mode 100644 index 00000000..142c9947 --- /dev/null +++ b/com/usatiuk/utils/package-tree.html @@ -0,0 +1,109 @@ + + + + +com.usatiuk.utils Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package com.usatiuk.utils

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/com/usatiuk/utils/package-use.html b/com/usatiuk/utils/package-use.html new file mode 100644 index 00000000..77697fd3 --- /dev/null +++ b/com/usatiuk/utils/package-use.html @@ -0,0 +1,84 @@ + + + + +Uses of Package com.usatiuk.utils (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
com.usatiuk.utils

+
+
Packages that use com.usatiuk.utils
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/constant-values.html b/constant-values.html new file mode 100644 index 00000000..40f3ad64 --- /dev/null +++ b/constant-values.html @@ -0,0 +1,282 @@ + + + + +Constant Field Values (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Constant Field Values

+
+
+

Contents

+ +
+
+

com.usatiuk.*

+ + + +
+
+
+
+ +
+
+
+ + diff --git a/copy.svg b/copy.svg new file mode 100644 index 00000000..7c46ab15 --- /dev/null +++ b/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/dhfs-parent/.gitignore b/dhfs-parent/.gitignore deleted file mode 100644 index 8e2a9c71..00000000 --- a/dhfs-parent/.gitignore +++ /dev/null @@ -1,45 +0,0 @@ -#Maven -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -release.properties -.flattened-pom.xml - -# Eclipse -.project -.classpath -.settings/ -bin/ - -# IntelliJ -.idea -*.ipr -*.iml -*.iws - -# NetBeans -nb-configuration.xml - -# Visual Studio Code -.vscode -.factorypath - -# OSX -.DS_Store - -# Vim -*.swp -*.swo - -# patch -*.orig -*.rej - -# Local environment -.env - -# Plugin directory -/.quarkus/cli/plugins/ - -.jqwik-database \ No newline at end of file diff --git a/dhfs-parent/.run/Main 2.run.xml b/dhfs-parent/.run/Main 2.run.xml deleted file mode 100644 index dd76054f..00000000 --- a/dhfs-parent/.run/Main 2.run.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/dhfs-parent/.run/Main.run.xml b/dhfs-parent/.run/Main.run.xml deleted file mode 100644 index a9a471f1..00000000 --- a/dhfs-parent/.run/Main.run.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/dhfs-parent/dhfs-fs/.dockerignore b/dhfs-parent/dhfs-fs/.dockerignore deleted file mode 100644 index 94810d00..00000000 --- a/dhfs-parent/dhfs-fs/.dockerignore +++ /dev/null @@ -1,5 +0,0 @@ -* -!target/*-runner -!target/*-runner.jar -!target/lib/* -!target/quarkus-app/* \ No newline at end of file diff --git a/dhfs-parent/dhfs-fs/.gitignore b/dhfs-parent/dhfs-fs/.gitignore deleted file mode 100644 index 8c7863e7..00000000 --- a/dhfs-parent/dhfs-fs/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -#Maven -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -release.properties -.flattened-pom.xml - -# Eclipse -.project -.classpath -.settings/ -bin/ - -# IntelliJ -.idea -*.ipr -*.iml -*.iws - -# NetBeans -nb-configuration.xml - -# Visual Studio Code -.vscode -.factorypath - -# OSX -.DS_Store - -# Vim -*.swp -*.swo - -# patch -*.orig -*.rej - -# Local environment -.env - -# Plugin directory -/.quarkus/cli/plugins/ diff --git a/dhfs-parent/dhfs-fs/Dockerfile b/dhfs-parent/dhfs-fs/Dockerfile deleted file mode 100644 index 62bace54..00000000 --- a/dhfs-parent/dhfs-fs/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM azul/zulu-openjdk-debian:21-jre-latest -RUN apt update && apt install -y libfuse2 curl \ No newline at end of file diff --git a/dhfs-parent/dhfs-fs/docker-compose.yml b/dhfs-parent/dhfs-fs/docker-compose.yml deleted file mode 100644 index c45708ba..00000000 --- a/dhfs-parent/dhfs-fs/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -version: "3.2" - -services: - dhfs1: - build: . - privileged: true - devices: - - /dev/fuse - volumes: - - $HOME/dhfs/dhfs1:/dhfs_root - - $HOME/dhfs/dhfs1_f:/dhfs_root/fuse:rshared - - ./target/quarkus-app:/app - command: "java --add-exports java.base/sun.nio.ch=ALL-UNNAMED - -Ddhfs.objects.persistence.files.root=/dhfs_root/p - -Ddhfs.objects.root=/dhfs_root/d - -Ddhfs.fuse.root=/dhfs_root/fuse -Dquarkus.http.host=0.0.0.0 - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 - -jar /app/quarkus-run.jar" - ports: - - 8080:8080 - - 8081:8443 - - 5005:5005 - dhfs2: - build: . - privileged: true - devices: - - /dev/fuse - volumes: - - $HOME/dhfs/dhfs2:/dhfs_root - - $HOME/dhfs/dhfs2_f:/dhfs_root/fuse:rshared - - ./target/quarkus-app:/app - command: "java --add-exports java.base/sun.nio.ch=ALL-UNNAMED - --add-exports java.base/jdk.internal.access=ALL-UNNAMED - --add-opens=java.base/java.nio=ALL-UNNAMED - -Ddhfs.objects.persistence.files.root=/dhfs_root/p - -Ddhfs.objects.root=/dhfs_root/d - -Ddhfs.fuse.root=/dhfs_root/fuse -Dquarkus.http.host=0.0.0.0 - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5010 - -jar /app/quarkus-run.jar" - ports: - - 8090:8080 - - 8091:8443 - - 5010:5010 diff --git a/dhfs-parent/dhfs-fs/pom.xml b/dhfs-parent/dhfs-fs/pom.xml deleted file mode 100644 index eb459502..00000000 --- a/dhfs-parent/dhfs-fs/pom.xml +++ /dev/null @@ -1,164 +0,0 @@ - - - 4.0.0 - com.usatiuk.dhfs - dhfs-fs - 1.0-SNAPSHOT - - - com.usatiuk.dhfs - parent - 1.0-SNAPSHOT - - - - - org.testcontainers - testcontainers - test - - - org.awaitility - awaitility - test - - - org.bouncycastle - bcprov-jdk18on - - - org.bouncycastle - bcpkix-jdk18on - - - io.quarkus - quarkus-security - - - net.openhft - zero-allocation-hashing - - - io.quarkus - quarkus-grpc - - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-rest - - - io.quarkus - quarkus-rest-client - - - io.quarkus - quarkus-rest-client-jsonb - - - io.quarkus - quarkus-rest-jsonb - - - io.quarkus - quarkus-scheduler - - - io.quarkus - quarkus-junit5 - test - - - org.apache.commons - commons-lang3 - - - commons-io - commons-io - - - org.jboss.slf4j - slf4j-jboss-logmanager - test - - - commons-codec - commons-codec - - - org.apache.commons - commons-collections4 - - - org.pcollections - pcollections - - - org.apache.commons - commons-math3 - 3.6.1 - - - com.usatiuk.dhfs - sync-base - 1.0-SNAPSHOT - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 1C - false - classes - - - false - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - - true - - - concurrent - - - 0.5 - - true - true - - - - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - quarkus-plugin - - generate-code - generate-code-tests - - - - - - - diff --git a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.jvm b/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.jvm deleted file mode 100644 index b1de5988..00000000 --- a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.jvm +++ /dev/null @@ -1,97 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode -# -# Before building the container image run: -# -# ./mvnw package -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/server-jvm . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server-jvm -# -# If you want to include the debug port into your docker image -# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. -# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 -# when running the container -# -# Then run the container using : -# -# docker run -i --rm -p 8080:8080 quarkus/server-jvm -# -# This image uses the `run-java.sh` script to run the application. -# This scripts computes the command line to execute your Java application, and -# includes memory/GC tuning. -# You can configure the behavior using the following environment properties: -# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") -# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options -# in JAVA_OPTS (example: "-Dsome.property=foo") -# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is -# used to calculate a default maximal heap memory based on a containers restriction. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio -# of the container available memory as set here. The default is `50` which means 50% -# of the available memory is used as an upper boundary. You can skip this mechanism by -# setting this value to `0` in which case no `-Xmx` option is added. -# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This -# is used to calculate a default initial heap memory based on the maximum heap memory. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio -# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` -# is used as the initial heap size. You can skip this mechanism by setting this value -# to `0` in which case no `-Xms` option is added (example: "25") -# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. -# This is used to calculate the maximum value of the initial heap memory. If used in -# a container without any memory constraints for the container then this option has -# no effect. If there is a memory constraint then `-Xms` is limited to the value set -# here. The default is 4096MB which means the calculated value of `-Xms` never will -# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") -# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output -# when things are happening. This option, if set to true, will set -# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). -# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: -# true"). -# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). -# - CONTAINER_CORE_LIMIT: A calculated core limit as described in -# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") -# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). -# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. -# (example: "20") -# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. -# (example: "40") -# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. -# (example: "4") -# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus -# previous GC times. (example: "90") -# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") -# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") -# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should -# contain the necessary JRE command-line options to specify the required GC, which -# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). -# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") -# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") -# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be -# accessed directly. (example: "foo.example.com,bar.example.com") -# -### -FROM registry.access.redhat.com/ubi8/openjdk-21:1.18 - -ENV LANGUAGE='en_US:en' - - -# We make four distinct layers so if there are application changes the library layers can be re-used -COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ -COPY --chown=185 target/quarkus-app/*.jar /deployments/ -COPY --chown=185 target/quarkus-app/app/ /deployments/app/ -COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/ - -EXPOSE 8080 -USER 185 -ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" - -ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] - diff --git a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.legacy-jar b/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.legacy-jar deleted file mode 100644 index f66a1665..00000000 --- a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.legacy-jar +++ /dev/null @@ -1,93 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode -# -# Before building the container image run: -# -# ./mvnw package -Dquarkus.package.jar.type=legacy-jar -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/server-legacy-jar . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server-legacy-jar -# -# If you want to include the debug port into your docker image -# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. -# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 -# when running the container -# -# Then run the container using : -# -# docker run -i --rm -p 8080:8080 quarkus/server-legacy-jar -# -# This image uses the `run-java.sh` script to run the application. -# This scripts computes the command line to execute your Java application, and -# includes memory/GC tuning. -# You can configure the behavior using the following environment properties: -# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") -# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options -# in JAVA_OPTS (example: "-Dsome.property=foo") -# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is -# used to calculate a default maximal heap memory based on a containers restriction. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio -# of the container available memory as set here. The default is `50` which means 50% -# of the available memory is used as an upper boundary. You can skip this mechanism by -# setting this value to `0` in which case no `-Xmx` option is added. -# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This -# is used to calculate a default initial heap memory based on the maximum heap memory. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio -# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` -# is used as the initial heap size. You can skip this mechanism by setting this value -# to `0` in which case no `-Xms` option is added (example: "25") -# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. -# This is used to calculate the maximum value of the initial heap memory. If used in -# a container without any memory constraints for the container then this option has -# no effect. If there is a memory constraint then `-Xms` is limited to the value set -# here. The default is 4096MB which means the calculated value of `-Xms` never will -# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") -# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output -# when things are happening. This option, if set to true, will set -# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). -# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: -# true"). -# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). -# - CONTAINER_CORE_LIMIT: A calculated core limit as described in -# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") -# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). -# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. -# (example: "20") -# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. -# (example: "40") -# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. -# (example: "4") -# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus -# previous GC times. (example: "90") -# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") -# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") -# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should -# contain the necessary JRE command-line options to specify the required GC, which -# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). -# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") -# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") -# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be -# accessed directly. (example: "foo.example.com,bar.example.com") -# -### -FROM registry.access.redhat.com/ubi8/openjdk-21:1.18 - -ENV LANGUAGE='en_US:en' - - -COPY target/lib/* /deployments/lib/ -COPY target/*-runner.jar /deployments/quarkus-run.jar - -EXPOSE 8080 -USER 185 -ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" - -ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] diff --git a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native b/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native deleted file mode 100644 index 226e7c71..00000000 --- a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native +++ /dev/null @@ -1,27 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. -# -# Before building the container image run: -# -# ./mvnw package -Dnative -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.native -t quarkus/server . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server -# -### -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.9 -WORKDIR /work/ -RUN chown 1001 /work \ - && chmod "g+rwX" /work \ - && chown 1001:root /work -COPY --chown=1001:root target/*-runner /work/application - -EXPOSE 8080 -USER 1001 - -ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] diff --git a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native-micro b/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native-micro deleted file mode 100644 index 4bd4c6de..00000000 --- a/dhfs-parent/dhfs-fs/src/main/docker/Dockerfile.native-micro +++ /dev/null @@ -1,30 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. -# It uses a micro base image, tuned for Quarkus native executables. -# It reduces the size of the resulting container image. -# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image. -# -# Before building the container image run: -# -# ./mvnw package -Dnative -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/server . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server -# -### -FROM quay.io/quarkus/quarkus-micro-image:2.0 -WORKDIR /work/ -RUN chown 1001 /work \ - && chmod "g+rwX" /work \ - && chown 1001:root /work -COPY --chown=1001:root target/*-runner /work/application - -EXPOSE 8080 -USER 1001 - -ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java deleted file mode 100644 index 72def208..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.google.protobuf.ByteString; -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.objects.JObjectKey; - -/** - * ChunkData is a data structure that represents an immutable binary blob - * @param key unique key - * @param data binary data - */ -public record ChunkData(JObjectKey key, ByteString data) implements JDataRemote, JDataRemoteDto { - @Override - public int estimateSize() { - return data.size(); - } -} \ No newline at end of file diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java deleted file mode 100644 index 68314f43..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.usatiuk.dhfs.jmap.JMapHolder; -import com.usatiuk.dhfs.jmap.JMapLongKey; -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.objects.JObjectKey; - -import java.util.Collection; -import java.util.Set; - -/** - * File is a data structure that represents a file in the file system - * @param key unique key - * @param mode file mode - * @param cTime creation time - * @param mTime modification time - * @param symlink true if the file is a symlink, false otherwise - */ -public record File(JObjectKey key, long mode, long cTime, long mTime, - boolean symlink -) implements JDataRemote, JMapHolder { - public File withSymlink(boolean symlink) { - return new File(key, mode, cTime, mTime, symlink); - } - - public File withMode(long mode) { - return new File(key, mode, cTime, mTime, symlink); - } - - public File withCTime(long cTime) { - return new File(key, mode, cTime, mTime, symlink); - } - - public File withMTime(long mTime) { - return new File(key, mode, cTime, mTime, symlink); - } - - public File withCurrentMTime() { - return new File(key, mode, cTime, System.currentTimeMillis(), symlink); - } - - @Override - public Collection collectRefsTo() { - return Set.of(); -// return Set.copyOf(chunks().values()); - } - - @Override - public int estimateSize() { - return 64; -// return chunks.size() * 64; - } - - @Override - public Class dtoClass() { - return FileDto.class; - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java deleted file mode 100644 index 3dbe06ff..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.objects.JObjectKey; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; - -/** - * FileDto is a data transfer object that contains a file and its chunks. - * @param file the file - * @param chunks the list of chunks, each represented as a pair of a long and a JObjectKey - */ -public record FileDto(File file, List> chunks) implements JDataRemoteDto { - @Override - public Class objClass() { - return File.class; - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDtoMapper.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDtoMapper.java deleted file mode 100644 index 656caa3b..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDtoMapper.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.usatiuk.dhfs.jmap.JMapHelper; -import com.usatiuk.dhfs.syncmap.DtoMapper; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -/** - * Maps a {@link File} object to a {@link FileDto} object and vice versa. - */ -@ApplicationScoped -public class FileDtoMapper implements DtoMapper { - @Inject - JMapHelper jMapHelper; - @Inject - FileHelper fileHelper; - - @Override - public FileDto toDto(File obj) { - return new FileDto(obj, fileHelper.getChunks(obj)); - } - - @Override - public File fromDto(FileDto dto) { - throw new UnsupportedOperationException(); - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java deleted file mode 100644 index 5813ae4d..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.usatiuk.dhfs.jmap.JMapHelper; -import com.usatiuk.dhfs.jmap.JMapLongKey; -import com.usatiuk.objects.JObjectKey; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.ArrayList; -import java.util.List; - -/** - * Helper class for working with files. - */ -@ApplicationScoped -public class FileHelper { - @Inject - JMapHelper jMapHelper; - - /** - * Get the chunks of a file. - * Transaction is expected to be already started. - * @param file the file to get chunks from - * @return a list of pairs of chunk offset and chunk key - */ - public List> getChunks(File file) { - ArrayList> chunks = new ArrayList<>(); - try (var it = jMapHelper.getIterator(file)) { - while (it.hasNext()) { - var cur = it.next(); - chunks.add(Pair.of(cur.getKey().key(), cur.getValue().ref())); - } - } - return List.copyOf(chunks); - } - - /** - * Replace the chunks of a file. - * All previous chunks will be deleted. - * Transaction is expected to be already started. - * @param file the file to replace chunks in - * @param chunks the list of pairs of chunk offset and chunk key - */ - public void replaceChunks(File file, List> chunks) { - jMapHelper.deleteAll(file); - - for (var f : chunks) { - jMapHelper.put(file, JMapLongKey.of(f.getLeft()), f.getRight()); - } - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileSyncHandler.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileSyncHandler.java deleted file mode 100644 index a95cc2d8..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileSyncHandler.java +++ /dev/null @@ -1,242 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager; -import com.usatiuk.dhfs.jmap.JMapHelper; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.dhfs.remoteobj.*; -import com.usatiuk.dhfsfs.service.DhfsFileService; -import com.usatiuk.kleppmanntree.AlreadyExistsException; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; -import org.pcollections.HashPMap; -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; - -import javax.annotation.Nullable; -import java.util.List; -import java.util.Objects; - -/** - * Handles synchronization of file objects. - */ -@ApplicationScoped -public class FileSyncHandler implements ObjSyncHandler { - @Inject - Transaction curTx; - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - JMapHelper jMapHelper; - @Inject - RemoteTransaction remoteTx; - @Inject - FileHelper fileHelper; - - @Inject - JKleppmannTreeManager jKleppmannTreeManager; - @Inject - DhfsFileService fileService; - - private JKleppmannTreeManager.JKleppmannTree getTree() { - return jKleppmannTreeManager.getTree(JObjectKey.of("fs")).orElseThrow(); - } - - /** - * Resolve conflict between two file versions, update the file in storage and create a conflict file. - * - * @param from the peer that sent the update - * @param key the key of the file - * @param receivedChangelog the changelog of the received file - * @param receivedData the received file data - */ - private void resolveConflict(PeerId from, JObjectKey key, PMap receivedChangelog, - @Nullable FileDto receivedData) { - var oursCurMeta = curTx.get(RemoteObjectMeta.class, key).orElse(null); - - if (!oursCurMeta.knownType().isAssignableFrom(File.class)) - throw new IllegalStateException("Object type mismatch: " + oursCurMeta.knownType() + " vs " + File.class); - - if (!oursCurMeta.knownType().equals(File.class)) - oursCurMeta = oursCurMeta.withKnownType(File.class); - - curTx.put(oursCurMeta); - - var oursCurFile = remoteTx.getDataLocal(File.class, key).orElse(null); - if (oursCurFile == null) - throw new StatusRuntimeException(Status.ABORTED.withDescription("Conflict but we don't have local copy")); - - var theirsFile = receivedData.file(); - - var oursChunks = fileHelper.getChunks(oursCurFile); - - File first; - File second; - List> firstChunks; - List> secondChunks; - PeerId otherHostname; - - if (oursCurFile.mTime() >= theirsFile.mTime()) { - first = oursCurFile; - firstChunks = oursChunks; - second = theirsFile; - secondChunks = receivedData.chunks(); - otherHostname = from; - } else { - second = oursCurFile; - secondChunks = oursChunks; - first = theirsFile; - firstChunks = receivedData.chunks(); - otherHostname = persistentPeerDataService.getSelfUuid(); - } - - Log.tracev("Conflict resolution: ours: {0}, theirs: {1}, chunks: {2}, {3}", oursCurFile, theirsFile, oursChunks, receivedData.chunks()); - Log.tracev("Conflict resolution: first: {0}, second: {1}, chunks: {2}, {3}", first, second, firstChunks, secondChunks); - - HashPMap newChangelog = HashTreePMap.from(oursCurMeta.changelog()); - - for (var entry : receivedChangelog.entrySet()) { - newChangelog = newChangelog.plus(entry.getKey(), - Long.max(newChangelog.getOrDefault(entry.getKey(), 0L), entry.getValue()) - ); - } - - oursCurMeta = oursCurMeta.withChangelog(newChangelog); - curTx.put(oursCurMeta); - - boolean chunksDiff = !Objects.equals(firstChunks, secondChunks); - - boolean wasChanged = first.mTime() != second.mTime() - || first.cTime() != second.cTime() - || first.mode() != second.mode() - || first.symlink() != second.symlink() - || chunksDiff; - - if (wasChanged) { - oursCurMeta = oursCurMeta.withChangelog( - newChangelog.plus(persistentPeerDataService.getSelfUuid(), newChangelog.getOrDefault(persistentPeerDataService.getSelfUuid(), 0L) + 1) - ); - curTx.put(oursCurMeta); - - remoteTx.putDataRaw(oursCurFile.withCTime(first.cTime()).withMTime(first.mTime()).withMode(first.mode()).withSymlink(first.symlink())); - fileHelper.replaceChunks(oursCurFile, firstChunks); - - var newFile = new File(JObjectKey.random(), second.mode(), second.cTime(), second.mTime(), second.symlink()); - remoteTx.putData(newFile); - fileHelper.replaceChunks(newFile, secondChunks); - - var parent = fileService.inoToParent(oursCurFile.key()); - - int i = 0; - - do { - try { - getTree().move(parent.getRight(), - new JKleppmannTreeNodeMetaFile( - parent.getLeft() + ".fconflict." + persistentPeerDataService.getSelfUuid() + "." + otherHostname.toString() + "." + i, - newFile.key() - ), - getTree().getNewNodeId() - ); - } catch (AlreadyExistsException aex) { - i++; - continue; - } - break; - } while (true); - } - - var curKnownRemoteVersion = oursCurMeta.knownRemoteVersions().get(from); - var receivedTotalVer = receivedChangelog.values().stream().mapToLong(Long::longValue).sum(); - - if (curKnownRemoteVersion == null || curKnownRemoteVersion < receivedTotalVer) { - oursCurMeta = oursCurMeta.withKnownRemoteVersions(oursCurMeta.knownRemoteVersions().plus(from, receivedTotalVer)); - curTx.put(oursCurMeta); - } - } - - @Override - public void handleRemoteUpdate(PeerId from, JObjectKey key, PMap receivedChangelog, - @Nullable FileDto receivedData) { - var current = curTx.get(RemoteObjectMeta.class, key).orElse(null); - if (current == null) { - current = new RemoteObjectMeta(key, HashTreePMap.empty()); - curTx.put(current); - } - - var changelogCompare = SyncHelper.compareChangelogs(current.changelog(), receivedChangelog); - - switch (changelogCompare) { - case EQUAL -> { - Log.debug("No action on update: " + key + " from " + from); - if (!current.hasLocalData() && receivedData != null) { - current = current.withHaveLocal(true); - curTx.put(current); - curTx.put(curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(current.key())) - .map(w -> w.withData(receivedData.file())).orElse(new RemoteObjectDataWrapper<>(receivedData.file()))); - - if (!current.knownType().isAssignableFrom(File.class)) - throw new IllegalStateException("Object type mismatch: " + current.knownType() + " vs " + File.class); - - if (!current.knownType().equals(File.class)) - current = current.withKnownType(File.class); - - curTx.put(current); - - fileHelper.replaceChunks(receivedData.file(), receivedData.chunks()); - } - } - case NEWER -> { - Log.debug("Received newer index update than known: " + key + " from " + from); - var newChangelog = receivedChangelog.containsKey(persistentPeerDataService.getSelfUuid()) ? - receivedChangelog : receivedChangelog.plus(persistentPeerDataService.getSelfUuid(), 0L); - current = current.withChangelog(newChangelog); - - if (receivedData != null) { - current = current.withHaveLocal(true); - curTx.put(current); - curTx.put(curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(current.key())) - .map(w -> w.withData(receivedData.file())).orElse(new RemoteObjectDataWrapper<>(receivedData.file()))); - - if (!current.knownType().isAssignableFrom(File.class)) - throw new IllegalStateException("Object type mismatch: " + current.knownType() + " vs " + File.class); - - if (!current.knownType().equals(File.class)) - current = current.withKnownType(File.class); - - curTx.put(current); - - fileHelper.replaceChunks(receivedData.file(), receivedData.chunks()); - } else { - current = current.withHaveLocal(false); - curTx.put(current); - } - } - case OLDER -> { - Log.debug("Received older index update than known: " + key + " from " + from); - return; - } - case CONFLICT -> { - Log.debug("Conflict on update (inconsistent version): " + key + " from " + from); - assert receivedData != null; - resolveConflict(from, key, receivedChangelog, receivedData); - // TODO: - return; - } - } - var curKnownRemoteVersion = current.knownRemoteVersions().get(from); - var receivedTotalVer = receivedChangelog.values().stream().mapToLong(Long::longValue).sum(); - - if (curKnownRemoteVersion == null || curKnownRemoteVersion < receivedTotalVer) { - current = current.withKnownRemoteVersions(current.knownRemoteVersions().plus(from, receivedTotalVer)); - curTx.put(current); - } - - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.java deleted file mode 100644 index 50e5b149..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaDirectory.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta; -import com.usatiuk.objects.JObjectKey; - -import java.util.Collection; -import java.util.List; - -/** - * JKleppmannTreeNodeMetaDirectory is a record that represents a directory in the JKleppmann tree. - * @param name the name of the directory - */ -public record JKleppmannTreeNodeMetaDirectory(String name) implements JKleppmannTreeNodeMeta { - public JKleppmannTreeNodeMeta withName(String name) { - return new JKleppmannTreeNodeMetaDirectory(name); - } - - @Override - public Collection collectRefsTo() { - return List.of(); - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.java deleted file mode 100644 index 404a4dc1..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/JKleppmannTreeNodeMetaFile.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.usatiuk.dhfsfs.objects; - -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta; -import com.usatiuk.objects.JObjectKey; - -import java.util.Collection; -import java.util.List; - -/** - * JKleppmannTreeNodeMetaFile is a record that represents a file in the JKleppmann tree. - * @param name the name of the file - * @param fileIno a reference to the `File` object - */ -public record JKleppmannTreeNodeMetaFile(String name, JObjectKey fileIno) implements JKleppmannTreeNodeMeta { - @Override - public JKleppmannTreeNodeMeta withName(String name) { - return new JKleppmannTreeNodeMetaFile(name, fileIno); - } - - @Override - public Collection collectRefsTo() { - return List.of(fileIno); - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DhfsFileService.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DhfsFileService.java deleted file mode 100644 index 5832f794..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DhfsFileService.java +++ /dev/null @@ -1,763 +0,0 @@ -package com.usatiuk.dhfsfs.service; - -import com.google.protobuf.ByteString; -import com.google.protobuf.UnsafeByteOperations; -import com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta; -import com.usatiuk.dhfs.jmap.JMapEntry; -import com.usatiuk.dhfs.jmap.JMapHelper; -import com.usatiuk.dhfs.jmap.JMapLongKey; -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.dhfsfs.objects.ChunkData; -import com.usatiuk.dhfsfs.objects.File; -import com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory; -import com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.IteratorStart; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; -import io.quarkus.logging.Log; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; -import java.nio.file.Path; -import java.util.*; -import java.util.stream.StreamSupport; - -/** - * Actual filesystem implementation. - */ -@ApplicationScoped -public class DhfsFileService { - @ConfigProperty(name = "dhfs.files.target_chunk_alignment") - int targetChunkAlignment; - @ConfigProperty(name = "dhfs.files.target_chunk_size") - int targetChunkSize; - @ConfigProperty(name = "dhfs.files.max_chunk_size", defaultValue = "524288") - int maxChunkSize; - @ConfigProperty(name = "dhfs.files.use_hash_for_chunks") - boolean useHashForChunks; - @ConfigProperty(name = "dhfs.files.allow_recursive_delete") - boolean allowRecursiveDelete; - @ConfigProperty(name = "dhfs.objects.ref_verification") - boolean refVerification; - @ConfigProperty(name = "dhfs.objects.write_log") - boolean writeLogging; - - @Inject - Transaction curTx; - @Inject - RemoteTransaction remoteTx; - @Inject - TransactionManager jObjectTxManager; - @Inject - JKleppmannTreeManager jKleppmannTreeManager; - @Inject - JMapHelper jMapHelper; - - private JKleppmannTreeManager.JKleppmannTree getTree() { - return jKleppmannTreeManager.getTree(JObjectKey.of("fs"), () -> new JKleppmannTreeNodeMetaDirectory("")); - } - - /** - * Create a new chunk with the given data and a new unique ID. - * - * @param bytes the data to store in the chunk - * @return the created chunk - */ - private ChunkData createChunk(ByteString bytes) { - var newChunk = new ChunkData(JObjectKey.of(UUID.randomUUID().toString()), bytes); - remoteTx.putDataNew(newChunk); - return newChunk; - } - - void init(@Observes @Priority(500) StartupEvent event) { - Log.info("Initializing file service"); - getTree(); - } - - private JKleppmannTreeNode getDirEntry(String name) { - var res = getTree().traverse(StreamSupport.stream(Path.of(name).spliterator(), false).map(p -> p.toString()).toList()); - if (res == null) throw new StatusRuntimeExceptionNoStacktrace(Status.NOT_FOUND); - var ret = curTx.get(JKleppmannTreeNodeHolder.class, res).map(JKleppmannTreeNodeHolder::node).orElseThrow(() -> new StatusRuntimeException(Status.NOT_FOUND.withDescription("Tree node exists but not found as jObject: " + name))); - return ret; - } - - private Optional getDirEntryOpt(String name) { - var res = getTree().traverse(StreamSupport.stream(Path.of(name).spliterator(), false).map(p -> p.toString()).toList()); - if (res == null) return Optional.empty(); - var ret = curTx.get(JKleppmannTreeNodeHolder.class, res).map(JKleppmannTreeNodeHolder::node); - return ret; - } - - /** - * Get the attributes of a file or directory. - * @param uuid the UUID of the file or directory - * @return the attributes of the file or directory - */ - public Optional getattr(JObjectKey uuid) { - return jObjectTxManager.executeTx(() -> { - var ref = curTx.get(JData.class, uuid).orElse(null); - if (ref == null) return Optional.empty(); - GetattrRes ret; - if (ref instanceof RemoteObjectMeta r) { - var remote = remoteTx.getData(JDataRemote.class, uuid).orElse(null); - if (remote instanceof File f) { - ret = new GetattrRes(f.mTime(), f.cTime(), f.mode(), f.symlink() ? GetattrType.SYMLINK : GetattrType.FILE); - } else { - throw new StatusRuntimeException(Status.DATA_LOSS.withDescription("FsNode is not an FsNode: " + ref.key())); - } - } else if (ref instanceof JKleppmannTreeNodeHolder) { - ret = new GetattrRes(100, 100, 0700, GetattrType.DIRECTORY); - } else { - throw new StatusRuntimeException(Status.DATA_LOSS.withDescription("FsNode is not an FsNode: " + ref.key())); - } - return Optional.of(ret); - }); - } - - /** - * Try to resolve a path to a file or directory. - * @param name the path to resolve - * @return the key of the file or directory, or an empty optional if it does not exist - */ - public Optional open(String name) { - return jObjectTxManager.executeTx(() -> { - try { - var ret = getDirEntry(name); - return switch (ret.meta()) { - case JKleppmannTreeNodeMetaFile f -> Optional.of(f.fileIno()); - case JKleppmannTreeNodeMetaDirectory f -> Optional.of(ret.key()); - default -> Optional.empty(); - }; - } catch (StatusRuntimeException e) { - if (e.getStatus().getCode() == Status.Code.NOT_FOUND) { - return Optional.empty(); - } - throw e; - } - }); - } - - private void ensureDir(JKleppmannTreeNode entry) { - if (!(entry.meta() instanceof JKleppmannTreeNodeMetaDirectory)) - throw new StatusRuntimeExceptionNoStacktrace(Status.INVALID_ARGUMENT.withDescription("Not a directory: " + entry.key())); - } - - /** - * Create a new file with the given name and mode. - * @param name the name of the file - * @param mode the mode of the file - * @return the key of the created file - */ - public Optional create(String name, long mode) { - return jObjectTxManager.executeTx(() -> { - Path path = Path.of(name); - var parent = getDirEntry(path.getParent().toString()); - - ensureDir(parent); - - String fname = path.getFileName().toString(); - - var fuuid = UUID.randomUUID(); - Log.debug("Creating file " + fuuid); - File f = new File(JObjectKey.of(fuuid.toString()), mode, System.currentTimeMillis(), System.currentTimeMillis(), false); - remoteTx.putData(f); - - try { - getTree().move(parent.key(), new JKleppmannTreeNodeMetaFile(fname, f.key()), getTree().getNewNodeId()); - } catch (Exception e) { -// fobj.getMeta().removeRef(newNodeId); - throw e; - } - return Optional.of(f.key()); - }); - } - - /** - * Get the parent directory of a file or directory. - * @param ino the key of the file or directory - * @return the parent directory - */ - public Pair inoToParent(JObjectKey ino) { - return jObjectTxManager.executeTx(() -> { - // FIXME: Slow - return getTree().findParent(w -> { - if (w.meta() instanceof JKleppmannTreeNodeMetaFile f) - return f.fileIno().equals(ino); - return false; - }); - }); - } - - /** - * Create a new directory with the given name and mode. - * @param name the name of the directory - * @param mode the mode of the directory - */ - public void mkdir(String name, long mode) { - jObjectTxManager.executeTx(() -> { - Path path = Path.of(name); - var parent = getDirEntry(path.getParent().toString()); - ensureDir(parent); - - String dname = path.getFileName().toString(); - - Log.debug("Creating directory " + name); - - // TODO: No modes for directories yet - getTree().move(parent.key(), new JKleppmannTreeNodeMetaDirectory(dname), getTree().getNewNodeId()); - }); - } - - /** - * Unlink a file or directory. - * @param name the name of the file or directory - * @throws DirectoryNotEmptyException if the directory is not empty and recursive delete is not allowed - */ - public void unlink(String name) { - jObjectTxManager.executeTx(() -> { - var node = getDirEntryOpt(name).orElse(null); - if (node == null) - throw new StatusRuntimeException(Status.NOT_FOUND.withDescription("File not found when trying to unlink: " + name)); - if (node.meta() instanceof JKleppmannTreeNodeMetaDirectory f) { - if (!allowRecursiveDelete && !node.children().isEmpty()) - throw new DirectoryNotEmptyException(); - } - getTree().trash(node.meta(), node.key()); - }); - } - - /** - * Rename a file or directory. - * @param from the old name - * @param to the new name - * @return true if the rename was successful, false otherwise - */ - public Boolean rename(String from, String to) { - return jObjectTxManager.executeTx(() -> { - var node = getDirEntry(from); - JKleppmannTreeNodeMeta meta = node.meta(); - - var toPath = Path.of(to); - var toDentry = getDirEntry(toPath.getParent().toString()); - ensureDir(toDentry); - - getTree().move(toDentry.key(), meta.withName(toPath.getFileName().toString()), node.key()); - return true; - }); - } - - /** - * Change the mode of a file or directory. - * @param uuid the ID of the file or directory - * @param mode the new mode - * @return true if the mode was changed successfully, false otherwise - */ - public Boolean chmod(JObjectKey uuid, long mode) { - return jObjectTxManager.executeTx(() -> { - var dent = curTx.get(JData.class, uuid).orElseThrow(() -> new StatusRuntimeExceptionNoStacktrace(Status.NOT_FOUND)); - - if (dent instanceof JKleppmannTreeNodeHolder) { - return true; - } else if (dent instanceof RemoteObjectMeta) { - var remote = remoteTx.getData(JDataRemote.class, uuid).orElse(null); - if (remote instanceof File f) { - remoteTx.putData(f.withMode(mode).withCurrentMTime()); - return true; - } else { - throw new IllegalArgumentException(uuid + " is not a file"); - } - } else { - throw new IllegalArgumentException(uuid + " is not a file"); - } - }); - } - - /** - * Read the contents of a directory. - * @param name the path of the directory - * @return an iterable of the names of the files in the directory - */ - public Iterable readDir(String name) { - return jObjectTxManager.executeTx(() -> { - var found = getDirEntry(name); - - if (!(found.meta() instanceof JKleppmannTreeNodeMetaDirectory md)) - throw new StatusRuntimeException(Status.INVALID_ARGUMENT); - - return found.children().keySet(); - }); - } - - /** - * Read the contents of a file. - * @param fileUuid the ID of the file - * @param offset the offset to start reading from - * @param length the number of bytes to read - * @return the contents of the file as a ByteString - */ - public ByteString read(JObjectKey fileUuid, long offset, int length) { - return jObjectTxManager.executeTx(() -> { - if (length < 0) - throw new StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription("Length should be more than zero: " + length)); - if (offset < 0) - throw new StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription("Offset should be more than zero: " + offset)); - - var file = remoteTx.getData(File.class, fileUuid).orElse(null); - if (file == null) { - Log.error("File not found when trying to read: " + fileUuid); - throw new StatusRuntimeException(Status.NOT_FOUND.withDescription("File not found when trying to read: " + fileUuid)); - } - - try (var it = jMapHelper.getIterator(file, IteratorStart.LE, JMapLongKey.of(offset))) { - if (!it.hasNext()) - return ByteString.empty(); - -// if (it.peekNextKey().key() != offset) { -// Log.warnv("Read over the end of file: {0} {1} {2}, next chunk: {3}", fileUuid, offset, length, it.peekNextKey()); -// return Optional.of(ByteString.empty()); -// } - long curPos = offset; - ByteString buf = ByteString.empty(); - - var chunk = it.next(); - - while (curPos < offset + length) { - var chunkPos = chunk.getKey().key(); - - long offInChunk = curPos - chunkPos; - - long toReadInChunk = (offset + length) - curPos; - - var chunkBytes = readChunk(chunk.getValue().ref()); - - long readableLen = chunkBytes.size() - offInChunk; - - var toReadReally = Math.min(readableLen, toReadInChunk); - - if (toReadReally < 0) break; - - buf = buf.concat(chunkBytes.substring((int) offInChunk, (int) (offInChunk + toReadReally))); - - curPos += toReadReally; - - if (readableLen > toReadInChunk) - break; - - if (!it.hasNext()) break; - - chunk = it.next(); - } - - return buf; - } catch (Exception e) { - Log.error("Error reading file: " + fileUuid, e); - throw new StatusRuntimeException(Status.INTERNAL.withDescription("Error reading file: " + fileUuid)); - } - }); - } - - /** - * Get the size of a file. - * @param uuid the ID of the file - * @return the size of the file - */ - private ByteString readChunk(JObjectKey uuid) { - var chunkRead = remoteTx.getData(ChunkData.class, uuid).orElse(null); - - if (chunkRead == null) { - Log.error("Chunk requested not found: " + uuid); - throw new StatusRuntimeException(Status.NOT_FOUND); - } - - return chunkRead.data(); - } - - /** - * Get the size of a chunk. - * @param uuid the ID of the chunk - * @return the size of the chunk - */ - private int getChunkSize(JObjectKey uuid) { - return readChunk(uuid).size(); - } - - private long alignDown(long num, long n) { - return num & -(1L << n); - } - - /** - * Write data to a file. - * @param fileUuid the ID of the file - * @param offset the offset to write to - * @param data the data to write - * @return the number of bytes written - */ - public Long write(JObjectKey fileUuid, long offset, ByteString data) { - return jObjectTxManager.executeTx(() -> { - if (offset < 0) - throw new StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription("Offset should be more than zero: " + offset)); - - var file = remoteTx.getData(File.class, fileUuid).orElse(null); - if (file == null) { - throw new StatusRuntimeException(Status.NOT_FOUND.withDescription("File not found when trying to write: " + fileUuid)); - } - - Map removedChunks = new HashMap<>(); - - long realOffset = targetChunkAlignment >= 0 ? alignDown(offset, targetChunkAlignment) : offset; - long writeEnd = offset + data.size(); - long start = realOffset; - long existingEnd = 0; - ByteString pendingPrefix = ByteString.empty(); - ByteString pendingSuffix = ByteString.empty(); - - try (var it = jMapHelper.getIterator(file, IteratorStart.LE, JMapLongKey.of(realOffset))) { - while (it.hasNext()) { - var curEntry = it.next(); - long curChunkStart = curEntry.getKey().key(); - var curChunkId = curEntry.getValue().ref(); - long curChunkEnd = it.hasNext() ? it.peekNextKey().key() : curChunkStart + getChunkSize(curChunkId); - existingEnd = curChunkEnd; - if (curChunkEnd <= realOffset) break; - - removedChunks.put(curEntry.getKey().key(), curChunkId); - - if (curChunkStart < offset) { - if (curChunkStart < start) - start = curChunkStart; - - var readChunk = readChunk(curChunkId); - pendingPrefix = pendingPrefix.concat(readChunk.substring(0, Math.min(readChunk.size(), (int) (offset - curChunkStart)))); - } - - if (curChunkEnd > writeEnd) { - var readChunk = readChunk(curChunkId); - pendingSuffix = pendingSuffix.concat(readChunk.substring((int) (writeEnd - curChunkStart), readChunk.size())); - } - - if (curChunkEnd >= writeEnd) break; - } - } - - - Map newChunks = new HashMap<>(); - - if (existingEnd < offset) { - if (!pendingPrefix.isEmpty()) { - int diff = Math.toIntExact(offset - existingEnd); - pendingPrefix = pendingPrefix.concat(UnsafeByteOperations.unsafeWrap(ByteBuffer.allocateDirect(diff))); - } else { - fillZeros(existingEnd, offset, newChunks); - start = offset; - } - } - - ByteString pendingWrites = pendingPrefix.concat(data).concat(pendingSuffix); - - int combinedSize = pendingWrites.size(); - - { - int cur = 0; - while (cur < combinedSize) { - int end; - - if (combinedSize - cur < maxChunkSize) - end = combinedSize; - else if (targetChunkAlignment < 0) - end = combinedSize; - else - end = Math.min(cur + targetChunkSize, combinedSize); - - var thisChunk = pendingWrites.substring(cur, end); - - ChunkData newChunkData = createChunk(thisChunk); - newChunks.put(start, newChunkData.key()); - - start += thisChunk.size(); - cur = end; - } - } - - for (var e : removedChunks.entrySet()) { -// Log.tracev("Removing chunk {0}-{1}", e.getKey(), e.getValue()); - jMapHelper.delete(file, JMapLongKey.of(e.getKey())); - } - - for (var e : newChunks.entrySet()) { -// Log.tracev("Adding chunk {0}-{1}", e.getKey(), e.getValue()); - jMapHelper.put(file, JMapLongKey.of(e.getKey()), e.getValue()); - } - - remoteTx.putData(file.withCurrentMTime()); - - return (long) data.size(); - }); - } - - /** - * Truncate a file to the given length. - * @param fileUuid the ID of the file - * @param length the new length of the file - * @return true if the truncate was successful, false otherwise - */ - public Boolean truncate(JObjectKey fileUuid, long length) { - return jObjectTxManager.executeTx(() -> { - if (length < 0) - throw new StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription("Length should be more than zero: " + length)); - - var file = remoteTx.getData(File.class, fileUuid).orElse(null); - if (file == null) { - Log.error("File not found when trying to write: " + fileUuid); - return false; - } - - if (length == 0) { - jMapHelper.deleteAll(file); - remoteTx.putData(file); - return true; - } - - var curSize = size(fileUuid); - if (curSize == length) return true; - - NavigableMap removedChunks = new TreeMap<>(); - NavigableMap newChunks = new TreeMap<>(); - - if (curSize < length) { - fillZeros(curSize, length, newChunks); - } else { -// Pair> first; - Pair> last; - try (var it = jMapHelper.getIterator(file, IteratorStart.LT, JMapLongKey.of(length))) { - last = it.hasNext() ? it.next() : null; - while (it.hasNext()) { - var next = it.next(); - removedChunks.put(next.getKey().key(), next.getValue().ref()); - } - } - removedChunks.put(last.getKey().key(), last.getValue().ref()); -// -// NavigableMap removedChunks = new TreeMap<>(); -// -// long start = 0; -// -// try (var it = jMapHelper.getIterator(file, IteratorStart.LE, JMapLongKey.of(offset))) { -// first = it.hasNext() ? it.next() : null; -// boolean empty = last == null; -// if (first != null && getChunkSize(first.getValue().ref()) + first.getKey().key() <= offset) { -// first = null; -// last = null; -// start = offset; -// } else if (!empty) { -// assert first != null; -// removedChunks.put(first.getKey().key(), first.getValue().ref()); -// while (it.hasNext() && it.peekNextKey() != last.getKey()) { -// var next = it.next(); -// removedChunks.put(next.getKey().key(), next.getValue().ref()); -// } -// removedChunks.put(last.getKey().key(), last.getValue().ref()); -// } -// } -// -// var tail = chunksAll.lowerEntry(length); -// var afterTail = chunksAll.tailMap(tail.getKey(), false); -// -// removedChunks.put(tail.getKey(), tail.getValue()); -// removedChunks.putAll(afterTail); - - var tailBytes = readChunk(last.getValue().ref()); - var newChunk = tailBytes.substring(0, (int) (length - last.getKey().key())); - - ChunkData newChunkData = createChunk(newChunk); - newChunks.put(last.getKey().key(), newChunkData.key()); - } - -// file = file.withChunks(file.chunks().minusAll(removedChunks.keySet()).plusAll(newChunks)).withMTime(System.currentTimeMillis()); - - for (var e : removedChunks.entrySet()) { -// Log.tracev("Removing chunk {0}-{1}", e.getKey(), e.getValue()); - jMapHelper.delete(file, JMapLongKey.of(e.getKey())); - } - - for (var e : newChunks.entrySet()) { -// Log.tracev("Adding chunk {0}-{1}", e.getKey(), e.getValue()); - jMapHelper.put(file, JMapLongKey.of(e.getKey()), e.getValue()); - } - - remoteTx.putData(file.withCurrentMTime()); - return true; - }); - } - - /** - * Fill the given range with zeroes. - * @param fillStart the start of the range - * @param length the end of the range - * @param newChunks the map to store the new chunks in - */ - private void fillZeros(long fillStart, long length, Map newChunks) { - long combinedSize = (length - fillStart); - - long start = fillStart; - - // Hack - HashMap zeroCache = new HashMap<>(); - - { - long cur = 0; - while (cur < combinedSize) { - long end; - - if (targetChunkSize <= 0) - end = combinedSize; - else { - if ((combinedSize - cur) > (targetChunkSize * 1.5)) { - end = cur + targetChunkSize; - } else { - end = combinedSize; - } - } - - if (!zeroCache.containsKey(end - cur)) - zeroCache.put(end - cur, createChunk(UnsafeByteOperations.unsafeWrap(ByteBuffer.allocateDirect(Math.toIntExact(end - cur))))); - - ChunkData newChunkData = zeroCache.get(end - cur); - newChunks.put(start, newChunkData.key()); - - start += newChunkData.data().size(); - cur = end; - } - } - } - - /** - * Read the contents of a symlink. - * @param uuid the ID of the symlink - * @return the contents of the symlink as a string - */ - public String readlink(JObjectKey uuid) { - return jObjectTxManager.executeTx(() -> { - return readlinkBS(uuid).toStringUtf8(); - }); - } - - /** - * Read the contents of a symlink as a ByteString. - * @param uuid the ID of the symlink - * @return the contents of the symlink as a ByteString - */ - public ByteString readlinkBS(JObjectKey uuid) { - return jObjectTxManager.executeTx(() -> { - var fileOpt = remoteTx.getData(File.class, uuid).orElseThrow(() -> new StatusRuntimeException(Status.NOT_FOUND.withDescription("File not found when trying to readlink: " + uuid))); - return read(uuid, 0, Math.toIntExact(size(uuid))); - }); - } - - /** - * Create a symlink. - * @param oldpath the target of the symlink - * @param newpath the path of the symlink - * @return the key of the created symlink - */ - public JObjectKey symlink(String oldpath, String newpath) { - return jObjectTxManager.executeTx(() -> { - Path path = Path.of(newpath); - var parent = getDirEntry(path.getParent().toString()); - - ensureDir(parent); - - String fname = path.getFileName().toString(); - - var fuuid = UUID.randomUUID(); - Log.debug("Creating file " + fuuid); - - ChunkData newChunkData = createChunk(UnsafeByteOperations.unsafeWrap(oldpath.getBytes(StandardCharsets.UTF_8))); - File f = new File(JObjectKey.of(fuuid.toString()), 0, System.currentTimeMillis(), System.currentTimeMillis(), true); - jMapHelper.put(f, JMapLongKey.of(0), newChunkData.key()); - - remoteTx.putData(f); - getTree().move(parent.key(), new JKleppmannTreeNodeMetaFile(fname, f.key()), getTree().getNewNodeId()); - return f.key(); - }); - } - - /** - * Set the access and modification times of a file. - * @param fileUuid the ID of the file - * @param atimeMs the access time in milliseconds - * @param mtimeMs the modification time in milliseconds - * @return true if the times were set successfully, false otherwise - */ - public Boolean setTimes(JObjectKey fileUuid, long atimeMs, long mtimeMs) { - return jObjectTxManager.executeTx(() -> { - var dent = curTx.get(JData.class, fileUuid).orElseThrow(() -> new StatusRuntimeExceptionNoStacktrace(Status.NOT_FOUND)); - - // FIXME: - if (dent instanceof JKleppmannTreeNodeHolder) { - return true; - } else if (dent instanceof RemoteObjectMeta) { - var remote = remoteTx.getData(JDataRemote.class, fileUuid).orElse(null); - if (remote instanceof File f) { - remoteTx.putData(f.withCTime(atimeMs).withMTime(mtimeMs)); - return true; - } else { - throw new IllegalArgumentException(fileUuid + " is not a file"); - } - } else { - throw new IllegalArgumentException(fileUuid + " is not a file"); - } - }); - } - - /** - * Get the size of a file. - * @param fileUuid the ID of the file - * @return the size of the file - */ - public long size(JObjectKey fileUuid) { - return jObjectTxManager.executeTx(() -> { - long realSize = 0; - var file = remoteTx.getData(File.class, fileUuid) - .orElseThrow(() -> new StatusRuntimeException(Status.NOT_FOUND)); - - Pair> last; - try (var it = jMapHelper.getIterator(file, IteratorStart.LT, JMapLongKey.max())) { - last = it.hasNext() ? it.next() : null; - } - - if (last != null) { - realSize = last.getKey().key() + getChunkSize(last.getValue().ref()); - } - - return realSize; - }); - } - - /** - * Write data to a file. - * @param fileUuid the ID of the file - * @param offset the offset to write to - * @param data the data to write - * @return the number of bytes written - */ - public Long write(JObjectKey fileUuid, long offset, byte[] data) { - return write(fileUuid, offset, UnsafeByteOperations.unsafeWrap(data)); - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.java deleted file mode 100644 index 544c7d77..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/DirectoryNotEmptyException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.usatiuk.dhfsfs.service; - -/** - * DirectoryNotEmptyException is thrown when a directory is not empty. - * This exception is used to indicate that a directory cannot be deleted - * because it contains files or subdirectories. - */ -public class DirectoryNotEmptyException extends RuntimeException { - @Override - public synchronized Throwable fillInStackTrace() { - return this; - } -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrRes.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrRes.java deleted file mode 100644 index b97cfc4e..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrRes.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.dhfsfs.service; - -/** - * GetattrRes is a record that represents the result of a getattr operation. - * @param mtime File modification time - * @param ctime File creation time - * @param mode File mode - * @param type File type - */ - public record GetattrRes(long mtime, long ctime, long mode, GetattrType type) { -} diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrType.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrType.java deleted file mode 100644 index b5660f4d..00000000 --- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/service/GetattrType.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.usatiuk.dhfsfs.service; - -public enum GetattrType { - FILE, - DIRECTORY, - SYMLINK -} diff --git a/dhfs-parent/dhfs-fs/src/main/resources/META-INF/beans.xml b/dhfs-parent/dhfs-fs/src/main/resources/META-INF/beans.xml deleted file mode 100644 index e69de29b..00000000 diff --git a/dhfs-parent/dhfs-fs/src/main/resources/application.properties b/dhfs-parent/dhfs-fs/src/main/resources/application.properties deleted file mode 100644 index f3000b63..00000000 --- a/dhfs-parent/dhfs-fs/src/main/resources/application.properties +++ /dev/null @@ -1,34 +0,0 @@ -quarkus.grpc.server.use-separate-server=false -dhfs.objects.peerdiscovery.port=42069 -dhfs.objects.peerdiscovery.interval=4s -dhfs.objects.peerdiscovery.broadcast=true -dhfs.objects.sync.timeout=30 -dhfs.objects.sync.ping.timeout=5 -dhfs.objects.invalidation.threads=16 -dhfs.objects.invalidation.delay=1000 -dhfs.objects.reconnect_interval=5s -dhfs.objects.write_log=false -dhfs.objects.periodic-push-op-interval=5m -dhfs.fuse.root=${HOME}/dhfs_default/fuse -dhfs.objects.persistence.stuff.root=${HOME}/dhfs_default/data/stuff -dhfs.fuse.debug=false -dhfs.fuse.enabled=true -dhfs.files.allow_recursive_delete=false -dhfs.files.target_chunk_size=2097152 -dhfs.files.target_chunk_alignment=19 -dhfs.objects.deletion.delay=1000 -dhfs.objects.deletion.can-delete-retry-delay=10000 -dhfs.objects.ref_verification=true -dhfs.files.use_hash_for_chunks=false -dhfs.objects.autosync.threads=16 -dhfs.objects.autosync.download-all=false -dhfs.objects.move-processor.threads=16 -dhfs.objects.ref-processor.threads=16 -dhfs.objects.opsender.batch-size=100 -dhfs.objects.lock_timeout_secs=2 -dhfs.local-discovery=true -dhfs.peerdiscovery.timeout=10000 -quarkus.log.category."com.usatiuk".min-level=TRACE -quarkus.log.category."com.usatiuk".level=TRACE -quarkus.http.insecure-requests=enabled -quarkus.http.ssl.client-auth=required diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTest.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTest.java deleted file mode 100644 index 4b5c415f..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.dhfsfs; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; - -@QuarkusTest -@TestProfile(Profiles.DhfsFileServiceSimpleTestProfile.class) -public class DhfsFileServiceSimpleTest extends DhfsFileServiceSimpleTestImpl { -} diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java deleted file mode 100644 index 9b16b124..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java +++ /dev/null @@ -1,302 +0,0 @@ -package com.usatiuk.dhfsfs; - -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.dhfsfs.objects.File; -import com.usatiuk.dhfsfs.service.DhfsFileService; -import com.usatiuk.kleppmanntree.AlreadyExistsException; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import jakarta.inject.Inject; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.RepeatedTest; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -class Profiles { - public static class DhfsFileServiceSimpleTestProfile extends TempDataProfile { - @Override - protected void getConfigOverrides(Map ret) { - ret.put("dhfs.fuse.enabled", "false"); - } - } - - public static class DhfsFileServiceSimpleTestProfileNoChunking extends TempDataProfile { - @Override - protected void getConfigOverrides(Map ret) { - ret.put("dhfs.fuse.enabled", "false"); - ret.put("dhfs.files.target_chunk_size", "-1"); - ret.put("dhfs.files.target_chunk_alignment", "-1"); - } - } - - public static class DhfsFileServiceSimpleTestProfileSmallChunking extends TempDataProfile { - @Override - protected void getConfigOverrides(Map ret) { - ret.put("dhfs.fuse.enabled", "false"); - ret.put("dhfs.files.target_chunk_size", "3"); - ret.put("dhfs.files.target_chunk_alignment", "2"); - } - } -} - -public abstract class DhfsFileServiceSimpleTestImpl { - @Inject - DhfsFileService fileService; - @Inject - Transaction curTx; - @Inject - TransactionManager jObjectTxManager; - @Inject - RemoteTransaction remoteTx; - -// @Test -// void readTest() { -// var fuuid = UUID.randomUUID(); -// { -// ChunkData c1 = new ChunkData(ByteString.copyFrom("12345".getBytes())); -// ChunkData c2 = new ChunkData(ByteString.copyFrom("678".getBytes())); -// ChunkData c3 = new ChunkData(ByteString.copyFrom("91011".getBytes())); -// File f = new File(fuuid, 777, false); -// f.chunks().put(0L, c1.getName()); -// f.chunks().put((long) c1.getBytes().size(), c2.getName()); -// f.chunks().put((long) c1.getBytes().size() + c2.getBytes().size(), c3.getName()); -// -// // FIXME: dhfs_files -// -// var c1o = new AtomicReference(); -// var c2o = new AtomicReference(); -// var c3o = new AtomicReference(); -// var fo = new AtomicReference(); -// -// jObjectTxManager.executeTx(() -> { -// c1o.set(curTx.put(c1, Optional.of(f.getName())).getMeta().getName()); -// c2o.set(curTx.put(c2, Optional.of(f.getName())).getMeta().getName()); -// c3o.set(curTx.put(c3, Optional.of(f.getName())).getMeta().getName()); -// fo.set(curTx.put(f, Optional.empty()).getMeta().getName()); -// }); -// -// var all = jObjectManager.findAll(); -// Assertions.assertTrue(all.contains(c1o.get())); -// Assertions.assertTrue(all.contains(c2o.get())); -// Assertions.assertTrue(all.contains(c3o.get())); -// Assertions.assertTrue(all.contains(fo.get())); -// } -// -// String all = "1234567891011"; -// -// { -// for (int start = 0; start < all.length(); start++) { -// for (int end = start; end <= all.length(); end++) { -// var read = fileService.read(fuuid.toString(), start, end - start); -// Assertions.assertArrayEquals(all.substring(start, end).getBytes(), read.toByteArray()); -// } -// } -// } -// } - - @RepeatedTest(100) - void dontMkdirTwiceTest() { - Assertions.assertDoesNotThrow(() -> fileService.mkdir("/dontMkdirTwiceTest", 777)); - Assertions.assertThrows(AlreadyExistsException.class, () -> fileService.mkdir("/dontMkdirTwiceTest", 777)); - fileService.unlink("/dontMkdirTwiceTest"); - Assertions.assertFalse(fileService.open("/dontMkdirTwiceTest").isPresent()); - } - - @RepeatedTest(100) - void writeTest() { - var ret = fileService.create("/writeTest", 777); - Assertions.assertTrue(ret.isPresent()); - - var uuid = ret.get(); - - var curMtime = fileService.getattr(uuid).get().mtime(); - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - Assertions.assertArrayEquals(new byte[]{2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 2, 8).toByteArray()); - fileService.write(uuid, 4, new byte[]{10, 11, 12}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 12, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - fileService.write(uuid, 10, new byte[]{13, 14}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 12, 7, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).toByteArray()); - fileService.write(uuid, 6, new byte[]{15, 16}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 15, 16, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).toByteArray()); - fileService.write(uuid, 3, new byte[]{17, 18}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 17, 18, 11, 15, 16, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).toByteArray()); - - var newMtime = fileService.getattr(uuid).get().mtime(); - Assertions.assertTrue(newMtime > curMtime); - - fileService.unlink("/writeTest"); - Assertions.assertFalse(fileService.open("/writeTest").isPresent()); - } - - @Test - void removeTest() { - var ret = fileService.create("/removeTest", 777); - Assertions.assertTrue(ret.isPresent()); - - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - - fileService.unlink("/removeTest"); - Assertions.assertFalse(fileService.open("/removeTest").isPresent()); - } - - @Test - void truncateTest1() { - var ret = fileService.create("/truncateTest1", 777); - Assertions.assertTrue(ret.isPresent()); - - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - - fileService.truncate(uuid, 20); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).toByteArray()); - fileService.write(uuid, 5, new byte[]{10, 11, 12, 13, 14, 15, 16, 17}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).toByteArray()); - } - - @RepeatedTest(100) - void truncateTest2() { - var ret = fileService.create("/truncateTest2", 777); - try { - Assertions.assertTrue(ret.isPresent()); - - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - - fileService.truncate(uuid, 20); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).toByteArray()); - fileService.write(uuid, 10, new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 20}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, fileService.read(uuid, 0, 20).toByteArray()); - } finally { - fileService.unlink("/truncateTest2"); - } - } - - @Test - void truncateTest3() { - var ret = fileService.create("/truncateTest3", 777); - Assertions.assertTrue(ret.isPresent()); - - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - - fileService.truncate(uuid, 7); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6,}, fileService.read(uuid, 0, 20).toByteArray()); - } - - @Test - void moveTest() { - var ret = fileService.create("/moveTest", 777); - Assertions.assertTrue(ret.isPresent()); - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - - Assertions.assertTrue(fileService.rename("/moveTest", "/movedTest")); - Assertions.assertFalse(fileService.open("/moveTest").isPresent()); - Assertions.assertTrue(fileService.open("/movedTest").isPresent()); - - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, - fileService.read(fileService.open("/movedTest").get(), 0, 10).toByteArray()); - } - - @Test - void moveOverTest() throws InterruptedException { - var ret = fileService.create("/moveOverTest1", 777); - Assertions.assertTrue(ret.isPresent()); - var uuid = ret.get(); - var ret2 = fileService.create("/moveOverTest2", 777); - Assertions.assertTrue(ret2.isPresent()); - var uuid2 = ret2.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - fileService.write(uuid2, 0, new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 29}); - Assertions.assertArrayEquals(new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 29}, fileService.read(uuid2, 0, 10).toByteArray()); - - - jObjectTxManager.run(() -> { - var oldfile = remoteTx.getData(File.class, ret2.get()).orElseThrow(IllegalStateException::new); -// var chunk = oldfile.chunks().get(0L); -// var chunkObj = remoteTx.getData(ChunkData.class, chunk).orElseThrow(IllegalStateException::new); - }); - - Assertions.assertTrue(fileService.rename("/moveOverTest1", "/moveOverTest2")); - Assertions.assertFalse(fileService.open("/moveOverTest1").isPresent()); - Assertions.assertTrue(fileService.open("/moveOverTest2").isPresent()); - - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, - fileService.read(fileService.open("/moveOverTest2").get(), 0, 10).toByteArray()); - -// await().atMost(5, TimeUnit.SECONDS).until(() -> { -// jObjectTxManager.run(() -> { -// -// return chunkObj.runReadLocked(JObjectManager.ResolutionStrategy.LOCAL_ONLY, -// (m, d) -> !m.getReferrers().contains(uuid)); -// }); -// }); - } - - @Test - void readOverSizeTest() { - var ret = fileService.create("/readOverSizeTest", 777); - Assertions.assertTrue(ret.isPresent()); - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - Assertions.assertArrayEquals(new byte[]{}, fileService.read(uuid, 20, 10).toByteArray()); - } - - @Test - void writeOverSizeTest() { - var ret = fileService.create("/writeOverSizeTest", 777); - Assertions.assertTrue(ret.isPresent()); - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - fileService.write(uuid, 20, new byte[]{10, 11, 12, 13, 14, 15, 16, 17, 18, 19}); - Assertions.assertArrayEquals(new byte[]{ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 - }, fileService.read(uuid, 0, 30).toByteArray()); - } - - @Test - void moveTest2() throws InterruptedException { - var ret = fileService.create("/moveTest2", 777); - Assertions.assertTrue(ret.isPresent()); - var uuid = ret.get(); - - fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray()); - -// var oldfile = jObjectManager.get(uuid).orElseThrow(IllegalStateException::new); -// var chunk = oldfile.runReadLocked(JObjectManager.ResolutionStrategy.LOCAL_ONLY, (m, d) -> d.extractRefs()).stream().toList().get(0); -// var chunkObj = jObjectManager.get(chunk).orElseThrow(IllegalStateException::new); -// -// chunkObj.runReadLockedVoid(JObjectManager.ResolutionStrategy.LOCAL_ONLY, (m, d) -> { -// Assertions.assertTrue(m.getReferrers().contains(uuid)); -// }); - - Assertions.assertTrue(fileService.rename("/moveTest2", "/movedTest2")); - Assertions.assertFalse(fileService.open("/moveTest2").isPresent()); - Assertions.assertTrue(fileService.open("/movedTest2").isPresent()); - - Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, - fileService.read(fileService.open("/movedTest2").get(), 0, 10).toByteArray()); - } -} diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestNoChunkingTest.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestNoChunkingTest.java deleted file mode 100644 index cce7267c..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestNoChunkingTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.dhfsfs; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; - -@QuarkusTest -@TestProfile(Profiles.DhfsFileServiceSimpleTestProfileNoChunking.class) -public class DhfsFileServiceSimpleTestNoChunkingTest extends DhfsFileServiceSimpleTestImpl { -} diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestSmallChunkingTest.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestSmallChunkingTest.java deleted file mode 100644 index 96f78012..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestSmallChunkingTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.dhfsfs; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; - -@QuarkusTest -@TestProfile(Profiles.DhfsFileServiceSimpleTestProfileSmallChunking.class) -public class DhfsFileServiceSimpleTestSmallChunkingTest extends DhfsFileServiceSimpleTestImpl { -} diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TempDataProfile.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TempDataProfile.java deleted file mode 100644 index 4adad4b4..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TempDataProfile.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.usatiuk.dhfsfs; - -import io.quarkus.test.junit.QuarkusTestProfile; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Map; - -abstract public class TempDataProfile implements QuarkusTestProfile { - protected void getConfigOverrides(Map toPut) { - } - - @Override - final public Map getConfigOverrides() { - Path tempDirWithPrefix; - try { - tempDirWithPrefix = Files.createTempDirectory("dhfs-test"); - } catch (IOException e) { - throw new RuntimeException(e); - } - var ret = new HashMap(); - ret.put("dhfs.objects.persistence.files.root", tempDirWithPrefix.resolve("dhfs_root_test").toString()); - ret.put("dhfs.fuse.root", tempDirWithPrefix.resolve("dhfs_fuse_root_test").toString()); - getConfigOverrides(ret); - return ret; - } -} diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TestDataCleaner.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TestDataCleaner.java deleted file mode 100644 index f217b715..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/TestDataCleaner.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.usatiuk.dhfsfs; - -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; -import java.util.Objects; - -@ApplicationScoped -public class TestDataCleaner { - @ConfigProperty(name = "dhfs.objects.persistence.files.root") - String tempDirectory; - - void init(@Observes @Priority(1) StartupEvent event) throws IOException { - try { - purgeDirectory(Path.of(tempDirectory).toFile()); - } catch (Exception ignored) { - Log.warn("Couldn't cleanup test data on init"); - } - } - - void shutdown(@Observes @Priority(1000000000) ShutdownEvent event) throws IOException { - purgeDirectory(Path.of(tempDirectory).toFile()); - } - - public void purgeDirectory(File dir) { - for (File file : Objects.requireNonNull(dir.listFiles())) { - if (file.isDirectory()) - purgeDirectory(file); - file.delete(); - } - } -} diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/Benchmarker.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/Benchmarker.java deleted file mode 100644 index 75a6c903..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/Benchmarker.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.usatiuk.dhfsfs.benchmarks; - -import io.quarkus.logging.Log; -import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics; - -import java.util.Arrays; -import java.util.function.Supplier; - -public class Benchmarker { - static long[] runLatency(Supplier fn, int iterations) { - var out = new long[iterations]; - - int hash = 1; - - for (int i = 0; i < iterations; i++) { - long startNanos = System.nanoTime(); - var cur = fn.get(); - long stopNanos = System.nanoTime(); - out[i] = stopNanos - startNanos; - hash = hash * 31 + cur.hashCode(); - } - - System.out.println("\nHash: " + hash); - - return out; - } - - static long[] runThroughput(Supplier fn, int iterations, long iterationTime) { - var out = new long[iterations]; - - int hash = 1; - - for (int i = 0; i < iterations; i++) { - long startMillis = System.currentTimeMillis(); - long count = 0; - // FIXME: That's probably janky - while (System.currentTimeMillis() - startMillis < iterationTime) { - var res = fn.get(); - count++; - hash = hash * 31 + res.hashCode(); - } - System.out.println("Ran iteration " + i + "/" + iterations + " count=" + count); - out[i] = count; - } - - System.out.println("\nHash: " + hash); - - return out; - } - - static void printStats(double[] data, String unit) { - DescriptiveStatistics stats = new DescriptiveStatistics(); - for (var r : data) { - stats.addValue(r); - } - Log.info("\n" + stats + - "\n 50%: " + stats.getPercentile(50) + " " + unit + - "\n 90%: " + stats.getPercentile(90) + " " + unit + - "\n 95%: " + stats.getPercentile(95) + " " + unit + - "\n 99%: " + stats.getPercentile(99) + " " + unit + - "\n 99.9%: " + stats.getPercentile(99.9) + " " + unit + - "\n 99.99%: " + stats.getPercentile(99.99) + " " + unit - ); - - } - - static void runAndPrintMixSimple(String name, Supplier fn, int latencyIterations, int thrptIterations, int thrptIterationTime, int warmupIterations, int warmupIterationTime) { - System.out.println("\n=========\n" + "Running " + name + "\n=========\n"); - System.out.println("==Warmup=="); - runThroughput(fn, warmupIterations, warmupIterationTime); - System.out.println("==Warmup done=="); - System.out.println("==Throughput=="); - var thrpt = runThroughput(fn, thrptIterations, thrptIterationTime); - printStats(Arrays.stream(thrpt).mapToDouble(o -> (double) o / 1000).toArray(), "ops/s"); - System.out.println("==Throughput done=="); - System.out.println("==Latency=="); - var lat = runLatency(fn, latencyIterations); - printStats(Arrays.stream(lat).mapToDouble(o -> (double) o).toArray(), "ns/op"); - System.out.println("==Latency done=="); - System.out.println("\n=========\n" + name + " done" + "\n=========\n"); - } - -} diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/DhfsFileBenchmarkTest.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/DhfsFileBenchmarkTest.java deleted file mode 100644 index 17e979f1..00000000 --- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/benchmarks/DhfsFileBenchmarkTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.usatiuk.dhfsfs.benchmarks; - -import com.google.protobuf.UnsafeByteOperations; -import com.usatiuk.dhfsfs.TempDataProfile; -import com.usatiuk.dhfsfs.service.DhfsFileService; -import com.usatiuk.objects.JObjectKey; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; -import jakarta.inject.Inject; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -import java.nio.ByteBuffer; -import java.util.Map; - -class Profiles { - public static class DhfsFuseTestProfile extends TempDataProfile { - @Override - protected void getConfigOverrides(Map ret) { - ret.put("quarkus.log.category.\"com.usatiuk.dhfs\".level", "INFO"); - ret.put("dhfs.fuse.enabled", "false"); - ret.put("dhfs.objects.ref_verification", "false"); - } - } -} - -@QuarkusTest -@TestProfile(Profiles.DhfsFuseTestProfile.class) -public class DhfsFileBenchmarkTest { - @Inject - DhfsFileService dhfsFileService; - - @Test - @Disabled - void openRootTest() { - Benchmarker.runAndPrintMixSimple("dhfsFileService.open(\"\")", - () -> { - return dhfsFileService.open(""); - }, 1_000_000, 5, 1000, 5, 1000); - } - - @Test - @Disabled - void writeMbTest() { - JObjectKey file = dhfsFileService.create("/writeMbTest", 0777).get(); - var bb = ByteBuffer.allocateDirect(1024 * 1024); - Benchmarker.runAndPrintMixSimple("dhfsFileService.write(\"\")", - () -> { - var thing = UnsafeByteOperations.unsafeWrap(bb); - return dhfsFileService.write(file, dhfsFileService.size(file), thing); - }, 1_000, 10, 100, 1, 100); - } -} diff --git a/dhfs-parent/dhfs-fs/src/test/resources/application.properties b/dhfs-parent/dhfs-fs/src/test/resources/application.properties deleted file mode 100644 index 629cf9e5..00000000 --- a/dhfs-parent/dhfs-fs/src/test/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -dhfs.objects.persistence.files.root=${HOME}/dhfs_data/dhfs_root_test -dhfs.objects.root=${HOME}/dhfs_data/dhfs_root_d_test -dhfs.fuse.root=${HOME}/dhfs_data/dhfs_fuse_root_test -dhfs.objects.ref_verification=true -dhfs.objects.deletion.delay=0 -quarkus.log.category."com.usatiuk.dhfs".level=TRACE -quarkus.log.category."com.usatiuk.dhfs".min-level=TRACE -quarkus.http.test-port=0 -quarkus.http.test-ssl-port=0 -dhfs.local-discovery=false -dhfs.objects.persistence.snapshot-extra-checks=true \ No newline at end of file diff --git a/dhfs-parent/dhfs-fuse/.dockerignore b/dhfs-parent/dhfs-fuse/.dockerignore deleted file mode 100644 index 94810d00..00000000 --- a/dhfs-parent/dhfs-fuse/.dockerignore +++ /dev/null @@ -1,5 +0,0 @@ -* -!target/*-runner -!target/*-runner.jar -!target/lib/* -!target/quarkus-app/* \ No newline at end of file diff --git a/dhfs-parent/dhfs-fuse/.gitignore b/dhfs-parent/dhfs-fuse/.gitignore deleted file mode 100644 index 8c7863e7..00000000 --- a/dhfs-parent/dhfs-fuse/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -#Maven -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -release.properties -.flattened-pom.xml - -# Eclipse -.project -.classpath -.settings/ -bin/ - -# IntelliJ -.idea -*.ipr -*.iml -*.iws - -# NetBeans -nb-configuration.xml - -# Visual Studio Code -.vscode -.factorypath - -# OSX -.DS_Store - -# Vim -*.swp -*.swo - -# patch -*.orig -*.rej - -# Local environment -.env - -# Plugin directory -/.quarkus/cli/plugins/ diff --git a/dhfs-parent/dhfs-fuse/Dockerfile b/dhfs-parent/dhfs-fuse/Dockerfile deleted file mode 100644 index 62bace54..00000000 --- a/dhfs-parent/dhfs-fuse/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM azul/zulu-openjdk-debian:21-jre-latest -RUN apt update && apt install -y libfuse2 curl \ No newline at end of file diff --git a/dhfs-parent/dhfs-fuse/docker-compose.yml b/dhfs-parent/dhfs-fuse/docker-compose.yml deleted file mode 100644 index c45708ba..00000000 --- a/dhfs-parent/dhfs-fuse/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -version: "3.2" - -services: - dhfs1: - build: . - privileged: true - devices: - - /dev/fuse - volumes: - - $HOME/dhfs/dhfs1:/dhfs_root - - $HOME/dhfs/dhfs1_f:/dhfs_root/fuse:rshared - - ./target/quarkus-app:/app - command: "java --add-exports java.base/sun.nio.ch=ALL-UNNAMED - -Ddhfs.objects.persistence.files.root=/dhfs_root/p - -Ddhfs.objects.root=/dhfs_root/d - -Ddhfs.fuse.root=/dhfs_root/fuse -Dquarkus.http.host=0.0.0.0 - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 - -jar /app/quarkus-run.jar" - ports: - - 8080:8080 - - 8081:8443 - - 5005:5005 - dhfs2: - build: . - privileged: true - devices: - - /dev/fuse - volumes: - - $HOME/dhfs/dhfs2:/dhfs_root - - $HOME/dhfs/dhfs2_f:/dhfs_root/fuse:rshared - - ./target/quarkus-app:/app - command: "java --add-exports java.base/sun.nio.ch=ALL-UNNAMED - --add-exports java.base/jdk.internal.access=ALL-UNNAMED - --add-opens=java.base/java.nio=ALL-UNNAMED - -Ddhfs.objects.persistence.files.root=/dhfs_root/p - -Ddhfs.objects.root=/dhfs_root/d - -Ddhfs.fuse.root=/dhfs_root/fuse -Dquarkus.http.host=0.0.0.0 - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5010 - -jar /app/quarkus-run.jar" - ports: - - 8090:8080 - - 8091:8443 - - 5010:5010 diff --git a/dhfs-parent/dhfs-fuse/pom.xml b/dhfs-parent/dhfs-fuse/pom.xml deleted file mode 100644 index 08609b9d..00000000 --- a/dhfs-parent/dhfs-fuse/pom.xml +++ /dev/null @@ -1,172 +0,0 @@ - - - 4.0.0 - com.usatiuk.dhfs - dhfs-fuse - 1.0-SNAPSHOT - - - com.usatiuk.dhfs - parent - 1.0-SNAPSHOT - - - - - org.testcontainers - testcontainers - test - - - org.awaitility - awaitility - test - - - org.bouncycastle - bcprov-jdk18on - - - org.bouncycastle - bcpkix-jdk18on - - - io.quarkus - quarkus-security - - - net.openhft - zero-allocation-hashing - - - io.quarkus - quarkus-grpc - - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-rest - - - io.quarkus - quarkus-rest-client - - - io.quarkus - quarkus-rest-client-jsonb - - - io.quarkus - quarkus-rest-jsonb - - - io.quarkus - quarkus-scheduler - - - io.quarkus - quarkus-junit5 - test - - - com.github.serceman - jnr-fuse - 0.5.8 - - - org.apache.commons - commons-lang3 - - - commons-io - commons-io - - - org.jboss.slf4j - slf4j-jboss-logmanager - test - - - commons-codec - commons-codec - - - org.apache.commons - commons-collections4 - - - org.pcollections - pcollections - - - org.apache.commons - commons-math3 - 3.6.1 - - - com.usatiuk.dhfs - dhfs-fs - 1.0-SNAPSHOT - - - com.usatiuk.dhfs - utils - 1.0-SNAPSHOT - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 1C - false - classes - - - false - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - 0.5C - false - classes - - - false - - true - true - - - - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - quarkus-plugin - - build - generate-code - generate-code-tests - - - - - - - diff --git a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.jvm b/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.jvm deleted file mode 100644 index b1de5988..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.jvm +++ /dev/null @@ -1,97 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode -# -# Before building the container image run: -# -# ./mvnw package -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/server-jvm . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server-jvm -# -# If you want to include the debug port into your docker image -# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. -# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 -# when running the container -# -# Then run the container using : -# -# docker run -i --rm -p 8080:8080 quarkus/server-jvm -# -# This image uses the `run-java.sh` script to run the application. -# This scripts computes the command line to execute your Java application, and -# includes memory/GC tuning. -# You can configure the behavior using the following environment properties: -# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") -# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options -# in JAVA_OPTS (example: "-Dsome.property=foo") -# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is -# used to calculate a default maximal heap memory based on a containers restriction. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio -# of the container available memory as set here. The default is `50` which means 50% -# of the available memory is used as an upper boundary. You can skip this mechanism by -# setting this value to `0` in which case no `-Xmx` option is added. -# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This -# is used to calculate a default initial heap memory based on the maximum heap memory. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio -# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` -# is used as the initial heap size. You can skip this mechanism by setting this value -# to `0` in which case no `-Xms` option is added (example: "25") -# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. -# This is used to calculate the maximum value of the initial heap memory. If used in -# a container without any memory constraints for the container then this option has -# no effect. If there is a memory constraint then `-Xms` is limited to the value set -# here. The default is 4096MB which means the calculated value of `-Xms` never will -# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") -# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output -# when things are happening. This option, if set to true, will set -# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). -# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: -# true"). -# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). -# - CONTAINER_CORE_LIMIT: A calculated core limit as described in -# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") -# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). -# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. -# (example: "20") -# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. -# (example: "40") -# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. -# (example: "4") -# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus -# previous GC times. (example: "90") -# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") -# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") -# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should -# contain the necessary JRE command-line options to specify the required GC, which -# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). -# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") -# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") -# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be -# accessed directly. (example: "foo.example.com,bar.example.com") -# -### -FROM registry.access.redhat.com/ubi8/openjdk-21:1.18 - -ENV LANGUAGE='en_US:en' - - -# We make four distinct layers so if there are application changes the library layers can be re-used -COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ -COPY --chown=185 target/quarkus-app/*.jar /deployments/ -COPY --chown=185 target/quarkus-app/app/ /deployments/app/ -COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/ - -EXPOSE 8080 -USER 185 -ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" - -ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] - diff --git a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.legacy-jar b/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.legacy-jar deleted file mode 100644 index f66a1665..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.legacy-jar +++ /dev/null @@ -1,93 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode -# -# Before building the container image run: -# -# ./mvnw package -Dquarkus.package.jar.type=legacy-jar -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/server-legacy-jar . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server-legacy-jar -# -# If you want to include the debug port into your docker image -# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. -# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 -# when running the container -# -# Then run the container using : -# -# docker run -i --rm -p 8080:8080 quarkus/server-legacy-jar -# -# This image uses the `run-java.sh` script to run the application. -# This scripts computes the command line to execute your Java application, and -# includes memory/GC tuning. -# You can configure the behavior using the following environment properties: -# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") -# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options -# in JAVA_OPTS (example: "-Dsome.property=foo") -# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is -# used to calculate a default maximal heap memory based on a containers restriction. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio -# of the container available memory as set here. The default is `50` which means 50% -# of the available memory is used as an upper boundary. You can skip this mechanism by -# setting this value to `0` in which case no `-Xmx` option is added. -# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This -# is used to calculate a default initial heap memory based on the maximum heap memory. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio -# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` -# is used as the initial heap size. You can skip this mechanism by setting this value -# to `0` in which case no `-Xms` option is added (example: "25") -# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. -# This is used to calculate the maximum value of the initial heap memory. If used in -# a container without any memory constraints for the container then this option has -# no effect. If there is a memory constraint then `-Xms` is limited to the value set -# here. The default is 4096MB which means the calculated value of `-Xms` never will -# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") -# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output -# when things are happening. This option, if set to true, will set -# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). -# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: -# true"). -# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). -# - CONTAINER_CORE_LIMIT: A calculated core limit as described in -# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") -# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). -# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. -# (example: "20") -# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. -# (example: "40") -# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. -# (example: "4") -# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus -# previous GC times. (example: "90") -# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") -# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") -# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should -# contain the necessary JRE command-line options to specify the required GC, which -# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). -# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") -# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") -# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be -# accessed directly. (example: "foo.example.com,bar.example.com") -# -### -FROM registry.access.redhat.com/ubi8/openjdk-21:1.18 - -ENV LANGUAGE='en_US:en' - - -COPY target/lib/* /deployments/lib/ -COPY target/*-runner.jar /deployments/quarkus-run.jar - -EXPOSE 8080 -USER 185 -ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" - -ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] diff --git a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native b/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native deleted file mode 100644 index 226e7c71..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native +++ /dev/null @@ -1,27 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. -# -# Before building the container image run: -# -# ./mvnw package -Dnative -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.native -t quarkus/server . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server -# -### -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.9 -WORKDIR /work/ -RUN chown 1001 /work \ - && chmod "g+rwX" /work \ - && chown 1001:root /work -COPY --chown=1001:root target/*-runner /work/application - -EXPOSE 8080 -USER 1001 - -ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] diff --git a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native-micro b/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native-micro deleted file mode 100644 index 4bd4c6de..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/docker/Dockerfile.native-micro +++ /dev/null @@ -1,30 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. -# It uses a micro base image, tuned for Quarkus native executables. -# It reduces the size of the resulting container image. -# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image. -# -# Before building the container image run: -# -# ./mvnw package -Dnative -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/server . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server -# -### -FROM quay.io/quarkus/quarkus-micro-image:2.0 -WORKDIR /work/ -RUN chown 1001 /work \ - && chmod "g+rwX" /work \ - && chown 1001:root /work -COPY --chown=1001:root target/*-runner /work/application - -EXPOSE 8080 -USER 1001 - -ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] diff --git a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java b/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java deleted file mode 100644 index 69e56b00..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java +++ /dev/null @@ -1,453 +0,0 @@ -package com.usatiuk.dhfsfuse; - -import com.google.protobuf.UnsafeByteOperations; -import com.kenai.jffi.MemoryIO; -import com.sun.security.auth.module.UnixSystem; -import com.usatiuk.dhfsfs.service.DhfsFileService; -import com.usatiuk.dhfsfs.service.DirectoryNotEmptyException; -import com.usatiuk.dhfsfs.service.GetattrRes; -import com.usatiuk.kleppmanntree.AlreadyExistsException; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.utils.UninitializedByteBuffer; -import com.usatiuk.utils.UnsafeAccessor; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import jnr.ffi.Pointer; -import jnr.ffi.Runtime; -import jnr.ffi.Struct; -import jnr.ffi.types.off_t; -import org.apache.commons.lang3.SystemUtils; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import ru.serce.jnrfuse.ErrorCodes; -import ru.serce.jnrfuse.FuseFillDir; -import ru.serce.jnrfuse.FuseStubFS; -import ru.serce.jnrfuse.struct.*; - -import java.nio.ByteBuffer; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; - -import static jnr.posix.FileStat.*; - -@ApplicationScoped -public class DhfsFuse extends FuseStubFS { - private static final int blksize = 1048576; - private static final int iosize = 1048576; - private final ConcurrentHashMap _openHandles = new ConcurrentHashMap<>(); - private final AtomicLong _fh = new AtomicLong(1); - @ConfigProperty(name = "dhfs.fuse.root") - String root; - @ConfigProperty(name = "dhfs.fuse.enabled") - boolean enabled; - @ConfigProperty(name = "dhfs.fuse.debug") - Boolean debug; - @ConfigProperty(name = "dhfs.files.target_chunk_size") - int targetChunkSize; - @Inject - DhfsFileService fileService; - - private long allocateHandle(JObjectKey key) { - while (true) { - var newFh = _fh.getAndIncrement(); - if (newFh == 0) continue; - if (_openHandles.putIfAbsent(newFh, key) == null) { - return newFh; - } - } - } - - private JObjectKey getFromHandle(long handle) { - assert handle != 0; - return _openHandles.get(handle); - } - - void init(@Observes @Priority(100000) StartupEvent event) { - if (!enabled) return; - - Log.info("Mounting with root " + root); - var opts = new ArrayList(); - - if (SystemUtils.IS_OS_WINDOWS) { - opts.add("-o"); - opts.add("auto_cache"); - opts.add("-o"); - opts.add("uid=-1"); - opts.add("-o"); - opts.add("gid=-1"); - } else { - Paths.get(root).toFile().mkdirs(); - - if (!Paths.get(root).toFile().isDirectory()) - throw new IllegalStateException("Could not create directory " + root); - - var uid = new UnixSystem().getUid(); - var gid = new UnixSystem().getGid(); - - // Assuming macFuse - if (SystemUtils.IS_OS_MAC) { - opts.add("-o"); - opts.add("iosize=" + iosize); - } else if (SystemUtils.IS_OS_LINUX) { - // FIXME: There's something else missing: the writes still seem to be 32k max -// opts.add("-o"); -// opts.add("large_read"); - opts.add("-o"); - opts.add("big_writes"); - opts.add("-o"); - opts.add("max_read=" + iosize); - opts.add("-o"); - opts.add("max_write=" + iosize); - } - opts.add("-o"); - opts.add("auto_cache"); - opts.add("-o"); - opts.add("uid=" + uid); - opts.add("-o"); - opts.add("gid=" + gid); - } - mount(Paths.get(root), false, debug, opts.toArray(String[]::new)); - } - - void shutdown(@Observes @Priority(1) ShutdownEvent event) { - if (!enabled) return; - Log.info("Unmounting"); - umount(); - Log.info("Unmounted"); - } - - @Override - public int statfs(String path, Statvfs stbuf) { - try { - stbuf.f_frsize.set(blksize); - stbuf.f_bsize.set(blksize); - // FIXME: - stbuf.f_blocks.set(1024 * 1024 * 1024 / blksize); // total data blocks in file system - stbuf.f_bfree.set(1024 * 1024 * 1024 / blksize); // free blocks in fs - stbuf.f_bavail.set(1024 * 1024 * 1024 / blksize); // avail blocks in fs - stbuf.f_files.set(1000); //FIXME: - stbuf.f_ffree.set(Integer.MAX_VALUE - 2000); //FIXME: - stbuf.f_favail.set(Integer.MAX_VALUE - 2000); //FIXME: - stbuf.f_namemax.set(2048); - return super.statfs(path, stbuf); - } catch (Throwable e) { - Log.error("When statfs " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int getattr(String path, FileStat stat) { - try { - var fileOpt = fileService.open(path); - if (fileOpt.isEmpty()) return -ErrorCodes.ENOENT(); - var uuid = fileOpt.get(); - Optional found = fileService.getattr(uuid); - if (found.isEmpty()) { - return -ErrorCodes.ENOENT(); - } - switch (found.get().type()) { - case FILE -> { - stat.st_mode.set(S_IFREG | found.get().mode()); - stat.st_nlink.set(1); - stat.st_size.set(fileService.size(uuid)); - } - case DIRECTORY -> { - stat.st_mode.set(S_IFDIR | found.get().mode()); - stat.st_nlink.set(2); - } - case SYMLINK -> { - stat.st_mode.set(S_IFLNK | 0777); - stat.st_nlink.set(1); - stat.st_size.set(fileService.size(uuid)); - } - } - - // FIXME: Race? - stat.st_ctim.tv_sec.set(found.get().ctime() / 1000); - stat.st_ctim.tv_nsec.set((found.get().ctime() % 1000) * 1000); - stat.st_mtim.tv_sec.set(found.get().mtime() / 1000); - stat.st_mtim.tv_nsec.set((found.get().mtime() % 1000) * 1000); - stat.st_atim.tv_sec.set(found.get().mtime() / 1000); - stat.st_atim.tv_nsec.set((found.get().mtime() % 1000) * 1000); - stat.st_blksize.set(blksize); - } catch (Throwable e) { - Log.error("When getattr " + path, e); - return -ErrorCodes.EIO(); - } - return 0; - } - - @Override - public int utimens(String path, Timespec[] timespec) { - try { - var fileOpt = fileService.open(path); - if (fileOpt.isEmpty()) return -ErrorCodes.ENOENT(); - var file = fileOpt.get(); - var res = fileService.setTimes(file, - timespec[0].tv_sec.get() * 1000, - timespec[1].tv_sec.get() * 1000); - if (!res) return -ErrorCodes.EINVAL(); - else return 0; - } catch (Throwable e) { - Log.error("When utimens " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int open(String path, FuseFileInfo fi) { - try { - var opened = fileService.open(path); - if (opened.isEmpty()) return -ErrorCodes.ENOENT(); - fi.fh.set(allocateHandle(opened.get())); - return 0; - } catch (Throwable e) { - Log.error("When open " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int release(String path, FuseFileInfo fi) { - assert fi.fh.get() != 0; - _openHandles.remove(fi.fh.get()); - return 0; - } - - @Override - public int read(String path, Pointer buf, long size, long offset, FuseFileInfo fi) { - if (size < 0) return -ErrorCodes.EINVAL(); - if (offset < 0) return -ErrorCodes.EINVAL(); - try { - var fileKey = getFromHandle(fi.fh.get()); - var read = fileService.read(fileKey, offset, (int) size); - if (read.isEmpty()) return 0; - UnsafeByteOperations.unsafeWriteTo(read, new JnrPtrByteOutput(buf, size)); - return read.size(); - } catch (Throwable e) { - Log.error("When reading " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int write(String path, Pointer buf, long size, long offset, FuseFileInfo fi) { - var buffer = UninitializedByteBuffer.allocate((int) size); - UnsafeAccessor.UNSAFE.copyMemory( - buf.address(), - UnsafeAccessor.NIO.getBufferAddress(buffer), - size - ); - return write(path, buffer, offset, fi); - } - - public int write(String path, ByteBuffer buffer, long offset, FuseFileInfo fi) { - if (offset < 0) return -ErrorCodes.EINVAL(); - try { - var fileKey = getFromHandle(fi.fh.get()); - var written = fileService.write(fileKey, offset, UnsafeByteOperations.unsafeWrap(buffer)); - return written.intValue(); - } catch (Exception e) { - Log.error("When writing " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int create(String path, long mode, FuseFileInfo fi) { - try { - var ret = fileService.create(path, mode); - if (ret.isEmpty()) return -ErrorCodes.ENOSPC(); - fi.fh.set(allocateHandle(ret.get())); - return 0; - } catch (Throwable e) { - Log.error("When creating " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int mkdir(String path, long mode) { - try { - fileService.mkdir(path, mode); - return 0; - } catch (AlreadyExistsException aex) { - return -ErrorCodes.EEXIST(); - } catch (Throwable e) { - Log.error("When creating dir " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int rmdir(String path) { - try { - fileService.unlink(path); - return 0; - } catch (DirectoryNotEmptyException ex) { - return -ErrorCodes.ENOTEMPTY(); - } catch (Throwable e) { - Log.error("When removing dir " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int rename(String path, String newName) { - try { - var ret = fileService.rename(path, newName); - if (!ret) return -ErrorCodes.ENOENT(); - else return 0; - } catch (Throwable e) { - Log.error("When renaming " + path, e); - return -ErrorCodes.EIO(); - } - - } - - @Override - public int unlink(String path) { - try { - fileService.unlink(path); - return 0; - } catch (Throwable e) { - Log.error("When unlinking " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int truncate(String path, long size) { - if (size < 0) return -ErrorCodes.EINVAL(); - try { - var fileOpt = fileService.open(path); - if (fileOpt.isEmpty()) return -ErrorCodes.ENOENT(); - var file = fileOpt.get(); - var ok = fileService.truncate(file, size); - if (ok) - return 0; - else - return -ErrorCodes.ENOSPC(); - } catch (Throwable e) { - Log.error("When truncating " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int chmod(String path, long mode) { - try { - var fileOpt = fileService.open(path); - if (fileOpt.isEmpty()) return -ErrorCodes.ENOENT(); - var ret = fileService.chmod(fileOpt.get(), mode); - if (ret) return 0; - else return -ErrorCodes.EINVAL(); - } catch (Throwable e) { - Log.error("When chmod " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int readdir(String path, Pointer buf, FuseFillDir filler, long offset, FuseFileInfo fi) { - try { - Iterable found; - try { - found = fileService.readDir(path); - } catch (StatusRuntimeException e) { - if (e.getStatus().getCode().equals(Status.NOT_FOUND.getCode())) - return -ErrorCodes.ENOENT(); - else throw e; - } - - filler.apply(buf, ".", null, 0); - filler.apply(buf, "..", null, 0); - - for (var c : found) { - filler.apply(buf, c, null, 0); - } - - return 0; - } catch (Throwable e) { - Log.error("When readdir " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int readlink(String path, Pointer buf, long size) { - if (size < 0) return -ErrorCodes.EINVAL(); - try { - var fileOpt = fileService.open(path); - if (fileOpt.isEmpty()) return -ErrorCodes.ENOENT(); - var file = fileOpt.get(); - var read = fileService.readlinkBS(fileOpt.get()); - if (read.isEmpty()) return 0; - UnsafeByteOperations.unsafeWriteTo(read, new JnrPtrByteOutput(buf, size)); - buf.putByte(Math.min(size - 1, read.size()), (byte) 0); - return 0; - } catch (Throwable e) { - Log.error("When reading " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int chown(String path, long uid, long gid) { - try { - var fileOpt = fileService.open(path); - if (fileOpt.isEmpty()) return -ErrorCodes.ENOENT(); - return 0; - } catch (Throwable e) { - Log.error("When chown " + path, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int symlink(String oldpath, String newpath) { - try { - var ret = fileService.symlink(oldpath, newpath); - if (ret == null) return -ErrorCodes.EEXIST(); - else return 0; - } catch (Throwable e) { - Log.error("When creating " + newpath, e); - return -ErrorCodes.EIO(); - } - } - - @Override - public int write_buf(String path, FuseBufvec buf, @off_t long off, FuseFileInfo fi) { - int size = (int) libFuse.fuse_buf_size(buf); - FuseBufvec tmpVec = new FuseBufvec(Runtime.getSystemRuntime()); - long tmpVecAddr = MemoryIO.getInstance().allocateMemory(Struct.size(tmpVec), false); - try { - tmpVec.useMemory(Pointer.wrap(Runtime.getSystemRuntime(), tmpVecAddr)); - FuseBufvec.init(tmpVec, size); - var bb = UninitializedByteBuffer.allocate(size); - var mem = UninitializedByteBuffer.getAddress(bb); - tmpVec.buf.mem.set(mem); - tmpVec.buf.size.set(size); - int res = (int) libFuse.fuse_buf_copy(tmpVec, buf, 0); - if (res != size) { - Log.errorv("fuse_buf_copy failed: {0} != {1}", res, size); - return -ErrorCodes.ENOMEM(); - } - return write(path, bb, off, fi); - } finally { - if (tmpVecAddr != 0) { - MemoryIO.getInstance().freeMemory(tmpVecAddr); - } - } - } -} diff --git a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/JnrPtrByteOutput.java b/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/JnrPtrByteOutput.java deleted file mode 100644 index c0ff09d6..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/JnrPtrByteOutput.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.usatiuk.dhfsfuse; - -import com.google.protobuf.ByteOutput; -import com.usatiuk.utils.UnsafeAccessor; -import jnr.ffi.Pointer; - -import java.nio.ByteBuffer; -import java.nio.MappedByteBuffer; - -public class JnrPtrByteOutput extends ByteOutput { - private final Pointer _backing; - private final long _size; - private long _pos; - - public JnrPtrByteOutput(Pointer backing, long size) { - _backing = backing; - _size = size; - _pos = 0; - } - - @Override - public void write(byte value) { - throw new UnsupportedOperationException(); - } - - @Override - public void write(byte[] value, int offset, int length) { - if (length + _pos > _size) throw new IndexOutOfBoundsException(); - _backing.put(_pos, value, offset, length); - _pos += length; - } - - @Override - public void writeLazy(byte[] value, int offset, int length) { - if (length + _pos > _size) throw new IndexOutOfBoundsException(); - _backing.put(_pos, value, offset, length); - _pos += length; - } - - @Override - public void write(ByteBuffer value) { - var rem = value.remaining(); - if (rem + _pos > _size) throw new IndexOutOfBoundsException(); - - if (value.isDirect()) { - if (value instanceof MappedByteBuffer mb) { - mb.load(); - } - long addr = UnsafeAccessor.NIO.getBufferAddress(value) + value.position(); - var out = _backing.address() + _pos; - UnsafeAccessor.UNSAFE.copyMemory(addr, out, rem); - } else { - _backing.put(_pos, value.array(), value.arrayOffset() + value.position(), rem); - } - - _pos += rem; - } - - @Override - public void writeLazy(ByteBuffer value) { - write(value); - } -} diff --git a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/Main.java b/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/Main.java deleted file mode 100644 index e2863bd7..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/Main.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.usatiuk.dhfsfuse; - -import io.quarkus.runtime.Quarkus; -import io.quarkus.runtime.QuarkusApplication; -import io.quarkus.runtime.annotations.QuarkusMain; - -@QuarkusMain -public class Main { - public static void main(String... args) { - Quarkus.run(DhfsStorageServerApp.class, args); - } - - public static class DhfsStorageServerApp implements QuarkusApplication { - - @Override - public int run(String... args) throws Exception { - Quarkus.waitForExit(); - return 0; - } - } -} \ No newline at end of file diff --git a/dhfs-parent/dhfs-fuse/src/main/resources/META-INF/beans.xml b/dhfs-parent/dhfs-fuse/src/main/resources/META-INF/beans.xml deleted file mode 100644 index e69de29b..00000000 diff --git a/dhfs-parent/dhfs-fuse/src/main/resources/application.properties b/dhfs-parent/dhfs-fuse/src/main/resources/application.properties deleted file mode 100644 index 750df34e..00000000 --- a/dhfs-parent/dhfs-fuse/src/main/resources/application.properties +++ /dev/null @@ -1,35 +0,0 @@ -quarkus.grpc.server.use-separate-server=false -dhfs.objects.peerdiscovery.port=42069 -dhfs.objects.peerdiscovery.interval=4s -dhfs.objects.peerdiscovery.broadcast=true -dhfs.objects.sync.timeout=30 -dhfs.objects.sync.ping.timeout=5 -dhfs.objects.invalidation.threads=16 -dhfs.objects.invalidation.delay=1000 -dhfs.objects.reconnect_interval=5s -dhfs.objects.write_log=false -dhfs.objects.periodic-push-op-interval=5m -dhfs.fuse.root=${HOME}/dhfs_default/fuse -dhfs.objects.persistence.stuff.root=${HOME}/dhfs_default/data/stuff -dhfs.fuse.debug=false -dhfs.fuse.enabled=true -dhfs.files.allow_recursive_delete=false -dhfs.files.target_chunk_size=524288 -dhfs.files.max_chunk_size=524288 -dhfs.files.target_chunk_alignment=17 -dhfs.objects.deletion.delay=1000 -dhfs.objects.deletion.can-delete-retry-delay=10000 -dhfs.objects.ref_verification=true -dhfs.files.use_hash_for_chunks=false -dhfs.objects.autosync.threads=16 -dhfs.objects.autosync.download-all=false -dhfs.objects.move-processor.threads=16 -dhfs.objects.ref-processor.threads=16 -dhfs.objects.opsender.batch-size=100 -dhfs.objects.lock_timeout_secs=2 -dhfs.local-discovery=true -dhfs.peerdiscovery.timeout=10000 -quarkus.log.category."com.usatiuk".min-level=TRACE -quarkus.log.category."com.usatiuk".level=TRACE -quarkus.http.insecure-requests=enabled -quarkus.http.ssl.client-auth=required diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/DhfsFuseTest.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/DhfsFuseTest.java deleted file mode 100644 index e78fa8e8..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/DhfsFuseTest.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.usatiuk.dhfsfuse; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; - -class Profiles { - public static class DhfsFuseTestProfile extends TempDataProfile { - } -} - -@QuarkusTest -@TestProfile(Profiles.DhfsFuseTestProfile.class) -public class DhfsFuseTest { - @ConfigProperty(name = "dhfs.fuse.root") - String root; - - @Test - void readWriteFileTest() throws IOException, InterruptedException { - byte[] testString = "test file thing".getBytes(); - Path testPath = Path.of(root).resolve("test1"); - - Assertions.assertDoesNotThrow(() -> Files.createFile(testPath)); - Assertions.assertDoesNotThrow(() -> Files.write(testPath, testString)); - Assertions.assertDoesNotThrow(() -> Files.readAllBytes(testPath)); - Assertions.assertArrayEquals(Files.readAllBytes(testPath), testString); - } - - @Test - void symlinkTest() throws IOException, InterruptedException { - byte[] testString = "symlinkedfile".getBytes(); - Path testPath = Path.of(root).resolve("symlinktarget"); - Path testSymlink = Path.of(root).resolve("symlinktest"); - - Assertions.assertDoesNotThrow(() -> Files.createFile(testPath)); - Assertions.assertDoesNotThrow(() -> Files.write(testPath, testString)); - Assertions.assertDoesNotThrow(() -> Files.readAllBytes(testPath)); - Assertions.assertArrayEquals(Files.readAllBytes(testPath), testString); - - Assertions.assertDoesNotThrow(() -> Files.createSymbolicLink(testSymlink, testPath)); - Assertions.assertTrue(() -> Files.isSymbolicLink(testSymlink)); - Assertions.assertEquals(testPath, Files.readSymbolicLink(testSymlink)); - Assertions.assertDoesNotThrow(() -> Files.readAllBytes(testSymlink)); - Assertions.assertArrayEquals(Files.readAllBytes(testSymlink), testString); - } - - @Test - void dontRemoveEmptyDirTest() throws IOException { - byte[] testString = "dontRemoveEmptyDirTestStr".getBytes(); - Path testDir = Path.of(root).resolve("dontRemoveEmptyDirTestDir"); - Path testFile = testDir.resolve("dontRemoveEmptyDirTestFile"); - - Assertions.assertDoesNotThrow(() -> Files.createDirectory(testDir)); - Assertions.assertDoesNotThrow(() -> Files.createFile(testFile)); - Assertions.assertDoesNotThrow(() -> Files.write(testFile, testString)); - Assertions.assertDoesNotThrow(() -> Files.readAllBytes(testFile)); - Assertions.assertArrayEquals(Files.readAllBytes(testFile), testString); - - Assertions.assertThrows(Exception.class, () -> Files.delete(testDir)); - Assertions.assertDoesNotThrow(() -> Files.readAllBytes(testFile)); - Assertions.assertArrayEquals(Files.readAllBytes(testFile), testString); - - Assertions.assertDoesNotThrow(() -> Files.delete(testFile)); - Assertions.assertDoesNotThrow(() -> Files.delete(testDir)); - Assertions.assertFalse(Files.exists(testDir)); - Assertions.assertFalse(Files.exists(testFile)); - Assertions.assertThrows(Exception.class, () -> Files.readAllBytes(testFile)); - } - -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TempDataProfile.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TempDataProfile.java deleted file mode 100644 index 7fdd99d3..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TempDataProfile.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.usatiuk.dhfsfuse; - -import io.quarkus.test.junit.QuarkusTestProfile; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Map; - -abstract public class TempDataProfile implements QuarkusTestProfile { - protected void getConfigOverrides(Map toPut) { - } - - @Override - final public Map getConfigOverrides() { - Path tempDirWithPrefix; - try { - tempDirWithPrefix = Files.createTempDirectory("dhfs-test"); - } catch (IOException e) { - throw new RuntimeException(e); - } - var ret = new HashMap(); - ret.put("dhfs.objects.persistence.files.root", tempDirWithPrefix.resolve("dhfs_root_test").toString()); - ret.put("dhfs.fuse.root", tempDirWithPrefix.resolve("dhfs_fuse_root_test").toString()); - getConfigOverrides(ret); - return ret; - } -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TestDataCleaner.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TestDataCleaner.java deleted file mode 100644 index aded54dc..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/TestDataCleaner.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.usatiuk.dhfsfuse; - -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; -import java.util.Objects; - -@ApplicationScoped -public class TestDataCleaner { - @ConfigProperty(name = "dhfs.objects.persistence.files.root") - String tempDirectory; - - void init(@Observes @Priority(1) StartupEvent event) throws IOException { - try { - purgeDirectory(Path.of(tempDirectory).toFile()); - } catch (Exception ignored) { - Log.warn("Couldn't cleanup test data on init"); - } - } - - void shutdown(@Observes @Priority(1000000000) ShutdownEvent event) throws IOException { - purgeDirectory(Path.of(tempDirectory).toFile()); - } - - public static void purgeDirectory(File dir) { - for (File file : Objects.requireNonNull(dir.listFiles())) { - if (file.isDirectory()) - purgeDirectory(file); - file.delete(); - } - } -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFuseIT.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFuseIT.java deleted file mode 100644 index ba121af0..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFuseIT.java +++ /dev/null @@ -1,469 +0,0 @@ -package com.usatiuk.dhfsfuse.integration; - -import com.github.dockerjava.api.model.Device; -import io.quarkus.logging.Log; -import org.apache.commons.lang3.tuple.Pair; -import org.junit.jupiter.api.*; -import org.slf4j.LoggerFactory; -import org.testcontainers.DockerClientFactory; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.output.Slf4jLogConsumer; -import org.testcontainers.containers.output.WaitingConsumer; -import org.testcontainers.containers.wait.strategy.Wait; - -import java.io.IOException; -import java.time.Duration; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.stream.Stream; - -import static org.awaitility.Awaitility.await; - -public class DhfsFuseIT { - GenericContainer container1; - GenericContainer container2; - - WaitingConsumer waitingConsumer1; - WaitingConsumer waitingConsumer2; - - String c1uuid; - String c2uuid; - - Network network; - - @BeforeEach - void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException { - network = Network.newNetwork(); - container1 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network); - container2 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network); - - Stream.of(container1, container2).parallel().forEach(GenericContainer::start); - - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFuseIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFuseIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - - c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - - Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid)); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - - var c1curl = container1.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - var c2curl = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - } - - private void checkConsistency() { - await().atMost(45, TimeUnit.SECONDS).until(() -> { - Log.info("Listing consistency"); - var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*/*"); - var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*/*"); - var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/*/*"); - var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/*/*"); - Log.info(ls1); - Log.info(cat1); - Log.info(ls2); - Log.info(cat2); - - return ls1.equals(ls2) && cat1.equals(cat2); - }); - } - - @AfterEach - void stop() { - Stream.of(container1, container2).parallel().forEach(GenericContainer::stop); - network.close(); - } - - @Test - void readWriteFileTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - } - - @Test - void readWriteRewriteFileTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - } - - @Test - void createDelayedTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - var client = DockerClientFactory.instance().client(); - client.pauseContainerCmd(container2.getContainerId()).exec(); - - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo newfile > /dhfs_test/fuse/testf2").getExitCode()); - - client.unpauseContainerCmd(container2.getContainerId()).exec(); - - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "newfile\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "newfile\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout())); - } - - @Test - void writeRewriteDelayedTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - var client = DockerClientFactory.instance().client(); - client.pauseContainerCmd(container2.getContainerId()).exec(); - - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode()); - - client.unpauseContainerCmd(container2.getContainerId()).exec(); - - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - await().atMost(45, TimeUnit.SECONDS).until(() -> - "rewritten\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - } - - @Test - void deleteTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - Log.info("Deleting"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode()); - Log.info("Deleted"); - - // FIXME? - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 3); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 3); - - await().atMost(45, TimeUnit.SECONDS).until(() -> - 1 == container2.execInContainer("/bin/sh", "-c", "test -f /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - 1 == container1.execInContainer("/bin/sh", "-c", "test -f /dhfs_test/fuse/testf1").getExitCode()); - } - - @Test - void deleteTestKickedOut() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> - "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - container2.stop(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("kicked"), 60, TimeUnit.SECONDS, 1); - - Log.info("Deleting"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/testf1").getExitCode()); - Log.info("Deleted"); - - // FIXME? - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 3); - - await().atMost(45, TimeUnit.SECONDS).until(() -> - 1 == container1.execInContainer("/bin/sh", "-c", "test -f /dhfs_test/fuse/testf1").getExitCode()); - } - - @Test - void moveFileTest() throws IOException, InterruptedException, TimeoutException { - Log.info("Creating"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - Log.info("Listing"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode()); - Log.info("Moving"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testf1 /dhfs_test/fuse/testf2").getExitCode()); - Log.info("Listing"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode()); - Log.info("Reading"); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout())); - } - - @Test - void moveDirTest() throws IOException, InterruptedException, TimeoutException { - Log.info("Creating"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/testdir").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testdir/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testdir/testf1").getStdout())); - Log.info("Listing"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode()); - Log.info("Moving"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/testdir2").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testdir /dhfs_test/fuse/testdir2/testdirm").getExitCode()); - Log.info("Listing"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode()); - Log.info("Reading"); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testdir2/testdirm/testf1").getStdout())); - } - - - // TODO: This probably shouldn't be working right now - @Test - void removeAddHostTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - var c2curl = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request DELETE " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo jioadsd > /dhfs_test/fuse/newfile1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo asvdkljm > /dhfs_test/fuse/newfile1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo dfgvh > /dhfs_test/fuse/newfile2").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo dscfg > /dhfs_test/fuse/newfile2").getExitCode()); - - Log.info("Re-adding"); - container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> { - Log.info("Listing removeAddHostTest"); - var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/"); - var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/"); - Log.info(cat1); - Log.info(cat2); - Log.info(ls1); - Log.info(ls2); - - return cat1.getStdout().contains("jioadsd") && cat1.getStdout().contains("asvdkljm") && cat1.getStdout().contains("dfgvh") && cat1.getStdout().contains("dscfg") - && cat2.getStdout().contains("jioadsd") && cat2.getStdout().contains("asvdkljm") && cat2.getStdout().contains("dfgvh") && cat2.getStdout().contains("dscfg"); - }); - } - - @Test - void dirConflictTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode()); - boolean createFail = Stream.of(Pair.of(container1, "echo test1 >> /dhfs_test/fuse/testf"), - Pair.of(container2, "echo test2 >> /dhfs_test/fuse/testf")).parallel().map(p -> { - try { - return p.getLeft().execInContainer("/bin/sh", "-c", p.getRight()).getExitCode(); - } catch (Exception e) { - throw new RuntimeException(e); - } - }).anyMatch(r -> r != 0); - Assumptions.assumeTrue(!createFail, "Failed creating one or more files"); - await().atMost(45, TimeUnit.SECONDS).until(() -> { - var ls = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - Log.info(ls); - Log.info(cat); - return cat.getStdout().contains("test1") && cat.getStdout().contains("test2"); - }); - } - - @Test - void dirConflictTest2() throws IOException, InterruptedException, TimeoutException { - var client = DockerClientFactory.instance().client(); - client.disconnectFromNetworkCmd().withContainerId(container1.getContainerId()).withNetworkId(network.getId()).exec(); - client.disconnectFromNetworkCmd().withContainerId(container2.getContainerId()).withNetworkId(network.getId()).exec(); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1); - - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/a && echo fdsaio >> /dhfs_test/fuse/a/testf").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/a && echo exgrg >> /dhfs_test/fuse/a/testf").getExitCode()); - - client.connectToNetworkCmd().withContainerId(container1.getContainerId()).withNetworkId(network.getId()).exec(); - client.connectToNetworkCmd().withContainerId(container2.getContainerId()).withNetworkId(network.getId()).exec(); - - Log.warn("Waiting for connections"); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 1); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 1); - Log.warn("Connected"); - - checkConsistency(); - - var ls1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/a*/*"); - Assertions.assertTrue(ls1.getStdout().contains("fdsaio")); - Assertions.assertTrue(ls1.getStdout().contains("exgrg")); - } - - @Test - void dirCycleTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/a").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/b").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo xqr489 >> /dhfs_test/fuse/a/testfa").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo ahinou >> /dhfs_test/fuse/b/testfb").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls -lavh /dhfs_test/fuse").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> { - var c2ls = container2.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f -exec cat {} \\;"); - return c2ls.getExitCode() == 0 && c2ls.getStdout().contains("xqr489") && c2ls.getStdout().contains("ahinou"); - }); - - var client = DockerClientFactory.instance().client(); - client.pauseContainerCmd(container1.getContainerId()).exec(); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/a /dhfs_test/fuse/b").getExitCode()); - client.pauseContainerCmd(container2.getContainerId()).exec(); - client.unpauseContainerCmd(container1.getContainerId()).exec(); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/b /dhfs_test/fuse/a").getExitCode()); - client.unpauseContainerCmd(container2.getContainerId()).exec(); - - - await().atMost(45, TimeUnit.SECONDS).until(() -> { - Log.info("Listing dirCycleTest"); - Log.info(container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse")); - Log.info(container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/a")); - Log.info(container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/b")); - Log.info(container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse")); - Log.info(container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/a")); - Log.info(container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/b")); - - var c1ls2 = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -maxdepth 3 -type f -exec cat {} \\;"); - Log.info(c1ls2); - var c2ls2 = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -maxdepth 3 -type f -exec cat {} \\;"); - Log.info(c2ls2); - - return c1ls2.getStdout().contains("xqr489") && c1ls2.getStdout().contains("ahinou") - && c2ls2.getStdout().contains("xqr489") && c2ls2.getStdout().contains("ahinou") - && c1ls2.getExitCode() == 0 && c2ls2.getExitCode() == 0; - }); - - } - - @Test - void removeAndMove() throws IOException, InterruptedException, TimeoutException { - var client = DockerClientFactory.instance().client(); - Log.info("Creating"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - Log.info("Listing"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - client.pauseContainerCmd(container1.getContainerId()).exec(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1); - - Log.info("Removing"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/testf1").getExitCode()); - - client.pauseContainerCmd(container2.getContainerId()).exec(); - client.unpauseContainerCmd(container1.getContainerId()).exec(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1); - Log.info("Moving"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testf1 /dhfs_test/fuse/testf2").getExitCode()); - Log.info("Listing"); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode()); - Log.info("Reading"); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout())); - client.unpauseContainerCmd(container2.getContainerId()).exec(); - - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 1); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 1); - // Either removed, or moved - // TODO: it always seems to be removed? - Log.info("Reading both"); - await().atMost(45, TimeUnit.SECONDS).until(() -> { - var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/"); - var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/"); - var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - Log.info("cat1: " + cat1); - Log.info("cat2: " + cat2); - Log.info("ls1: " + ls1); - Log.info("ls2: " + ls2); - - if (!ls1.getStdout().equals(ls2.getStdout())) { - Log.info("Different ls?"); - return false; - } - - if (ls1.getStdout().trim().isEmpty() && ls2.getStdout().trim().isEmpty()) { - Log.info("Both empty"); - return true; - } - - if (!cat1.getStdout().equals(cat2.getStdout())) { - Log.info("Different cat?"); - return false; - } - - if (!(cat1.getExitCode() == 0 && cat2.getExitCode() == 0 && ls1.getExitCode() == 0 && ls2.getExitCode() == 0)) { - return false; - } - - boolean hasMoved = cat1.getStdout().contains("tesempty") && cat2.getStdout().contains("tesempty") - && ls1.getStdout().contains("testf2") && !ls1.getStdout().contains("testf1") - && ls2.getStdout().contains("testf2") && !ls2.getStdout().contains("testf1"); - - boolean removed = !cat1.getStdout().contains("tesempty") && !cat2.getStdout().contains("tesempty") - && !ls1.getStdout().contains("testf2") && !ls1.getStdout().contains("testf1") - && !ls2.getStdout().contains("testf2") && !ls2.getStdout().contains("testf1"); - - if (hasMoved && removed) { - Log.info("Both removed and moved"); - return false; - } - - return hasMoved || removed; - }); - } - -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFusex3IT.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFusex3IT.java deleted file mode 100644 index 8105845d..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsFusex3IT.java +++ /dev/null @@ -1,331 +0,0 @@ -package com.usatiuk.dhfsfuse.integration; - -import com.github.dockerjava.api.model.Device; -import io.quarkus.logging.Log; -import org.junit.jupiter.api.*; -import org.slf4j.LoggerFactory; -import org.testcontainers.DockerClientFactory; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.output.Slf4jLogConsumer; -import org.testcontainers.containers.output.WaitingConsumer; -import org.testcontainers.containers.wait.strategy.Wait; - -import java.io.IOException; -import java.time.Duration; -import java.util.List; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.stream.Stream; - -import static org.awaitility.Awaitility.await; - -public class DhfsFusex3IT { - GenericContainer container1; - GenericContainer container2; - GenericContainer container3; - - WaitingConsumer waitingConsumer1; - WaitingConsumer waitingConsumer2; - WaitingConsumer waitingConsumer3; - - String c1uuid; - String c2uuid; - String c3uuid; - - Network network; - - // This calculation is somewhat racy, so keep it hardcoded for now - long emptyFileCount = 9; - - @BeforeEach - void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException { - // TODO: Dedup - network = Network.newNetwork(); - - container1 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network); - container2 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network); - container3 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network); - - - Stream.of(container1, container2, container3).parallel().forEach(GenericContainer::start); - - c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c3uuid = container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - - Log.info(container1.getContainerId() + "=" + c1uuid); - Log.info(container2.getContainerId() + "=" + c2uuid); - Log.info(container3.getContainerId() + "=" + c3uuid); - - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFusex3IT.class)) - .withPrefix(c1uuid.substring(0, 4) + "-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFusex3IT.class)) - .withPrefix(c2uuid.substring(0, 4) + "-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - waitingConsumer3 = new WaitingConsumer(); - var loggingConsumer3 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFusex3IT.class)) - .withPrefix(c3uuid.substring(0, 4) + "-" + testInfo.getDisplayName()); - container3.followOutput(loggingConsumer3.andThen(waitingConsumer3)); - - Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c3uuid)); - - waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS, 2); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS, 2); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS, 2); - - var c1curl = container1.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - var c2curl1 = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - var c2curl3 = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c3uuid); - - var c3curl = container3.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - } - - private boolean checkEmpty() throws IOException, InterruptedException { - for (var container : List.of(container1, container2, container3)) { - var found = container.execInContainer("/bin/sh", "-c", "find /dhfs_test/data/objs -type f"); - var foundWc = container.execInContainer("/bin/sh", "-c", "find /dhfs_test/data/objs -type f | wc -l"); - Log.info("Remaining objects in " + container.getContainerId() + ": " + found.toString() + " " + foundWc.toString()); - if (!(found.getExitCode() == 0 && foundWc.getExitCode() == 0 && Integer.parseInt(foundWc.getStdout().strip()) == emptyFileCount)) - return false; - } - return true; - } - - @AfterEach - void stop() { - Stream.of(container1, container2, container3).parallel().forEach(GenericContainer::stop); - network.close(); - } - - @Test - void readWriteFileTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - } - - // FIXME: - @Test - @Disabled - void largerFileDeleteTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /dhfs_test/fuse && dd if=/dev/urandom of=10MB.bin bs=1M count=10").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "head -c 10 /dhfs_test/fuse/10MB.bin").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/10MB.bin").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> checkEmpty()); - } - - @Test - @Disabled - void largerFileDeleteTestNoDelays() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /dhfs_test/fuse && dd if=/dev/urandom of=10MB.bin bs=1M count=10").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "head -c 10 /dhfs_test/fuse/10MB.bin").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/10MB.bin").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> checkEmpty()); - } - - @Test - void gccHelloWorldTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo '#include\nint main(){printf(\"hello world\"); return 0;}' > /dhfs_test/fuse/hello.c").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /dhfs_test/fuse && gcc hello.c").getExitCode()); - - await().atMost(45, TimeUnit.SECONDS).until(() -> { - var helloOut = container1.execInContainer("/bin/sh", "-c", "/dhfs_test/fuse/a.out"); - Log.info(helloOut); - return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world"); - }); - await().atMost(45, TimeUnit.SECONDS).until(() -> { - var helloOut = container2.execInContainer("/bin/sh", "-c", "/dhfs_test/fuse/a.out"); - Log.info(helloOut); - return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world"); - }); - await().atMost(45, TimeUnit.SECONDS).until(() -> { - var helloOut = container3.execInContainer("/bin/sh", "-c", "/dhfs_test/fuse/a.out"); - Log.info(helloOut); - return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world"); - }); - } - - @Test - void removeHostTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - - var c3curl = container3.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request DELETE " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - Thread.sleep(10000); - - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - } - - @Test - void dirConflictTest() throws IOException, InterruptedException, TimeoutException { - var client = DockerClientFactory.instance().client(); - client.pauseContainerCmd(container1.getContainerId()).exec(); - client.pauseContainerCmd(container2.getContainerId()).exec(); - // Pauses needed as otherwise docker buffers some incoming packets - waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "echo test3 >> /dhfs_test/fuse/testf").getExitCode()); - client.pauseContainerCmd(container3.getContainerId()).exec(); - client.unpauseContainerCmd(container2.getContainerId()).exec(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo test2 >> /dhfs_test/fuse/testf").getExitCode()); - client.pauseContainerCmd(container2.getContainerId()).exec(); - client.unpauseContainerCmd(container1.getContainerId()).exec(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo test1 >> /dhfs_test/fuse/testf").getExitCode()); - client.unpauseContainerCmd(container2.getContainerId()).exec(); - client.unpauseContainerCmd(container3.getContainerId()).exec(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - - await().atMost(45, TimeUnit.SECONDS).until(() -> { - for (var c : List.of(container1, container2, container3)) { - var ls = c.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat = c.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - Log.info(ls); - Log.info(cat); - if (!(cat.getStdout().contains("test1") && cat.getStdout().contains("test2") && cat.getStdout().contains("test3"))) - return false; - } - return true; - }); - - await().atMost(45, TimeUnit.SECONDS).until(() -> { - return container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout().equals( - container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout()) && - container3.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout().equals( - container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout()) && - container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*").getStdout().equals( - container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*").getStdout()); - }); - } - - @Test - void fileConflictTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf").getStdout())); - - var client = DockerClientFactory.instance().client(); - client.disconnectFromNetworkCmd().withContainerId(container1.getContainerId()).withNetworkId(network.getId()).exec(); - client.disconnectFromNetworkCmd().withContainerId(container2.getContainerId()).withNetworkId(network.getId()).exec(); - client.disconnectFromNetworkCmd().withContainerId(container3.getContainerId()).withNetworkId(network.getId()).exec(); - - waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2); - - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "echo test3 >> /dhfs_test/fuse/testf").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo test2 >> /dhfs_test/fuse/testf").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo test1 >> /dhfs_test/fuse/testf").getExitCode()); - - client.connectToNetworkCmd().withContainerId(container1.getContainerId()).withNetworkId(network.getId()).exec(); - client.connectToNetworkCmd().withContainerId(container2.getContainerId()).withNetworkId(network.getId()).exec(); - client.connectToNetworkCmd().withContainerId(container3.getContainerId()).withNetworkId(network.getId()).exec(); - - Log.warn("Waiting for connections"); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2); - Log.warn("Connected"); - - // TODO: There's some issue with cache, so avoid file reads - await().atMost(45, TimeUnit.SECONDS).until(() -> { - Log.info("Listing consistency 1"); - var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var ls3 = container3.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - Log.info(ls1); - Log.info(ls2); - Log.info(ls3); - - return (ls1.getExitCode() == 0 && ls2.getExitCode() == 0 && ls3.getExitCode() == 0) - && (ls1.getStdout().equals(ls2.getStdout()) && ls2.getStdout().equals(ls3.getStdout())); - }); - - await().atMost(45, TimeUnit.SECONDS).until(() -> { - Log.info("Listing"); - for (var c : List.of(container1, container2, container3)) { - var ls = c.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat = c.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - Log.info(ls); - Log.info(cat); - if (!(cat.getExitCode() == 0 && ls.getExitCode() == 0)) - return false; - if (!(cat.getStdout().contains("test1") && cat.getStdout().contains("test2") && cat.getStdout().contains("test3"))) - return false; - } - return true; - }); - - await().atMost(45, TimeUnit.SECONDS).until(() -> { - Log.info("Listing consistency"); - var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - var ls3 = container3.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat3 = container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - Log.info(ls1); - Log.info(cat1); - Log.info(ls2); - Log.info(cat2); - Log.info(ls3); - Log.info(cat3); - - return (ls1.getExitCode() == 0 && ls2.getExitCode() == 0 && ls3.getExitCode() == 0) - && (cat1.getExitCode() == 0 && cat2.getExitCode() == 0 && cat3.getExitCode() == 0) - && (cat1.getStdout().equals(cat2.getStdout()) && cat2.getStdout().equals(cat3.getStdout())) - && (ls1.getStdout().equals(ls2.getStdout()) && ls2.getStdout().equals(ls3.getStdout())); - }); - } - -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsImage.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsImage.java deleted file mode 100644 index c096c958..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/DhfsImage.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.usatiuk.dhfsfuse.integration; - -import io.quarkus.logging.Log; -import org.jetbrains.annotations.NotNull; -import org.testcontainers.images.builder.ImageFromDockerfile; - -import java.nio.file.Paths; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -public class DhfsImage implements Future { - - private static final DhfsImage INSTANCE = new DhfsImage(); - private static String _builtImage = null; - - private DhfsImage() { - } - - public static DhfsImage getInstance() { - return INSTANCE; - } - - @Override - public boolean cancel(boolean mayInterruptIfRunning) { - return false; - } - - @Override - public boolean isCancelled() { - return false; - } - - @Override - public boolean isDone() { - return true; - } - - @Override - public String get() throws InterruptedException, ExecutionException { - return buildImpl(); - } - - @Override - public String get(long timeout, @NotNull TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { - return buildImpl(); - } - - private synchronized String buildImpl() { - if (_builtImage != null) { - return _builtImage; - } - - Log.info("Building image"); - - String buildPath = System.getProperty("buildDirectory"); - String nativeLibsDirectory = System.getProperty("nativeLibsDirectory"); - Log.info("Build path: " + buildPath); - Log.info("Native libs path: " + nativeLibsDirectory); - - var image = new ImageFromDockerfile() - .withDockerfileFromBuilder(builder -> - builder - .from("azul/zulu-openjdk-debian:21-jre-headless-latest") - .run("apt update && apt install -y libfuse2 curl gcc") - .copy("/app", "/app") - .copy("/libs", "/libs") - .cmd("java", "-ea", "-Xmx256M", "-XX:TieredStopAtLevel=1", "-XX:+UseParallelGC", - "--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED", - "--add-exports", "java.base/jdk.internal.access=ALL-UNNAMED", - "--add-opens=java.base/java.nio=ALL-UNNAMED", - "--enable-preview", - "-Ddhfs.objects.peerdiscovery.interval=1s", - "-Ddhfs.objects.invalidation.delay=100", - "-Ddhfs.objects.deletion.delay=0", - "-Ddhfs.objects.deletion.can-delete-retry-delay=1000", - "-Ddhfs.objects.ref_verification=true", - "-Ddhfs.objects.sync.timeout=30", - "-Ddhfs.objects.sync.ping.timeout=5", - "-Ddhfs.objects.reconnect_interval=1s", - "-Ddhfs.objects.last-seen.timeout=30", - "-Ddhfs.objects.last-seen.update=10", - "-Ddhfs.sync.cert-check=false", - "-Dquarkus.log.category.\"com.usatiuk\".level=TRACE", - "-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=TRACE", - "-Dquarkus.log.category.\"com.usatiuk.objects.transaction\".level=INFO", - "-Ddhfs.objects.periodic-push-op-interval=5s", - "-Ddhfs.fuse.root=/dhfs_test/fuse", - "-Ddhfs.objects.persistence.files.root=/dhfs_test/data", - "-Ddhfs.objects.persistence.stuff.root=/dhfs_test/data/stuff", - "-jar", "/app/quarkus-run.jar") - .run("mkdir /dhfs_test && chmod 777 /dhfs_test") - .build()) - .withFileFromPath("/app", Paths.get(buildPath, "quarkus-app")) - .withFileFromPath("/libs", Paths.get(nativeLibsDirectory)); - - _builtImage = image.get(); - Log.info("Image built: " + _builtImage); - return _builtImage; - } -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/KillIT.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/KillIT.java deleted file mode 100644 index d21c19d5..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/KillIT.java +++ /dev/null @@ -1,235 +0,0 @@ -package com.usatiuk.dhfsfuse.integration; - -import com.github.dockerjava.api.model.Device; -import com.usatiuk.dhfsfuse.TestDataCleaner; -import io.quarkus.logging.Log; -import org.junit.jupiter.api.*; -import org.slf4j.LoggerFactory; -import org.testcontainers.DockerClientFactory; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.output.Slf4jLogConsumer; -import org.testcontainers.containers.output.WaitingConsumer; -import org.testcontainers.containers.wait.strategy.Wait; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.time.Duration; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.*; -import java.util.stream.Stream; - -import static org.awaitility.Awaitility.await; - -public class KillIT { - GenericContainer container1; - GenericContainer container2; - - WaitingConsumer waitingConsumer1; - WaitingConsumer waitingConsumer2; - - String c1uuid; - String c2uuid; - - File data1; - File data2; - - Network network; - - ExecutorService executor; - - @BeforeEach - void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException { - executor = Executors.newCachedThreadPool(); - - data1 = Files.createTempDirectory("").toFile(); - data2 = Files.createTempDirectory("").toFile(); - - network = Network.newNetwork(); - - container1 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) - .withFileSystemBind(data1.getAbsolutePath(), "/dhfs_test/data"); - container2 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) - .withFileSystemBind(data2.getAbsolutePath(), "/dhfs_test/data"); - - Stream.of(container1, container2).parallel().forEach(GenericContainer::start); - - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - - c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - - Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid)); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - - var c1curl = container1.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - var c2curl = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - } - - @AfterEach - void stop() { - Stream.of(container1, container2).parallel().forEach(GenericContainer::stop); - TestDataCleaner.purgeDirectory(data1); - TestDataCleaner.purgeDirectory(data2); - executor.close(); - network.close(); - } - - private void checkConsistency() { - await().atMost(45, TimeUnit.SECONDS).until(() -> { - Log.info("Listing consistency"); - var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - Log.info(ls1); - Log.info(cat1); - Log.info(ls2); - Log.info(cat2); - - return ls1.equals(ls2) && cat1.equals(cat2) && ls1.getExitCode() == 0 && ls2.getExitCode() == 0 && cat1.getExitCode() == 0 && cat2.getExitCode() == 0; - }); - } - - @Test - void killTest(TestInfo testInfo) throws Exception { - var barrier = new CyclicBarrier(2); - var ret1 = executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.await(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(10000); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container1.getContainerId()).exec(); - container1.stop(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - container1.start(); - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(); - } - - @Test - void killTestDirs(TestInfo testInfo) throws Exception { - var barrier = new CyclicBarrier(2); - var ret1 = executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.await(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(10000); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container1.getContainerId()).exec(); - container1.stop(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - container1.start(); - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(); - } - - @Test - void killTest2(TestInfo testInfo) throws Exception { - var barrier = new CyclicBarrier(2); - var ret1 = executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.await(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(10000); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container2.getContainerId()).exec(); - container2.stop(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - container1.execInContainer("/bin/sh", "-c", "touch /tmp/stopprinting"); - container2.start(); - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(); - } - - @Test - void killTestDirs2(TestInfo testInfo) throws Exception { - var barrier = new CyclicBarrier(2); - var ret1 = executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.await(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(10000); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container2.getContainerId()).exec(); - container2.stop(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - container1.execInContainer("/bin/sh", "-c", "touch /tmp/stopprinting"); - container2.start(); - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(); - } -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFs.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFs.java deleted file mode 100644 index 1f7afab1..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFs.java +++ /dev/null @@ -1,215 +0,0 @@ -package com.usatiuk.dhfsfuse.integration; - -import io.quarkus.logging.Log; - -import java.io.*; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ThreadLocalRandom; -import java.util.concurrent.TimeUnit; - -public class LazyFs { - private static final String lazyFsPath; - - static { - lazyFsPath = System.getProperty("lazyFsPath"); - System.out.println("LazyFs Path: " + lazyFsPath); - } - - private final String mountRoot; - private final String dataRoot; - private final String name; - private final File configFile; - private final File fifoFile; - private Thread errPiper; - private Thread outPiper; - private CountDownLatch startLatch; - private Process fs; - public LazyFs(String name, String mountRoot, String dataRoot) { - this.name = name; - this.mountRoot = mountRoot; - this.dataRoot = dataRoot; - - try { - configFile = File.createTempFile("lazyfs", ".conf"); - configFile.deleteOnExit(); - - fifoFile = new File("/tmp/" + ThreadLocalRandom.current().nextLong() + ".faultsfifo"); - fifoFile.deleteOnExit(); - } catch (IOException e) { - throw new RuntimeException(e); - } - - Runtime.getRuntime().addShutdownHook(new Thread(this::stop)); - } - - private String fifoPath() { - return fifoFile.getAbsolutePath(); - } - - public void start(String extraOpts) { - var lfsPath = Path.of(lazyFsPath).resolve("build").resolve("lazyfs"); - if (!lfsPath.toFile().isFile()) - throw new IllegalStateException("LazyFs binary does not exist: " + lfsPath.toAbsolutePath()); - if (!lfsPath.toFile().canExecute()) - throw new IllegalStateException("LazyFs binary is not executable: " + lfsPath.toAbsolutePath()); - - try (var rwFile = new RandomAccessFile(configFile, "rw"); - var channel = rwFile.getChannel()) { - channel.truncate(0); - var config = "[faults]\n" + - "fifo_path=\"" + fifoPath() + "\"\n" + - "[cache]\n" + - "apply_eviction=false\n" + - "[cache.simple]\n" + - "custom_size=\"1gb\"\n" + - "blocks_per_page=1\n" + - "[filesystem]\n" + - "log_all_operations=false\n" + - "logfile=\"\"\n" + extraOpts; - rwFile.write(config.getBytes()); - Log.info("LazyFs config: \n" + config); - } catch (Exception e) { - throw new RuntimeException(e); - } - - var argList = new ArrayList(); - - argList.add(lfsPath.toString()); - argList.add(Path.of(mountRoot).toString()); - argList.add("--config-path"); - argList.add(configFile.getAbsolutePath()); - argList.add("-o"); - argList.add("allow_other"); - argList.add("-o"); - argList.add("modules=subdir"); - argList.add("-o"); - argList.add("subdir=" + Path.of(dataRoot).toAbsolutePath().toString()); - try { - Log.info("Starting LazyFs " + argList); - fs = Runtime.getRuntime().exec(argList.toArray(String[]::new)); - } catch (Exception e) { - throw new RuntimeException(e); - } - - startLatch = new CountDownLatch(1); - - outPiper = new Thread(() -> { - try { - try (BufferedReader input = new BufferedReader(new InputStreamReader(fs.getInputStream()))) { - String line; - - while ((line = input.readLine()) != null) { - if (line.contains("running LazyFS")) - startLatch.countDown(); - System.out.println(line); - } - } - } catch (Exception e) { - Log.info("Exception in LazyFs piper", e); - } - Log.info("LazyFs out piper finished"); - }); - outPiper.start(); - errPiper = new Thread(() -> { - try { - try (BufferedReader input = new BufferedReader(new InputStreamReader(fs.getErrorStream()))) { - String line; - - while ((line = input.readLine()) != null) { - System.out.println(line); - } - } - } catch (Exception e) { - Log.info("Exception in LazyFs piper", e); - } - Log.info("LazyFs err piper finished"); - }); - errPiper.start(); - - try { - if (!startLatch.await(30, TimeUnit.SECONDS)) - throw new RuntimeException("StartLatch timed out"); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - Log.info("LazyFs started"); - } - - public void start() { - start(""); - } - - private String mdbPath() { - return Path.of(dataRoot).resolve("objects").resolve("data.mdb").toAbsolutePath().toString(); - } - - public void startTornOp() { - start("\n" + - "[[injection]]\n" + - "type=\"torn-seq\"\n" + - "op=\"write\"\n" + - "file=\"" + mdbPath() + "\"\n" + - "persist=[1,4]\n" + - "occurrence=3"); - } - - public void startTornSeq() { - start("[[injection]]\n" + - "type=\"torn-op\"\n" + - "file=\"" + mdbPath() + "\"\n" + - "occurrence=3\n" + - "parts=3 #or parts_bytes=[4096,3600,1260]\n" + - "persist=[1,3]"); - } - - public void crash() { - try { - var cmd = "echo \"lazyfs::crash::timing=after::op=write::from_rgx=*\" > " + fifoPath(); - Log.info("Running command: " + cmd); - Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd}).waitFor(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public void stop() { - try { - synchronized (this) { - Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "fusermount3 -u " + mountRoot}).waitFor(); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - -// Doesn't actually work? -// -// public void crashop() { -// try { -// var cmd = "echo \"lazyfs::torn-op::file=" + Path.of(lazyFsDataPath).toAbsolutePath().toString() + "/objects/data.mdb::persist=1,3::parts=3::occurrence=5\" > /tmp/faults.fifo"; -// System.out.println("Running command: " + cmd); -// Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd}); -// Thread.sleep(1000); -// Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "fusermount3 -u " + dataRoot}); -// Thread.sleep(1000); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// } -// -// public void crashseq() { -// try { -// var cmd = "echo \"lazyfs::torn-seq::op=write::file=" + Path.of(lazyFsDataPath).toAbsolutePath().toString() + "/objects/data.mdb::persist=1,4::occurrence=2\" > /tmp/faults.fifo"; -// System.out.println("Running command: " + cmd); -// Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd}); -// Thread.sleep(1000); -// Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "fusermount3 -u " + dataRoot}); -// Thread.sleep(1000); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// } -} - diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFsIT.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFsIT.java deleted file mode 100644 index 526e51c2..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/LazyFsIT.java +++ /dev/null @@ -1,489 +0,0 @@ -package com.usatiuk.dhfsfuse.integration; - -import com.github.dockerjava.api.model.Device; -import com.usatiuk.dhfsfuse.TestDataCleaner; -import io.quarkus.logging.Log; -import org.junit.jupiter.api.*; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.EnumSource; -import org.slf4j.LoggerFactory; -import org.testcontainers.DockerClientFactory; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.output.Slf4jLogConsumer; -import org.testcontainers.containers.output.WaitingConsumer; -import org.testcontainers.containers.wait.strategy.Wait; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.time.Duration; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.*; -import java.util.stream.Stream; - -import static org.awaitility.Awaitility.await; - -public class LazyFsIT { - GenericContainer container1; - GenericContainer container2; - - WaitingConsumer waitingConsumer1; - WaitingConsumer waitingConsumer2; - - String c1uuid; - String c2uuid; - - File data1; - File data2; - File data1Lazy; - File data2Lazy; - - LazyFs lazyFs1; - LazyFs lazyFs2; - - ExecutorService executor; - Network network; - - @BeforeEach - void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException { - executor = Executors.newCachedThreadPool(); - data1 = Files.createTempDirectory("dhfsdata").toFile(); - data2 = Files.createTempDirectory("dhfsdata").toFile(); - data1Lazy = Files.createTempDirectory("lazyfsroot").toFile(); - data2Lazy = Files.createTempDirectory("lazyfsroot").toFile(); - - network = Network.newNetwork(); - - lazyFs1 = new LazyFs(testInfo.getDisplayName(), data1.toString(), data1Lazy.toString()); - lazyFs1.start(); - lazyFs2 = new LazyFs(testInfo.getDisplayName(), data2.toString(), data2Lazy.toString()); - lazyFs2.start(); - - container1 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) - .withFileSystemBind(data1.getAbsolutePath(), "/dhfs_test/data"); - container2 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) - .withFileSystemBind(data2.getAbsolutePath(), "/dhfs_test/data"); - - Stream.of(container1, container2).parallel().forEach(GenericContainer::start); - - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - - c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - - Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid)); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - - var c1curl = container1.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - var c2curl = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - } - - @AfterEach - void stop() { - lazyFs1.stop(); - lazyFs2.stop(); - - Stream.of(container1, container2).parallel().forEach(GenericContainer::stop); - TestDataCleaner.purgeDirectory(data1); - TestDataCleaner.purgeDirectory(data1Lazy); - TestDataCleaner.purgeDirectory(data2); - TestDataCleaner.purgeDirectory(data2Lazy); - - executor.close(); - network.close(); - } - - private void checkConsistency(String testName) { - await().atMost(45, TimeUnit.SECONDS).until(() -> { - var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"); - var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*"); - Log.info("Listing consistency " + testName + "\n" - + ls1 + "\n" - + cat1 + "\n" - + ls2 + "\n" - + cat2 + "\n"); - - return ls1.equals(ls2) && cat1.equals(cat2) && ls1.getExitCode() == 0 && ls2.getExitCode() == 0 && cat1.getExitCode() == 0 && cat2.getExitCode() == 0; - }); - } - - @ParameterizedTest - @EnumSource(CrashType.class) - void killTest(CrashType crashType, TestInfo testInfo) throws Exception { - var barrier = new CountDownLatch(1); - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(3000); - Log.info("Killing"); - lazyFs1.crash(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container1.getContainerId()).exec(); - container1.stop(); - lazyFs1.stop(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - switch (crashType) { - case CRASH -> lazyFs1.start(); - case TORN_OP -> lazyFs1.startTornOp(); - case TORN_SEQ -> lazyFs1.startTornSeq(); - } - container1.start(); - - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - try { - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - Log.info("Failed to connect: " + testInfo.getDisplayName()); - // Sometimes it doesn't get mounted properly for some reason - Assumptions.assumeTrue(false); - } - - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test2; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - Log.info("Killing"); - if (crashType.equals(CrashType.CRASH)) { - Thread.sleep(3000); - lazyFs1.crash(); - } - try { - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - // Sometimes crash doesn't work - Log.info("Failed to crash: " + testInfo.getDisplayName()); - if (crashType.equals(CrashType.CRASH)) - throw e; - Assumptions.assumeTrue(false); - } - client.killContainerCmd(container1.getContainerId()).exec(); - container1.stop(); - lazyFs1.stop(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - lazyFs1.start(); - container1.start(); - - waitingConsumer1 = new WaitingConsumer(); - loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(testInfo.getDisplayName()); - } - - @ParameterizedTest - @EnumSource(CrashType.class) - void killTestDirs(CrashType crashType, TestInfo testInfo) throws Exception { - var barrier = new CountDownLatch(1); - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(3000); - Log.info("Killing"); - lazyFs1.crash(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container1.getContainerId()).exec(); - container1.stop(); - lazyFs1.stop(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - switch (crashType) { - case CRASH -> lazyFs1.start(); - case TORN_OP -> lazyFs1.startTornOp(); - case TORN_SEQ -> lazyFs1.startTornSeq(); - } - container1.start(); - - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - try { - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - Log.info("Failed to connect: " + testInfo.getDisplayName()); - // Sometimes it doesn't get mounted properly for some reason - - Assumptions.assumeTrue(false); - } - - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/2test$counter; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - Log.info("Killing"); - if (crashType.equals(CrashType.CRASH)) { - Thread.sleep(3000); - lazyFs1.crash(); - } - try { - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - // Sometimes crash doesn't work - Log.info("Failed to crash: " + testInfo.getDisplayName()); - if (crashType.equals(CrashType.CRASH)) - throw e; - Assumptions.assumeTrue(false); - } - client.killContainerCmd(container1.getContainerId()).exec(); - container1.stop(); - lazyFs1.stop(); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - lazyFs1.start(); - container1.start(); - - waitingConsumer1 = new WaitingConsumer(); - loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(testInfo.getDisplayName()); - } - - @ParameterizedTest - @EnumSource(CrashType.class) - void killTest2(CrashType crashType, TestInfo testInfo) throws Exception { - var barrier = new CountDownLatch(1); - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting1 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(3000); - Log.info("Killing"); - lazyFs2.crash(); - container1.execInContainer("/bin/sh", "-c", "touch /tmp/stopprinting1"); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container2.getContainerId()).exec(); - container2.stop(); - lazyFs2.stop(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - switch (crashType) { - case CRASH -> lazyFs2.start(); - case TORN_OP -> lazyFs2.startTornOp(); - case TORN_SEQ -> lazyFs2.startTornSeq(); - } - container2.start(); - - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - try { - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - Log.info("Failed to connect: " + testInfo.getDisplayName()); - // Sometimes it doesn't get mounted properly for some reason - - Assumptions.assumeTrue(false); - } - var barrier2 = new CountDownLatch(1); - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier2.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting2 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test2; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier2.await(); - Log.info("Killing"); - Thread.sleep(3000); - if (crashType.equals(CrashType.CRASH)) { - lazyFs2.crash(); - } - container1.execInContainer("/bin/sh", "-c", "touch /tmp/stopprinting2"); - try { - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - // Sometimes crash doesn't work - Log.info("Failed to crash: " + testInfo.getDisplayName()); - if (crashType.equals(CrashType.CRASH)) - throw e; - Assumptions.assumeTrue(false); - } - client.killContainerCmd(container2.getContainerId()).exec(); - container2.stop(); - lazyFs2.stop(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - lazyFs2.start(); - container2.start(); - - waitingConsumer2 = new WaitingConsumer(); - loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(testInfo.getDisplayName()); - } - - @ParameterizedTest - @EnumSource(CrashType.class) - void killTestDirs2(CrashType crashType, TestInfo testInfo) throws Exception { - var barrier = new CountDownLatch(1); - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting1 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier.await(); - Thread.sleep(3000); - Log.info("Killing"); - lazyFs2.crash(); - container1.execInContainer("/bin/sh", "-c", "touch /tmp/stopprinting1"); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - var client = DockerClientFactory.instance().client(); - client.killContainerCmd(container2.getContainerId()).exec(); - container2.stop(); - lazyFs2.stop(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - switch (crashType) { - case CRASH -> lazyFs2.start(); - case TORN_OP -> lazyFs2.startTornOp(); - case TORN_SEQ -> lazyFs2.startTornSeq(); - } - container2.start(); - - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - try { - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - Log.info("Failed to connect: " + testInfo.getDisplayName()); - // Sometimes it doesn't get mounted properly for some reason - Assumptions.assumeTrue(false); - } - - var barrier2 = new CountDownLatch(1); - executor.submit(() -> { - try { - Log.info("Writing to container 1"); - barrier2.countDown(); - container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting2 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/2test$counter; done"); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - barrier2.await(); - Thread.sleep(3000); - Log.info("Killing"); - if (crashType.equals(CrashType.CRASH)) { - lazyFs2.crash(); - } - container1.execInContainer("/bin/sh", "-c", "touch /tmp/stopprinting2"); - try { - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("org.lmdbjava.LmdbNativeException"), 60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - // Sometimes crash doesn't work - Log.info("Failed to crash: " + testInfo.getDisplayName()); - if (crashType.equals(CrashType.CRASH)) - throw e; - Assumptions.assumeTrue(false); - } - client.killContainerCmd(container2.getContainerId()).exec(); - container2.stop(); - lazyFs2.stop(); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS); - Log.info("Restart"); - lazyFs2.start(); - container2.start(); - - waitingConsumer2 = new WaitingConsumer(); - loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(LazyFsIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - checkConsistency(testInfo.getDisplayName()); - } - - - private static enum CrashType { - CRASH, - TORN_OP, - TORN_SEQ - } - - -} diff --git a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/ResyncIT.java b/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/ResyncIT.java deleted file mode 100644 index 8fd384dc..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/java/com/usatiuk/dhfsfuse/integration/ResyncIT.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.usatiuk.dhfsfuse.integration; - -import com.github.dockerjava.api.model.Device; -import org.junit.jupiter.api.*; -import org.slf4j.LoggerFactory; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.output.Slf4jLogConsumer; -import org.testcontainers.containers.output.WaitingConsumer; -import org.testcontainers.containers.wait.strategy.Wait; - -import java.io.IOException; -import java.time.Duration; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.stream.Stream; - -import static org.awaitility.Awaitility.await; - -public class ResyncIT { - GenericContainer container1; - GenericContainer container2; - - WaitingConsumer waitingConsumer1; - WaitingConsumer waitingConsumer2; - - String c1uuid; - String c2uuid; - - Network network; - - @BeforeEach - void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException { - network = Network.newNetwork(); - - container1 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network); - container2 = new GenericContainer<>(DhfsImage.getInstance()) - .withPrivilegedMode(true) - .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) - .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network); - - Stream.of(container1, container2).parallel().forEach(GenericContainer::start); - - waitingConsumer1 = new WaitingConsumer(); - var loggingConsumer1 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFuseIT.class)).withPrefix("1-" + testInfo.getDisplayName()); - container1.followOutput(loggingConsumer1.andThen(waitingConsumer1)); - waitingConsumer2 = new WaitingConsumer(); - var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFuseIT.class)).withPrefix("2-" + testInfo.getDisplayName()); - container2.followOutput(loggingConsumer2.andThen(waitingConsumer2)); - } - - @AfterEach - void stop() { - Stream.of(container1, container2).parallel().forEach(GenericContainer::stop); - network.close(); - } - - @Test - void readWriteFileTest() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode()); - c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - - Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid)); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - - var c1curl = container1.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - var c2curl = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout())); - } - - - @Test - void manyFiles() throws IOException, InterruptedException, TimeoutException { - var ret = container1.execInContainer("/bin/sh", "-c", "for i in $(seq 1 200); do echo $i > /dhfs_test/fuse/test$i; done"); - Assertions.assertEquals(0, ret.getExitCode()); - var foundWc = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l"); - Assertions.assertEquals(200, Integer.valueOf(foundWc.getStdout().strip())); - - ret = container2.execInContainer("/bin/sh", "-c", "for i in $(seq 1 200); do echo $i > /dhfs_test/fuse/test-2-$i; done"); - Assertions.assertEquals(0, ret.getExitCode()); - foundWc = container2.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l"); - Assertions.assertEquals(200, Integer.valueOf(foundWc.getStdout().strip())); - - c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - - Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid)); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - - var c1curl = container1.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - var c2curl = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - await().atMost(120, TimeUnit.SECONDS).until(() -> { - var foundWc2 = container2.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l"); - return 400 == Integer.valueOf(foundWc2.getStdout().strip()); - }); - await().atMost(120, TimeUnit.SECONDS).until(() -> { - var foundWc2 = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l"); - return 400 == Integer.valueOf(foundWc2.getStdout().strip()); - }); - } - - @Test - void folderAfterMove() throws IOException, InterruptedException, TimeoutException { - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/testd1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty1 > /dhfs_test/fuse/testd1/testf1").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testd1 /dhfs_test/fuse/testd2").getExitCode()); - await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty2 > /dhfs_test/fuse/testd2/testf2").getExitCode()); - - c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout(); - - Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid)); - Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid)); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS); - - var c1curl = container1.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c2uuid); - - var c2curl = container2.execInContainer("/bin/sh", "-c", - "curl --header \"Content-Type: application/json\" " + - " --request PUT " + - " --data '{}' " + - " http://localhost:8080/peers-manage/known-peers/" + c1uuid); - - waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS); - - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty1\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testd2/testf1").getStdout())); - await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty2\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testd2/testf2").getStdout())); - } - -} diff --git a/dhfs-parent/dhfs-fuse/src/test/resources/application.properties b/dhfs-parent/dhfs-fuse/src/test/resources/application.properties deleted file mode 100644 index 629cf9e5..00000000 --- a/dhfs-parent/dhfs-fuse/src/test/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -dhfs.objects.persistence.files.root=${HOME}/dhfs_data/dhfs_root_test -dhfs.objects.root=${HOME}/dhfs_data/dhfs_root_d_test -dhfs.fuse.root=${HOME}/dhfs_data/dhfs_fuse_root_test -dhfs.objects.ref_verification=true -dhfs.objects.deletion.delay=0 -quarkus.log.category."com.usatiuk.dhfs".level=TRACE -quarkus.log.category."com.usatiuk.dhfs".min-level=TRACE -quarkus.http.test-port=0 -quarkus.http.test-ssl-port=0 -dhfs.local-discovery=false -dhfs.objects.persistence.snapshot-extra-checks=true \ No newline at end of file diff --git a/dhfs-parent/kleppmanntree/pom.xml b/dhfs-parent/kleppmanntree/pom.xml deleted file mode 100644 index bf458fd3..00000000 --- a/dhfs-parent/kleppmanntree/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - 4.0.0 - - com.usatiuk.dhfs - parent - 1.0-SNAPSHOT - - - com.usatiuk - kleppmanntree - - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.junit.jupiter - junit-jupiter - test - - - org.apache.commons - commons-collections4 - - - org.apache.commons - commons-lang3 - - - org.pcollections - pcollections - - - jakarta.annotation - jakarta.annotation-api - - - \ No newline at end of file diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/AlreadyExistsException.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/AlreadyExistsException.java deleted file mode 100644 index 387ded1f..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/AlreadyExistsException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public class AlreadyExistsException extends RuntimeException { - public AlreadyExistsException(String message) { - super(message); - } - - @Override - public synchronized Throwable fillInStackTrace() { - return this; - } -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/Clock.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/Clock.java deleted file mode 100644 index f655ad23..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/Clock.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public interface Clock> { - TimestampT getTimestamp(); - - TimestampT peekTimestamp(); - - TimestampT updateTimestamp(TimestampT receivedTimestamp); -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/CombinedTimestamp.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/CombinedTimestamp.java deleted file mode 100644 index 7cece885..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/CombinedTimestamp.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.io.Serializable; -import java.util.Comparator; - -public record CombinedTimestamp, PeerIdT extends Comparable> - (TimestampT timestamp, - PeerIdT nodeId) implements Comparable>, Serializable { - - @Override - public int compareTo(CombinedTimestamp o) { - if (nodeId == null || o.nodeId == null) { - return Comparator.comparing((CombinedTimestamp t) -> t.timestamp) - .compare(this, o); - } - return Comparator.comparing((CombinedTimestamp t) -> t.timestamp) - .thenComparing((CombinedTimestamp t) -> t.nodeId) - .compare(this, o); - } -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/KleppmannTree.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/KleppmannTree.java deleted file mode 100644 index 937b9a95..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/KleppmannTree.java +++ /dev/null @@ -1,447 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.*; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class KleppmannTree, PeerIdT extends Comparable, MetaT extends NodeMeta, NodeIdT> { - private static final Logger LOGGER = Logger.getLogger(KleppmannTree.class.getName()); - - private final StorageInterface _storage; - private final PeerInterface _peers; - private final Clock _clock; - private final OpRecorder _opRecorder; - - public KleppmannTree(StorageInterface storage, - PeerInterface peers, - Clock clock, - OpRecorder opRecorder) { - _storage = storage; - _peers = peers; - _clock = clock; - _opRecorder = opRecorder; - } - - private NodeIdT traverseImpl(NodeIdT fromId, List names) { - if (names.isEmpty()) return fromId; - - var from = _storage.getById(fromId); - NodeIdT childId; - childId = from.children().get(names.getFirst()); - - if (childId == null) - return null; - - return traverseImpl(childId, names.subList(1, names.size())); - } - - public NodeIdT traverse(NodeIdT fromId, List names) { - return traverseImpl(fromId, names.subList(1, names.size())); - } - - public NodeIdT traverse(List names) { - return traverseImpl(_storage.getRootId(), names); - } - - private void undoEffect(LogEffect effect) { - if (effect.oldInfo() != null) { - var node = _storage.getById(effect.childId()); - var curParent = _storage.getById(effect.newParentId()); - { - var newCurParentChildren = curParent.children().minus(node.name()); - curParent = curParent.withChildren(newCurParentChildren); - _storage.putNode(curParent); - } - - if (effect.oldInfo().oldMeta() != null - && node.meta() != null - && !node.meta().getClass().equals(effect.oldInfo().oldMeta().getClass())) - throw new IllegalArgumentException("Class mismatch for meta for node " + node.key()); - - // Needs to be read after changing curParent, as it might be the same node - var oldParent = _storage.getById(effect.oldInfo().oldParent()); - { - var newOldParentChildren = oldParent.children().plus(effect.oldName(), node.key()); - oldParent = oldParent.withChildren(newOldParentChildren); - _storage.putNode(oldParent); - } - _storage.putNode( - node.withMeta(effect.oldInfo().oldMeta()) - .withParent(effect.oldInfo().oldParent()) - .withLastEffectiveOp(effect.oldInfo().oldEffectiveMove()) - ); - } else { - var node = _storage.getById(effect.childId()); - var curParent = _storage.getById(effect.newParentId()); - { - var newCurParentChildren = curParent.children().minus(node.name()); - curParent = curParent.withChildren(newCurParentChildren); - _storage.putNode(curParent); - } - _storage.putNode( - node.withParent(null) - .withLastEffectiveOp(null) - ); - } - } - - private void undoOp(LogRecord op) { - LOGGER.finer(() -> "Will undo op: " + op); - if (op.effects() != null) - for (var e : op.effects().reversed()) - undoEffect(e); - } - - private void redoOp(Map.Entry, LogRecord> entry) { - var newEffects = doOp(entry.getValue().op(), false); - _storage.getLog().replace(entry.getKey(), newEffects); - } - - private void doAndPut(OpMove op, boolean failCreatingIfExists) { - var res = doOp(op, failCreatingIfExists); - _storage.getLog().put(res.op().timestamp(), res); - } - - private void tryTrimLog() { - var log = _storage.getLog(); - var timeLog = _storage.getPeerTimestampLog(); - TimestampT min = null; - for (var e : _peers.getAllPeers()) { - var got = timeLog.getForPeer(e); - if (got == null) return; - if (min == null) { - min = got; - continue; - } - if (got.compareTo(min) < 0) - min = got; - } - if (min == null) return; - - var threshold = new CombinedTimestamp(min, null); - - if (!log.isEmpty() && log.peekOldest().getLeft().compareTo(threshold) <= 0) { - Set inTrash = new HashSet<>(); - - { - Pair, LogRecord> entry = null; - while ((entry = log.peekOldest()) != null - && entry.getLeft().compareTo(threshold) <= 0) { - log.takeOldest(); - if (entry.getRight().effects() != null) - for (var e : entry.getRight().effects()) { - if (Objects.equals(e.newParentId(), _storage.getTrashId())) { - inTrash.add(e.childId()); - } else { - inTrash.remove(e.childId()); - } - } - } - } - - if (!inTrash.isEmpty()) { - var trash = _storage.getById(_storage.getTrashId()); - for (var n : inTrash) { - var node = _storage.getById(n); - { - if (!trash.children().containsKey(n.toString())) - LOGGER.severe("Node " + node.key() + " not found in trash but should be there"); - trash = trash.withChildren(trash.children().minus(n.toString())); - _storage.putNode(trash); - } - _storage.removeNode(n); - } - } - } else { - LOGGER.fine("Nothing to trim"); - } - } - - public void move(NodeIdT newParent, LocalMetaT newMeta, NodeIdT child) { - move(newParent, newMeta, child, true); - } - - public void move(NodeIdT newParent, MetaT newMeta, NodeIdT child, boolean failCreatingIfExists) { - var createdMove = createMove(newParent, newMeta, child); - applyOp(_peers.getSelfId(), createdMove, failCreatingIfExists); - _opRecorder.recordOp(createdMove); - } - - public void applyExternalOp(PeerIdT from, OpMove op) { - _clock.updateTimestamp(op.timestamp().timestamp()); - applyOp(from, op, false); - } - - // Returns true if the timestamp is newer than what's seen, false otherwise - private boolean updateTimestampImpl(PeerIdT from, TimestampT newTimestamp) { - TimestampT oldRef = _storage.getPeerTimestampLog().getForPeer(from); - if (oldRef != null && oldRef.compareTo(newTimestamp) >= 0) { // FIXME? - LOGGER.warning("Wrong op order: received older than known from " + from.toString()); - return false; - } - _storage.getPeerTimestampLog().putForPeer(from, newTimestamp); - return true; - } - - public void updateExternalTimestamp(PeerIdT from, TimestampT timestamp) { - var gotExt = _storage.getPeerTimestampLog().getForPeer(from); - var gotSelf = _storage.getPeerTimestampLog().getForPeer(_peers.getSelfId()); - if (!(gotExt != null && gotExt.compareTo(timestamp) >= 0)) - updateTimestampImpl(from, timestamp); - if (!(gotSelf != null && gotSelf.compareTo(_clock.peekTimestamp()) >= 0)) - updateTimestampImpl(_peers.getSelfId(), _clock.peekTimestamp()); // FIXME:? Kind of a hack? - tryTrimLog(); - } - - private void applyOp(PeerIdT from, OpMove op, boolean failCreatingIfExists) { - if (!updateTimestampImpl(op.timestamp().nodeId(), op.timestamp().timestamp())) return; - - LOGGER.finer(() -> "Will apply op: " + op + " from " + from); - - var log = _storage.getLog(); - - // FIXME: hack? - int cmp = log.isEmpty() ? 1 : op.timestamp().compareTo(log.peekNewest().getKey()); - - if (log.containsKey(op.timestamp())) { - tryTrimLog(); - return; - } - assert cmp != 0; - if (cmp < 0) { - if (log.containsKey(op.timestamp())) return; - var toUndo = log.newestSlice(op.timestamp(), false); - for (var entry : toUndo.reversed()) { - undoOp(entry.getValue()); - } - doAndPut(op, failCreatingIfExists); - for (var entry : toUndo) { - redoOp(entry); - } - tryTrimLog(); - } else { - doAndPut(op, failCreatingIfExists); - tryTrimLog(); - } - } - - private CombinedTimestamp getTimestamp() { - return new CombinedTimestamp<>(_clock.getTimestamp(), _peers.getSelfId()); - } - - private OpMove createMove(NodeIdT newParent, LocalMetaT newMeta, NodeIdT node) { - return new OpMove<>(getTimestamp(), newParent, newMeta, node); - } - - private LogRecord doOp(OpMove op, boolean failCreatingIfExists) { - LOGGER.finer(() -> "Doing op: " + op); - LogRecord computed; - try { - computed = computeEffects(op, failCreatingIfExists); - } catch (AlreadyExistsException aex) { - throw aex; - } catch (Exception e) { - throw new RuntimeException("Error computing effects for op " + op.toString(), e); - } - - if (computed.effects() != null) - applyEffects(op, computed.effects()); - return computed; - } - - private TreeNode getNewNode(NodeIdT key, NodeIdT parent, MetaT meta) { - return _storage.createNewNode(key, parent, meta); - } - - private void applyEffects(OpMove sourceOp, List> effects) { - for (var effect : effects) { - LOGGER.finer(() -> "Applying effect: " + effect + " from op " + sourceOp); - TreeNode oldParentNode = null; - TreeNode newParentNode; - TreeNode node; - - if (effect.oldInfo() != null) { - oldParentNode = _storage.getById(effect.oldInfo().oldParent()); - } - if (oldParentNode == null) { - node = getNewNode(effect.childId(), effect.newParentId(), effect.newMeta()); - } else { - node = _storage.getById(effect.childId()); - } - if (oldParentNode != null) { - var newOldParentChildren = oldParentNode.children().minus(effect.oldName()); - oldParentNode = oldParentNode.withChildren(newOldParentChildren); - _storage.putNode(oldParentNode); - } - - // Needs to be read after changing oldParentNode, as it might be the same node - newParentNode = _storage.getById(effect.newParentId()); - - { - var newNewParentChildren = newParentNode.children().plus(effect.newName(), effect.childId()); - newParentNode = newParentNode.withChildren(newNewParentChildren); - _storage.putNode(newParentNode); - } - if (effect.newParentId().equals(_storage.getTrashId()) && - !Objects.equals(effect.newName(), effect.childId().toString())) - throw new IllegalArgumentException("Move to trash should have id of node as name"); - _storage.putNode( - node.withParent(effect.newParentId()) - .withMeta(effect.newMeta()) - .withLastEffectiveOp(sourceOp) - ); - } - } - - private LogRecord computeEffects(OpMove op, boolean failCreatingIfExists) { - var node = _storage.getById(op.childId()); - - NodeIdT oldParentId = (node != null && node.parent() != null) ? node.parent() : null; - NodeIdT newParentId = op.newParentId(); - TreeNode newParent = _storage.getById(newParentId); - - - if (newParent == null) { - LOGGER.log(Level.SEVERE, "New parent not found " + op.newName() + " " + op.childId()); - - // Creation - if (oldParentId == null) { - LOGGER.severe(() -> "Creating both dummy parent and child node"); - return new LogRecord<>(op, List.of( - new LogEffect<>(null, op, _storage.getLostFoundId(), null, newParentId), - new LogEffect<>(null, op, newParentId, op.newMeta(), op.childId()) - )); - } else { - LOGGER.severe(() -> "Moving child node to dummy parent"); - return new LogRecord<>(op, List.of( - new LogEffect<>(null, op, _storage.getLostFoundId(), null, newParentId), - new LogEffect<>(new LogEffectOld<>(node.lastEffectiveOp(), oldParentId, node.meta()), op, op.newParentId(), op.newMeta(), op.childId()) - )); - } - } - - if (oldParentId == null) { - var conflictNodeId = newParent.children().get(op.newName()); - - if (conflictNodeId != null) { - if (failCreatingIfExists) - throw new AlreadyExistsException("Already exists: " + op.newName() + ": " + conflictNodeId); - - var conflictNode = _storage.getById(conflictNodeId); - MetaT conflictNodeMeta = conflictNode.meta(); - - LOGGER.finer(() -> "Node creation conflict: " + conflictNode); - - String newConflictNodeName = op.newName() + ".conflict." + conflictNode.key(); - String newOursName = op.newName() + ".conflict." + op.childId(); - return new LogRecord<>(op, List.of( - new LogEffect<>(new LogEffectOld<>(conflictNode.lastEffectiveOp(), newParentId, conflictNodeMeta), conflictNode.lastEffectiveOp(), newParentId, (MetaT) conflictNodeMeta.withName(newConflictNodeName), conflictNodeId), - new LogEffect<>(null, op, op.newParentId(), (MetaT) op.newMeta().withName(newOursName), op.childId()) - )); - } else { - LOGGER.finer(() -> "Simple node creation"); - return new LogRecord<>(op, List.of( - new LogEffect<>(null, op, newParentId, op.newMeta(), op.childId()) - )); - } - } - - if (Objects.equals(op.childId(), op.newParentId()) || isAncestor(op.childId(), op.newParentId())) { - return new LogRecord<>(op, null); - } - - MetaT oldMeta = node.meta(); - if (oldMeta != null - && op.newMeta() != null - && !oldMeta.getClass().equals(op.newMeta().getClass())) { - throw new RuntimeException("Class mismatch for meta for node " + node.key()); - } - - var replaceNodeId = newParent.children().get(op.newName()); - if (replaceNodeId != null) { - var replaceNode = _storage.getById(replaceNodeId); - var replaceNodeMeta = replaceNode.meta(); - - LOGGER.finer(() -> "Node replacement: " + replaceNode); - - return new LogRecord<>(op, List.of( - new LogEffect<>(new LogEffectOld<>(replaceNode.lastEffectiveOp(), newParentId, replaceNodeMeta), replaceNode.lastEffectiveOp(), _storage.getTrashId(), (MetaT) replaceNodeMeta.withName(replaceNodeId.toString()), replaceNodeId), - new LogEffect<>(new LogEffectOld<>(node.lastEffectiveOp(), oldParentId, oldMeta), op, op.newParentId(), op.newMeta(), op.childId()) - )); - } - - LOGGER.finer(() -> "Simple node move"); - return new LogRecord<>(op, List.of( - new LogEffect<>(new LogEffectOld<>(node.lastEffectiveOp(), oldParentId, oldMeta), op, op.newParentId(), op.newMeta(), op.childId()) - )); - } - - private boolean isAncestor(NodeIdT child, NodeIdT parent) { - var node = _storage.getById(parent); - NodeIdT curParent; - while ((curParent = node.parent()) != null) { - if (Objects.equals(child, curParent)) return true; - node = _storage.getById(curParent); - } - return false; - } - - public void walkTree(Consumer> consumer) { - ArrayDeque queue = new ArrayDeque<>(); - queue.push(_storage.getRootId()); - - while (!queue.isEmpty()) { - var id = queue.pop(); - var node = _storage.getById(id); - if (node == null) continue; - queue.addAll(node.children().values()); - consumer.accept(node); - } - } - - public Pair findParent(Function, Boolean> kidPredicate) { - ArrayDeque queue = new ArrayDeque<>(); - queue.push(_storage.getRootId()); - - while (!queue.isEmpty()) { - var id = queue.pop(); - var node = _storage.getById(id); - if (node == null) continue; - var children = node.children(); - for (var childEntry : children.entrySet()) { - var child = _storage.getById(childEntry.getValue()); - if (kidPredicate.apply(child)) { - return Pair.of(childEntry.getKey(), node.key()); - } - } - queue.addAll(children.values()); - } - return null; - } - - public void recordBoostrapFor(PeerIdT host) { - TreeMap, OpMove> result = new TreeMap<>(); - - walkTree(node -> { - var op = node.lastEffectiveOp(); - if (node.lastEffectiveOp() == null) return; - LOGGER.info("visited bootstrap op for " + host + ": " + op.timestamp().toString() + " " + op.newName() + " " + op.childId() + "->" + op.newParentId()); - result.put(node.lastEffectiveOp().timestamp(), node.lastEffectiveOp()); - }); - - for (var le : _storage.getLog().getAll()) { - var op = le.getValue().op(); - LOGGER.info("bootstrap op from log for " + host + ": " + op.timestamp().toString() + " " + op.newName() + " " + op.childId() + "->" + op.newParentId()); - result.put(le.getKey(), le.getValue().op()); - } - - for (var op : result.values()) { - LOGGER.info("Recording bootstrap op for " + host + ": " + op.timestamp().toString() + " " + op.newName() + " " + op.childId() + "->" + op.newParentId()); - _opRecorder.recordOpForPeer(host, op); - } - } -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffect.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffect.java deleted file mode 100644 index c428b13b..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffect.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.io.Serializable; - -public record LogEffect, PeerIdT extends Comparable, MetaT extends NodeMeta, NodeIdT>( - LogEffectOld oldInfo, - OpMove effectiveOp, - NodeIdT newParentId, - MetaT newMeta, - NodeIdT childId) implements Serializable { - public String oldName() { - if (oldInfo.oldMeta() != null) { - return oldInfo.oldMeta().name(); - } - return childId.toString(); - } - - public String newName() { - if (newMeta != null) { - return newMeta.name(); - } - return childId.toString(); - } -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffectOld.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffectOld.java deleted file mode 100644 index c1c0a477..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogEffectOld.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.io.Serializable; - -public record LogEffectOld, PeerIdT extends Comparable, MetaT extends NodeMeta, NodeIdT> - (OpMove oldEffectiveMove, - NodeIdT oldParent, - MetaT oldMeta) implements Serializable { -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogInterface.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogInterface.java deleted file mode 100644 index aa20ae46..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogInterface.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; - -public interface LogInterface< - TimestampT extends Comparable, - PeerIdT extends Comparable, - MetaT extends NodeMeta, - NodeIdT> { - Pair, LogRecord> peekOldest(); - - Pair, LogRecord> takeOldest(); - - Pair, LogRecord> peekNewest(); - - List, LogRecord>> - newestSlice(CombinedTimestamp since, boolean inclusive); - - List, LogRecord>> getAll(); - - boolean isEmpty(); - - boolean containsKey(CombinedTimestamp timestamp); - - long size(); - - void put(CombinedTimestamp timestamp, LogRecord record); - - void replace(CombinedTimestamp timestamp, LogRecord record); -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogRecord.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogRecord.java deleted file mode 100644 index 2fb036c4..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/LogRecord.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.io.Serializable; -import java.util.List; - -public record LogRecord, PeerIdT extends Comparable, MetaT extends NodeMeta, NodeIdT> - (OpMove op, - List> effects) implements Serializable { -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/NodeMeta.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/NodeMeta.java deleted file mode 100644 index c3641911..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/NodeMeta.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.io.Serializable; - -public interface NodeMeta extends Serializable { - String name(); - - NodeMeta withName(String name); -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpMove.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpMove.java deleted file mode 100644 index 7db59051..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpMove.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.io.Serializable; - -public record OpMove, PeerIdT extends Comparable, MetaT extends NodeMeta, NodeIdT> - (CombinedTimestamp timestamp, NodeIdT newParentId, MetaT newMeta, - NodeIdT childId) implements Serializable { - public String newName() { - if (newMeta != null) - return newMeta.name(); - return childId.toString(); - } -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpRecorder.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpRecorder.java deleted file mode 100644 index 10a91aa5..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/OpRecorder.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public interface OpRecorder, PeerIdT extends Comparable, MetaT extends NodeMeta, NodeIdT> { - void recordOp(OpMove op); - - void recordOpForPeer(PeerIdT peer, OpMove op); -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerInterface.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerInterface.java deleted file mode 100644 index 1df31344..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerInterface.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.util.Collection; - -public interface PeerInterface> { - PeerIdT getSelfId(); - - Collection getAllPeers(); -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerTimestampLogInterface.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerTimestampLogInterface.java deleted file mode 100644 index acf8f10f..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/PeerTimestampLogInterface.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public interface PeerTimestampLogInterface< - TimestampT extends Comparable, - PeerIdT extends Comparable> { - - TimestampT getForPeer(PeerIdT peerId); - - void putForPeer(PeerIdT peerId, TimestampT timestamp); - -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/StorageInterface.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/StorageInterface.java deleted file mode 100644 index 763dccb8..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/StorageInterface.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public interface StorageInterface< - TimestampT extends Comparable, - PeerIdT extends Comparable, - MetaT extends NodeMeta, - NodeIdT> { - NodeIdT getRootId(); - - NodeIdT getTrashId(); - - NodeIdT getLostFoundId(); - - NodeIdT getNewNodeId(); - - TreeNode getById(NodeIdT id); - - // Creates a node, returned wrapper is RW-locked - TreeNode createNewNode(NodeIdT key, NodeIdT parent, MetaT meta); - - void putNode(TreeNode node); - - void removeNode(NodeIdT id); - - LogInterface getLog(); - - PeerTimestampLogInterface getPeerTimestampLog(); -} diff --git a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/TreeNode.java b/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/TreeNode.java deleted file mode 100644 index 708cd6a1..00000000 --- a/dhfs-parent/kleppmanntree/src/main/java/com/usatiuk/kleppmanntree/TreeNode.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import jakarta.annotation.Nullable; -import org.pcollections.PMap; - -import java.io.Serializable; - -public interface TreeNode, PeerIdT extends Comparable, MetaT extends NodeMeta, NodeIdT> extends Serializable { - NodeIdT key(); - - NodeIdT parent(); - - OpMove lastEffectiveOp(); - - @Nullable - MetaT meta(); - - default String name() { - var meta = meta(); - if (meta != null) return meta.name(); - return key().toString(); - } - - PMap children(); - - TreeNode withParent(NodeIdT parent); - - TreeNode withLastEffectiveOp(OpMove lastEffectiveOp); - - TreeNode withMeta(MetaT meta); - - TreeNode withChildren(PMap children); -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/KleppmanTreeSimpleTest.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/KleppmanTreeSimpleTest.java deleted file mode 100644 index 46f71686..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/KleppmanTreeSimpleTest.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; - -import java.util.List; - -public class KleppmanTreeSimpleTest { - private final TestNode testNode1 = new TestNode(1); - private final TestNode testNode2 = new TestNode(2); - private final TestNode testNode3 = new TestNode(3); - - @Test - void circularTest() { - var d1id = testNode1._storageInterface.getNewNodeId(); - var d2id = testNode2._storageInterface.getNewNodeId(); - testNode1._tree.move(testNode1._storageInterface.getRootId(), new TestNodeMetaDir("Test1"), d1id); - testNode2._tree.move(testNode1._storageInterface.getRootId(), new TestNodeMetaDir("Test2"), d2id); - - { - var r1 = testNode1.getRecorded(); - Assertions.assertEquals(1, r1.size()); - testNode2._tree.applyExternalOp(1L, r1.getFirst()); - - var r2 = testNode2.getRecorded(); - Assertions.assertEquals(1, r2.size()); - testNode1._tree.applyExternalOp(2L, r2.getFirst()); - } - - Assertions.assertEquals(d1id, testNode1._tree.traverse(List.of("Test1"))); - Assertions.assertEquals(d2id, testNode1._tree.traverse(List.of("Test2"))); - Assertions.assertEquals(d1id, testNode2._tree.traverse(List.of("Test1"))); - Assertions.assertEquals(d2id, testNode2._tree.traverse(List.of("Test2"))); - - Assertions.assertIterableEquals(List.of("Test1", "Test2"), testNode1._storageInterface.getById(testNode2._storageInterface.getRootId()).children().keySet()); - Assertions.assertIterableEquals(List.of("Test1", "Test2"), testNode2._storageInterface.getById(testNode2._storageInterface.getRootId()).children().keySet()); - - var f1id = testNode1._storageInterface.getNewNodeId(); - - testNode1._tree.move(d2id, new TestNodeMetaFile("TestFile", 1234), f1id); - { - var r1 = testNode1.getRecorded(); - Assertions.assertEquals(1, r1.size()); - testNode2._tree.applyExternalOp(1L, r1.getFirst()); - } - - Assertions.assertEquals(f1id, testNode1._tree.traverse(List.of("Test2", "TestFile"))); - Assertions.assertEquals(f1id, testNode2._tree.traverse(List.of("Test2", "TestFile"))); - - var cop1 = new OpMove<>(new CombinedTimestamp<>(testNode1._clock.getTimestamp(), 1L), - d1id, - new TestNodeMetaDir("Test2"), - d2id); - testNode1._tree.move(d1id, new TestNodeMetaDir("Test2"), d2id); - Assertions.assertEquals(d1id, testNode1._tree.traverse(List.of("Test1"))); - Assertions.assertEquals(d2id, testNode1._tree.traverse(List.of("Test1", "Test2"))); - Assertions.assertIterableEquals(List.of("Test1"), testNode1._storageInterface.getById(testNode2._storageInterface.getRootId()).children().keySet()); - - testNode2._tree.move(d2id, new TestNodeMetaDir("Test1"), d1id); - Assertions.assertIterableEquals(List.of("Test2"), testNode2._storageInterface.getById(testNode2._storageInterface.getRootId()).children().keySet()); - Assertions.assertEquals(d2id, testNode2._tree.traverse(List.of("Test2"))); - Assertions.assertEquals(d1id, testNode2._tree.traverse(List.of("Test2", "Test1"))); - - { - var r1 = testNode1.getRecorded(); - Assertions.assertEquals(1, r1.size()); - testNode2._tree.applyExternalOp(1L, r1.getFirst()); - - var r2 = testNode2.getRecorded(); - Assertions.assertEquals(1, r2.size()); - testNode1._tree.applyExternalOp(2L, r2.getFirst()); - } - - // Second node wins as it has smaller timestamp - Assertions.assertIterableEquals(List.of("Test2"), testNode1._storageInterface.getById(testNode2._storageInterface.getRootId()).children().keySet()); - Assertions.assertIterableEquals(List.of("Test1", "TestFile"), testNode1._storageInterface.getById(d2id).children().keySet().stream().sorted().toList()); - Assertions.assertEquals(d2id, testNode1._tree.traverse(List.of("Test2"))); - Assertions.assertEquals(d1id, testNode1._tree.traverse(List.of("Test2", "Test1"))); - Assertions.assertEquals(f1id, testNode1._tree.traverse(List.of("Test2", "TestFile"))); - - var f11 = testNode1._storageInterface.getById(f1id); - var f12 = testNode2._storageInterface.getById(f1id); - - Assertions.assertEquals(f11.meta(), f12.meta()); - Assertions.assertInstanceOf(TestNodeMetaFile.class, f11.meta()); - - // Trim test - Assertions.assertTrue(testNode1._storageInterface.getLog().size() <= 1); - Assertions.assertTrue(testNode2._storageInterface.getLog().size() <= 1); - } - - @ParameterizedTest - @ValueSource(booleans = {true, false}) - void undoWithRenameTest(boolean opOrder) { - var d1id = testNode1._storageInterface.getNewNodeId(); - var d2id = testNode2._storageInterface.getNewNodeId(); - var d3id = testNode3._storageInterface.getNewNodeId(); - testNode1._tree.move(testNode1._storageInterface.getRootId(), new TestNodeMetaDir("Test1"), d1id); - testNode2._tree.move(testNode1._storageInterface.getRootId(), new TestNodeMetaDir("Test1"), d2id); - testNode3._tree.move(testNode1._storageInterface.getRootId(), new TestNodeMetaDir("Test1"), d3id); - var r1 = testNode1.getRecorded(); - var r2 = testNode2.getRecorded(); - var r3 = testNode3.getRecorded(); - Assertions.assertEquals(1, r1.size()); - Assertions.assertEquals(1, r2.size()); - Assertions.assertEquals(1, r3.size()); - - if (opOrder) { - testNode2._tree.applyExternalOp(3L, r3.getFirst()); - testNode2._tree.applyExternalOp(1L, r1.getFirst()); - } else { - testNode2._tree.applyExternalOp(1L, r1.getFirst()); - testNode2._tree.applyExternalOp(3L, r3.getFirst()); - } - - Assertions.assertIterableEquals(List.of("Test1", "Test1.conflict." + d1id, "Test1.conflict." + d2id), testNode2._storageInterface.getById(testNode2._storageInterface.getRootId()).children().keySet()); - - if (opOrder) { - testNode1._tree.applyExternalOp(3L, r3.getFirst()); - testNode1._tree.applyExternalOp(2L, r2.getFirst()); - } else { - testNode1._tree.applyExternalOp(2L, r2.getFirst()); - testNode1._tree.applyExternalOp(3L, r3.getFirst()); - } - - Assertions.assertIterableEquals(List.of("Test1", "Test1.conflict." + d1id, "Test1.conflict." + d2id), testNode1._storageInterface.getById(testNode1._storageInterface.getRootId()).children().keySet()); - - if (opOrder) { - testNode3._tree.applyExternalOp(2L, r2.getFirst()); - testNode3._tree.applyExternalOp(1L, r1.getFirst()); - } else { - testNode3._tree.applyExternalOp(1L, r1.getFirst()); - testNode3._tree.applyExternalOp(2L, r2.getFirst()); - } - - Assertions.assertIterableEquals(List.of("Test1", "Test1.conflict." + d1id, "Test1.conflict." + d2id), testNode3._storageInterface.getById(testNode3._storageInterface.getRootId()).children().keySet()); - } - - @Test - void noFailedOpRecordTest() { - var d1id = testNode1._storageInterface.getNewNodeId(); - var d2id = testNode1._storageInterface.getNewNodeId(); - testNode1._tree.move(testNode1._storageInterface.getRootId(), new TestNodeMetaDir("Test1"), d1id); - Assertions.assertThrows(AlreadyExistsException.class, () -> testNode1._tree.move(testNode1._storageInterface.getRootId(), new TestNodeMetaDir("Test1"), d2id)); - var r1 = testNode1.getRecorded(); - Assertions.assertEquals(1, r1.size()); - } - - @Test - void externalOpWithDummy() { - Long d1id = testNode1._storageInterface.getNewNodeId(); - Long f1id = testNode1._storageInterface.getNewNodeId(); - - testNode1._tree.applyExternalOp(2L, new OpMove<>( - new CombinedTimestamp<>(2L, 2L), d1id, new TestNodeMetaFile("Hi", 123), f1id - )); - testNode1._tree.applyExternalOp(2L, new OpMove<>( - new CombinedTimestamp<>(3L, 2L), testNode1._storageInterface.getRootId(), new TestNodeMetaDir("HiDir"), d1id - )); - - Assertions.assertEquals(f1id, testNode1._tree.traverse(List.of("HiDir", "Hi"))); - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestClock.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestClock.java deleted file mode 100644 index b45e5f30..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestClock.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public class TestClock implements Clock { - private long max = 0; - - @Override - public Long getTimestamp() { - return max++; - } - - @Override - public Long peekTimestamp() { - return max; - } - - @Override - public Long updateTimestamp(Long receivedTimestamp) { - var old = max; - max = Math.max(max, receivedTimestamp) + 1; - return old; - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestLog.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestLog.java deleted file mode 100644 index fd79955f..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestLog.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; -import java.util.NavigableMap; -import java.util.TreeMap; - -public class TestLog implements LogInterface { - private final NavigableMap, LogRecord> _log = new TreeMap<>(); - - @Override - public Pair, LogRecord> peekOldest() { - var ret = _log.firstEntry(); - if (ret == null) return null; - return Pair.of(ret); - } - - @Override - public Pair, LogRecord> takeOldest() { - var ret = _log.pollFirstEntry(); - if (ret == null) return null; - return Pair.of(ret); - } - - @Override - public Pair, LogRecord> peekNewest() { - var ret = _log.lastEntry(); - if (ret == null) return null; - return Pair.of(ret); - } - - @Override - public List, LogRecord>> newestSlice(CombinedTimestamp since, boolean inclusive) { - var tail = _log.tailMap(since, inclusive); - return tail.entrySet().stream().map(e -> Pair.of(e.getKey(), e.getValue())).toList(); - } - - @Override - public List, LogRecord>> getAll() { - return _log.entrySet().stream().map(e -> Pair.of(e.getKey(), e.getValue())).toList(); - } - - @Override - public boolean isEmpty() { - return _log.isEmpty(); - } - - @Override - public boolean containsKey(CombinedTimestamp timestamp) { - return _log.containsKey(timestamp); - } - - @Override - public long size() { - return _log.size(); - } - - @Override - public void put(CombinedTimestamp timestamp, LogRecord record) { - _log.put(timestamp, record); - } - - @Override - public void replace(CombinedTimestamp timestamp, LogRecord record) { - _log.put(timestamp, record); - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNode.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNode.java deleted file mode 100644 index 53f2a7c6..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNode.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.util.ArrayList; -import java.util.List; - -public class TestNode { - protected final long _id; - - protected final TestClock _clock; - protected final TestPeerInterface _peerInterface; - protected final TestStorageInterface _storageInterface; - protected final KleppmannTree _tree; - private final TestOpRecorder _recorder; - - public TestNode(long id) { - _id = id; - _clock = new TestClock(); - _peerInterface = new TestPeerInterface(_id); - _storageInterface = new TestStorageInterface(_id); - _recorder = new TestOpRecorder(); - _tree = new KleppmannTree<>(_storageInterface, _peerInterface, _clock, _recorder); - } - - List> getRecorded() { - var ret = _recorder.ops; - _recorder.ops = new ArrayList<>(); - return ret; - } - - private class TestOpRecorder implements OpRecorder { - ArrayList> ops = new ArrayList<>(); - - @Override - public void recordOp(OpMove op) { - ops.add(op); - } - - @Override - public void recordOpForPeer(Long peer, OpMove op) { - - } - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMeta.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMeta.java deleted file mode 100644 index 3ceeca8a..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMeta.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public abstract class TestNodeMeta implements NodeMeta { - private final String _name; - - public TestNodeMeta(String name) { - _name = name; - } - - @Override - public String name() { - return _name; - } - - abstract public NodeMeta withName(String name); -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaDir.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaDir.java deleted file mode 100644 index a05e01c1..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaDir.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public class TestNodeMetaDir extends TestNodeMeta { - public TestNodeMetaDir(String name) { - super(name); - } - - @Override - public NodeMeta withName(String name) { - return new TestNodeMetaDir(name); - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaFile.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaFile.java deleted file mode 100644 index 9cb0792f..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestNodeMetaFile.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.usatiuk.kleppmanntree; - -public class TestNodeMetaFile extends TestNodeMeta { - private final long _inode; - - public TestNodeMetaFile(String name, long inode) { - super(name); - _inode = inode; - } - - public long getInode() { - return _inode; - } - - @Override - public NodeMeta withName(String name) { - return new TestNodeMetaFile(name, _inode); - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerInterface.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerInterface.java deleted file mode 100644 index 708bb204..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerInterface.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.util.Collection; -import java.util.List; - -public class TestPeerInterface implements PeerInterface { - private final long selfId; - - public TestPeerInterface(long selfId) { - this.selfId = selfId; - } - - @Override - public Long getSelfId() { - return selfId; - } - - @Override - public Collection getAllPeers() { - return List.of(1L, 2L); - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerLog.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerLog.java deleted file mode 100644 index 51103f19..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestPeerLog.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.util.HashMap; -import java.util.Map; - -public class TestPeerLog implements PeerTimestampLogInterface { - private final Map _peerTimestampLog = new HashMap<>(); - - @Override - public Long getForPeer(Long peerId) { - return _peerTimestampLog.get(peerId); - } - - @Override - public void putForPeer(Long peerId, Long timestamp) { - _peerTimestampLog.put(peerId, timestamp); - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestStorageInterface.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestStorageInterface.java deleted file mode 100644 index bb041897..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestStorageInterface.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import java.util.HashMap; -import java.util.Map; - -public class TestStorageInterface implements StorageInterface { - private final long _peerId; - private final Map _nodes = new HashMap<>(); - private final TestLog _log = new TestLog(); - private final TestPeerLog _peerLog = new TestPeerLog(); - private long _curId = 1; - - public TestStorageInterface(long peerId) { - _peerId = peerId; - _nodes.put(getRootId(), new TestTreeNode(getRootId(), null, null)); - _nodes.put(getTrashId(), new TestTreeNode(getTrashId(), null, null)); - _nodes.put(getLostFoundId(), new TestTreeNode(getLostFoundId(), null, null)); - } - - @Override - public Long getRootId() { - return 0L; - } - - @Override - public Long getTrashId() { - return -1L; - } - - @Override - public Long getLostFoundId() { - return -2L; - } - - @Override - public Long getNewNodeId() { - return _curId++ | _peerId << 32; - } - - @Override - public TestTreeNode getById(Long id) { - return _nodes.get(id); - } - - @Override - public TestTreeNode createNewNode(Long key, Long parent, TestNodeMeta meta) { - return new TestTreeNode(key, parent, meta); - } - - @Override - public void putNode(TreeNode node) { - _nodes.put(node.key(), (TestTreeNode) node); - } - - @Override - public void removeNode(Long id) { - if (!_nodes.containsKey(id)) - throw new IllegalStateException("Node with id " + id + " doesn't exist"); - _nodes.remove(id); - } - - @Override - public LogInterface getLog() { - return _log; - } - - - @Override - public PeerTimestampLogInterface getPeerTimestampLog() { - return _peerLog; - } -} diff --git a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestTreeNode.java b/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestTreeNode.java deleted file mode 100644 index 373eb580..00000000 --- a/dhfs-parent/kleppmanntree/src/test/java/com/usatiuk/kleppmanntree/TestTreeNode.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.usatiuk.kleppmanntree; - -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; - -public record TestTreeNode(Long key, Long parent, OpMove lastEffectiveOp, - TestNodeMeta meta, - PMap children) implements TreeNode { - - public TestTreeNode(Long id, Long parent, TestNodeMeta meta) { - this(id, parent, null, meta, HashTreePMap.empty()); - } - - @Override - public TreeNode withParent(Long parent) { - return new TestTreeNode(key, parent, lastEffectiveOp, meta, children); - } - - @Override - public TreeNode withLastEffectiveOp(OpMove lastEffectiveOp) { - return new TestTreeNode(key, parent, lastEffectiveOp, meta, children); - } - - @Override - public TreeNode withMeta(TestNodeMeta meta) { - return new TestTreeNode(key, parent, lastEffectiveOp, meta, children); - } - - @Override - public TreeNode withChildren(PMap children) { - return new TestTreeNode(key, parent, lastEffectiveOp, meta, children); - } -} diff --git a/dhfs-parent/objects/pom.xml b/dhfs-parent/objects/pom.xml deleted file mode 100644 index f79b8e9b..00000000 --- a/dhfs-parent/objects/pom.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - 4.0.0 - - com.usatiuk.dhfs - parent - 1.0-SNAPSHOT - - - objects - - - 21 - 21 - UTF-8 - - - - - net.jqwik - jqwik - test - - - io.quarkus - quarkus-junit5 - test - - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-grpc - - - net.openhft - zero-allocation-hashing - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.apache.commons - commons-lang3 - - - org.jboss.slf4j - slf4j-jboss-logmanager - test - - - com.usatiuk.dhfs - utils - 1.0-SNAPSHOT - - - io.quarkus - quarkus-junit5-mockito - test - - - org.lmdbjava - lmdbjava - 0.9.1 - - - org.apache.commons - commons-collections4 - - - org.pcollections - pcollections - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 1C - false - classes - - - false - - - - - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - quarkus-plugin - - generate-code - generate-code-tests - - - - - - - - \ No newline at end of file diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JData.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JData.java deleted file mode 100644 index d1af85f9..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JData.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.objects; - -import java.io.Serializable; - -public interface JData extends Serializable { - JObjectKey key(); - - default int estimateSize() { - return 100; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapper.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapper.java deleted file mode 100644 index 04328ef9..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.usatiuk.objects; - -import com.usatiuk.objects.iterators.Data; - -public sealed interface JDataVersionedWrapper extends Data permits JDataVersionedWrapperLazy, JDataVersionedWrapperImpl { - @Override - default JDataVersionedWrapper value() { - return this; - } - - JData data(); - - long version(); - - int estimateSize(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperImpl.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperImpl.java deleted file mode 100644 index 3a2bce6d..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.usatiuk.objects; - -import jakarta.annotation.Nonnull; - -import java.io.Serializable; - -public record JDataVersionedWrapperImpl(@Nonnull JData data, - long version) implements Serializable, JDataVersionedWrapper { - @Override - public int estimateSize() { - return data().estimateSize(); - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java deleted file mode 100644 index b1ef09e6..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.usatiuk.objects; - -import java.util.function.Supplier; - -public final class JDataVersionedWrapperLazy implements JDataVersionedWrapper { - private final long _version; - private final int _estimatedSize; - private JData _data; - private Supplier _producer; - - public JDataVersionedWrapperLazy(long version, int estimatedSize, Supplier producer) { - _version = version; - _estimatedSize = estimatedSize; - _producer = producer; - } - - public void setCacheCallback(Runnable cacheCallback) { - if (_data != null) { - throw new IllegalStateException("Cache callback can be set only before data is loaded"); - } - var oldProducer = _producer; - _producer = () -> { - var ret = oldProducer.get(); - cacheCallback.run(); - return ret; - }; - } - - public JData data() { - if (_data != null) - return _data; - - synchronized (this) { - if (_data != null) - return _data; - - _data = _producer.get(); - _producer = null; - return _data; - } - } - - public long version() { - return _version; - } - - @Override - public int estimateSize() { - return _estimatedSize; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperSerializer.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperSerializer.java deleted file mode 100644 index b5a9238a..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperSerializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.usatiuk.objects; - - -import com.google.protobuf.ByteString; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -import java.nio.ByteBuffer; - -@Singleton -public class JDataVersionedWrapperSerializer { - @Inject - ObjectSerializer dataSerializer; - - public ByteString serialize(JDataVersionedWrapper obj) { - ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); - buffer.putLong(obj.version()); - buffer.flip(); - return ByteString.copyFrom(buffer).concat(dataSerializer.serialize(obj.data())); - } - - public JDataVersionedWrapper deserialize(ByteBuffer data) { - var version = data.getLong(); - return new JDataVersionedWrapperLazy(version, data.remaining(), - () -> dataSerializer.deserialize(data) - ); - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKey.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKey.java deleted file mode 100644 index 93bd080c..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKey.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.usatiuk.objects; - -import java.io.Serializable; -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; -import java.util.UUID; - -public sealed interface JObjectKey extends Serializable, Comparable permits JObjectKeyImpl, JObjectKeyMax, JObjectKeyMin { - JObjectKeyMin MIN = new JObjectKeyMin(); - JObjectKeyMax MAX = new JObjectKeyMax(); - - static JObjectKey of(String value) { - return new JObjectKeyImpl(value); - } - - static JObjectKey random() { - return new JObjectKeyImpl(UUID.randomUUID().toString()); - } - - static JObjectKey first() { - return MIN; - } - - static JObjectKey last() { - return MAX; - } - - static JObjectKey fromBytes(byte[] bytes) { - return new JObjectKeyImpl(new String(bytes, StandardCharsets.ISO_8859_1)); - } - - static JObjectKey fromByteBuffer(ByteBuffer buff) { - byte[] bytes = new byte[buff.remaining()]; - buff.get(bytes); - return new JObjectKeyImpl(bytes); - } - - @Override - int compareTo(JObjectKey o); - - @Override - String toString(); - - ByteBuffer toByteBuffer(); - - String value(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyImpl.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyImpl.java deleted file mode 100644 index eca0af53..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.usatiuk.objects; - -import com.usatiuk.utils.UninitializedByteBuffer; - -import java.io.Serial; -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; -import java.util.Objects; - -public final class JObjectKeyImpl implements JObjectKey { - @Serial - private static final long serialVersionUID = 0L; - private final String value; - private transient ByteBuffer _bb = null; - - public JObjectKeyImpl(String value) { - this.value = value; - } - - public JObjectKeyImpl(byte[] bytes) { - this.value = new String(bytes, StandardCharsets.ISO_8859_1); - } - - @Override - public int compareTo(JObjectKey o) { - switch (o) { - case JObjectKeyImpl jObjectKeyImpl -> { - return value.compareTo(jObjectKeyImpl.value()); - } - case JObjectKeyMax jObjectKeyMax -> { - return -1; - } - case JObjectKeyMin jObjectKeyMin -> { - return 1; - } - } - } - - @Override - public String toString() { - return value; - } - - @Override - public ByteBuffer toByteBuffer() { - if (_bb != null) return _bb; - - synchronized (this) { - if (_bb != null) return _bb; - var bytes = value.getBytes(StandardCharsets.ISO_8859_1); - var directBb = UninitializedByteBuffer.allocate(bytes.length); - directBb.put(bytes); - directBb.flip(); - _bb = directBb; - return directBb; - } - } - - @Override - public String value() { - return value; - } - - @Override - public boolean equals(Object obj) { - if (obj == this) return true; - if (obj == null || obj.getClass() != this.getClass()) return false; - var that = (JObjectKeyImpl) obj; - return Objects.equals(this.value, that.value); - } - - @Override - public int hashCode() { - return value.hashCode(); - } - -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMax.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMax.java deleted file mode 100644 index 982e08b2..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMax.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.usatiuk.objects; - -import java.nio.ByteBuffer; - -public record JObjectKeyMax() implements JObjectKey { - @Override - public int compareTo(JObjectKey o) { - switch (o) { - case JObjectKeyImpl jObjectKeyImpl -> { - return 1; - } - case JObjectKeyMax jObjectKeyMax -> { - return 0; - } - case JObjectKeyMin jObjectKeyMin -> { - return 1; - } - } - } - - @Override - public ByteBuffer toByteBuffer() { - throw new UnsupportedOperationException(); - } - - @Override - public String value() { - throw new UnsupportedOperationException(); - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMin.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMin.java deleted file mode 100644 index 4a8bbc69..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JObjectKeyMin.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.usatiuk.objects; - -import java.nio.ByteBuffer; - -public record JObjectKeyMin() implements JObjectKey { - @Override - public int compareTo(JObjectKey o) { - switch (o) { - case JObjectKeyImpl jObjectKeyImpl -> { - return -1; - } - case JObjectKeyMax jObjectKeyMax -> { - return -1; - } - case JObjectKeyMin jObjectKeyMin -> { - return 0; - } - } - } - - @Override - public ByteBuffer toByteBuffer() { - throw new UnsupportedOperationException(); - } - - @Override - public String value() { - throw new UnsupportedOperationException(); - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JavaDataSerializer.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JavaDataSerializer.java deleted file mode 100644 index 14581634..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JavaDataSerializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.usatiuk.objects; - - -import com.google.protobuf.ByteString; -import com.google.protobuf.UnsafeByteOperations; -import com.usatiuk.utils.SerializationHelper; -import io.quarkus.arc.DefaultBean; -import jakarta.enterprise.context.ApplicationScoped; - -import java.io.IOException; -import java.nio.ByteBuffer; - -@ApplicationScoped -@DefaultBean -public class JavaDataSerializer implements ObjectSerializer { - @Override - public ByteString serialize(JData obj) { - return SerializationHelper.serialize(obj); - } - - public JData deserialize(ByteBuffer data) { - try (var is = UnsafeByteOperations.unsafeWrap(data).newInput()) { - return SerializationHelper.deserialize(is); - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/ObjectSerializer.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/ObjectSerializer.java deleted file mode 100644 index d53d482f..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/ObjectSerializer.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.objects; - -import com.google.protobuf.ByteString; - -import java.nio.ByteBuffer; - -public interface ObjectSerializer { - ByteString serialize(T obj); - - T deserialize(ByteBuffer data); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/CloseableKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/CloseableKvIterator.java deleted file mode 100644 index 89f5fbb5..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/CloseableKvIterator.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.usatiuk.objects.iterators; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.Iterator; - -public interface CloseableKvIterator, V> extends Iterator>, AutoCloseable { - K peekNextKey(); - - void skip(); - - K peekPrevKey(); - - Pair prev(); - - boolean hasPrev(); - - void skipPrev(); - - default CloseableKvIterator reversed() { - return new ReversedKvIterator(this); - } - - @Override - void close(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java deleted file mode 100644 index a129633e..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.usatiuk.objects.iterators; - -public interface Data extends MaybeTombstone { - V value(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java deleted file mode 100644 index 5f38c7e4..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.objects.iterators; - -public record DataWrapper(V value) implements Data { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/IteratorStart.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/IteratorStart.java deleted file mode 100644 index 7eae925f..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/IteratorStart.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.usatiuk.objects.iterators; - -public enum IteratorStart { - LT, - LE, - GT, - GE, -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/KeyPredicateKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/KeyPredicateKvIterator.java deleted file mode 100644 index 475240c1..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/KeyPredicateKvIterator.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.usatiuk.objects.iterators; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.NoSuchElementException; -import java.util.function.Function; - -public class KeyPredicateKvIterator, V> extends ReversibleKvIterator { - private final CloseableKvIterator _backing; - private final Function _filter; - private K _next; - - public KeyPredicateKvIterator(CloseableKvIterator backing, IteratorStart start, K startKey, Function filter) { - _goingForward = true; - _backing = backing; - _filter = filter; - fillNext(); - - boolean shouldGoBack = false; - if (start == IteratorStart.LE) { - if (_next == null || _next.compareTo(startKey) > 0) { - shouldGoBack = true; - } - } else if (start == IteratorStart.LT) { - if (_next == null || _next.compareTo(startKey) >= 0) { - shouldGoBack = true; - } - } - - if (shouldGoBack && _backing.hasPrev()) { - _goingForward = false; - _next = null; - fillNext(); - if (_next != null) - _backing.skipPrev(); - _goingForward = true; -// _backing.skip(); - fillNext(); - } - - -// switch (start) { -// case LT -> { -//// assert _next == null || _next.getKey().compareTo(startKey) < 0; -// } -// case LE -> { -//// assert _next == null || _next.getKey().compareTo(startKey) <= 0; -// } -// case GT -> { -// assert _next == null || _next.compareTo(startKey) > 0; -// } -// case GE -> { -// assert _next == null || _next.compareTo(startKey) >= 0; -// } -// } - } - - private void fillNext() { - while ((_goingForward ? _backing.hasNext() : _backing.hasPrev()) && _next == null) { - var next = _goingForward ? _backing.peekNextKey() : _backing.peekPrevKey(); - if (!_filter.apply(next)) { - if (_goingForward) - _backing.skip(); - else - _backing.skipPrev(); - continue; - } - _next = next; - } - } - - @Override - protected void reverse() { - _goingForward = !_goingForward; - _next = null; - - fillNext(); - } - - @Override - protected K peekImpl() { - if (_next == null) - throw new NoSuchElementException(); - return _next; - } - - @Override - protected void skipImpl() { - if (_next == null) - throw new NoSuchElementException(); - _next = null; - if (_goingForward) - _backing.skip(); - else - _backing.skipPrev(); - fillNext(); - } - - @Override - protected boolean hasImpl() { - return _next != null; - } - - @Override - protected Pair nextImpl() { - if (_next == null) - throw new NoSuchElementException("No more elements"); - var retKey = _next; - _next = null; - var got = _goingForward ? _backing.next() : _backing.prev(); - assert got.getKey().equals(retKey); - fillNext(); - return got; - } - - @Override - public void close() { - _backing.close(); - } - - @Override - public String toString() { - return "KeyPredicateKvIterator{" + - "_backing=" + _backing + - ", _next=" + _next + - '}'; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MappingKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MappingKvIterator.java deleted file mode 100644 index b238564b..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MappingKvIterator.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.usatiuk.objects.iterators; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.function.Function; - -public class MappingKvIterator, V, V_T> implements CloseableKvIterator { - private final CloseableKvIterator _backing; - private final Function _transformer; - - public MappingKvIterator(CloseableKvIterator backing, Function transformer) { - _backing = backing; - _transformer = transformer; - } - - @Override - public K peekNextKey() { - return _backing.peekNextKey(); - } - - @Override - public void skip() { - _backing.skip(); - } - - @Override - public void close() { - _backing.close(); - } - - @Override - public boolean hasNext() { - return _backing.hasNext(); - } - - @Override - public K peekPrevKey() { - return _backing.peekPrevKey(); - } - - @Override - public Pair prev() { - var got = _backing.prev(); - return Pair.of(got.getKey(), _transformer.apply(got.getValue())); - } - - @Override - public boolean hasPrev() { - return _backing.hasPrev(); - } - - @Override - public void skipPrev() { - _backing.skipPrev(); - } - - @Override - public Pair next() { - var got = _backing.next(); - return Pair.of(got.getKey(), _transformer.apply(got.getValue())); - } - - @Override - public String toString() { - return "MappingKvIterator{" + - "_backing=" + _backing + - '}'; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java deleted file mode 100644 index 1cb713e4..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.objects.iterators; - -public interface MaybeTombstone { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java deleted file mode 100644 index 66251e13..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java +++ /dev/null @@ -1,209 +0,0 @@ -package com.usatiuk.objects.iterators; - -import io.quarkus.logging.Log; -import org.apache.commons.lang3.mutable.MutableObject; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; -import java.util.NavigableMap; -import java.util.NoSuchElementException; -import java.util.TreeMap; - -public class MergingKvIterator, V> extends ReversibleKvIterator { - private final NavigableMap> _sortedIterators = new TreeMap<>(); - private final List> _iterators; - - public MergingKvIterator(IteratorStart startType, K startKey, List> iterators) { - _goingForward = true; - - { - IteratorEntry[] iteratorEntries = new IteratorEntry[iterators.size()]; - for (int i = 0; i < iterators.size(); i++) { - iteratorEntries[i] = new IteratorEntry<>(i, iterators.get(i)); - } - _iterators = List.of(iteratorEntries); - } - - if (startType == IteratorStart.LT || startType == IteratorStart.LE) { - // Starting at a greatest key less than/less or equal than: - // We have a bunch of iterators that have given us theirs "greatest LT/LE key" - // now we need to pick the greatest of those to start with - // But if some of them don't have a lesser key, we need to pick the smallest of those - - K greatestLess = null; - K smallestMore = null; - - for (var ite : _iterators) { - var it = ite.iterator(); - if (it.hasNext()) { - var peeked = it.peekNextKey(); - if (startType == IteratorStart.LE ? peeked.compareTo(startKey) <= 0 : peeked.compareTo(startKey) < 0) { - if (greatestLess == null || peeked.compareTo(greatestLess) > 0) { - greatestLess = peeked; - } - } else { - if (smallestMore == null || peeked.compareTo(smallestMore) < 0) { - smallestMore = peeked; - } - } - } - } - - K initialMaxValue; - if (greatestLess != null) - initialMaxValue = greatestLess; - else - initialMaxValue = smallestMore; - - if (initialMaxValue == null) { - // Empty iterators - } - - for (var ite : _iterators) { - var iterator = ite.iterator(); - while (iterator.hasNext() && iterator.peekNextKey().compareTo(initialMaxValue) < 0) { - iterator.skip(); - } - } - } - - for (IteratorEntry iterator : _iterators) { - advanceIterator(iterator); - } - -// Log.tracev("{0} Initialized: {1}", _name, _sortedIterators); -// switch (startType) { -//// case LT -> { -//// assert _sortedIterators.isEmpty() || _sortedIterators.firstKey().compareTo(initialStartKey) < 0; -//// } -//// case LE -> { -//// assert _sortedIterators.isEmpty() || _sortedIterators.firstKey().compareTo(initialStartKey) <= 0; -//// } -// case GT -> { -// assert _sortedIterators.isEmpty() || _sortedIterators.firstKey().compareTo(startKey) > 0; -// } -// case GE -> { -// assert _sortedIterators.isEmpty() || _sortedIterators.firstKey().compareTo(startKey) >= 0; -// } -// } - } - - @SafeVarargs - public MergingKvIterator(IteratorStart startType, K startKey, CloseableKvIterator... iterators) { - this(startType, startKey, List.of(iterators)); - } - - private void advanceIterator(IteratorEntry iteratorEntry) { - while (iteratorEntry.iterator().hasNext()) { - K key = iteratorEntry.iterator().peekNextKey(); -// Log.tracev("{0} Advance peeked: {1}-{2}", _name, iteratorEntry, key); - - MutableObject> mutableBoolean = new MutableObject<>(null); - - var newVal = _sortedIterators.merge(key, iteratorEntry, (theirsEntry, oldValOurs) -> { - var oursPrio = oldValOurs.priority(); - var theirsPrio = theirsEntry.priority(); - - if (oursPrio < theirsPrio) { - mutableBoolean.setValue(theirsEntry); - return oldValOurs; - // advance them - // return - } else { - return theirsEntry; - // skip, continue - } - }); - - if (newVal != iteratorEntry) { -// Log.tracev("{0} Skipped: {1}", _name, iteratorEntry.iterator().peekNextKey()); - iteratorEntry.iterator().skip(); - continue; - } - - if (mutableBoolean.getValue() != null) { - advanceIterator(mutableBoolean.getValue()); - return; - } - return; - } - } - - @Override - protected void reverse() { - var cur = _goingForward ? _sortedIterators.pollFirstEntry() : _sortedIterators.pollLastEntry(); -// Log.tracev("{0} Reversing from {1}", _name, cur); - _goingForward = !_goingForward; - _sortedIterators.clear(); - for (IteratorEntry iterator : _iterators) { - // _goingForward inverted already - advanceIterator(!_goingForward ? iterator.reversed() : iterator); - } - if (_sortedIterators.isEmpty() || cur == null) { - return; - } - // Advance to the expected key, as we might have brought back some iterators - // that were at their ends - while (!_sortedIterators.isEmpty() - && ((_goingForward && peekImpl().compareTo(cur.getKey()) <= 0) - || (!_goingForward && peekImpl().compareTo(cur.getKey()) >= 0))) { - skipImpl(); - } - } - - @Override - protected K peekImpl() { - if (_sortedIterators.isEmpty()) - throw new NoSuchElementException(); - return _goingForward ? _sortedIterators.firstKey() : _sortedIterators.lastKey(); - } - - @Override - protected void skipImpl() { - var cur = _goingForward ? _sortedIterators.pollFirstEntry() : _sortedIterators.pollLastEntry(); - if (cur == null) { - throw new NoSuchElementException(); - } - cur.getValue().iterator().skip(); - advanceIterator(cur.getValue()); -// Log.tracev("{0} Skip: {1}, next: {2}", _name, cur, _sortedIterators); - } - - @Override - protected boolean hasImpl() { - return !_sortedIterators.isEmpty(); - } - - @Override - protected Pair nextImpl() { - var cur = _goingForward ? _sortedIterators.pollFirstEntry() : _sortedIterators.pollLastEntry(); - if (cur == null) { - throw new NoSuchElementException(); - } - var curVal = cur.getValue().iterator().next(); - advanceIterator(cur.getValue()); -// Log.tracev("{0} Read from {1}: {2}, next: {3}", _name, cur.getValue(), curVal, _sortedIterators.keySet()); - return curVal; - } - - @Override - public void close() { - for (IteratorEntry iterator : _iterators) { - iterator.iterator().close(); - } - } - - @Override - public String toString() { - return "MergingKvIterator{" + - ", _sortedIterators=" + _sortedIterators.keySet() + - ", _iterators=" + _iterators + - '}'; - } - - private record IteratorEntry, V>(int priority, CloseableKvIterator iterator) { - public IteratorEntry reversed() { - return new IteratorEntry<>(priority, iterator.reversed()); - } - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/NavigableMapKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/NavigableMapKvIterator.java deleted file mode 100644 index 7aaa904d..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/NavigableMapKvIterator.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.usatiuk.objects.iterators; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.*; - -public class NavigableMapKvIterator, V> extends ReversibleKvIterator { - private final NavigableMap _map; - private Iterator> _iterator; - private Map.Entry _next; - - public NavigableMapKvIterator(NavigableMap map, IteratorStart start, K key) { - _map = (NavigableMap) map; - SortedMap _view; - _goingForward = true; - switch (start) { - case GE -> _view = _map.tailMap(key, true); - case GT -> _view = _map.tailMap(key, false); - case LE -> { - var floorKey = _map.floorKey(key); - if (floorKey == null) _view = _map; - else _view = _map.tailMap(floorKey, true); - } - case LT -> { - var lowerKey = map.lowerKey(key); - if (lowerKey == null) _view = _map; - else _view = _map.tailMap(lowerKey, true); - } - default -> throw new IllegalArgumentException("Unknown start type"); - } - _iterator = _view.entrySet().iterator(); - fillNext(); - } - - @Override - protected void reverse() { - var oldNext = _next; - _next = null; - if (_goingForward) { - _iterator - = oldNext == null - ? _map.descendingMap().entrySet().iterator() - : _map.headMap(oldNext.getKey(), false).descendingMap().entrySet().iterator(); - } else { - _iterator - = oldNext == null - ? _map.entrySet().iterator() - : _map.tailMap(oldNext.getKey(), false).entrySet().iterator(); - } - _goingForward = !_goingForward; - fillNext(); - } - - private void fillNext() { - while (_iterator.hasNext() && _next == null) { - _next = _iterator.next(); - } - } - - @Override - protected K peekImpl() { - if (_next == null) { - throw new NoSuchElementException(); - } - return _next.getKey(); - } - - @Override - protected void skipImpl() { - if (_next == null) { - throw new NoSuchElementException(); - } - _next = null; - fillNext(); - } - - @Override - protected boolean hasImpl() { - return _next != null; - } - - @Override - protected Pair nextImpl() { - if (_next == null) { - throw new NoSuchElementException("No more elements"); - } - var ret = _next; - _next = null; - fillNext(); - return Pair.of(ret); - } - - @Override - public void close() { - } - - @Override - public String toString() { - return "NavigableMapKvIterator{" + - ", _next=" + _next + - '}'; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversedKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversedKvIterator.java deleted file mode 100644 index 678a5979..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversedKvIterator.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.usatiuk.objects.iterators; - -import org.apache.commons.lang3.tuple.Pair; - -public class ReversedKvIterator, V> implements CloseableKvIterator { - private final CloseableKvIterator _backing; - - public ReversedKvIterator(CloseableKvIterator backing) { - _backing = backing; - } - - @Override - public void close() { - _backing.close(); - } - - @Override - public boolean hasNext() { - return _backing.hasPrev(); - } - - @Override - public Pair next() { - return _backing.prev(); - } - - @Override - public K peekNextKey() { - return _backing.peekPrevKey(); - } - - @Override - public void skip() { - _backing.skipPrev(); - } - - @Override - public K peekPrevKey() { - return _backing.peekNextKey(); - } - - @Override - public Pair prev() { - return _backing.next(); - } - - @Override - public boolean hasPrev() { - return _backing.hasNext(); - } - - @Override - public void skipPrev() { - _backing.skip(); - } - - @Override - public CloseableKvIterator reversed() { - return _backing; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversibleKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversibleKvIterator.java deleted file mode 100644 index c8fef4db..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/ReversibleKvIterator.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.usatiuk.objects.iterators; - -import org.apache.commons.lang3.tuple.Pair; - -public abstract class ReversibleKvIterator, V> implements CloseableKvIterator { - protected boolean _goingForward; - - protected abstract void reverse(); - - private void ensureForward() { - if (!_goingForward) { - reverse(); - } - } - - private void ensureBackward() { - if (_goingForward) { - reverse(); - } - } - - abstract protected K peekImpl(); - - abstract protected void skipImpl(); - - abstract protected boolean hasImpl(); - - abstract protected Pair nextImpl(); - - @Override - public K peekNextKey() { - ensureForward(); - return peekImpl(); - } - - @Override - public void skip() { - ensureForward(); - skipImpl(); - } - - - @Override - public boolean hasNext() { - ensureForward(); - return hasImpl(); - } - - @Override - public Pair next() { - ensureForward(); - return nextImpl(); - } - - @Override - public K peekPrevKey() { - ensureBackward(); - return peekImpl(); - } - - @Override - public Pair prev() { - ensureBackward(); - return nextImpl(); - } - - @Override - public boolean hasPrev() { - ensureBackward(); - return hasImpl(); - } - - @Override - public void skipPrev() { - ensureBackward(); - skipImpl(); - } - -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java deleted file mode 100644 index 1619ce2b..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.objects.iterators; - -public interface Tombstone extends MaybeTombstone { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneImpl.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneImpl.java deleted file mode 100644 index 33886d40..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneImpl.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.objects.iterators; - -public record TombstoneImpl() implements Tombstone { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneSkippingIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneSkippingIterator.java deleted file mode 100644 index 50ef7ecc..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneSkippingIterator.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.usatiuk.objects.iterators; - -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; -import java.util.NoSuchElementException; -import java.util.function.Function; - -public class TombstoneSkippingIterator, V> extends ReversibleKvIterator { - private final MergingKvIterator> _backing; - private Pair _next = null; - private boolean _checkedNext = false; - - public TombstoneSkippingIterator(IteratorStart start, K startKey, List>> iterators) { - _goingForward = true; - _backing = new MergingKvIterator<>(start, startKey, iterators); - - if (start == IteratorStart.GE || start == IteratorStart.GT) - return; - - boolean shouldGoBack = false; - if (canHaveNext()) - tryFillNext(); - - if (start == IteratorStart.LE) { - if (_next == null || _next.getKey().compareTo(startKey) > 0) { - shouldGoBack = true; - } - } else if (start == IteratorStart.LT) { - if (_next == null || _next.getKey().compareTo(startKey) >= 0) { - shouldGoBack = true; - } - } - - if (shouldGoBack && _backing.hasPrev()) { - _goingForward = false; - _next = null; - _backing.skipPrev(); - fillNext(); - _goingForward = true; - if (_next != null) - _backing.skip(); - fillNext(); - } - } - - private boolean canHaveNext() { - return (_goingForward ? _backing.hasNext() : _backing.hasPrev()); - } - - private boolean tryFillNext() { - var next = _goingForward ? _backing.next() : _backing.prev(); - if (next.getValue() instanceof Tombstone) - return false; - _next = Pair.of(next.getKey(), ((Data) next.getValue()).value()); - return true; - } - - private void fillNext() { - while (_next == null && canHaveNext()) { - tryFillNext(); - } - _checkedNext = true; - } - - @Override - protected void reverse() { - _goingForward = !_goingForward; - boolean wasAtEnd = _next == null; - - if (_goingForward && !wasAtEnd) - _backing.skip(); - else if (!_goingForward && !wasAtEnd) - _backing.skipPrev(); - - _next = null; - _checkedNext = false; - } - - @Override - protected K peekImpl() { - if (!_checkedNext) - fillNext(); - - if (_next == null) - throw new NoSuchElementException(); - return _next.getKey(); - } - - @Override - protected void skipImpl() { - if (!_checkedNext) - fillNext(); - - if (_next == null) - throw new NoSuchElementException(); - _next = null; - _checkedNext = false; - } - - @Override - protected boolean hasImpl() { - if (!_checkedNext) - fillNext(); - - return _next != null; - } - - @Override - protected Pair nextImpl() { - if (!_checkedNext) - fillNext(); - - if (_next == null) - throw new NoSuchElementException("No more elements"); - var ret = _next; - _next = null; - _checkedNext = false; - return ret; - } - - @Override - public void close() { - _backing.close(); - } - - @Override - public String toString() { - return "PredicateKvIterator{" + - ", _next=" + _next + - '}'; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/snapshot/Snapshot.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/snapshot/Snapshot.java deleted file mode 100644 index bd67866f..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/snapshot/Snapshot.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.objects.snapshot; - -import com.usatiuk.objects.iterators.CloseableKvIterator; -import com.usatiuk.objects.iterators.IteratorStart; -import com.usatiuk.objects.iterators.MaybeTombstone; - -import javax.annotation.Nonnull; -import java.util.List; -import java.util.Optional; - -public interface Snapshot, V> extends AutoCloseable { - List>> getIterator(IteratorStart start, K key); - - @Nonnull - Optional readObject(K name); - - long id(); - - @Override - void close(); - -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java deleted file mode 100644 index 8f4b36d6..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java +++ /dev/null @@ -1,301 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.JDataVersionedWrapperLazy; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.*; -import com.usatiuk.objects.snapshot.Snapshot; -import com.usatiuk.utils.ListUtils; -import io.quarkus.logging.Log; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.pcollections.TreePMap; - -import javax.annotation.Nonnull; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.AtomicReference; - -@ApplicationScoped -public class CachingObjectPersistentStore { - private final AtomicReference _cache; - @Inject - SerializingObjectPersistentStore delegate; - @ConfigProperty(name = "dhfs.objects.lru.print-stats") - boolean printStats; - private ExecutorService _statusExecutor; - private AtomicLong _cached = new AtomicLong(); - private AtomicLong _cacheTries = new AtomicLong(); - - public CachingObjectPersistentStore(@ConfigProperty(name = "dhfs.objects.lru.limit") int sizeLimit) { - _cache = new AtomicReference<>( - new Cache(TreePMap.empty(), 0, -1, sizeLimit) - ); - } - - void init(@Observes @Priority(110) StartupEvent event) { - try (var s = delegate.getSnapshot()) { - _cache.set(_cache.get().withVersion(s.id())); - } - - if (printStats) { - _statusExecutor = Executors.newSingleThreadExecutor(); - _statusExecutor.submit(() -> { - try { - while (true) { - Log.infov("Cache status: size=" + _cache.get().size() / 1024 / 1024 + "MB" + " cache success ratio: " + (_cached.get() / (double) _cacheTries.get())); - _cached.set(0); - _cacheTries.set(0); - Thread.sleep(1000); - } - } catch (InterruptedException ignored) { - } - }); - } - } - - public void commitTx(TxManifestObj objs, long txId) { - Log.tracev("Committing: {0} writes, {1} deletes", objs.written().size(), objs.deleted().size()); - - var cache = _cache.get(); - for (var write : objs.written()) { - cache = cache.withPut(write.getLeft(), Optional.of(write.getRight())); - } - for (var del : objs.deleted()) { - cache = cache.withPut(del, Optional.empty()); - } - cache = cache.withVersion(txId); - delegate.commitTx(objs, txId); - _cache.set(cache); - - Log.tracev("Committed: {0} writes, {1} deletes", objs.written().size(), objs.deleted().size()); - } - - public Snapshot getSnapshot() { - while (true) { - var cache = _cache.get(); - - if (cache == null) - return delegate.getSnapshot(); - - Cache curCache = null; - Snapshot backing = null; - - try { - curCache = _cache.get(); - backing = delegate.getSnapshot(); - - if (curCache.version() != backing.id()) { - backing.close(); - backing = null; - continue; - } - Snapshot finalBacking = backing; - Cache finalCurCache = curCache; - return new Snapshot() { - private final Cache _curCache = finalCurCache; - private final Snapshot _backing = finalBacking; - private boolean _invalid = false; - private boolean _closed = false; - - private void doCache(JObjectKey key, Optional obj) { - _cacheTries.incrementAndGet(); - if (_invalid) - return; - - var globalCache = _cache.get(); - if (globalCache.version() != _curCache.version()) { - _invalid = true; - return; - } - - var newCache = globalCache.withPut(key, obj); - if (_cache.compareAndSet(globalCache, newCache)) - _cached.incrementAndGet(); - } - - private void maybeCache(JObjectKey key, Optional obj) { - if (obj.isEmpty()) { - doCache(key, obj); - return; - } - - var wrapper = obj.get(); - - if (!(wrapper instanceof JDataVersionedWrapperLazy lazy)) { - doCache(key, obj); - return; - } - - lazy.setCacheCallback(() -> { - if (_closed) { - Log.error("Cache callback called after close"); - System.exit(-1); - } - doCache(key, obj); - }); - return; - } - - @Override - public List>> getIterator(IteratorStart start, JObjectKey key) { - return ListUtils.prependAndMap( - new NavigableMapKvIterator>(_curCache.map(), start, key), - _backing.getIterator(start, key), - i -> new CachingKvIterator((CloseableKvIterator) (CloseableKvIterator) i) - ); - } - - @Nonnull - @Override - public Optional readObject(JObjectKey name) { - var cached = _curCache.map().get(name); - if (cached != null) { - return switch (cached) { - case CacheEntryPresent data -> Optional.of(data.value()); - case CacheEntryMiss tombstone -> { - yield Optional.empty(); - } - default -> throw new IllegalStateException("Unexpected value: " + cached); - }; - } - var read = _backing.readObject(name); - maybeCache(name, read); - return read; - } - - @Override - public long id() { - return _backing.id(); - } - - @Override - public void close() { - _closed = true; - _backing.close(); - } - - private class CachingKvIterator implements CloseableKvIterator> { - private final CloseableKvIterator _delegate; - - private CachingKvIterator(CloseableKvIterator delegate) { - _delegate = delegate; - } - - @Override - public JObjectKey peekNextKey() { - return _delegate.peekNextKey(); - } - - @Override - public void skip() { - _delegate.skip(); - } - - @Override - public void close() { - _delegate.close(); - } - - @Override - public boolean hasNext() { - return _delegate.hasNext(); - } - - @Override - public JObjectKey peekPrevKey() { - return _delegate.peekPrevKey(); - } - - @Override - public Pair> prev() { - var prev = _delegate.prev(); - maybeCache(prev.getKey(), Optional.of(prev.getValue())); - return (Pair>) (Pair) prev; - } - - @Override - public boolean hasPrev() { - return _delegate.hasPrev(); - } - - @Override - public void skipPrev() { - _delegate.skipPrev(); - } - - @Override - public Pair> next() { - var next = _delegate.next(); - maybeCache(next.getKey(), Optional.of(next.getValue())); - return (Pair>) (Pair) next; - } - } - }; - } catch (Throwable ex) { - if (backing != null) { - backing.close(); - } - throw ex; - } - } - } - - private interface CacheEntry extends MaybeTombstone { - int size(); - } - - private record Cache(TreePMap map, - int size, - long version, - int sizeLimit) { - public Cache withPut(JObjectKey key, Optional obj) { - var entry = obj.map(o -> new CacheEntryPresent(o, o.estimateSize())).orElse(new CacheEntryMiss()); - - int newSize = size() + entry.size(); - - var old = map.get(key); - if (old != null) - newSize -= old.size(); - - TreePMap newCache = map(); - - while (newSize > sizeLimit) { - var del = newCache.firstEntry(); - newCache = newCache.minusFirstEntry(); - newSize -= del.getValue().size(); - } - - newCache = newCache.plus(key, entry); - return new Cache( - newCache, - newSize, - version, - sizeLimit - ); - } - - public Cache withVersion(long version) { - return new Cache(map, size, version, sizeLimit); - } - } - - private record CacheEntryPresent(JDataVersionedWrapper value, - int size) implements CacheEntry, Data { - } - - private record CacheEntryMiss() implements CacheEntry, Tombstone { - @Override - public int size() { - return 64; - } - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java deleted file mode 100644 index ad072339..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java +++ /dev/null @@ -1,353 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.JObjectKeyMax; -import com.usatiuk.objects.JObjectKeyMin; -import com.usatiuk.objects.iterators.*; -import com.usatiuk.objects.snapshot.Snapshot; -import io.quarkus.arc.properties.IfBuildProperty; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import org.apache.commons.lang3.mutable.MutableObject; -import org.apache.commons.lang3.tuple.Pair; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.lmdbjava.*; - -import javax.annotation.Nonnull; -import java.io.IOException; -import java.lang.ref.Cleaner; -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; -import java.nio.file.Path; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.Optional; -import java.util.stream.Stream; - -import static org.lmdbjava.DbiFlags.MDB_CREATE; -import static org.lmdbjava.Env.create; - -@ApplicationScoped -@IfBuildProperty(name = "dhfs.objects.persistence", stringValue = "lmdb") -public class LmdbObjectPersistentStore implements ObjectPersistentStore { - private static final String DB_NAME = "objects"; - private static final String DB_VER_OBJ_NAME_STR = "__DB_VER_OBJ"; - private static final ByteBuffer DB_VER_OBJ_NAME; - - @ConfigProperty(name = "dhfs.objects.persistence.lmdb.size", defaultValue = "1000000000000") - long lmdbSize; - - static { - byte[] tmp = DB_VER_OBJ_NAME_STR.getBytes(StandardCharsets.ISO_8859_1); - var bb = ByteBuffer.allocateDirect(tmp.length); - bb.put(tmp); - bb.flip(); - DB_VER_OBJ_NAME = bb.asReadOnlyBuffer(); - } - - private final Path _root; - private Env _env; - private Dbi _db; - private boolean _ready = false; - - public LmdbObjectPersistentStore(@ConfigProperty(name = "dhfs.objects.persistence.files.root") String root) { - _root = Path.of(root).resolve("objects"); - } - - void init(@Observes @Priority(100) StartupEvent event) throws IOException { - if (!_root.toFile().exists()) { - Log.info("Initializing with root " + _root); - _root.toFile().mkdirs(); - } - _env = create() - .setMapSize(lmdbSize) - .setMaxDbs(1) - .open(_root.toFile(), EnvFlags.MDB_NOTLS); - _db = _env.openDbi(DB_NAME, MDB_CREATE); - - try (Txn txn = _env.txnWrite()) { - var read = readTxId(txn); - if (read.isPresent()) { - Log.infov("Read tx id {0}", read.get()); - } else { - var bbData = ByteBuffer.allocateDirect(8); - bbData.putLong(0); - bbData.flip(); - _db.put(txn, DB_VER_OBJ_NAME.asReadOnlyBuffer(), bbData); - txn.commit(); - } - } - - _ready = true; - } - - private Optional readTxId(Txn txn) { - var value = _db.get(txn, DB_VER_OBJ_NAME.asReadOnlyBuffer()); - return Optional.ofNullable(value).map(ByteBuffer::getLong); - } - - void shutdown(@Observes @Priority(900) ShutdownEvent event) throws IOException { - _ready = false; - _db.close(); - _env.close(); - } - - private void verifyReady() { - if (!_ready) throw new IllegalStateException("Wrong service order!"); - } - - @Override - public Snapshot getSnapshot() { - var txn = _env.txnRead(); - try { - long commitId = readTxId(txn).orElseThrow(); - return new Snapshot() { - private final Txn _txn = txn; - private final long _id = commitId; - private boolean _closed = false; - - @Override - public List>> getIterator(IteratorStart start, JObjectKey key) { - assert !_closed; - return List.of(new KeyPredicateKvIterator<>(new LmdbKvIterator(_txn, start, key), start, key, (k) -> !k.value().equals(DB_VER_OBJ_NAME_STR))); - } - - @Nonnull - @Override - public Optional readObject(JObjectKey name) { - assert !_closed; - var got = _db.get(_txn, name.toByteBuffer()); - var ret = Optional.ofNullable(got).map(ByteBuffer::asReadOnlyBuffer); - return ret; - } - - @Override - public long id() { - assert !_closed; - return _id; - } - - @Override - public void close() { - assert !_closed; - _closed = true; - _txn.close(); - } - }; - } catch (Exception e) { - txn.close(); - throw e; - } - } - - @Override - public void commitTx(TxManifestRaw names, long txId) { - verifyReady(); - try (var txn = _env.txnWrite()) { - for (var written : names.written()) { - var putBb = _db.reserve(txn, written.getKey().toByteBuffer(), written.getValue().size()); - written.getValue().copyTo(putBb); - } - for (JObjectKey key : names.deleted()) { - _db.delete(txn, key.toByteBuffer()); - } - - assert txId > readTxId(txn).orElseThrow(); - - var bbData = ByteBuffer.allocateDirect(8); - bbData.putLong(txId); - bbData.flip(); - _db.put(txn, DB_VER_OBJ_NAME.asReadOnlyBuffer(), bbData); - txn.commit(); - } - } - - @Override - public long getTotalSpace() { - verifyReady(); - return _root.toFile().getTotalSpace(); - } - - @Override - public long getFreeSpace() { - verifyReady(); - return _root.toFile().getFreeSpace(); - } - - private class LmdbKvIterator extends ReversibleKvIterator> { - private static final Cleaner CLEANER = Cleaner.create(); - private final Txn _txn; // Managed by the snapshot - private final Cursor _cursor; - private final MutableObject _closed = new MutableObject<>(false); - // private final Exception _allocationStacktrace = new Exception(); -// private final Exception _allocationStacktrace = null; - private boolean _hasNext = false; - private JObjectKey _peekedNextKey = null; - - LmdbKvIterator(Txn txn, IteratorStart start, JObjectKey key) { - _txn = txn; - _goingForward = true; - - _cursor = _db.openCursor(_txn); - - var closedRef = _closed; -// var bt = _allocationStacktrace; -// CLEANER.register(this, () -> { -// if (!closedRef.getValue()) { -// Log.error("Iterator was not closed before GC, allocated at: {0}", bt); -// System.exit(-1); -// } -// }); - - verifyReady(); - - if (key instanceof JObjectKeyMin) { - _hasNext = _cursor.first(); - return; - } else if (key instanceof JObjectKeyMax) { - _hasNext = _cursor.last(); - return; - } - - - if (key.toByteBuffer().remaining() == 0) { - if (!_cursor.first()) - return; - } else if (!_cursor.get(key.toByteBuffer(), GetOp.MDB_SET_RANGE)) { - return; - } - - var got = JObjectKey.fromByteBuffer(_cursor.key()); - _cursor.key().flip(); - var cmp = got.compareTo(key); - - assert cmp >= 0; - - _hasNext = true; - - if (cmp == 0) { - switch (start) { - case LT -> { - _hasNext = _cursor.prev(); - if (!_hasNext) { - _hasNext = _cursor.first(); - } - } - case GT -> { - _hasNext = _cursor.next(); - } - case LE, GE -> { - } - } - } else { - switch (start) { - case LT, LE -> { - _hasNext = _cursor.prev(); - if (!_hasNext) { - _hasNext = _cursor.first(); - } - } - case GT, GE -> { - } - } - } - -// var realGot = JObjectKey.fromByteBuffer(_cursor.key()); -// _cursor.key().flip(); -// -// switch (start) { -// case LT -> { -//// assert !_hasNext || realGot.compareTo(key) < 0; -// } -// case LE -> { -//// assert !_hasNext || realGot.compareTo(key) <= 0; -// } -// case GT -> { -// assert !_hasNext || realGot.compareTo(key) > 0; -// } -// case GE -> { -// assert !_hasNext || realGot.compareTo(key) >= 0; -// } -// } -// Log.tracev("got: {0}, hasNext: {1}", realGot, _hasNext); - } - - @Override - public void close() { - if (_closed.getValue()) { - return; - } - _closed.setValue(true); - _cursor.close(); - } - - @Override - protected void reverse() { - if (_hasNext) { - if (_goingForward) { - _hasNext = _cursor.prev(); - } else { - _hasNext = _cursor.next(); - } - } else { - if (_goingForward) { - _hasNext = _cursor.last(); - } else { - _hasNext = _cursor.first(); - } - } - _goingForward = !_goingForward; - _peekedNextKey = null; - } - - @Override - protected JObjectKey peekImpl() { - if (!_hasNext) { - throw new NoSuchElementException("No more elements"); - } - if (_peekedNextKey != null) { - return _peekedNextKey; - } - var ret = JObjectKey.fromByteBuffer(_cursor.key()); - _cursor.key().flip(); - _peekedNextKey = ret; - return ret; - } - - @Override - protected void skipImpl() { - if (_goingForward) - _hasNext = _cursor.next(); - else - _hasNext = _cursor.prev(); - _peekedNextKey = null; - } - - @Override - protected boolean hasImpl() { - return _hasNext; - } - - @Override - protected Pair> nextImpl() { - if (!_hasNext) { - throw new NoSuchElementException("No more elements"); - } - // TODO: Right now with java serialization it doesn't matter, it's all copied to arrays anyway - var val = _cursor.val(); - Pair> ret = Pair.of(JObjectKey.fromByteBuffer(_cursor.key()), new DataWrapper<>(val.asReadOnlyBuffer())); - if (_goingForward) - _hasNext = _cursor.next(); - else - _hasNext = _cursor.prev(); -// Log.tracev("Read: {0}, hasNext: {1}", ret, _hasNext); - _peekedNextKey = null; - return ret; - } - } - -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java deleted file mode 100644 index 7b2169e4..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.google.protobuf.ByteString; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.*; -import com.usatiuk.objects.snapshot.Snapshot; -import io.quarkus.arc.properties.IfBuildProperty; -import jakarta.enterprise.context.ApplicationScoped; -import org.pcollections.TreePMap; - -import javax.annotation.Nonnull; -import java.nio.ByteBuffer; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.stream.Stream; - -@ApplicationScoped -@IfBuildProperty(name = "dhfs.objects.persistence", stringValue = "memory") -public class MemoryObjectPersistentStore implements ObjectPersistentStore { - private final ReentrantReadWriteLock _lock = new ReentrantReadWriteLock(); - private TreePMap _objects = TreePMap.empty(); - private long _lastCommitId = 0; - - @Override - public Snapshot getSnapshot() { - synchronized (this) { - return new Snapshot() { - private final TreePMap _objects = MemoryObjectPersistentStore.this._objects; - private final long _lastCommitId = MemoryObjectPersistentStore.this._lastCommitId; - - @Override - public List>> getIterator(IteratorStart start, JObjectKey key) { - return List.of(new MappingKvIterator<>(new NavigableMapKvIterator<>(_objects, start, key), s -> new DataWrapper<>(s.asReadOnlyByteBuffer()))); - } - - @Nonnull - @Override - public Optional readObject(JObjectKey name) { - return Optional.ofNullable(_objects.get(name)).map(ByteString::asReadOnlyByteBuffer); - } - - @Override - public long id() { - return _lastCommitId; - } - - @Override - public void close() { - - } - }; - } - } - - @Override - public void commitTx(TxManifestRaw names, long txId) { - synchronized (this) { - for (var written : names.written()) { - _objects = _objects.plus(written.getKey(), written.getValue()); - } - for (JObjectKey key : names.deleted()) { - _objects = _objects.minus(key); - } - assert txId > _lastCommitId; - _lastCommitId = txId; - } - } - - @Override - public long getTotalSpace() { - return 0; - } - - @Override - public long getFreeSpace() { - return 0; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java deleted file mode 100644 index 33ee51bf..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.google.protobuf.ByteString; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.snapshot.Snapshot; - -import javax.annotation.Nonnull; -import java.nio.ByteBuffer; -import java.util.Optional; - -// Persistent storage of objects -// All changes are written as sequential transactions -public interface ObjectPersistentStore { - Snapshot getSnapshot(); - - void commitTx(TxManifestRaw names, long txId); - - long getTotalSpace(); - - long getFreeSpace(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingDelete.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingDelete.java deleted file mode 100644 index d0d01db3..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingDelete.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.Tombstone; - -public record PendingDelete(JObjectKey key, - long bundleId) implements PendingWriteEntry, Tombstone { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java deleted file mode 100644 index b5b8708a..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.iterators.Data; - -public record PendingWrite(JDataVersionedWrapper value, - long bundleId) implements PendingWriteEntry, Data { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWriteEntry.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWriteEntry.java deleted file mode 100644 index bb6239ad..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWriteEntry.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.iterators.MaybeTombstone; - -public interface PendingWriteEntry extends MaybeTombstone { - long bundleId(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/SerializingObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/SerializingObjectPersistentStore.java deleted file mode 100644 index edda87ea..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/SerializingObjectPersistentStore.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.JDataVersionedWrapperSerializer; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.*; -import com.usatiuk.objects.snapshot.Snapshot; -import com.usatiuk.utils.ListUtils; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import javax.annotation.Nonnull; -import java.nio.ByteBuffer; -import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; - -@ApplicationScoped -public class SerializingObjectPersistentStore { - @Inject - JDataVersionedWrapperSerializer serializer; - - @Inject - ObjectPersistentStore delegateStore; - - public Snapshot getSnapshot() { - return new Snapshot() { - private final Snapshot _backing = delegateStore.getSnapshot(); - - @Override - public List>> getIterator(IteratorStart start, JObjectKey key) { - return ListUtils.map(_backing.getIterator(start, key), - i -> new MappingKvIterator, MaybeTombstone>(i, - d -> serializer.deserialize(((DataWrapper) d).value()))); - } - - @Nonnull - @Override - public Optional readObject(JObjectKey name) { - return _backing.readObject(name).map(serializer::deserialize); - } - - @Override - public long id() { - return _backing.id(); - } - - @Override - public void close() { - _backing.close(); - } - }; - - } - - private TxManifestRaw prepareManifest(TxManifestObj objs) { - return new TxManifestRaw( - objs.written().parallelStream() - .map(e -> Pair.of(e.getKey(), serializer.serialize(e.getValue()))) - .toList() - , objs.deleted()); - } - - void commitTx(TxManifestObj objects, long txId) { - delegateStore.commitTx(prepareManifest(objects), txId); - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestObj.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestObj.java deleted file mode 100644 index debb2aa8..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestObj.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JObjectKey; -import org.apache.commons.lang3.tuple.Pair; - -import java.io.Serializable; -import java.util.Collection; - -// FIXME: Serializable -public record TxManifestObj(Collection> written, - Collection deleted) implements Serializable { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestRaw.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestRaw.java deleted file mode 100644 index cda13e57..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/TxManifestRaw.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.google.protobuf.ByteString; -import com.usatiuk.objects.JObjectKey; -import org.apache.commons.lang3.tuple.Pair; - -import java.io.Serializable; -import java.util.Collection; - -// FIXME: Serializable -public record TxManifestRaw(Collection> written, - Collection deleted) implements Serializable { -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java deleted file mode 100644 index cf8bbb4d..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java +++ /dev/null @@ -1,432 +0,0 @@ -package com.usatiuk.objects.stores; - -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.JDataVersionedWrapperImpl; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.CloseableKvIterator; -import com.usatiuk.objects.iterators.IteratorStart; -import com.usatiuk.objects.iterators.MaybeTombstone; -import com.usatiuk.objects.iterators.NavigableMapKvIterator; -import com.usatiuk.objects.snapshot.Snapshot; -import com.usatiuk.objects.transaction.TxRecord; -import com.usatiuk.utils.ListUtils; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.apache.commons.lang3.concurrent.BasicThreadFactory; -import org.apache.commons.lang3.tuple.Pair; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.pcollections.PSortedMap; -import org.pcollections.TreePMap; - -import javax.annotation.Nonnull; -import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.AtomicReference; -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.ReentrantLock; -import java.util.function.Consumer; - -@ApplicationScoped -public class WritebackObjectPersistentStore { - @Inject - CachingObjectPersistentStore cachedStore; - @Inject - ExecutorService _callbackExecutor; - - @ConfigProperty(name = "dhfs.objects.writeback.limit") - int sizeLimit; - - private TxBundle _pendingBundle = null; - private int _curSize = 0; - - private final AtomicReference _pendingWrites = new AtomicReference<>(null); - - private final ReentrantLock _pendingBundleLock = new ReentrantLock(); - - private final Condition _newBundleCondition = _pendingBundleLock.newCondition(); - private final Condition _flushCondition = _pendingBundleLock.newCondition(); - - private final AtomicLong _lastFlushedId = new AtomicLong(-1); - private final AtomicLong _lastCommittedId = new AtomicLong(-1); - - private final AtomicLong _waitedTotal = new AtomicLong(0); - - private ExecutorService _writebackExecutor; - private ExecutorService _statusExecutor; - - private volatile boolean _ready = false; - - void init(@Observes @Priority(120) StartupEvent event) { - { - BasicThreadFactory factory = new BasicThreadFactory.Builder() - .namingPattern("tx-writeback-%d") - .build(); - - _writebackExecutor = Executors.newSingleThreadExecutor(factory); - _writebackExecutor.submit(this::writeback); - } - - _statusExecutor = Executors.newSingleThreadExecutor(); - _statusExecutor.submit(() -> { - try { - while (true) { - Thread.sleep(1000); - if (_curSize > 0) - Log.info("Tx commit status: size=" + _curSize / 1024 / 1024 + "MB"); - } - } catch (InterruptedException ignored) { - } - }); - long lastTxId; - try (var s = cachedStore.getSnapshot()) { - lastTxId = s.id(); - } - _lastCommittedId.set(lastTxId); - _lastFlushedId.set(lastTxId); - _pendingWrites.set(new PendingWriteData(TreePMap.empty(), lastTxId, lastTxId)); - _ready = true; - } - - void shutdown(@Observes @Priority(890) ShutdownEvent event) throws InterruptedException { - Log.info("Waiting for all transactions to drain"); - - _ready = false; - _pendingBundleLock.lock(); - try { - while (_curSize > 0) { - _flushCondition.await(); - } - } finally { - _pendingBundleLock.unlock(); - } - - _writebackExecutor.shutdownNow(); - Log.info("Total tx bundle wait time: " + _waitedTotal.get() + "ms"); - } - - private void verifyReady() { - if (!_ready) throw new IllegalStateException("Not doing transactions while shutting down!"); - } - - private void writeback() { - while (!Thread.interrupted()) { - try { - TxBundle bundle; - _pendingBundleLock.lock(); - try { - while (_pendingBundle == null) - _newBundleCondition.await(); - bundle = _pendingBundle; - _pendingBundle = null; - - _curSize -= bundle.size(); - assert _curSize == 0; - _flushCondition.signal(); - } finally { - _pendingBundleLock.unlock(); - } - - var toWrite = new ArrayList>(); - var toDelete = new ArrayList(); - - for (var e : bundle._entries.values()) { - switch (e) { - case TxBundle.CommittedEntry(JObjectKey key, JDataVersionedWrapper data, int size) -> { - Log.tracev("Writing new {0}", key); - toWrite.add(Pair.of(key, data)); - } - case TxBundle.DeletedEntry(JObjectKey key) -> { - Log.tracev("Deleting from persistent storage {0}", key); - toDelete.add(key); - } - default -> throw new IllegalStateException("Unexpected value: " + e); - } - } - - cachedStore.commitTx(new TxManifestObj<>(toWrite, toDelete), bundle.id()); - - Log.tracev("Bundle {0} committed", bundle.id()); - - _pendingBundleLock.lock(); - try { - var curPw = _pendingWrites.get(); - var curPwMap = curPw.pendingWrites(); - for (var e : bundle._entries.values()) { - var cur = curPwMap.get(e.key()); - if (cur.bundleId() <= bundle.id()) - curPwMap = curPwMap.minus(e.key()); - } - var newCurPw = new PendingWriteData( - curPwMap, - bundle.id(), - curPw.lastCommittedId() - ); - _pendingWrites.compareAndSet(curPw, newCurPw); - } finally { - _pendingBundleLock.unlock(); - } - - _lastFlushedId.set(bundle.id()); - var callbacks = bundle.callbacks(); - _callbackExecutor.submit(() -> { - callbacks.forEach(Runnable::run); - }); - } catch (InterruptedException ignored) { - } catch (Exception e) { - Log.error("Uncaught exception in writeback", e); - } catch (Throwable o) { - Log.error("Uncaught THROWABLE in writeback", o); - } - } - Log.info("Writeback thread exiting"); - } - - private long commitBundle(Collection> writes) { - verifyReady(); - _pendingBundleLock.lock(); - try { - boolean shouldWake = false; - if (_curSize > sizeLimit) { - shouldWake = true; - long started = System.currentTimeMillis(); - while (_curSize > sizeLimit) - _flushCondition.await(); - long waited = System.currentTimeMillis() - started; - _waitedTotal.addAndGet(waited); - if (Log.isTraceEnabled()) - Log.tracev("Thread {0} waited for tx bundle for {1} ms", Thread.currentThread().getName(), waited); - } - - var oursId = _lastCommittedId.incrementAndGet(); - - var curBundle = _pendingBundle; - int oldSize = 0; - if (curBundle != null) { - oldSize = curBundle.size(); - curBundle.setId(oursId); - } else { - curBundle = new TxBundle(oursId); - } - - var curPw = _pendingWrites.get(); - var curPwMap = curPw.pendingWrites(); - - for (var action : writes) { - var key = action.key(); - switch (action) { - case TxRecord.TxObjectRecordWrite write -> { -// Log.tracev("Flushing object {0}", write.key()); - var wrapper = new JDataVersionedWrapperImpl(write.data(), oursId); - curPwMap = curPwMap.plus(key, new PendingWrite(wrapper, oursId)); - curBundle.commit(wrapper); - } - case TxRecord.TxObjectRecordDeleted deleted -> { -// Log.tracev("Deleting object {0}", deleted.key()); - curPwMap = curPwMap.plus(key, new PendingDelete(key, oursId)); - curBundle.delete(key); - } - } - } - // Now, make the changes visible to new iterators - var newCurPw = new PendingWriteData( - curPwMap, - curPw.lastFlushedId(), - oursId - ); - - _pendingWrites.compareAndSet(curPw, newCurPw); - - _pendingBundle = curBundle; - _newBundleCondition.signalAll(); - - _curSize += (curBundle.size() - oldSize); - - if (shouldWake && _curSize < sizeLimit) { - _flushCondition.signal(); - } - - return oursId; - } catch (InterruptedException e) { - throw new RuntimeException(e); - } finally { - _pendingBundleLock.unlock(); - } - } - - public void asyncFence(long bundleId, Runnable fn) { - verifyReady(); - if (bundleId < 0) throw new IllegalArgumentException("txId should be >0!"); - if (_lastFlushedId.get() >= bundleId) { - fn.run(); - return; - } - _pendingBundleLock.lock(); - try { - if (_lastFlushedId.get() >= bundleId) { - fn.run(); - return; - } - var pendingBundle = _pendingBundle; - if (pendingBundle == null) { - fn.run(); - return; - } - pendingBundle.addCallback(fn); - } finally { - _pendingBundleLock.unlock(); - } - } - - public Consumer commitTx(Collection> writes) { - long bundleId = commitBundle(writes); - - return r -> asyncFence(bundleId, r); - } - - public Snapshot getSnapshot() { - Snapshot cache = null; - PendingWriteData pw = null; - - try { - while (true) { - pw = _pendingWrites.get(); - cache = cachedStore.getSnapshot(); - - if (cache.id() >= pw.lastCommittedId()) - return cache; - - // TODO: Can this really happen? - if (cache.id() < pw.lastFlushedId()) { - assert false; - cache.close(); - cache = null; - continue; - } - - break; - } - - PendingWriteData finalPw = pw; - Snapshot finalCache = cache; - return new Snapshot() { - private final PSortedMap _pendingWrites = finalPw.pendingWrites(); - private final Snapshot _cache = finalCache; - private final long txId = finalPw.lastCommittedId(); - - @Override - public List>> getIterator(IteratorStart start, JObjectKey key) { - return ListUtils.prepend(new NavigableMapKvIterator<>(_pendingWrites, start, key), _cache.getIterator(start, key)); - } - - @Nonnull - @Override - public Optional readObject(JObjectKey name) { - var cached = _pendingWrites.get(name); - if (cached != null) { - return switch (cached) { - case PendingWrite c -> Optional.of(c.value()); - case PendingDelete d -> { - yield Optional.empty(); - } - default -> throw new IllegalStateException("Unexpected value: " + cached); - }; - } - return _cache.readObject(name); - } - - @Override - public long id() { - assert txId >= _cache.id(); - return txId; - } - - @Override - public void close() { - _cache.close(); - } - }; - } catch (Throwable e) { - if (cache != null) - cache.close(); - throw e; - } - } - - private record PendingWriteData(TreePMap pendingWrites, - long lastFlushedId, - long lastCommittedId) { - } - - private static class TxBundle { - private final HashMap _entries = new HashMap<>(); - private final ArrayList _callbacks = new ArrayList<>(); - private int _size = 0; - private long _txId; - - ArrayList callbacks() { - return _callbacks; - } - - private TxBundle(long txId) { - _txId = txId; - } - - public void setId(long id) { - _txId = id; - } - - public long id() { - return _txId; - - } - - public void addCallback(Runnable callback) { - _callbacks.add(callback); - } - - public int size() { - return _size; - } - - private void putEntry(BundleEntry entry) { - var old = _entries.put(entry.key(), entry); - if (old != null) { - _size -= old.size(); - } - _size += entry.size(); - } - - public void commit(JDataVersionedWrapper obj) { - putEntry(new CommittedEntry(obj.data().key(), obj, obj.data().estimateSize())); - } - - public void delete(JObjectKey obj) { - putEntry(new DeletedEntry(obj)); - } - - private sealed interface BundleEntry permits CommittedEntry, DeletedEntry { - JObjectKey key(); - - int size(); - } - - private record CommittedEntry(JObjectKey key, JDataVersionedWrapper data, int size) - implements BundleEntry { - } - - private record DeletedEntry(JObjectKey key) - implements BundleEntry { - - public int size() { - return 64; - } - } - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java deleted file mode 100644 index 68efe228..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.usatiuk.objects.transaction; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.CloseableKvIterator; -import com.usatiuk.objects.iterators.IteratorStart; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -import java.util.Optional; - -@Singleton -public class CurrentTransaction implements Transaction { - @Inject - TransactionManager transactionManager; - - @Override - public void onCommit(Runnable runnable) { - transactionManager.current().onCommit(runnable); - } - - @Override - public void onFlush(Runnable runnable) { - transactionManager.current().onFlush(runnable); - } - - @Override - public Optional get(Class type, JObjectKey key) { - return transactionManager.current().get(type, key); - } - - @Override - public void delete(JObjectKey key) { - transactionManager.current().delete(key); - } - - @Override - public CloseableKvIterator getIterator(IteratorStart start, JObjectKey key) { - return transactionManager.current().getIterator(start, key); - } - - @Override - public void put(JData obj) { - transactionManager.current().put(obj); - } - - @Override - public void putNew(JData obj) { - transactionManager.current().putNew(obj); - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/PreCommitTxHook.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/PreCommitTxHook.java deleted file mode 100644 index 6598178b..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/PreCommitTxHook.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.usatiuk.objects.transaction; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; - -public interface PreCommitTxHook { - default void onChange(JObjectKey key, JData old, JData cur) { - } - - default void onCreate(JObjectKey key, JData cur) { - } - - default void onDelete(JObjectKey key, JData cur) { - } - - default int getPriority() { - return 0; - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/Transaction.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/Transaction.java deleted file mode 100644 index b165743c..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/Transaction.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.usatiuk.objects.transaction; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.CloseableKvIterator; -import com.usatiuk.objects.iterators.IteratorStart; - -import java.util.Optional; - -// The transaction interface actually used by user code to retrieve objects -public interface Transaction extends TransactionHandle { - void onCommit(Runnable runnable); - - Optional get(Class type, JObjectKey key); - - void put(JData obj); - void putNew(JData obj); - - void delete(JObjectKey key); - - CloseableKvIterator getIterator(IteratorStart start, JObjectKey key); - - default CloseableKvIterator getIterator(JObjectKey key) { - return getIterator(IteratorStart.GE, key); - } - -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandle.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandle.java deleted file mode 100644 index ac3d8d81..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandle.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.usatiuk.objects.transaction; - -public interface TransactionHandle { - void onFlush(Runnable runnable); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java deleted file mode 100644 index fdf8448e..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.usatiuk.objects.transaction; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.*; -import com.usatiuk.objects.snapshot.Snapshot; -import com.usatiuk.utils.ListUtils; -import io.quarkus.logging.Log; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.*; - -class TransactionImpl implements Transaction, AutoCloseable { - private final Map> _readSet = new HashMap<>(); - private final NavigableMap> _writes = new TreeMap<>(); - private final List _onCommit = new LinkedList<>(); - private final List _onFlush = new LinkedList<>(); - private final HashSet _knownNew = new HashSet<>(); - private final Snapshot _snapshot; - private boolean _closed = false; - - private boolean _writeTrack = false; - private Map> _newWrites = new HashMap<>(); - - private interface ReadTrackingInternalCrap { - boolean fromSource(); - - JData obj(); - } - - // FIXME: - private record ReadTrackingInternalCrapSource(JDataVersionedWrapper wrapped) implements ReadTrackingInternalCrap { - @Override - public boolean fromSource() { - return true; - } - - @Override - public JData obj() { - return wrapped.data(); - } - } - - private record ReadTrackingInternalCrapTx(JData obj) implements ReadTrackingInternalCrap { - @Override - public boolean fromSource() { - return false; - } - } - - TransactionImpl(Snapshot snapshot) { - _snapshot = snapshot; - } - - @Override - public void onCommit(Runnable runnable) { - _onCommit.add(runnable); - } - - @Override - public void onFlush(Runnable runnable) { - _onFlush.add(runnable); - } - - Collection getOnCommit() { - return Collections.unmodifiableCollection(_onCommit); - } - - Snapshot snapshot() { - return _snapshot; - } - - Collection getOnFlush() { - return Collections.unmodifiableCollection(_onFlush); - } - - Optional getFromSource(Class type, JObjectKey key) { - if (_knownNew.contains(key)) { - return Optional.empty(); - } - - return _readSet.computeIfAbsent(key, _snapshot::readObject) - .map(JDataVersionedWrapper::data) - .map(type::cast); - } - - @Override - public Optional get(Class type, JObjectKey key) { - return switch (_writes.get(key)) { - case TxRecord.TxObjectRecordWrite write -> Optional.of(type.cast(write.data())); - case TxRecord.TxObjectRecordDeleted deleted -> Optional.empty(); - case null -> getFromSource(type, key); - }; - } - - @Override - public void delete(JObjectKey key) { - var record = new TxRecord.TxObjectRecordDeleted(key); - if (_writes.put(key, record) instanceof TxRecord.TxObjectRecordDeleted) { - return; - } - if (_writeTrack) - _newWrites.put(key, record); - } - - @Override - public CloseableKvIterator getIterator(IteratorStart start, JObjectKey key) { - Log.tracev("Getting tx iterator with start={0}, key={1}", start, key); - return new ReadTrackingIterator(new TombstoneSkippingIterator(start, key, - ListUtils.prependAndMap( - new MappingKvIterator<>(new NavigableMapKvIterator<>(_writes, start, key), - t -> switch (t) { - case TxRecord.TxObjectRecordWrite write -> - new DataWrapper(new ReadTrackingInternalCrapTx(write.data())); - case TxRecord.TxObjectRecordDeleted deleted -> - new TombstoneImpl(); - case null, default -> null; - }), - _snapshot.getIterator(start, key), - itin -> new MappingKvIterator, MaybeTombstone>(itin, - d -> switch (d) { - case Data w -> - new DataWrapper<>(new ReadTrackingInternalCrapSource(w.value())); - case Tombstone t -> new TombstoneImpl<>(); - case null, default -> null; - })))); - } - - @Override - public void put(JData obj) { - var key = obj.key(); - var read = _readSet.get(key); - if (read != null && (read.map(JDataVersionedWrapper::data).orElse(null) == obj)) { - return; - } - - var record = new TxRecord.TxObjectRecordWrite<>(obj); - _writes.put(key, record); - if (_writeTrack) - _newWrites.put(key, record); - } - - @Override - public void putNew(JData obj) { - var key = obj.key(); - _knownNew.add(key); - - var record = new TxRecord.TxObjectRecordWrite<>(obj); - _writes.put(key, record); - if (_writeTrack) - _newWrites.put(key, record); - } - - Collection> drainNewWrites() { - if (!_writeTrack) { - _writeTrack = true; - return Collections.unmodifiableCollection(_writes.values()); - } - var ret = _newWrites; - _newWrites = new HashMap<>(); - return ret.values(); - } - - Map> reads() { - return _readSet; - } - - Set knownNew() { - return _knownNew; - } - - @Override - public void close() { - if (_closed) return; - _closed = true; - _snapshot.close(); - } - - private class ReadTrackingIterator implements CloseableKvIterator { - private final CloseableKvIterator _backing; - - public ReadTrackingIterator(CloseableKvIterator backing) { - _backing = backing; - } - - @Override - public JObjectKey peekNextKey() { - return _backing.peekNextKey(); - } - - @Override - public void skip() { - _backing.skip(); - } - - @Override - public JObjectKey peekPrevKey() { - return _backing.peekPrevKey(); - } - - @Override - public Pair prev() { - var got = _backing.prev(); - if (got.getValue() instanceof ReadTrackingInternalCrapSource(JDataVersionedWrapper wrapped)) { - _readSet.putIfAbsent(got.getKey(), Optional.of(wrapped)); - } - return Pair.of(got.getKey(), got.getValue().obj()); - } - - @Override - public boolean hasPrev() { - return _backing.hasPrev(); - } - - @Override - public void skipPrev() { - _backing.skipPrev(); - } - - @Override - public void close() { - _backing.close(); - } - - @Override - public boolean hasNext() { - return _backing.hasNext(); - } - - @Override - public Pair next() { - var got = _backing.next(); - if (got.getValue() instanceof ReadTrackingInternalCrapSource(JDataVersionedWrapper wrapped)) { - _readSet.putIfAbsent(got.getKey(), Optional.of(wrapped)); - } - return Pair.of(got.getKey(), got.getValue().obj()); - } - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManager.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManager.java deleted file mode 100644 index 8a6d2e83..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManager.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.usatiuk.objects.transaction; - -import io.quarkus.logging.Log; - -import java.util.function.Supplier; - -public interface TransactionManager { - void begin(); - - TransactionHandle commit(); - - void rollback(); - - default T runTries(Supplier supplier, int tries, boolean nest) { - if (!nest && current() != null) { - return supplier.get(); - } - - while (true) { - begin(); - boolean commit = false; - try { - var ret = supplier.get(); - commit = true; - commit(); - return ret; - } catch (TxCommitException txCommitException) { - if (!commit) - rollback(); - if (tries == 0) { - Log.error("Transaction commit failed", txCommitException); - throw txCommitException; - } - tries--; - } catch (Throwable e) { - if (!commit) - rollback(); - throw e; - } - } - } - - default TransactionHandle runTries(Runnable fn, int tries, boolean nest) { - if (!nest && current() != null) { - fn.run(); - return new TransactionHandle() { - @Override - public void onFlush(Runnable runnable) { - current().onCommit(runnable); - } - }; - } - - while (true) { - begin(); - boolean commit = false; - try { - fn.run(); - commit = true; - var ret = commit(); - return ret; - } catch (TxCommitException txCommitException) { - if (!commit) - rollback(); - if (tries == 0) { - Log.error("Transaction commit failed", txCommitException); - throw txCommitException; - } - tries--; - } catch (Throwable e) { - if (!commit) - rollback(); - throw e; - } - } - } - - default T runTries(Supplier supplier, int tries) { - return runTries(supplier, tries, false); - } - - default TransactionHandle runTries(Runnable fn, int tries) { - return runTries(fn, tries, false); - } - - default TransactionHandle run(Runnable fn, boolean nest) { - return runTries(fn, 10, nest); - } - - default T run(Supplier supplier, boolean nest) { - return runTries(supplier, 10, nest); - } - - default TransactionHandle run(Runnable fn) { - return run(fn, false); - } - - default T run(Supplier supplier) { - return run(supplier, false); - } - - default void executeTx(Runnable fn) { - run(fn, false); - } - - default T executeTx(Supplier supplier) { - return run(supplier, false); - } - - Transaction current(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java deleted file mode 100644 index 2eda3b49..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.usatiuk.objects.transaction; - -import io.quarkus.logging.Log; -import jakarta.annotation.Nullable; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.Collection; -import java.util.Stack; - -@Singleton -public class TransactionManagerImpl implements TransactionManager { - private static final ThreadLocal> _currentTransaction = ThreadLocal.withInitial(Stack::new); - @Inject - TransactionService transactionService; - - @Override - public void begin() { - Log.trace("Starting transaction"); - var tx = transactionService.createTransaction(); - _currentTransaction.get().push(tx); - } - - @Override - public TransactionHandle commit() { - var stack = _currentTransaction.get(); - if (stack.empty()) { - throw new IllegalStateException("No transaction started"); - } - var peeked = stack.peek(); - - Log.trace("Committing transaction"); - - Pair, TransactionHandle> ret; - try { - ret = transactionService.commit(peeked); - } catch (Throwable e) { - Log.trace("Transaction commit failed", e); - throw e; - } finally { - peeked.close(); - stack.pop(); - if (stack.empty()) - _currentTransaction.remove(); - } - - for (var r : ret.getLeft()) { - try { - r.run(); - } catch (Throwable e) { - Log.error("Transaction commit hook error: ", e); - } - } - return ret.getRight(); - } - - @Override - public void rollback() { - var stack = _currentTransaction.get(); - if (stack.empty()) { - throw new IllegalStateException("No transaction started"); - } - var peeked = stack.peek(); - - try { - transactionService.rollback(peeked); - } catch (Throwable e) { - Log.error("Transaction rollback failed", e); - throw e; - } finally { - peeked.close(); - stack.pop(); - if (stack.empty()) - _currentTransaction.remove(); - } - } - - @Override - @Nullable - public Transaction current() { - var stack = _currentTransaction.get(); - if (stack.empty()) { - return null; - } - return stack.peek(); - } -} - diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java deleted file mode 100644 index 659c6480..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java +++ /dev/null @@ -1,269 +0,0 @@ -package com.usatiuk.objects.transaction; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.snapshot.Snapshot; -import com.usatiuk.objects.stores.WritebackObjectPersistentStore; -import com.usatiuk.utils.AutoCloseableNoThrow; -import com.usatiuk.utils.DataLocker; -import io.quarkus.logging.Log; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.enterprise.inject.Instance; -import jakarta.enterprise.inject.spi.CDI; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.*; -import java.util.function.Consumer; -import java.util.function.Function; - -@ApplicationScoped -public class TransactionService { - private static final List _preCommitTxHooks; - @Inject - WritebackObjectPersistentStore writebackObjectPersistentStore; - - private boolean _ready = false; - private final DataLocker _objLocker = new DataLocker(); - - static { - _preCommitTxHooks = List.copyOf(CDI.current().select(PreCommitTxHook.class).stream().sorted(Comparator.comparingInt(PreCommitTxHook::getPriority)).toList()); - } - - TransactionService(Instance preCommitTxHooks) { - Log.debugv("Pre-commit hooks: {0}", String.join("->", _preCommitTxHooks.stream().map(Objects::toString).toList())); - } - - private void verifyReady() { - if (!_ready) throw new IllegalStateException("Wrong service order!"); - } - - void init(@Observes @Priority(200) StartupEvent event) { - _ready = true; - } - - public TransactionImpl createTransaction() { - verifyReady(); - var tx = new TransactionImpl(writebackObjectPersistentStore.getSnapshot()); - Log.tracev("Created transaction with snapshotId={0}", tx.snapshot().id()); - return tx; - } - - public Pair, TransactionHandle> commit(TransactionImpl tx) { - verifyReady(); - var writes = new HashMap>(); - Snapshot commitSnapshot = null; - Map> readSet = null; - Collection toUnlock = null; - - try { - long pendingCount = 0; - List hookIterationData; - { - CommitHookIterationData[] hookIterationDataArray = new CommitHookIterationData[_preCommitTxHooks.size()]; - for (int i = 0; i < _preCommitTxHooks.size(); i++) { - var hook = _preCommitTxHooks.get(i); - hookIterationDataArray[i] = new CommitHookIterationData(hook, new HashMap<>(), new HashMap<>()); - } - hookIterationData = List.of(hookIterationDataArray); - } - - for (var n : tx.drainNewWrites()) { - var key = n.key(); - for (var hookPut : hookIterationData) { - hookPut.pendingWrites().put(key, n); - pendingCount++; - } - writes.put(key, n); - } - - - // Run hooks for all objects - // Every hook should see every change made to every object, yet the object's evolution - // should be consistent from the view point of each individual hook - // For example, when a hook makes changes to an object, and another hook changes the object before/after it - // on the next iteration, the first hook should receive the version of the object it had created - // as the "old" version, and the new version with all the changes after it. - while (pendingCount > 0) { - for (var hookId : hookIterationData) { - var hook = hookId.hook(); - var lastCurHookSeen = hookId.lastWrites(); - Function getPrev = - key -> switch (lastCurHookSeen.get(key)) { - case TxRecord.TxObjectRecordWrite write -> write.data(); - case TxRecord.TxObjectRecordDeleted deleted -> null; - case null -> tx.getFromSource(JData.class, key).orElse(null); - default -> { - throw new TxCommitException("Unexpected value: " + writes.get(key)); - } - }; - - var curIteration = hookId.pendingWrites(); - -// Log.trace("Commit iteration with " + curIteration.size() + " records for hook " + hook.getClass()); - - for (var entry : curIteration.entrySet()) { - var key = entry.getKey(); -// Log.trace("Running pre-commit hook " + hook.getClass() + " for" + entry.getKey()); - var oldObj = getPrev.apply(key); - lastCurHookSeen.put(key, entry.getValue()); - switch (entry.getValue()) { - case TxRecord.TxObjectRecordWrite write -> { - if (oldObj == null) { - hook.onCreate(key, write.data()); - } else { - hook.onChange(key, oldObj, write.data()); - } - } - case TxRecord.TxObjectRecordDeleted deleted -> { - hook.onDelete(key, oldObj); - } - default -> throw new TxCommitException("Unexpected value: " + entry); - } - } - - pendingCount -= curIteration.size(); - curIteration.clear(); - - for (var n : tx.drainNewWrites()) { - var key = n.key(); - for (var hookPut : hookIterationData) { - if (hookPut == hookId) { - lastCurHookSeen.put(key, n); - continue; - } - var before = hookPut.pendingWrites().put(key, n); - if (before == null) - pendingCount++; - } - writes.put(key, n); - } - } - } - - readSet = tx.reads(); - - if (!writes.isEmpty()) { - toUnlock = new ArrayList<>(readSet.size() + writes.size()); - ArrayList toLock = new ArrayList<>(readSet.size() + writes.size()); - for (var read : readSet.entrySet()) { - toLock.add(read.getKey()); - } - for (var write : writes.keySet()) { - if (!readSet.containsKey(write)) - toLock.add(write); - } - toLock.sort(null); - for (var key : toLock) { - if (tx.knownNew().contains(key)) - continue; - var lock = _objLocker.lock(key); - toUnlock.add(lock); - } - - commitSnapshot = writebackObjectPersistentStore.getSnapshot(); - } else { - Log.trace("Committing transaction - no changes"); - - long version = 0L; - - for (var read : readSet.values()) { - version = Math.max(version, read.map(JDataVersionedWrapper::version).orElse(0L)); - } - - long finalVersion = version; - Consumer fenceFn = r -> { - writebackObjectPersistentStore.asyncFence(finalVersion, r); - }; - - var onCommit = tx.getOnCommit(); - var onFlush = tx.getOnFlush(); - - return Pair.of( - List.of(() -> { - for (var f : onCommit) - f.run(); - for (var f : onFlush) - fenceFn.accept(f); - }), - new TransactionHandle() { - @Override - public void onFlush(Runnable runnable) { - fenceFn.accept(runnable); - } - }); - } - - Log.trace("Committing transaction start"); - var snapshotId = tx.snapshot().id(); - - if (snapshotId != commitSnapshot.id()) { - for (var read : readSet.entrySet()) { - var current = commitSnapshot.readObject(read.getKey()); - - if (current.isEmpty() != read.getValue().isEmpty()) { - Log.tracev("Checking read dependency {0} - not found", read.getKey()); - throw new TxCommitException("Serialization hazard: " + current.isEmpty() + " vs " + read.getValue().isEmpty()); - } - - if (current.isEmpty()) { - // Every write gets a dependency due to hooks - continue; -// assert false; -// throw new TxCommitException("Serialization hazard: " + dep.isEmpty() + " vs " + read.getValue().value().isEmpty()); - } - - if (current.get().version() > snapshotId) { - Log.tracev("Checking dependency {0} - newer than", read.getKey()); - throw new TxCommitException("Serialization hazard: " + current.get().data().key() + " " + current.get().version() + " vs " + snapshotId); - } - - Log.tracev("Checking dependency {0} - ok with read", read.getKey()); - } - } else { - Log.tracev("Skipped dependency checks: no changes"); - } - - var addFlushCallback = writebackObjectPersistentStore.commitTx(writes.values()); - - // TODO: is it ok to possibly run it inside transaction? - for (var callback : tx.getOnFlush()) { - addFlushCallback.accept(callback); - } - - return Pair.of( - tx.getOnCommit(), - new TransactionHandle() { - @Override - public void onFlush(Runnable runnable) { - addFlushCallback.accept(runnable); - } - }); - } catch (Throwable t) { - Log.trace("Error when committing transaction", t); - throw new TxCommitException(t.getMessage(), t); - } finally { - if (toUnlock != null) - for (var unlock : toUnlock) { - unlock.close(); - } - if (commitSnapshot != null) - commitSnapshot.close(); - tx.close(); - } - } - - public void rollback(TransactionImpl tx) { - verifyReady(); - tx.close(); - } - - private record CommitHookIterationData(PreCommitTxHook hook, - Map> lastWrites, - Map> pendingWrites) { - } -} \ No newline at end of file diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxCommitException.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxCommitException.java deleted file mode 100644 index 0afea63e..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxCommitException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.objects.transaction; - -public class TxCommitException extends RuntimeException { - public TxCommitException(String message) { - super(message); - } - - public TxCommitException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxRecord.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxRecord.java deleted file mode 100644 index 685fe848..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TxRecord.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.usatiuk.objects.transaction; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; - -public class TxRecord { - public sealed interface TxObjectRecord permits TxObjectRecordWrite, TxObjectRecordDeleted { - JObjectKey key(); - } - - public record TxObjectRecordWrite(JData data) implements TxObjectRecord { - @Override - public JObjectKey key() { - return data.key(); - } - } - - public record TxObjectRecordDeleted(JObjectKey key) implements TxObjectRecord { - } -} diff --git a/dhfs-parent/objects/src/main/resources/META-INF/beans.xml b/dhfs-parent/objects/src/main/resources/META-INF/beans.xml deleted file mode 100644 index e69de29b..00000000 diff --git a/dhfs-parent/objects/src/main/resources/application.properties b/dhfs-parent/objects/src/main/resources/application.properties deleted file mode 100644 index 470a92f9..00000000 --- a/dhfs-parent/objects/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -dhfs.objects.persistence=lmdb -dhfs.objects.writeback.limit=16777216 -dhfs.objects.lru.limit=67108864 -dhfs.objects.lru.print-stats=false -dhfs.objects.lock_timeout_secs=15 -dhfs.objects.persistence.files.root=${HOME}/dhfs_default/data/objs -dhfs.objects.persistence.snapshot-extra-checks=false -dhfs.objects.last-seen.update=60 -dhfs.objects.last-seen.timeout=43200 -quarkus.log.category."com.usatiuk.objects.iterators".level=INFO -quarkus.log.category."com.usatiuk.objects.iterators".min-level=INFO diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/Just.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/Just.java deleted file mode 100644 index 057e220a..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/Just.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.usatiuk.objects; - -import org.junit.jupiter.api.Assertions; - -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.Executors; - -public abstract class Just { - public static void run(Callable callable) { - new Thread(() -> { - try { - callable.call(); - } catch (Exception e) { - throw new RuntimeException(e); - } - }).start(); - } - - public static void runAll(Callable... callables) { - try { - try (var exs = Executors.newFixedThreadPool(callables.length)) { - exs.invokeAll(Arrays.stream(callables).map(c -> (Callable) () -> { - try { - return c.call(); - } catch (Exception e) { - throw new RuntimeException(e); - } - }).toList()).forEach(f -> { - try { - f.get(); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static void runAll(Runnable... callables) { - try { - try (var exs = Executors.newFixedThreadPool(callables.length)) { - exs.invokeAll(Arrays.stream(callables).map(c -> (Callable) () -> { - try { - c.run(); - return null; - } catch (Exception e) { - throw new RuntimeException(e); - } - }).toList()).forEach(f -> { - try { - f.get(); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static void checkIterator(Iterator it, List expected) { - for (var e : expected) { - Assertions.assertTrue(it.hasNext()); - var next = it.next(); - Assertions.assertEquals(e, next); - } - } - - @SafeVarargs - public static void checkIterator(Iterator it, K... expected) { - checkIterator(it, Arrays.asList(expected)); - } -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java deleted file mode 100644 index 9a49d067..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.usatiuk.objects; - -import com.usatiuk.objects.data.Parent; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; -import org.junit.jupiter.api.Test; - -import java.util.stream.Stream; - -class ObjectsIterateAllTestProfiles { - public static class ObjectsIterateAllTestProfile extends TempDataProfile { - - } -} - -@QuarkusTest -@TestProfile(ObjectsIterateAllTestProfiles.ObjectsIterateAllTestProfile.class) -public class ObjectsIterateAllTest { - @Inject - TransactionManager txm; - - @Inject - Transaction curTx; - - @Test - void testBegin() { - var newParent = new Parent(JObjectKey.of("IterateAllBegin1"), "John1"); - var newParent2 = new Parent(JObjectKey.of("IterateAllBegin2"), "John2"); - var newParent3 = new Parent(JObjectKey.of("IterateAllBegin3"), "John3"); - txm.run(() -> { - curTx.put(newParent); - curTx.put(newParent2); - curTx.put(newParent3); - }); - - txm.run(() -> { - try (var it = curTx.getIterator(JObjectKey.first())) { - Just.checkIterator(it, Stream.of(newParent, newParent2, newParent3).map(p -> Pair.of(p.key(), p)).toList()); - } - }); - - txm.run(() -> { - try (var it = curTx.getIterator(JObjectKey.last()).reversed()) { - Just.checkIterator(it, Stream.of(newParent3, newParent2, newParent).map(p -> Pair.of(p.key(), p)).toList()); - } - }); - } - -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestExtraChecksTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestExtraChecksTest.java deleted file mode 100644 index ede31113..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestExtraChecksTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.objects; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; - -@QuarkusTest -@TestProfile(Profiles.ObjectsTestProfileExtraChecks.class) -public class ObjectsTestExtraChecksTest extends ObjectsTestImpl { -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestImpl.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestImpl.java deleted file mode 100644 index b2c2d24e..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestImpl.java +++ /dev/null @@ -1,956 +0,0 @@ -package com.usatiuk.objects; - -import com.usatiuk.objects.data.Parent; -import com.usatiuk.objects.iterators.IteratorStart; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.logging.Log; -import jakarta.inject.Inject; -import org.junit.jupiter.api.*; - -import java.util.List; -import java.util.Map; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.CyclicBarrier; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; - -class Profiles { - public static class ObjectsTestProfileExtraChecks extends TempDataProfile { - @Override - protected void getConfigOverrides(Map toPut) { - toPut.put("dhfs.objects.persistence.snapshot-extra-checks", "true"); - } - } - - public static class ObjectsTestProfileNoExtraChecks extends TempDataProfile { - @Override - protected void getConfigOverrides(Map toPut) { - toPut.put("dhfs.objects.persistence.snapshot-extra-checks", "false"); - } - } -} - -public abstract class ObjectsTestImpl { - @Inject - TransactionManager txm; - - @Inject - Transaction curTx; - - private void deleteAndCheck(JObjectKey key) { - txm.run(() -> { - curTx.delete(key); - }); - - txm.run(() -> { - var parent = curTx.get(JData.class, key).orElse(null); - Assertions.assertNull(parent); - }); - } - - @Test - void createObject(TestInfo testInfo) { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "ParentCreate"), "John"); - curTx.put(newParent); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentCreate")).orElse(null); - Assertions.assertEquals("John", parent.name()); - }); - } - - @Test - void onCommitHookTest(TestInfo testInfo) { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "ParentOnCommitHook"), "John"); - curTx.put(newParent); - curTx.onCommit(() -> txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(testInfo.getDisplayName() + "ParentOnCommitHook2"), "John2")); - })); - }); - txm.run(() -> { - curTx.onCommit(() -> txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(testInfo.getDisplayName() + "ParentOnCommitHook3"), "John3")); - })); - }); - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentOnCommitHook")).orElse(null); - Assertions.assertEquals("John", parent.name()); - var parent2 = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentOnCommitHook2")).orElse(null); - Assertions.assertEquals("John2", parent2.name()); - var parent3 = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentOnCommitHook3")).orElse(null); - Assertions.assertEquals("John3", parent3.name()); - }); - } - - @Test - void createGetObject(TestInfo testInfo) { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "ParentCreateGet"), "John"); - curTx.put(newParent); - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentCreateGet")).orElse(null); - Assertions.assertEquals("John", parent.name()); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentCreateGet")).orElse(null); - Assertions.assertEquals("John", parent.name()); - }); - } - - @RepeatedTest(100) - void createDeleteObject(TestInfo testInfo) { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "ParentCreateDeleteObject"), "John"); - curTx.put(newParent); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentCreateDeleteObject")).orElse(null); - Assertions.assertEquals("John", parent.name()); - }); - - txm.run(() -> { - curTx.delete(JObjectKey.of(testInfo.getDisplayName() + "ParentCreateDeleteObject")); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "ParentCreateDeleteObject")).orElse(null); - Assertions.assertNull(parent); - }); - } - - @Test - void createCreateObject(TestInfo testInfo) { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "Parent7"), "John"); - curTx.put(newParent); - }); - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "Parent7"), "John2"); - curTx.put(newParent); - }); - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "Parent7")).orElse(null); - Assertions.assertEquals("John2", parent.name()); - }); - } - - @Test - void editObject(TestInfo testInfo) { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "Parent3"), "John"); - curTx.put(newParent); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "Parent3")).orElse(null); - Assertions.assertEquals("John", parent.name()); - curTx.put(parent.withName("John2")); - }); - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "Parent3")).orElse(null); - Assertions.assertEquals("John2", parent.name()); - curTx.put(parent.withName("John3")); - }); - txm.run(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "Parent3")).orElse(null); - Assertions.assertEquals("John3", parent.name()); - }); - } - - @Test - @Disabled - void createObjectConflict(TestInfo testInfo) { - AtomicBoolean thread1Failed = new AtomicBoolean(true); - AtomicBoolean thread2Failed = new AtomicBoolean(true); - - var barrier = new CyclicBarrier(2); - var latch = new CountDownLatch(2); - - Just.run(() -> { - try { - Log.warn("Thread 1"); - txm.runTries(() -> { - try { - barrier.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - var got = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "Parent2")).orElse(null); - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "Parent2"), "John"); - curTx.put(newParent); - Log.warn("Thread 1 commit"); - }, 0); - thread1Failed.set(false); - return null; - } finally { - latch.countDown(); - } - }); - Just.run(() -> { - try { - Log.warn("Thread 2"); - txm.runTries(() -> { - try { - barrier.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - var got = curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "Parent2")).orElse(null); - var newParent = new Parent(JObjectKey.of(testInfo.getDisplayName() + "Parent2"), "John2"); - curTx.put(newParent); - Log.warn("Thread 2 commit"); - }, 0); - thread2Failed.set(false); - return null; - } finally { - latch.countDown(); - } - }); - - try { - latch.await(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - var got = txm.run(() -> { - return curTx.get(Parent.class, JObjectKey.of(testInfo.getDisplayName() + "Parent2")).orElse(null); - }); - - if (!thread1Failed.get()) { - Assertions.assertTrue(thread2Failed.get()); - Assertions.assertEquals("John", got.name()); - } else if (!thread2Failed.get()) { - Assertions.assertEquals("John2", got.name()); - } else { - Assertions.fail("No thread succeeded"); - } - } - - @Test - void editConflict(TestInfo testInfo) { - String key = testInfo.getDisplayName() + "Parent4"; - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(key), "John3"); - curTx.put(newParent); - }); - - AtomicBoolean thread1Failed = new AtomicBoolean(true); - AtomicBoolean thread2Failed = new AtomicBoolean(true); - - var barrier = new CyclicBarrier(2); - var latchEnd = new CountDownLatch(2); - - Just.run(() -> { - try { - Log.warn("Thread 1"); - txm.runTries(() -> { - try { - barrier.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - var parent = curTx.get(Parent.class, JObjectKey.of(key)).orElse(null); - curTx.put(parent.withName("John")); - Log.warn("Thread 1 commit"); - }, 0); - Log.warn("Thread 1 commit done"); - thread1Failed.set(false); - return null; - } finally { - latchEnd.countDown(); - } - }); - Just.run(() -> { - try { - Log.warn("Thread 2"); - barrier.await(); // Ensure thread 2 tx id is larger than thread 1 - txm.runTries(() -> { - var parent = curTx.get(Parent.class, JObjectKey.of(key)).orElse(null); - curTx.put(parent.withName("John2")); - Log.warn("Thread 2 commit"); - }, 0); - Log.warn("Thread 2 commit done"); - thread2Failed.set(false); - return null; - } finally { - latchEnd.countDown(); - } - }); - - try { - latchEnd.await(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - var got = txm.run(() -> { - return curTx.get(Parent.class, JObjectKey.of(key)).orElse(null); - }); - - if (!thread1Failed.get() && !thread2Failed.get()) { - Assertions.assertTrue(got.name().equals("John") || got.name().equals("John2")); - return; - } - - Assertions.assertFalse(!thread1Failed.get() && !thread2Failed.get()); - - if (!thread1Failed.get()) { - if (!thread2Failed.get()) { - Assertions.assertEquals("John2", got.name()); - } else { - Assertions.assertEquals("John", got.name()); - } - } else { - Assertions.assertFalse(thread2Failed.get()); - Assertions.assertEquals("John2", got.name()); - } - } - - @Test - void editConflict2(TestInfo testInfo) { - String key = testInfo.getDisplayName() + "EditConflict2"; - txm.run(() -> { - var newParent = new Parent(JObjectKey.of(key), "John3"); - curTx.put(newParent); - }); - - AtomicBoolean thread1Failed = new AtomicBoolean(true); - AtomicBoolean thread2Failed = new AtomicBoolean(true); - - var barrier = new CyclicBarrier(2); - var latchEnd = new CountDownLatch(2); - - Just.run(() -> { - try { - Log.warn("Thread 1"); - txm.runTries(() -> { - try { - barrier.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - var parent = curTx.get(Parent.class, JObjectKey.of(key)).orElse(null); - curTx.put(parent.withName("John")); - Log.warn("Thread 1 commit"); - }, 0); - Log.warn("Thread 1 commit done"); - thread1Failed.set(false); - return null; - } finally { - latchEnd.countDown(); - } - }); - Just.run(() -> { - try { - Log.warn("Thread 2"); - txm.runTries(() -> { - // Ensure they will conflict - try { - barrier.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - var parent = curTx.get(Parent.class, JObjectKey.of(key)).orElse(null); - curTx.put(parent.withName("John2")); - Log.warn("Thread 2 commit"); - }, 0); - Log.warn("Thread 2 commit done"); - thread2Failed.set(false); - return null; - } finally { - latchEnd.countDown(); - } - }); - - try { - latchEnd.await(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - var got = txm.run(() -> { - return curTx.get(Parent.class, JObjectKey.of(key)).orElse(null); - }); - - Assertions.assertFalse(!thread1Failed.get() && !thread2Failed.get()); - - if (!thread1Failed.get()) { - if (!thread2Failed.get()) { - Assertions.assertEquals("John2", got.name()); - } else { - Assertions.assertEquals("John", got.name()); - } - } else { - Assertions.assertFalse(thread2Failed.get()); - Assertions.assertEquals("John2", got.name()); - } - } - - @RepeatedTest(100) - void snapshotTest1(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "SnapshotTest1"; - var barrier1 = new CyclicBarrier(2); - var barrier2 = new CyclicBarrier(2); - try (ExecutorService ex = Executors.newFixedThreadPool(3)) { - ex.invokeAll(List.of( - () -> { - barrier1.await(); - Log.info("Thread 2 starting tx"); - txm.run(() -> { - Log.info("Thread 2 started tx"); - curTx.put(new Parent(JObjectKey.of(key), "John")); - Log.info("Thread 2 committing"); - }); - Log.info("Thread 2 commited"); - try { - barrier2.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - return null; - }, - () -> { - Log.info("Thread 1 starting tx"); - txm.run(() -> { - try { - Log.info("Thread 1 started tx"); - barrier1.await(); - barrier2.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - Log.info("Thread 1 reading"); - Assertions.assertTrue(curTx.get(Parent.class, JObjectKey.of(key)).isEmpty()); - Log.info("Thread 1 done reading"); - }); - Log.info("Thread 1 finished"); - return null; - } - )).forEach(f -> { - try { - f.get(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - }); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - txm.run(() -> { - Assertions.assertEquals("John", curTx.get(Parent.class, JObjectKey.of(key)).orElseThrow().name()); - }); - deleteAndCheck(JObjectKey.of(key)); - } - - @RepeatedTest(100) - void snapshotTest2(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "SnapshotTest2"; - var barrier1 = new CyclicBarrier(2); - var barrier2 = new CyclicBarrier(2); - txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(key), "John")); - }); - try (ExecutorService ex = Executors.newFixedThreadPool(3)) { - ex.invokeAll(List.of( - () -> { - barrier1.await(); - Log.info("Thread 2 starting tx"); - txm.run(() -> { - Log.info("Thread 2 started tx"); - curTx.put(new Parent(JObjectKey.of(key), "John2")); - Log.info("Thread 2 committing"); - }); - Log.info("Thread 2 commited"); - try { - barrier2.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - return null; - }, - () -> { - Log.info("Thread 1 starting tx"); - txm.run(() -> { - try { - Log.info("Thread 1 started tx"); - barrier1.await(); - barrier2.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - Log.info("Thread 1 reading"); - Assertions.assertEquals("John", curTx.get(Parent.class, JObjectKey.of(key)).orElseThrow().name()); - Log.info("Thread 1 done reading"); - }); - Log.info("Thread 1 finished"); - return null; - } - )).forEach(f -> { - try { - f.get(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - }); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - txm.run(() -> { - Assertions.assertEquals("John2", curTx.get(Parent.class, JObjectKey.of(key)).orElseThrow().name()); - }); - deleteAndCheck(JObjectKey.of(key)); - } - - @RepeatedTest(100) - void snapshotTest3(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "SnapshotTest3"; - var barrier0 = new CountDownLatch(1); - var barrier1 = new CyclicBarrier(2); - var barrier2 = new CyclicBarrier(2); - txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(key), "John")); - }).onFlush(barrier0::countDown); - try { - barrier0.await(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - try (ExecutorService ex = Executors.newFixedThreadPool(3)) { - ex.invokeAll(List.of( - () -> { - barrier1.await(); - Log.info("Thread 2 starting tx"); - txm.run(() -> { - Log.info("Thread 2 started tx"); - curTx.put(new Parent(JObjectKey.of(key), "John2")); - Log.info("Thread 2 committing"); - }); - Log.info("Thread 2 commited"); - try { - barrier2.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - return null; - }, - () -> { - Log.info("Thread 1 starting tx"); - txm.run(() -> { - try { - Log.info("Thread 1 started tx"); - barrier1.await(); - barrier2.await(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - Log.info("Thread 1 reading"); - Assertions.assertEquals("John", curTx.get(Parent.class, JObjectKey.of(key)).orElseThrow().name()); - Log.info("Thread 1 done reading"); - }); - Log.info("Thread 1 finished"); - return null; - } - )).forEach(f -> { - try { - f.get(); - } catch (Throwable e) { - throw new RuntimeException(e); - } - }); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - txm.run(() -> { - Assertions.assertEquals("John2", curTx.get(Parent.class, JObjectKey.of(key)).orElseThrow().name()); - }); - deleteAndCheck(JObjectKey.of(key)); - } - - @RepeatedTest(100) - void simpleIterator1(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "SimpleIterator1"; - var key1 = key + "_1"; - var key2 = key + "_2"; - var key3 = key + "_3"; - var key4 = key + "_4"; - txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(key), "John")); - curTx.put(new Parent(JObjectKey.of(key1), "John1")); - curTx.put(new Parent(JObjectKey.of(key2), "John2")); - curTx.put(new Parent(JObjectKey.of(key3), "John3")); - curTx.put(new Parent(JObjectKey.of(key4), "John4")); - }); - txm.run(() -> { - var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key)); - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key3, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - iter.close(); - }); - } - - @RepeatedTest(100) - void simpleIterator2(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "SimpleIterator2"; - var key1 = key + "_1"; - var key2 = key + "_2"; - var key3 = key + "_3"; - var key4 = key + "_4"; - txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(key), "John")); - curTx.put(new Parent(JObjectKey.of(key1), "John1")); - curTx.put(new Parent(JObjectKey.of(key2), "John2")); - curTx.put(new Parent(JObjectKey.of(key3), "John3")); - curTx.put(new Parent(JObjectKey.of(key4), "John4")); - }); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key3, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - }); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.LT, JObjectKey.of(key + "_5"))) { - var got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - Assertions.assertTrue(iter.hasPrev()); - got = iter.prev(); - Assertions.assertEquals(key4, got.getKey().value()); - Assertions.assertTrue(iter.hasNext()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - }); - txm.run(() -> { - curTx.delete(JObjectKey.of(key)); - curTx.delete(JObjectKey.of(key1)); - curTx.delete(JObjectKey.of(key2)); - curTx.delete(JObjectKey.of(key3)); - curTx.delete(JObjectKey.of(key4)); - }); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - Assertions.assertTrue(!iter.hasNext() || !iter.next().getKey().value().startsWith(key)); - } - }); - } - - @RepeatedTest(100) - void concurrentIterator1(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "ConcurrentIterator1"; - var key1 = key + "_1"; - var key2 = key + "_2"; - var key3 = key + "_3"; - var key4 = key + "_4"; - txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(key), "John")); - curTx.put(new Parent(JObjectKey.of(key1), "John1")); - curTx.put(new Parent(JObjectKey.of(key4), "John4")); - }); - var barrier = new CyclicBarrier(2); - var barrier2 = new CyclicBarrier(2); - Just.runAll(() -> { - barrier.await(); - txm.run(() -> { - Log.info("Thread 1 starting tx"); - try { - barrier2.await(); - } catch (Exception e) { - throw new RuntimeException(e); - } - curTx.put(new Parent(JObjectKey.of(key2), "John2")); - curTx.put(new Parent(JObjectKey.of(key3), "John3")); - Log.info("Thread 1 committing"); - }); - Log.info("Thread 1 commited"); - return null; - }, () -> { - txm.run(() -> { - Log.info("Thread 2 starting tx"); - try { - barrier.await(); - barrier2.await(); - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - Log.info("Thread 2 finished"); - return null; - }); - Log.info("All threads finished"); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key3, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - }); - txm.run(() -> { - curTx.delete(JObjectKey.of(key)); - curTx.delete(JObjectKey.of(key1)); - curTx.delete(JObjectKey.of(key2)); - curTx.delete(JObjectKey.of(key3)); - curTx.delete(JObjectKey.of(key4)); - }); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - Assertions.assertTrue(!iter.hasNext() || !iter.next().getKey().value().startsWith(key)); - } - }); - } - - @RepeatedTest(100) - void concurrentIterator2(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "ConcurrentIterator2"; - var key1 = key + "_1"; - var key2 = key + "_2"; - var key3 = key + "_3"; - var key4 = key + "_4"; - txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(key), "John")); - curTx.put(new Parent(JObjectKey.of(key1), "John1")); - curTx.put(new Parent(JObjectKey.of(key2), "John2")); - curTx.put(new Parent(JObjectKey.of(key4), "John4")); - }); - var barrier = new CyclicBarrier(2); - var barrier2 = new CyclicBarrier(2); - Just.runAll(() -> { - barrier.await(); - txm.run(() -> { - Log.info("Thread 1 starting tx"); - try { - barrier2.await(); - } catch (Exception e) { - throw new RuntimeException(e); - } - curTx.put(new Parent(JObjectKey.of(key2), "John5")); - curTx.put(new Parent(JObjectKey.of(key3), "John3")); - Log.info("Thread 1 committing"); - }); - Log.info("Thread 1 commited"); - return null; - }, () -> { - txm.run(() -> { - Log.info("Thread 2 starting tx"); - try { - barrier.await(); - barrier2.await(); - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - Assertions.assertEquals("John2", ((Parent) got.getValue()).name()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - Log.info("Thread 2 finished"); - return null; - }); - Log.info("All threads finished"); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - Assertions.assertEquals("John5", ((Parent) got.getValue()).name()); - got = iter.next(); - Assertions.assertEquals(key3, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - }); - txm.run(() -> { - curTx.delete(JObjectKey.of(key)); - curTx.delete(JObjectKey.of(key1)); - curTx.delete(JObjectKey.of(key2)); - curTx.delete(JObjectKey.of(key3)); - curTx.delete(JObjectKey.of(key4)); - }); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - Assertions.assertTrue(!iter.hasNext() || !iter.next().getKey().value().startsWith(key)); - } - }); - } - - @RepeatedTest(100) - void concurrentIterator3(TestInfo testInfo) { - var key = testInfo.getDisplayName() + "ConcurrentIterator3"; - var key1 = key + "_1"; - var key2 = key + "_2"; - var key3 = key + "_3"; - var key4 = key + "_4"; - txm.run(() -> { - curTx.put(new Parent(JObjectKey.of(key), "John")); - curTx.put(new Parent(JObjectKey.of(key1), "John1")); - curTx.put(new Parent(JObjectKey.of(key2), "John2")); - curTx.put(new Parent(JObjectKey.of(key4), "John4")); - }); - var barrier = new CyclicBarrier(2); - var barrier2 = new CyclicBarrier(2); - Just.runAll(() -> { - barrier.await(); - txm.run(() -> { - Log.info("Thread 1 starting tx"); - try { - barrier2.await(); - } catch (Exception e) { - throw new RuntimeException(e); - } - curTx.put(new Parent(JObjectKey.of(key3), "John3")); - curTx.delete(JObjectKey.of(key2)); - Log.info("Thread 1 committing"); - }); - Log.info("Thread 1 commited"); - return null; - }, () -> { - txm.run(() -> { - Log.info("Thread 2 starting tx"); - try { - barrier.await(); - barrier2.await(); - try (var iter = curTx.getIterator(IteratorStart.LE, JObjectKey.of(key3))) { - var got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - Assertions.assertEquals("John2", ((Parent) got.getValue()).name()); - Assertions.assertTrue(iter.hasNext()); - Assertions.assertTrue(iter.hasPrev()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - Assertions.assertTrue(iter.hasPrev()); - got = iter.prev(); - Assertions.assertEquals(key4, got.getKey().value()); - Assertions.assertTrue(iter.hasPrev()); - got = iter.prev(); - Assertions.assertEquals("John2", ((Parent) got.getValue()).name()); - Assertions.assertTrue(iter.hasPrev()); - got = iter.prev(); - Assertions.assertEquals(key1, got.getKey().value()); - Assertions.assertTrue(iter.hasNext()); - got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - Assertions.assertEquals("John2", ((Parent) got.getValue()).name()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key2, got.getKey().value()); - Assertions.assertEquals("John2", ((Parent) got.getValue()).name()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - Log.info("Thread 2 finished"); - return null; - }); - Log.info("All threads finished"); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - var got = iter.next(); - Assertions.assertEquals(key1, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key3, got.getKey().value()); - got = iter.next(); - Assertions.assertEquals(key4, got.getKey().value()); - } - }); - txm.run(() -> { - curTx.delete(JObjectKey.of(key)); - curTx.delete(JObjectKey.of(key1)); - curTx.delete(JObjectKey.of(key3)); - curTx.delete(JObjectKey.of(key4)); - }); - txm.run(() -> { - try (var iter = curTx.getIterator(IteratorStart.GT, JObjectKey.of(key))) { - Assertions.assertTrue(!iter.hasNext() || !iter.next().getKey().value().startsWith(key)); - } - }); - } - - @RepeatedTest(100) - void allParallel(TestInfo testInfo) { - Just.runAll( - () -> createObject(testInfo), - () -> createGetObject(testInfo), - () -> createDeleteObject(testInfo), - () -> createCreateObject(testInfo), - () -> editConflict(testInfo), - () -> editConflict2(testInfo), - () -> snapshotTest1(testInfo), - () -> snapshotTest2(testInfo), - () -> snapshotTest3(testInfo), - () -> simpleIterator1(testInfo), - () -> simpleIterator2(testInfo), - () -> concurrentIterator1(testInfo), - () -> concurrentIterator2(testInfo), - () -> concurrentIterator3(testInfo) - ); - } - -// } -// -// @Test -// void nestedCreate() { -// { -// var tx = _tx.beginTransaction(); -// var parent = tx.getObject(new JObjectKey("Parent"), Parent.class); -// var kid = tx.getObject(new JObjectKey("Kid"), Kid.class); -// parent.setName("John"); -// kid.setName("KidName"); -// parent.setKidKey(kid.getKey()); -// tx.commit(); -// } -// -// { -// var tx2 = _tx.beginTransaction(); -// var parent = tx2.getObject(new JObjectKey("Parent")); -// Assertions.assertInstanceOf(Parent.class, parent); -// Assertions.assertEquals("John", ((Parent) parent).getName()); -// Assertions.assertEquals("KidName", ((Parent) parent).getKid().getName()); -// } -// } - -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestNoExtraChecksTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestNoExtraChecksTest.java deleted file mode 100644 index 4beebfb2..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsTestNoExtraChecksTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.objects; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; - -@QuarkusTest -@TestProfile(Profiles.ObjectsTestProfileNoExtraChecks.class) -public class ObjectsTestNoExtraChecksTest extends ObjectsTestImpl { -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/PreCommitTxHookTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/PreCommitTxHookTest.java deleted file mode 100644 index d1d94f7b..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/PreCommitTxHookTest.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.usatiuk.objects; - -import com.usatiuk.objects.data.Parent; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; -import io.quarkus.test.junit.mockito.InjectSpy; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; - -@QuarkusTest -@TestProfile(TempDataProfile.class) -public class PreCommitTxHookTest { - @Inject - TransactionManager txm; - - @Inject - Transaction curTx; - @InjectSpy - private DummyPreCommitTxHook spyHook; - - @Test - void createObject() { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of("ParentCreate2"), "John"); - curTx.put(newParent); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, new JObjectKeyImpl("ParentCreate2")).orElse(null); - Assertions.assertEquals("John", parent.name()); - }); - - ArgumentCaptor dataCaptor = ArgumentCaptor.forClass(JData.class); - ArgumentCaptor keyCaptor = ArgumentCaptor.forClass(JObjectKeyImpl.class); - Mockito.verify(spyHook, Mockito.times(1)).onCreate(keyCaptor.capture(), dataCaptor.capture()); - Assertions.assertEquals("John", ((Parent) dataCaptor.getValue()).name()); - Assertions.assertEquals(new JObjectKeyImpl("ParentCreate2"), keyCaptor.getValue()); - } - - @Test - void deleteObject() { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of("ParentDel"), "John"); - curTx.put(newParent); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, new JObjectKeyImpl("ParentDel")).orElse(null); - Assertions.assertEquals("John", parent.name()); - }); - - txm.run(() -> { - curTx.delete(new JObjectKeyImpl("ParentDel")); - }); - - ArgumentCaptor dataCaptor = ArgumentCaptor.forClass(JData.class); - ArgumentCaptor keyCaptor = ArgumentCaptor.forClass(JObjectKeyImpl.class); - Mockito.verify(spyHook, Mockito.times(1)).onDelete(keyCaptor.capture(), dataCaptor.capture()); - Assertions.assertEquals("John", ((Parent) dataCaptor.getValue()).name()); - Assertions.assertEquals(new JObjectKeyImpl("ParentDel"), keyCaptor.getValue()); - } - - @Test - void editObject() { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of("ParentEdit"), "John"); - curTx.put(newParent); - }); - - txm.run(() -> { - var newParent = new Parent(JObjectKey.of("ParentEdit"), "John changed"); - curTx.put(newParent); - }); - - ArgumentCaptor dataCaptorOld = ArgumentCaptor.forClass(JData.class); - ArgumentCaptor dataCaptorNew = ArgumentCaptor.forClass(JData.class); - ArgumentCaptor keyCaptor = ArgumentCaptor.forClass(JObjectKeyImpl.class); - Mockito.verify(spyHook, Mockito.times(1)).onChange(keyCaptor.capture(), dataCaptorOld.capture(), dataCaptorNew.capture()); - Assertions.assertEquals("John", ((Parent) dataCaptorOld.getValue()).name()); - Assertions.assertEquals("John changed", ((Parent) dataCaptorNew.getValue()).name()); - Assertions.assertEquals(new JObjectKeyImpl("ParentEdit"), keyCaptor.getValue()); - } - - @Test - void editObjectWithGet() { - txm.run(() -> { - var newParent = new Parent(JObjectKey.of("ParentEdit2"), "John"); - curTx.put(newParent); - }); - - txm.run(() -> { - var parent = curTx.get(Parent.class, new JObjectKeyImpl("ParentEdit2")).orElse(null); - Assertions.assertEquals("John", parent.name()); - curTx.put(parent.withName("John changed")); - }); - - ArgumentCaptor dataCaptorOld = ArgumentCaptor.forClass(JData.class); - ArgumentCaptor dataCaptorNew = ArgumentCaptor.forClass(JData.class); - ArgumentCaptor keyCaptor = ArgumentCaptor.forClass(JObjectKeyImpl.class); - Mockito.verify(spyHook, Mockito.times(1)).onChange(keyCaptor.capture(), dataCaptorOld.capture(), dataCaptorNew.capture()); - Assertions.assertEquals("John", ((Parent) dataCaptorOld.getValue()).name()); - Assertions.assertEquals("John changed", ((Parent) dataCaptorNew.getValue()).name()); - Assertions.assertEquals(new JObjectKeyImpl("ParentEdit2"), keyCaptor.getValue()); - } - - @ApplicationScoped - public static class DummyPreCommitTxHook implements PreCommitTxHook { - } - -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/TempDataProfile.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/TempDataProfile.java deleted file mode 100644 index 9eb64081..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/TempDataProfile.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.usatiuk.objects; - -import io.quarkus.test.junit.QuarkusTestProfile; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Map; - -public class TempDataProfile implements QuarkusTestProfile { - protected void getConfigOverrides(Map toPut) { - } - - @Override - final public Map getConfigOverrides() { - Path tempDirWithPrefix; - try { - tempDirWithPrefix = Files.createTempDirectory("dhfs-test"); - } catch (IOException e) { - throw new RuntimeException(e); - } - var ret = new HashMap(); - ret.put("dhfs.objects.persistence.files.root", tempDirWithPrefix.resolve("dhfs_root_test").toString()); - ret.put("dhfs.fuse.root", tempDirWithPrefix.resolve("dhfs_fuse_root_test").toString()); - ret.put("dhfs.objects.persistence", "lmdb"); - getConfigOverrides(ret); - return ret; - } -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/TestDataCleaner.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/TestDataCleaner.java deleted file mode 100644 index 4fbb0f55..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/TestDataCleaner.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.usatiuk.objects; - -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; -import java.util.Objects; - -@ApplicationScoped -public class TestDataCleaner { - @ConfigProperty(name = "dhfs.objects.persistence.files.root") - String tempDirectory; - - void init(@Observes @Priority(1) StartupEvent event) throws IOException { - try { - purgeDirectory(Path.of(tempDirectory).toFile()); - } catch (Exception ignored) { - Log.warn("Couldn't cleanup test data on init"); - } - } - - void shutdown(@Observes @Priority(1000000000) ShutdownEvent event) throws IOException { - purgeDirectory(Path.of(tempDirectory).toFile()); - } - - void purgeDirectory(File dir) { - for (File file : Objects.requireNonNull(dir.listFiles())) { - if (file.isDirectory()) - purgeDirectory(file); - file.delete(); - } - } -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Kid.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Kid.java deleted file mode 100644 index 57a6e928..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Kid.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.usatiuk.objects.data; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; - -public record Kid(JObjectKey key, String name) implements JData { - public Kid withName(String name) { - return new Kid(key, name); - } -} \ No newline at end of file diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Parent.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Parent.java deleted file mode 100644 index 2d2051d2..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/data/Parent.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.usatiuk.objects.data; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; - -public record Parent(JObjectKey key, String name) implements JData { - public Parent withName(String name) { - return new Parent(key, name); - } -} \ No newline at end of file diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/KeyPredicateKvIteratorTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/KeyPredicateKvIteratorTest.java deleted file mode 100644 index e55f7065..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/KeyPredicateKvIteratorTest.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.usatiuk.objects.iterators; - -import com.usatiuk.objects.Just; -import org.apache.commons.lang3.tuple.Pair; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.pcollections.TreePMap; - -import java.util.List; - -public class KeyPredicateKvIteratorTest { - - @Test - public void simpleTest() { - var source1 = TreePMap.empty().plus(3, 3).plus(5, 5).plus(6, 6); - var pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.GT, 3), - IteratorStart.GE, 3, v -> (v % 2 == 0)); - var expected = List.of(Pair.of(6, 6)); - for (var pair : expected) { - Assertions.assertTrue(pit.hasNext()); - Assertions.assertEquals(pair, pit.next()); - } - } - - @Test - public void ltTest() { - var source1 = TreePMap.empty().plus(3, 3).plus(5, 5).plus(6, 6); - var pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 5), - IteratorStart.LT, 5, v -> (v % 2 == 0)); - var expected = List.of(Pair.of(6, 6)); - for (var pair : expected) { - Assertions.assertTrue(pit.hasNext()); - Assertions.assertEquals(pair, pit.next()); - } - Assertions.assertFalse(pit.hasNext()); - } - - @Test - public void ltTest2() { - var source1 = TreePMap.empty().plus(3, 3).plus(5, 5).plus(6, 6); - var pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 3), - IteratorStart.LT, 2, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 4), - IteratorStart.LT, 4, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 5), - IteratorStart.LT, 5, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LE, 5), - IteratorStart.LE, 5, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6)); - Assertions.assertFalse(pit.hasNext()); - } - - @Test - public void ltTest3() { - var source1 = TreePMap.empty().plus(3, 3).plus(5, 5).plus(6, 6).plus(7, 7).plus(8, 8); - var pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 5), - IteratorStart.LT, 5, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 5), - IteratorStart.LT, 5, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 6), - IteratorStart.LT, 6, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 7), - IteratorStart.LT, 7, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 8), - IteratorStart.LT, 8, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LE, 6), - IteratorStart.LE, 6, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 6), - IteratorStart.LT, 6, v -> (v % 2 == 0)); - Assertions.assertTrue(pit.hasNext()); - Assertions.assertEquals(6, pit.peekNextKey()); - Assertions.assertFalse(pit.hasPrev()); - Assertions.assertEquals(6, pit.peekNextKey()); - Assertions.assertFalse(pit.hasPrev()); - Assertions.assertEquals(Pair.of(6, 6), pit.next()); - Assertions.assertTrue(pit.hasNext()); - Assertions.assertEquals(8, pit.peekNextKey()); - Assertions.assertEquals(6, pit.peekPrevKey()); - Assertions.assertEquals(8, pit.peekNextKey()); - Assertions.assertEquals(6, pit.peekPrevKey()); - } - - @Test - public void itTest4() { - var source1 = TreePMap.empty().plus(3, 3).plus(5, 5).plus(6, 6).plus(8, 8).plus(10, 10); - var pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 5), - IteratorStart.LT, 5, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8), Pair.of(10, 10)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 5), - IteratorStart.LT, 5, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8), Pair.of(10, 10)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 6), - IteratorStart.LT, 6, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8), Pair.of(10, 10)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 7), - IteratorStart.LT, 7, v -> (v % 2 == 0)); - Just.checkIterator(pit, Pair.of(6, 6), Pair.of(8, 8), Pair.of(10, 10)); - Assertions.assertFalse(pit.hasNext()); - - pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 6), - IteratorStart.LT, 6, v -> (v % 2 == 0)); - Assertions.assertTrue(pit.hasNext()); - Assertions.assertEquals(6, pit.peekNextKey()); - Assertions.assertFalse(pit.hasPrev()); - Assertions.assertEquals(6, pit.peekNextKey()); - Assertions.assertEquals(Pair.of(6, 6), pit.next()); - Assertions.assertTrue(pit.hasNext()); - Assertions.assertEquals(8, pit.peekNextKey()); - Assertions.assertEquals(6, pit.peekPrevKey()); - Assertions.assertEquals(8, pit.peekNextKey()); - Assertions.assertEquals(6, pit.peekPrevKey()); - } - -// @Test -// public void reverseTest() { -// var source1 = TreePMap.empty().plus(3, 3).plus(5, 5).plus(6, 6); -// var pit = new KeyPredicateKvIterator<>(new NavigableMapKvIterator<>(source1, IteratorStart.LT, 4), -// IteratorStart.LT, 4, v -> (v % 2 == 0) ); -// -// } -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java deleted file mode 100644 index 36c7a9be..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java +++ /dev/null @@ -1,266 +0,0 @@ -package com.usatiuk.objects.iterators; - -import jnr.ffi.annotations.In; -import net.jqwik.api.*; -import net.jqwik.api.state.Action; -import net.jqwik.api.state.ActionChain; -import org.apache.commons.lang3.tuple.Pair; -import org.junit.jupiter.api.Assertions; - -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import java.util.function.BiConsumer; - -public class MergingKvIteratorPbtTest { - @Property - public void checkMergingIterator(@ForAll("actions") ActionChain actions) { - actions.run(); - } - - @Provide - Arbitrary> actions(@ForAll("lists") List>> list, - @ForAll IteratorStart iteratorStart, @ForAll("startKey") Integer startKey) { - return ActionChain.startWith(() -> new MergingIteratorModel(list, iteratorStart, startKey)) - .withAction(new NextAction()) - .withAction(new PeekNextKeyAction()) - .withAction(new SkipAction()) - .withAction(new PeekPrevKeyAction()) - .withAction(new SkipPrevAction()) - .withAction(new PrevAction()) - .withAction(new HasNextAction()) - .withAction(new HasPrevAction()); - } - - @Provide - Arbitrary>>> lists() { - return Arbitraries.entries(Arbitraries.integers().between(-50, 50), Arbitraries.integers().between(-50, 50)) - .list().uniqueElements(Map.Entry::getKey).ofMinSize(0).ofMaxSize(20) - .list().ofMinSize(1).ofMaxSize(5); - } - - @Provide - Arbitrary startKey() { - return Arbitraries.integers().between(-51, 51); - } - - static class MergingIteratorModel implements CloseableKvIterator { - private final CloseableKvIterator mergedIterator; - private final CloseableKvIterator mergingIterator; - - private MergingIteratorModel(List>> pairs, IteratorStart startType, Integer startKey) { - TreeMap perfectMerged = new TreeMap<>(); - for (List> list : pairs) { - for (Map.Entry pair : list) { - perfectMerged.putIfAbsent(pair.getKey(), pair.getValue()); - } - } - mergedIterator = new NavigableMapKvIterator<>(perfectMerged, startType, startKey); - mergingIterator = new MergingKvIterator<>(startType, startKey, pairs.stream().>map( - list -> new NavigableMapKvIterator<>(new TreeMap(Map.ofEntries(list.toArray(Map.Entry[]::new))), startType, startKey) - ).toList()); - } - - @Override - public Integer peekNextKey() { - var mergedKey = mergedIterator.peekNextKey(); - var mergingKey = mergingIterator.peekNextKey(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public void skip() { - mergedIterator.skip(); - mergingIterator.skip(); - } - - @Override - public Integer peekPrevKey() { - var mergedKey = mergedIterator.peekPrevKey(); - var mergingKey = mergingIterator.peekPrevKey(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public Pair prev() { - var mergedKey = mergedIterator.prev(); - var mergingKey = mergingIterator.prev(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public boolean hasPrev() { - var mergedKey = mergedIterator.hasPrev(); - var mergingKey = mergingIterator.hasPrev(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public void skipPrev() { - mergedIterator.skipPrev(); - mergingIterator.skipPrev(); - } - - @Override - public void close() { - mergedIterator.close(); - mergingIterator.close(); - } - - @Override - public boolean hasNext() { - var mergedKey = mergedIterator.hasNext(); - var mergingKey = mergingIterator.hasNext(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public Pair next() { - var mergedKey = mergedIterator.next(); - var mergingKey = mergingIterator.next(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - } - - static class PeekNextKeyAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.peekNextKey(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasNext(); - } - - @Override - public String description() { - return "Peek next key"; - } - } - - static class SkipAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.skip(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasNext(); - } - - @Override - public String description() { - return "Skip next key"; - } - } - - static class PeekPrevKeyAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.peekPrevKey(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasPrev(); - } - - @Override - public String description() { - return "Peek prev key"; - } - } - - static class SkipPrevAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.skipPrev(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasPrev(); - } - - @Override - public String description() { - return "Skip prev key"; - } - } - - static class PrevAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.prev(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasPrev(); - } - - @Override - public String description() { - return "Prev key"; - } - } - - static class NextAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.next(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasNext(); - } - - @Override - public String description() { - return "Next key"; - } - } - - static class HasNextAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.hasNext(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return true; - } - - @Override - public String description() { - return "Has next key"; - } - } - - static class HasPrevAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.hasPrev(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return true; - } - - @Override - public String description() { - return "Has prev key"; - } - } -} \ No newline at end of file diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/NavigableMapKvIteratorTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/NavigableMapKvIteratorTest.java deleted file mode 100644 index 033670ce..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/NavigableMapKvIteratorTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.usatiuk.objects.iterators; - -import com.usatiuk.objects.Just; -import org.apache.commons.lang3.tuple.Pair; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.pcollections.TreePMap; - -import java.util.NavigableMap; - -public class NavigableMapKvIteratorTest { - private final NavigableMap _testMap1 = TreePMap.empty().plus(1, 2).plus(2, 3).plus(3, 4); - - @Test - void test1() { - var iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.LE, 3); - Just.checkIterator(iterator, Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.LE, 2); - Just.checkIterator(iterator, Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.GE, 2); - Just.checkIterator(iterator, Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.GT, 2); - Just.checkIterator(iterator, Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.LT, 3); - Just.checkIterator(iterator, Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.LT, 2); - Just.checkIterator(iterator, Pair.of(1, 2), Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.LT, 1); - Just.checkIterator(iterator, Pair.of(1, 2), Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.LE, 1); - Just.checkIterator(iterator, Pair.of(1, 2), Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.GT, 3); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.GT, 4); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.LE, 0); - Just.checkIterator(iterator, Pair.of(1, 2), Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertFalse(iterator.hasNext()); - - iterator = new NavigableMapKvIterator<>(_testMap1, IteratorStart.GE, 2); - Assertions.assertTrue(iterator.hasNext()); - Assertions.assertEquals(2, iterator.peekNextKey()); - Assertions.assertEquals(1, iterator.peekPrevKey()); - Assertions.assertEquals(2, iterator.peekNextKey()); - Assertions.assertEquals(1, iterator.peekPrevKey()); - Just.checkIterator(iterator.reversed(), Pair.of(1, 2)); - Just.checkIterator(iterator, Pair.of(1, 2), Pair.of(2, 3), Pair.of(3, 4)); - Assertions.assertEquals(Pair.of(3, 4), iterator.prev()); - Assertions.assertEquals(Pair.of(2, 3), iterator.prev()); - Assertions.assertEquals(Pair.of(2, 3), iterator.next()); - } - -} diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/TombstoneSkippingIteratorPbtTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/TombstoneSkippingIteratorPbtTest.java deleted file mode 100644 index d8bfc13c..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/TombstoneSkippingIteratorPbtTest.java +++ /dev/null @@ -1,275 +0,0 @@ -package com.usatiuk.objects.iterators; - -import net.jqwik.api.*; -import net.jqwik.api.state.Action; -import net.jqwik.api.state.ActionChain; -import org.apache.commons.lang3.tuple.Pair; -import org.junit.jupiter.api.Assertions; - -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -public class TombstoneSkippingIteratorPbtTest { - @Property - public void checkMergingIterator(@ForAll("actions") ActionChain actions) { - actions.run(); - } - - @Provide - Arbitrary> actions(@ForAll("lists") List>>> list, - @ForAll IteratorStart iteratorStart, @ForAll("startKey") Integer startKey) { - return ActionChain.startWith(() -> new MergingIteratorModel(list, iteratorStart, startKey)) - .withAction(new NextAction()) - .withAction(new PeekNextKeyAction()) - .withAction(new SkipAction()) - .withAction(new PeekPrevKeyAction()) - .withAction(new SkipPrevAction()) - .withAction(new PrevAction()) - .withAction(new HasNextAction()) - .withAction(new HasPrevAction()); - } - - @Provide - Arbitrary>>>> lists() { - return Arbitraries.entries(Arbitraries.integers().between(-50, 50), - Arbitraries.integers().between(-50, 50).flatMap(i -> Arbitraries.of(true, false).>flatMap( - b -> b ? Arbitraries.just(new DataWrapper(i)) : Arbitraries.just(new TombstoneImpl<>()) - )) - ) - .list().uniqueElements(Map.Entry::getKey).ofMinSize(0).ofMaxSize(20) - .list().ofMinSize(1).ofMaxSize(5); - } - - @Provide - Arbitrary startKey() { - return Arbitraries.integers().between(-51, 51); - } - - static class MergingIteratorModel implements CloseableKvIterator { - private final CloseableKvIterator mergedIterator; - private final CloseableKvIterator mergingIterator; - - private MergingIteratorModel(List>>> pairs, IteratorStart startType, Integer startKey) { - TreeMap> perfectMergedTombstones = new TreeMap<>(); - for (List>> list : pairs) { - for (Map.Entry> pair : list) { - perfectMergedTombstones.putIfAbsent(pair.getKey(), pair.getValue()); - } - } - TreeMap perfectMerged = new TreeMap<>(); - for (var e : perfectMergedTombstones.entrySet()) { - if (e.getValue() instanceof Data data) - perfectMerged.put(e.getKey(), data.value()); - } - - - mergedIterator = new NavigableMapKvIterator<>(perfectMerged, startType, startKey); - mergingIterator = new TombstoneSkippingIterator<>(startType, startKey, pairs.stream().>>map( - list -> new NavigableMapKvIterator>(new TreeMap>(Map.ofEntries(list.toArray(Map.Entry[]::new))), startType, startKey) - ).toList()); - } - - @Override - public Integer peekNextKey() { - var mergedKey = mergedIterator.peekNextKey(); - var mergingKey = mergingIterator.peekNextKey(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public void skip() { - mergedIterator.skip(); - mergingIterator.skip(); - } - - @Override - public Integer peekPrevKey() { - var mergedKey = mergedIterator.peekPrevKey(); - var mergingKey = mergingIterator.peekPrevKey(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public Pair prev() { - var mergedKey = mergedIterator.prev(); - var mergingKey = mergingIterator.prev(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public boolean hasPrev() { - var mergedKey = mergedIterator.hasPrev(); - var mergingKey = mergingIterator.hasPrev(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public void skipPrev() { - mergedIterator.skipPrev(); - mergingIterator.skipPrev(); - } - - @Override - public void close() { - mergedIterator.close(); - mergingIterator.close(); - } - - @Override - public boolean hasNext() { - var mergedKey = mergedIterator.hasNext(); - var mergingKey = mergingIterator.hasNext(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - - @Override - public Pair next() { - var mergedKey = mergedIterator.next(); - var mergingKey = mergingIterator.next(); - Assertions.assertEquals(mergedKey, mergingKey); - return mergedKey; - } - } - - static class PeekNextKeyAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.peekNextKey(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasNext(); - } - - @Override - public String description() { - return "Peek next key"; - } - } - - static class SkipAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.skip(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasNext(); - } - - @Override - public String description() { - return "Skip next key"; - } - } - - static class PeekPrevKeyAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.peekPrevKey(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasPrev(); - } - - @Override - public String description() { - return "Peek prev key"; - } - } - - static class SkipPrevAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.skipPrev(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasPrev(); - } - - @Override - public String description() { - return "Skip prev key"; - } - } - - static class PrevAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.prev(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasPrev(); - } - - @Override - public String description() { - return "Prev key"; - } - } - - static class NextAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.next(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return state.hasNext(); - } - - @Override - public String description() { - return "Next key"; - } - } - - static class HasNextAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.hasNext(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return true; - } - - @Override - public String description() { - return "Has next key"; - } - } - - static class HasPrevAction extends Action.JustMutate { - @Override - public void mutate(MergingIteratorModel state) { - state.hasPrev(); - } - - @Override - public boolean precondition(MergingIteratorModel state) { - return true; - } - - @Override - public String description() { - return "Has prev key"; - } - } -} \ No newline at end of file diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/snapshot/SnapshotKvIteratorTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/snapshot/SnapshotKvIteratorTest.java deleted file mode 100644 index 6505bcd6..00000000 --- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/snapshot/SnapshotKvIteratorTest.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.usatiuk.objects.snapshot; - -public class SnapshotKvIteratorTest { - - -} diff --git a/dhfs-parent/objects/src/test/resources/application.properties b/dhfs-parent/objects/src/test/resources/application.properties deleted file mode 100644 index f02e185d..00000000 --- a/dhfs-parent/objects/src/test/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -dhfs.objects.persistence=memory -quarkus.log.category."com.usatiuk".level=TRACE -quarkus.log.category."com.usatiuk".min-level=TRACE -quarkus.http.test-port=0 -quarkus.http.test-ssl-port=0 -dhfs.objects.persistence.snapshot-extra-checks=true \ No newline at end of file diff --git a/dhfs-parent/pom.xml b/dhfs-parent/pom.xml deleted file mode 100644 index 95e9faa8..00000000 --- a/dhfs-parent/pom.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - - 4.0.0 - - com.usatiuk.dhfs - parent - 1.0-SNAPSHOT - - dhfs-parent - pom - - sync-base - dhfs-fs - dhfs-fuse - kleppmanntree - objects - utils - - - - 3.12.1 - - 21 - 21 - UTF-8 - UTF-8 - quarkus-bom - io.quarkus.platform - 3.20.0 - 3.5.2 - ${project.parent.build.outputDirectory}/native - - - - - - ${quarkus.platform.group-id} - ${quarkus.platform.artifact-id} - ${quarkus.platform.version} - pom - import - - - net.jqwik - jqwik - 1.9.2 - test - - - org.projectlombok - lombok - 1.18.34 - provided - - - net.openhft - zero-allocation-hashing - 0.16 - - - org.awaitility - awaitility - 4.2.2 - test - - - org.junit.jupiter - junit-jupiter-engine - 5.9.1 - test - - - org.apache.commons - commons-collections4 - 4.5.0-M2 - - - org.pcollections - pcollections - 4.0.2 - - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.11.2 - - - --add-exports java.base/sun.nio.ch=ALL-UNNAMED - --add-exports java.base/jdk.internal.access=ALL-UNNAMED - --add-opens=java.base/java.nio=ALL-UNNAMED - --enable-preview - - - - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - - - maven-compiler-plugin - ${compiler-plugin.version} - - true - - -parameters - --add-exports - java.base/jdk.internal.access=ALL-UNNAMED - --enable-preview - - - - - maven-surefire-plugin - ${surefire-plugin.version} - - plain - true - - org.jboss.logmanager.LogManager - ${maven.home} - - - --add-exports java.base/sun.nio.ch=ALL-UNNAMED - --add-exports java.base/jdk.internal.access=ALL-UNNAMED - --add-opens=java.base/java.nio=ALL-UNNAMED - --enable-preview - - ${skip.unit} - true - - - - maven-failsafe-plugin - ${surefire-plugin.version} - - - - integration-test - verify - - - - - plain - true - - - ${project.build.directory}/${project.build.finalName}-runner - - org.jboss.logmanager.LogManager - ${project.build.directory} - ${project.basedir}/../../thirdparty/lazyfs/lazyfs/lazyfs - ${dhfs.native-libs-dir} - ${maven.home} - - true - - - - - - - - native - - - native - - - - false - true - - --add-exports java.base/sun.nio.ch=ALL-UNNAMED, - --add-exports java.base/jdk.internal.access=ALL-UNNAMED, - --add-opens=java.base/java.nio=ALL-UNNAMED, - --initialize-at-run-time=org.lmdbjava.ByteBufferProxy, - --initialize-at-run-time=jnr.ffi.util.ref.internal.Finalizer, - --initialize-at-run-time=jnr.ffi.util.ref.internal.Finalizer, - --initialize-at-run-time=com.kenai.jffi.internal.Cleaner, - --initialize-at-run-time=jnr.ffi.provider.jffi.TransientNativeMemory$Magazine, - --initialize-at-run-time=jnr.ffi.provider.jffi.TransientNativeMemory, - --initialize-at-run-time=jnr.ffi.util.ref.FinalizableReferenceQueue, - --initialize-at-run-time=jnr.ffi.provider.jffi.NativeFinalizer, - --initialize-at-run-time=jnr.ffi.provider.jffi.NativeFinalizer$SingletonHolder, - --initialize-at-run-time=com.usatiuk.utils.RefcountedCloseable, - --initialize-at-run-time=com.usatiuk.utils.DataLocker$Lock, - --initialize-at-run-time=com.usatiuk.objects.stores.LmdbObjectPersistentStore$LmdbKvIterator, - --initialize-at-run-time=com.usatiuk.objects.stores.LmdbObjectPersistentStore, - --initialize-at-run-time=com.google.protobuf.UnsafeUtil - - - - - diff --git a/dhfs-parent/sync-base/.dockerignore b/dhfs-parent/sync-base/.dockerignore deleted file mode 100644 index 94810d00..00000000 --- a/dhfs-parent/sync-base/.dockerignore +++ /dev/null @@ -1,5 +0,0 @@ -* -!target/*-runner -!target/*-runner.jar -!target/lib/* -!target/quarkus-app/* \ No newline at end of file diff --git a/dhfs-parent/sync-base/.gitignore b/dhfs-parent/sync-base/.gitignore deleted file mode 100644 index 8c7863e7..00000000 --- a/dhfs-parent/sync-base/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -#Maven -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -release.properties -.flattened-pom.xml - -# Eclipse -.project -.classpath -.settings/ -bin/ - -# IntelliJ -.idea -*.ipr -*.iml -*.iws - -# NetBeans -nb-configuration.xml - -# Visual Studio Code -.vscode -.factorypath - -# OSX -.DS_Store - -# Vim -*.swp -*.swo - -# patch -*.orig -*.rej - -# Local environment -.env - -# Plugin directory -/.quarkus/cli/plugins/ diff --git a/dhfs-parent/sync-base/Dockerfile b/dhfs-parent/sync-base/Dockerfile deleted file mode 100644 index 62bace54..00000000 --- a/dhfs-parent/sync-base/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM azul/zulu-openjdk-debian:21-jre-latest -RUN apt update && apt install -y libfuse2 curl \ No newline at end of file diff --git a/dhfs-parent/sync-base/docker-compose.yml b/dhfs-parent/sync-base/docker-compose.yml deleted file mode 100644 index c45708ba..00000000 --- a/dhfs-parent/sync-base/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -version: "3.2" - -services: - dhfs1: - build: . - privileged: true - devices: - - /dev/fuse - volumes: - - $HOME/dhfs/dhfs1:/dhfs_root - - $HOME/dhfs/dhfs1_f:/dhfs_root/fuse:rshared - - ./target/quarkus-app:/app - command: "java --add-exports java.base/sun.nio.ch=ALL-UNNAMED - -Ddhfs.objects.persistence.files.root=/dhfs_root/p - -Ddhfs.objects.root=/dhfs_root/d - -Ddhfs.fuse.root=/dhfs_root/fuse -Dquarkus.http.host=0.0.0.0 - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 - -jar /app/quarkus-run.jar" - ports: - - 8080:8080 - - 8081:8443 - - 5005:5005 - dhfs2: - build: . - privileged: true - devices: - - /dev/fuse - volumes: - - $HOME/dhfs/dhfs2:/dhfs_root - - $HOME/dhfs/dhfs2_f:/dhfs_root/fuse:rshared - - ./target/quarkus-app:/app - command: "java --add-exports java.base/sun.nio.ch=ALL-UNNAMED - --add-exports java.base/jdk.internal.access=ALL-UNNAMED - --add-opens=java.base/java.nio=ALL-UNNAMED - -Ddhfs.objects.persistence.files.root=/dhfs_root/p - -Ddhfs.objects.root=/dhfs_root/d - -Ddhfs.fuse.root=/dhfs_root/fuse -Dquarkus.http.host=0.0.0.0 - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5010 - -jar /app/quarkus-run.jar" - ports: - - 8090:8080 - - 8091:8443 - - 5010:5010 diff --git a/dhfs-parent/sync-base/pom.xml b/dhfs-parent/sync-base/pom.xml deleted file mode 100644 index a8ac57b6..00000000 --- a/dhfs-parent/sync-base/pom.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - 4.0.0 - com.usatiuk.dhfs - sync-base - 1.0-SNAPSHOT - - - com.usatiuk.dhfs - parent - 1.0-SNAPSHOT - - - - - io.quarkus - quarkus-smallrye-openapi - - - org.testcontainers - testcontainers - test - - - org.awaitility - awaitility - test - - - org.bouncycastle - bcprov-jdk18on - - - org.bouncycastle - bcpkix-jdk18on - - - io.quarkus - quarkus-security - - - net.openhft - zero-allocation-hashing - - - io.quarkus - quarkus-grpc - - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-rest - - - io.quarkus - quarkus-rest-client - - - io.quarkus - quarkus-rest-client-jsonb - - - io.quarkus - quarkus-rest-jsonb - - - io.quarkus - quarkus-scheduler - - - io.quarkus - quarkus-junit5 - test - - - org.apache.commons - commons-lang3 - - - commons-io - commons-io - - - org.jboss.slf4j - slf4j-jboss-logmanager - test - - - commons-codec - commons-codec - - - org.apache.commons - commons-collections4 - - - org.pcollections - pcollections - - - org.apache.commons - commons-math3 - 3.6.1 - - - com.usatiuk - kleppmanntree - 1.0-SNAPSHOT - - - com.usatiuk.dhfs - objects - 1.0-SNAPSHOT - - - com.usatiuk.dhfs - utils - 1.0-SNAPSHOT - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 1C - false - classes - - - false - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - - true - - - concurrent - - - 0.5 - - true - true - - - - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - quarkus-plugin - - build - generate-code - generate-code-tests - - - - - - - diff --git a/dhfs-parent/sync-base/src/main/docker/Dockerfile.jvm b/dhfs-parent/sync-base/src/main/docker/Dockerfile.jvm deleted file mode 100644 index b1de5988..00000000 --- a/dhfs-parent/sync-base/src/main/docker/Dockerfile.jvm +++ /dev/null @@ -1,97 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode -# -# Before building the container image run: -# -# ./mvnw package -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/server-jvm . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server-jvm -# -# If you want to include the debug port into your docker image -# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. -# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 -# when running the container -# -# Then run the container using : -# -# docker run -i --rm -p 8080:8080 quarkus/server-jvm -# -# This image uses the `run-java.sh` script to run the application. -# This scripts computes the command line to execute your Java application, and -# includes memory/GC tuning. -# You can configure the behavior using the following environment properties: -# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") -# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options -# in JAVA_OPTS (example: "-Dsome.property=foo") -# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is -# used to calculate a default maximal heap memory based on a containers restriction. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio -# of the container available memory as set here. The default is `50` which means 50% -# of the available memory is used as an upper boundary. You can skip this mechanism by -# setting this value to `0` in which case no `-Xmx` option is added. -# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This -# is used to calculate a default initial heap memory based on the maximum heap memory. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio -# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` -# is used as the initial heap size. You can skip this mechanism by setting this value -# to `0` in which case no `-Xms` option is added (example: "25") -# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. -# This is used to calculate the maximum value of the initial heap memory. If used in -# a container without any memory constraints for the container then this option has -# no effect. If there is a memory constraint then `-Xms` is limited to the value set -# here. The default is 4096MB which means the calculated value of `-Xms` never will -# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") -# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output -# when things are happening. This option, if set to true, will set -# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). -# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: -# true"). -# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). -# - CONTAINER_CORE_LIMIT: A calculated core limit as described in -# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") -# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). -# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. -# (example: "20") -# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. -# (example: "40") -# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. -# (example: "4") -# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus -# previous GC times. (example: "90") -# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") -# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") -# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should -# contain the necessary JRE command-line options to specify the required GC, which -# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). -# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") -# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") -# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be -# accessed directly. (example: "foo.example.com,bar.example.com") -# -### -FROM registry.access.redhat.com/ubi8/openjdk-21:1.18 - -ENV LANGUAGE='en_US:en' - - -# We make four distinct layers so if there are application changes the library layers can be re-used -COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ -COPY --chown=185 target/quarkus-app/*.jar /deployments/ -COPY --chown=185 target/quarkus-app/app/ /deployments/app/ -COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/ - -EXPOSE 8080 -USER 185 -ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" - -ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] - diff --git a/dhfs-parent/sync-base/src/main/docker/Dockerfile.legacy-jar b/dhfs-parent/sync-base/src/main/docker/Dockerfile.legacy-jar deleted file mode 100644 index f66a1665..00000000 --- a/dhfs-parent/sync-base/src/main/docker/Dockerfile.legacy-jar +++ /dev/null @@ -1,93 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode -# -# Before building the container image run: -# -# ./mvnw package -Dquarkus.package.jar.type=legacy-jar -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/server-legacy-jar . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server-legacy-jar -# -# If you want to include the debug port into your docker image -# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. -# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 -# when running the container -# -# Then run the container using : -# -# docker run -i --rm -p 8080:8080 quarkus/server-legacy-jar -# -# This image uses the `run-java.sh` script to run the application. -# This scripts computes the command line to execute your Java application, and -# includes memory/GC tuning. -# You can configure the behavior using the following environment properties: -# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") -# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options -# in JAVA_OPTS (example: "-Dsome.property=foo") -# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is -# used to calculate a default maximal heap memory based on a containers restriction. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio -# of the container available memory as set here. The default is `50` which means 50% -# of the available memory is used as an upper boundary. You can skip this mechanism by -# setting this value to `0` in which case no `-Xmx` option is added. -# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This -# is used to calculate a default initial heap memory based on the maximum heap memory. -# If used in a container without any memory constraints for the container then this -# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio -# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` -# is used as the initial heap size. You can skip this mechanism by setting this value -# to `0` in which case no `-Xms` option is added (example: "25") -# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. -# This is used to calculate the maximum value of the initial heap memory. If used in -# a container without any memory constraints for the container then this option has -# no effect. If there is a memory constraint then `-Xms` is limited to the value set -# here. The default is 4096MB which means the calculated value of `-Xms` never will -# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") -# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output -# when things are happening. This option, if set to true, will set -# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). -# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: -# true"). -# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). -# - CONTAINER_CORE_LIMIT: A calculated core limit as described in -# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") -# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). -# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. -# (example: "20") -# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. -# (example: "40") -# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. -# (example: "4") -# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus -# previous GC times. (example: "90") -# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") -# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") -# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should -# contain the necessary JRE command-line options to specify the required GC, which -# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). -# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") -# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") -# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be -# accessed directly. (example: "foo.example.com,bar.example.com") -# -### -FROM registry.access.redhat.com/ubi8/openjdk-21:1.18 - -ENV LANGUAGE='en_US:en' - - -COPY target/lib/* /deployments/lib/ -COPY target/*-runner.jar /deployments/quarkus-run.jar - -EXPOSE 8080 -USER 185 -ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" - -ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] diff --git a/dhfs-parent/sync-base/src/main/docker/Dockerfile.native b/dhfs-parent/sync-base/src/main/docker/Dockerfile.native deleted file mode 100644 index 226e7c71..00000000 --- a/dhfs-parent/sync-base/src/main/docker/Dockerfile.native +++ /dev/null @@ -1,27 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. -# -# Before building the container image run: -# -# ./mvnw package -Dnative -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.native -t quarkus/server . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server -# -### -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.9 -WORKDIR /work/ -RUN chown 1001 /work \ - && chmod "g+rwX" /work \ - && chown 1001:root /work -COPY --chown=1001:root target/*-runner /work/application - -EXPOSE 8080 -USER 1001 - -ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] diff --git a/dhfs-parent/sync-base/src/main/docker/Dockerfile.native-micro b/dhfs-parent/sync-base/src/main/docker/Dockerfile.native-micro deleted file mode 100644 index 4bd4c6de..00000000 --- a/dhfs-parent/sync-base/src/main/docker/Dockerfile.native-micro +++ /dev/null @@ -1,30 +0,0 @@ -#### -# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. -# It uses a micro base image, tuned for Quarkus native executables. -# It reduces the size of the resulting container image. -# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image. -# -# Before building the container image run: -# -# ./mvnw package -Dnative -# -# Then, build the image with: -# -# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/server . -# -# Then run the container using: -# -# docker run -i --rm -p 8080:8080 quarkus/server -# -### -FROM quay.io/quarkus/quarkus-micro-image:2.0 -WORKDIR /work/ -RUN chown 1001 /work \ - && chmod "g+rwX" /work \ - && chown 1001:root /work -COPY --chown=1001:root target/*-runner /work/application - -EXPOSE 8080 -USER 1001 - -ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"] diff --git a/dhfs-parent/sync-base/src/main/java/DeadlockDetector.java b/dhfs-parent/sync-base/src/main/java/DeadlockDetector.java deleted file mode 100644 index 7b275098..00000000 --- a/dhfs-parent/sync-base/src/main/java/DeadlockDetector.java +++ /dev/null @@ -1,63 +0,0 @@ -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; - -import java.lang.management.ManagementFactory; -import java.lang.management.ThreadInfo; -import java.lang.management.ThreadMXBean; -import java.util.Arrays; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -@ApplicationScoped -public class DeadlockDetector { - private final ExecutorService _executor = Executors.newSingleThreadExecutor(); - - void init(@Observes @Priority(1) StartupEvent event) { - _executor.submit(this::run); - } - - void shutdown(@Observes @Priority(100000) ShutdownEvent event) { - _executor.shutdownNow(); - } - - private void run() { - ThreadMXBean bean = ManagementFactory.getThreadMXBean(); - try { - while (!Thread.interrupted()) { - Thread.sleep(4000); - - long[] threadIds = bean.findDeadlockedThreads(); // Returns null if no threads are deadlocked. - - if (threadIds != null) { - ThreadInfo[] infos = bean.getThreadInfo(threadIds, Integer.MAX_VALUE); - - StringBuilder sb = new StringBuilder(); - - sb.append("Deadlock detected!\n"); - - for (ThreadInfo info : infos) { - StackTraceElement[] stack = info.getStackTrace(); - sb.append(info.getThreadName()).append("\n"); - sb.append("getLockedMonitors: ").append(Arrays.toString(info.getLockedMonitors())).append("\n"); - sb.append("getLockedSynchronizers: ").append(Arrays.toString(info.getLockedSynchronizers())).append("\n"); - sb.append("waiting on: ").append(info.getLockInfo()).append("\n"); - sb.append("locked by: ").append(info.getLockOwnerName()).append("\n"); - sb.append("Stack trace:\n"); - for (var e : stack) { - sb.append(e.toString()).append("\n"); - } - sb.append("==="); - } - - Log.error(sb); - } - } - } catch (InterruptedException e) { - } - Log.info("Deadlock detector thread exiting"); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java deleted file mode 100644 index 3e00a91e..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.usatiuk.dhfs; - -import com.usatiuk.dhfs.persistence.JObjectKeyP; -import com.usatiuk.objects.JObjectKey; -import jakarta.inject.Singleton; - -@Singleton -public class JObjectKeyProtoSerializer implements ProtoSerializer { - @Override - public JObjectKey deserialize(JObjectKeyP message) { - return JObjectKey.of(message.getName()); - } - - @Override - public JObjectKeyP serialize(JObjectKey object) { - return JObjectKeyP.newBuilder().setName(object.value()).build(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ProtoSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ProtoSerializer.java deleted file mode 100644 index a95007ad..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ProtoSerializer.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.dhfs; - -import com.google.protobuf.Message; - -public interface ProtoSerializer { - O deserialize(M message); - - M serialize(O object); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ShutdownChecker.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ShutdownChecker.java deleted file mode 100644 index 03352e95..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/ShutdownChecker.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.usatiuk.dhfs; - -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.IOException; -import java.nio.file.Paths; - -@ApplicationScoped -public class ShutdownChecker { - private static final String dataFileName = "running"; - @ConfigProperty(name = "dhfs.objects.persistence.files.root") - String dataRoot; - boolean _cleanShutdown = true; - boolean _initialized = false; - - void init(@Observes @Priority(2) StartupEvent event) throws IOException { - Paths.get(dataRoot).toFile().mkdirs(); - - if (!Paths.get(dataRoot).toFile().isDirectory()) - throw new IllegalStateException("Could not create directory " + dataRoot); - - Log.info("Initializing with root " + dataRoot); - if (Paths.get(dataRoot).resolve(dataFileName).toFile().exists()) { - _cleanShutdown = false; - Log.error("Unclean shutdown detected!"); - } else { - Paths.get(dataRoot).resolve(dataFileName).toFile().createNewFile(); - } - _initialized = true; - } - - void shutdown(@Observes @Priority(100000) ShutdownEvent event) throws IOException { - Paths.get(dataRoot).resolve(dataFileName).toFile().delete(); - } - - public boolean lastShutdownClean() { - if (!_initialized) throw new IllegalStateException("ShutdownChecker not initialized"); - return _cleanShutdown; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java deleted file mode 100644 index 4d7d0ee4..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.usatiuk.dhfs; - -import com.usatiuk.dhfs.invalidation.Op; -import com.usatiuk.dhfs.repository.OpP; -import com.usatiuk.utils.SerializationHelper; -import jakarta.inject.Singleton; - -@Singleton -public class TemporaryOpSerializer implements ProtoSerializer { - @Override - public Op deserialize(OpP message) { - return SerializationHelper.deserialize(message.getSerializedData().toByteArray()); - } - - @Override - public OpP serialize(Op object) { - return OpP.newBuilder() - .setSerializedData(SerializationHelper.serialize(object)) - .build(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncProcessor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncProcessor.java deleted file mode 100644 index ce680536..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncProcessor.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.usatiuk.dhfs.autosync; - -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.IteratorStart; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import com.usatiuk.utils.HashSetDelayedBlockingQueue; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.apache.commons.lang3.concurrent.BasicThreadFactory; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -@ApplicationScoped -public class AutosyncProcessor { - private final HashSetDelayedBlockingQueue _pending = new HashSetDelayedBlockingQueue<>(0); - private final HashSetDelayedBlockingQueue _retries = new HashSetDelayedBlockingQueue<>(10000); //FIXME: - @Inject - TransactionManager txm; - @ConfigProperty(name = "dhfs.objects.autosync.threads") - int autosyncThreads; - @Inject - ExecutorService executorService; - @Inject - Transaction curTx; - @Inject - RemoteTransaction remoteTx; - @ConfigProperty(name = "dhfs.objects.autosync.download-all") - boolean downloadAll; - - private ExecutorService _autosyncExcecutor; - - void init(@Observes @Priority(300) StartupEvent event) { - BasicThreadFactory factory = new BasicThreadFactory.Builder() - .namingPattern("autosync-%d") - .build(); - - _autosyncExcecutor = Executors.newFixedThreadPool(autosyncThreads, factory); - for (int i = 0; i < autosyncThreads; i++) { - _autosyncExcecutor.submit(this::autosync); - } - - if (downloadAll) - executorService.submit(() -> { - Log.info("Adding all to autosync"); - txm.run(() -> { - try (var it = curTx.getIterator(IteratorStart.GE, JObjectKey.first())) { - while (it.hasNext()) { - var key = it.peekNextKey(); - txm.run(() -> { - var gotObj = curTx.get(JData.class, key).orElse(null); - if (!(gotObj instanceof RemoteObjectMeta meta)) - return; - if (!meta.hasLocalData()) - add(meta.key()); - }, true); - it.skip(); - } - } - }); - Log.info("Adding all to autosync: finished"); - }); - } - - void shutdown(@Observes @Priority(10) ShutdownEvent event) { - _autosyncExcecutor.shutdownNow(); - } - - public void add(JObjectKey name) { - _pending.add(name); - } - - private void autosync() { - try { - while (!Thread.interrupted()) { - JObjectKey name = null; - - while (name == null) { - name = _pending.tryGet(); - if (name == null) - name = _retries.tryGet(); - if (name == null) - name = _pending.get(1000L); //FIXME: - } - - try { - JObjectKey finalName = name; - boolean ok = txm.run(() -> { - RemoteObjectMeta obj; - try { - obj = remoteTx.getMeta(finalName).orElse(null); - } catch (ClassCastException cex) { - Log.debugv("Not downloading object {0}, not remote object", finalName); - return true; - } - - if (obj == null) { - Log.debugv("Not downloading object {0}, not found", finalName); - return true; - } - if (obj.hasLocalData()) { - Log.debugv("Not downloading object {0}, already have local data", finalName); - return true; - } - var data = remoteTx.getData(JDataRemote.class, finalName); - return data.isPresent(); - }); - if (ok) { - Log.debugv("Downloaded object {0}", name); - } - if (!ok) { - Log.debug("Failed downloading object " + name + ", will retry."); - _retries.add(name); - } - } catch (Exception e) { - Log.debug("Failed downloading object " + name + ", will retry.", e); - _retries.add(name); - } - } - } catch (InterruptedException ignored) { - } - Log.info("Autosync thread exiting"); - - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java deleted file mode 100644 index 47096849..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.usatiuk.dhfs.autosync; - -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -@Singleton -public class AutosyncTxHook implements PreCommitTxHook { - @Inject - Transaction curTx; - @Inject - InvalidationQueueService invalidationQueueService; - @Inject - AutosyncProcessor autosyncProcessor; - - @ConfigProperty(name = "dhfs.objects.autosync.download-all") - boolean downloadAll; - - @Override - public void onChange(JObjectKey key, JData old, JData cur) { - if (!(cur instanceof RemoteObjectMeta meta)) - return; - - if (!meta.hasLocalData() && downloadAll) { - curTx.onCommit(() -> autosyncProcessor.add(meta.key())); - } - } - - @Override - public void onCreate(JObjectKey key, JData cur) { - if (!(cur instanceof RemoteObjectMeta meta)) - return; - - if (!meta.hasLocalData() && downloadAll) { - curTx.onCommit(() -> autosyncProcessor.add(meta.key())); - } - } - - @Override - public void onDelete(JObjectKey key, JData cur) { - if (!(cur instanceof RemoteObjectMeta remote)) { - return; - } - } - - @Override - public int getPriority() { - return 100; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.java deleted file mode 100644 index 19c426b8..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueData.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import org.apache.commons.collections4.MultiValuedMap; -import org.apache.commons.collections4.multimap.HashSetValuedHashMap; - -import java.io.Serial; -import java.io.Serializable; - -public class DeferredInvalidationQueueData implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - public final MultiValuedMap deferredInvalidations = new HashSetValuedHashMap<>(); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java deleted file mode 100644 index 96fa61d0..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerConnectedEventListener; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.ReachablePeerManager; -import com.usatiuk.utils.SerializationHelper; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import io.quarkus.scheduler.Scheduled; -import io.smallrye.common.annotation.Blocking; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.apache.commons.lang3.SerializationUtils; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; - -@ApplicationScoped -public class DeferredInvalidationQueueService implements PeerConnectedEventListener { - private static final String dataFileName = "invqueue"; - @Inject - ReachablePeerManager reachablePeerManager; - @Inject - InvalidationQueueService invalidationQueueService; - @ConfigProperty(name = "dhfs.objects.persistence.files.root") - String dataRoot; - private DeferredInvalidationQueueData _persistentData = new DeferredInvalidationQueueData(); - - void init(@Observes @Priority(290) StartupEvent event) throws IOException { - Paths.get(dataRoot).toFile().mkdirs(); - Log.info("Initializing with root " + dataRoot); - if (Paths.get(dataRoot).resolve(dataFileName).toFile().exists()) { - Log.info("Reading invalidation queue"); - try { - _persistentData = SerializationHelper.deserialize(Files.readAllBytes(Paths.get(dataRoot).resolve(dataFileName))); - } catch (Exception e) { - Log.error("Error reading invalidation queue", e); - } - } - } - - void shutdown(@Observes @Priority(300) ShutdownEvent event) throws IOException { - Log.info("Saving deferred invalidations"); - writeData(); - Log.info("Saved deferred invalidations"); - } - - private void writeData() { - try { - Files.write(Paths.get(dataRoot).resolve(dataFileName), SerializationUtils.serialize(_persistentData)); - } catch (IOException iex) { - Log.error("Error writing deferred invalidations data", iex); - throw new RuntimeException(iex); - } - } - - // FIXME: - @Scheduled(every = "15s", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - @Blocking - void periodicReturn() { - for (var reachable : reachablePeerManager.getAvailableHosts()) - returnForHost(reachable); - } - - void returnForHost(PeerId host) { - synchronized (this) { - var col = _persistentData.deferredInvalidations.get(host); - for (var s : col) { - Log.tracev("Returning deferred invalidation: {0}", s); - invalidationQueueService.pushDeferredInvalidations(s); - } - col.clear(); - } - } - - void defer(InvalidationQueueEntry entry) { - synchronized (this) { - Log.tracev("Deferred invalidation: {0}", entry); - _persistentData.deferredInvalidations.put(entry.peer(), entry); - } - } - - @Override - public void handlePeerConnected(PeerId peerId) { - returnForHost(peerId); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java deleted file mode 100644 index 9688d247..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.PMap; - -import java.util.Collection; -import java.util.List; - -public record IndexUpdateOp(JObjectKey key, PMap changelog, JDataRemoteDto data) implements Op { - @Override - public Collection getEscapedRefs() { - return List.of(key); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java deleted file mode 100644 index 3fd2aee9..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.JObjectKey; - -import java.io.Serializable; - -public record InvalidationQueueEntry(PeerId peer, JObjectKey key) implements Serializable { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java deleted file mode 100644 index 59a8b3f7..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.dhfs.peersync.ReachablePeerManager; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import com.usatiuk.utils.AutoCloseableNoThrow; -import com.usatiuk.utils.DataLocker; -import com.usatiuk.utils.HashSetDelayedBlockingQueue; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import io.vertx.core.impl.ConcurrentHashSet; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.apache.commons.collections4.multimap.ArrayListValuedHashMap; -import org.apache.commons.lang3.concurrent.BasicThreadFactory; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; - -@ApplicationScoped -public class InvalidationQueueService { - private final HashSetDelayedBlockingQueue _queue; - private final AtomicReference> _toAllQueue = new AtomicReference<>(new ConcurrentHashSet<>()); - private final DataLocker _locker = new DataLocker(); - @Inject - ReachablePeerManager reachablePeerManager; - @Inject - DeferredInvalidationQueueService deferredInvalidationQueueService; - @Inject - PeerInfoService peerInfoService; - @Inject - TransactionManager txm; - @Inject - Transaction curTx; - @ConfigProperty(name = "dhfs.objects.invalidation.threads") - int threads; - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - RemoteObjectServiceClient remoteObjectServiceClient; - @Inject - OpExtractorService opExtractorService; - private ExecutorService _executor; - private volatile boolean _shutdown = false; - - public InvalidationQueueService(@ConfigProperty(name = "dhfs.objects.invalidation.delay") int delay) { - _queue = new HashSetDelayedBlockingQueue<>(delay); - } - - void init(@Observes @Priority(300) StartupEvent event) throws InterruptedException { - BasicThreadFactory factory = new BasicThreadFactory.Builder() - .namingPattern("invalidation-%d") - .build(); - - _executor = Executors.newFixedThreadPool(threads, factory); - - for (int i = 0; i < threads; i++) { - _executor.submit(this::sender); - } - } - - void shutdown(@Observes @Priority(10) ShutdownEvent event) throws InterruptedException { - _shutdown = true; - _executor.shutdownNow(); - if (!_executor.awaitTermination(30, TimeUnit.SECONDS)) { - Log.error("Failed to shut down invalidation sender thread"); - } - var data = _queue.close(); - Log.info("Will defer " + data.size() + " invalidations on shutdown"); - for (var e : data) - deferredInvalidationQueueService.defer(e); - } - - private void sender() { - while (!_shutdown) { - try { - try { - if (!_queue.hasImmediate()) { - ConcurrentHashSet toAllQueue; - - while (true) { - toAllQueue = _toAllQueue.get(); - if (toAllQueue != null) { - if (_toAllQueue.compareAndSet(toAllQueue, null)) - break; - } else { - break; - } - } - - if (toAllQueue != null) { - var hostInfo = reachablePeerManager.getHostStateSnapshot(); - for (var o : toAllQueue) { - for (var h : hostInfo.available()) - _queue.add(new InvalidationQueueEntry(h, o)); - for (var u : hostInfo.unavailable()) - deferredInvalidationQueueService.defer(new InvalidationQueueEntry(u, o)); - } - } - } - - var data = _queue.getAllWait(100, _queue.getDelay()); // TODO: config? - if (data.isEmpty()) continue; - String stats = "Sent invalidation: "; - long success = 0; - - List locks = new LinkedList<>(); - try { - ArrayListValuedHashMap ops = new ArrayListValuedHashMap<>(); - ArrayListValuedHashMap commits = new ArrayListValuedHashMap<>(); - for (var e : data) { - // TODO: Race? - if (!peerInfoService.existsPeer(e.peer())) { - Log.warnv("Will ignore invalidation of {0} to {1}, peer not found", e.key(), e.peer()); - continue; - } - - if (!reachablePeerManager.isReachable(e.peer())) { - deferredInvalidationQueueService.defer(e); - continue; - } - - if (!persistentPeerDataService.isInitialSyncDone(e.peer())) { - pushInvalidationToOne(e); - continue; - } - - var lock = _locker.tryLock(e); - if (lock == null) { - pushInvalidationToOne(e); - continue; - } - locks.add(lock); - try { - txm.run(() -> { - var obj = curTx.get(JData.class, e.key()).orElse(null); - if (obj == null) return; - - var extracted = opExtractorService.extractOps(obj, e.peer()); - if (extracted == null) return; - ops.get(e.peer()).addAll(extracted.getLeft()); - commits.get(e.peer()).add(extracted.getRight()); - }); - success++; - } catch (Exception ex) { - Log.warnv("Failed to prepare invalidation to {0}, will retry: {1}", e, ex); - pushInvalidationToOne(e); - } - if (_shutdown) { - Log.info("Invalidation sender exiting"); - break; - } - } - - for (var p : ops.keySet()) { - var list = ops.get(p); - Log.tracev("Pushing invalidations to {0}: {1}", p, list); - remoteObjectServiceClient.pushOps(p, list); - commits.get(p).forEach(Runnable::run); - } - } catch (Exception e) { - Log.warn("Failed to send invalidations, will retry", e); - for (var inv : data) { - pushInvalidationToOne(inv); - } - } finally { - locks.forEach(AutoCloseableNoThrow::close); - } - - stats += success + "/" + data.size() + " "; - Log.info(stats); - } catch (InterruptedException ie) { - throw ie; - } catch (Exception e) { - Log.error("Exception in invalidation sender thread: ", e); - } - } catch (InterruptedException ignored) { - } - } - Log.info("Invalidation sender exiting"); - } - - public void pushInvalidationToAll(JObjectKey key) { - while (true) { - var queue = _toAllQueue.get(); - if (queue == null) { - var nq = new ConcurrentHashSet(); - if (!_toAllQueue.compareAndSet(null, nq)) continue; - queue = nq; - } - - queue.add(key); - - if (_toAllQueue.get() == queue) break; - } - } - - void pushInvalidationToOne(InvalidationQueueEntry entry) { - if (reachablePeerManager.isReachable(entry.peer())) - _queue.add(entry); - else - deferredInvalidationQueueService.defer(entry); - } - - void pushInvalidationToOneNoDelay(InvalidationQueueEntry entry) { - if (reachablePeerManager.isReachable(entry.peer())) - _queue.addNoDelay(entry); - else - deferredInvalidationQueueService.defer(entry); - } - - public void pushInvalidationToOne(PeerId host, JObjectKey obj) { - var entry = new InvalidationQueueEntry(host, obj); - pushInvalidationToOne(entry); - } - - public void pushInvalidationToOneNoDelay(PeerId host, JObjectKey obj) { - var entry = new InvalidationQueueEntry(host, obj); - pushInvalidationToOneNoDelay(entry); - } - - void pushDeferredInvalidations(InvalidationQueueEntry entry) { - _queue.add(entry); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/Op.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/Op.java deleted file mode 100644 index 15914e84..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/Op.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.objects.JObjectKey; - -import java.io.Serializable; -import java.util.Collection; - -public interface Op extends Serializable { - Collection getEscapedRefs(); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractor.java deleted file mode 100644 index beaf4046..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.JData; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; - -public interface OpExtractor { - Pair, Runnable> extractOps(T data, PeerId peerId); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractorService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractorService.java deleted file mode 100644 index 7b8eb32d..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpExtractorService.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.JData; -import jakarta.annotation.Nullable; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.inject.Instance; -import org.apache.commons.lang3.tuple.Pair; - -import java.lang.reflect.ParameterizedType; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Stream; - -@ApplicationScoped -public class OpExtractorService { - private final Map, OpExtractor> _opExtractorMap; - - public OpExtractorService(Instance> opExtractors) { - HashMap, OpExtractor> opExtractorMap = new HashMap<>(); - - for (var opExtractor : opExtractors.handles()) { - for (var type : Arrays.stream(opExtractor.getBean().getBeanClass().getGenericInterfaces()).flatMap( - t -> { - if (!(t instanceof ParameterizedType pm)) return Stream.empty(); - if (pm.getRawType().equals(OpExtractor.class)) return Stream.of(pm); - return Stream.empty(); - } - ).toList()) { - var orig = type.getActualTypeArguments()[0]; - assert JData.class.isAssignableFrom((Class) orig); - opExtractorMap.put((Class) orig, opExtractor.get()); - } - } - - _opExtractorMap = Map.copyOf(opExtractorMap); - } - - public @Nullable Pair, Runnable> extractOps(JData data, PeerId peerId) { - var extractor = _opExtractorMap.get(data.getClass()); - if (extractor == null) { - return null; - } - return extractor.extractOps(data, peerId); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java deleted file mode 100644 index ddada994..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; - -public interface OpHandler { - void handleOp(PeerId from, T op); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandlerService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandlerService.java deleted file mode 100644 index e6ee8d59..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandlerService.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.inject.Instance; - -import java.lang.reflect.ParameterizedType; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.stream.Stream; - -@ApplicationScoped -public class OpHandlerService { - private final Map, OpHandler> _opHandlerMap; - - public OpHandlerService(Instance> OpHandlers) { - HashMap, OpHandler> OpHandlerMap = new HashMap<>(); - - for (var OpHandler : OpHandlers.handles()) { - for (var type : Arrays.stream(OpHandler.getBean().getBeanClass().getGenericInterfaces()).flatMap( - t -> { - if (!(t instanceof ParameterizedType pm)) return Stream.empty(); - if (pm.getRawType().equals(OpHandler.class)) return Stream.of(pm); - return Stream.empty(); - } - ).toList()) { - var orig = type.getActualTypeArguments()[0]; - assert Op.class.isAssignableFrom((Class) orig); - OpHandlerMap.put((Class) orig, OpHandler.get()); - } - } - - _opHandlerMap = Map.copyOf(OpHandlerMap); - } - - public void handleOp(PeerId from, Op op) { - var handler = _opHandlerMap.get(op.getClass()); - if (handler == null) { - throw new IllegalArgumentException("No handler for op: " + op.getClass()); - } - handler.handleOp(from, op); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java deleted file mode 100644 index e470e07b..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.usatiuk.dhfs.invalidation; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.dhfs.remoteobj.JDataRemotePush; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.dhfs.syncmap.DtoMapperService; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; - -@ApplicationScoped -public class RemoteObjectMetaOpExtractor implements OpExtractor { - @Inject - TransactionManager txm; - @Inject - Transaction curTx; - @Inject - RemoteTransaction remoteTransaction; - @Inject - DtoMapperService dtoMapperService; - - @Override - public Pair, Runnable> extractOps(RemoteObjectMeta data, PeerId peerId) { - return txm.run(() -> { - JDataRemoteDto dto = - data.knownType().isAnnotationPresent(JDataRemotePush.class) - ? remoteTransaction.getData(data.knownType(), data.key()) - .map(d -> dtoMapperService.toDto(d, d.dtoClass())).orElse(null) - : null; - - if (data.knownType().isAnnotationPresent(JDataRemotePush.class) && dto == null) { - Log.warnv("Failed to get data for push {0} of type {1}", data.key(), data.knownType()); - } - return Pair.of(List.of(new IndexUpdateOp(data.key(), data.changelog(), dto)), () -> { - }); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.java deleted file mode 100644 index 7665f1ef..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeInitialSyncProcessor.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData; -import com.usatiuk.dhfs.peersync.InitialSyncProcessor; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.JObjectKey; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -@ApplicationScoped -public class JKleppmannTreeInitialSyncProcessor implements InitialSyncProcessor { - @Inject - JKleppmannTreeManager jKleppmannTreeManager; - @Inject - InvalidationQueueService invalidationQueueService; - - @Override - public void prepareForInitialSync(PeerId from, JObjectKey key) { - var tree = jKleppmannTreeManager.getTree(key).orElseThrow(); - tree.recordBootstrap(from); - } - - @Override - public void handleCrash(JObjectKey key) { - invalidationQueueService.pushInvalidationToAll(key); - Log.infov("Pushing after crash invalidation to all for {0}", key); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.java deleted file mode 100644 index 06d72caf..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeManager.java +++ /dev/null @@ -1,347 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.invalidation.Op; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.kleppmanntree.*; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; -import org.pcollections.HashTreePMap; -import org.pcollections.TreePMap; -import org.pcollections.TreePSet; - -import java.util.*; -import java.util.function.Function; -import java.util.function.Supplier; - -@ApplicationScoped -public class JKleppmannTreeManager { - private static final String dataFileName = "trees"; - @Inject - Transaction curTx; - @Inject - TransactionManager txManager; - @Inject - JKleppmannTreePeerInterface peerInterface; - @Inject - PeerInfoService peerInfoService; - @Inject - PersistentPeerDataService persistentPeerDataService; - - public JKleppmannTree getTree(JObjectKey name, Supplier rootNodeSupplier) { - return txManager.executeTx(() -> { - var data = curTx.get(JKleppmannTreePersistentData.class, name).orElse(null); - if (data == null) { - data = new JKleppmannTreePersistentData( - name, - TreePSet.empty(), - true, - 1L, - HashTreePMap.empty(), - HashTreePMap.empty(), - TreePMap.empty() - ); - curTx.put(data); - var rootNode = new JKleppmannTreeNode(JObjectKey.of(name.value() + "_jt_root"), null, rootNodeSupplier.get()); - curTx.put(new JKleppmannTreeNodeHolder(rootNode, true)); - var trashNode = new JKleppmannTreeNode(JObjectKey.of(name.value() + "_jt_trash"), null, rootNodeSupplier.get()); - curTx.put(new JKleppmannTreeNodeHolder(trashNode, true)); - var lf_node = new JKleppmannTreeNode(JObjectKey.of(name.value() + "_jt_lf"), null, rootNodeSupplier.get()); - curTx.put(new JKleppmannTreeNodeHolder(lf_node, true)); - } - return new JKleppmannTree(data); -// opObjectRegistry.registerObject(tree); - }); - } - - public Optional getTree(JObjectKey name) { - return txManager.executeTx(() -> { - return curTx.get(JKleppmannTreePersistentData.class, name).map(JKleppmannTree::new); - }); - } - - - public class JKleppmannTree { - private final KleppmannTree _tree; - private final JKleppmannTreeStorageInterface _storageInterface; - private final JKleppmannTreeClock _clock; - private final JObjectKey _treeName; - private JKleppmannTreePersistentData _data; - - JKleppmannTree(JKleppmannTreePersistentData data) { - _treeName = data.key(); - _data = data; - - _storageInterface = new JKleppmannTreeStorageInterface(); - _clock = new JKleppmannTreeClock(); - - _tree = new KleppmannTree<>(_storageInterface, peerInterface, _clock, new JOpRecorder()); - } - - public JObjectKey traverse(List names) { - return _tree.traverse(names); - } - - public JObjectKey getNewNodeId() { - return _storageInterface.getNewNodeId(); - } - - public void move(JObjectKey newParent, JKleppmannTreeNodeMeta newMeta, JObjectKey node) { - _tree.move(newParent, newMeta, node); - } - - public void trash(JKleppmannTreeNodeMeta newMeta, JObjectKey nodeKey) { - _tree.move(_storageInterface.getTrashId(), newMeta.withName(nodeKey.toString()), nodeKey); - } - - public boolean hasPendingOpsForHost(PeerId host) { - return !_data.queues().getOrDefault(host, TreePMap.empty()).isEmpty(); - } - - public List getPendingOpsForHost(PeerId host, int limit) { - ArrayList collected = new ArrayList<>(); - for (var node : _data.queues().getOrDefault(host, TreePMap.empty()).entrySet()) { - collected.add(new JKleppmannTreeOpWrapper(_data.key(), node.getValue())); - if (collected.size() >= limit) break; - } - Log.tracev("Collected pending op for host: {0} - {1}, out of {2}", host, collected, - _data.queues().getOrDefault(host, TreePMap.empty())); - return Collections.unmodifiableList(collected); - } - - // @Override - public void commitOpForHost(PeerId host, Op op) { - if (op instanceof JKleppmannTreePeriodicPushOp) - return; - - if (!(op instanceof JKleppmannTreeOpWrapper jop)) - throw new IllegalArgumentException("Invalid incoming op type for JKleppmannTree: " + op.getClass()); - - var firstOp = _data.queues().get(host).firstEntry(); - if (!Objects.equals(firstOp.getValue(), jop.op())) - throw new IllegalArgumentException("Committed op push was not the oldest"); - - _data = _data.withQueues(_data.queues().plus(host, _data.queues().get(host).minus(firstOp.getKey()))); - curTx.put(_data); - } - - public void recordBootstrap(PeerId host) { - _tree.recordBoostrapFor(host); - } - - public Pair findParent(Function, Boolean> predicate) { - return _tree.findParent(predicate); - } - - // @Override - public void acceptExternalOp(PeerId from, Op op) { - if (op instanceof JKleppmannTreePeriodicPushOp(JObjectKey treeName, PeerId from1, long timestamp)) { - _tree.updateExternalTimestamp(from1, timestamp); - return; - } - - if (!(op instanceof JKleppmannTreeOpWrapper jop)) - throw new IllegalArgumentException("Invalid incoming op type for JKleppmannTree: " + op.getClass()); - -// if (jop.op().newMeta() instanceof JKleppmannTreeNodeMetaFile f) { -// var fino = f.getFileIno(); -// fileRef = jObjectManager.getOrPut(fino, File.class, Optional.of(jop.getOp().childId())); -// } else { -// fileRef = null; -// } - - if (Log.isTraceEnabled()) - Log.trace("Received op from " + from + ": " + jop.op().timestamp().timestamp() + " " + jop.op().childId() + "->" + jop.op().newParentId() + " as " + jop.op().newMeta().name()); - - _tree.applyExternalOp(from, jop.op()); - } - - public Op getPeriodicPushOp() { - return new JKleppmannTreePeriodicPushOp(_treeName, persistentPeerDataService.getSelfUuid(), _clock.peekTimestamp()); - } - - private class JOpRecorder implements OpRecorder { - @Override - public void recordOp(OpMove op) { - for (var p : peerInfoService.getPeersNoSelf()) { - recordOpForPeer(p.id(), op); - } - } - - @Override - public void recordOpForPeer(PeerId peer, OpMove op) { - _data = _data.withQueues(_data.queues().plus(peer, _data.queues().getOrDefault(peer, TreePMap.empty()).plus(op.timestamp(), op))); - curTx.put(_data); - } - } - - private class JKleppmannTreeClock implements Clock { - @Override - public Long getTimestamp() { - var res = _data.clock() + 1; - _data = _data.withClock(res); - curTx.put(_data); - return res; - } - - @Override - public Long peekTimestamp() { - return _data.clock(); - } - - @Override - public Long updateTimestamp(Long receivedTimestamp) { - var old = _data.clock(); - _data = _data.withClock(Math.max(old, receivedTimestamp) + 1); - curTx.put(_data); - return old; - } - } - - public class JKleppmannTreeStorageInterface implements StorageInterface { - private final LogWrapper _logWrapper = new LogWrapper(); - private final PeerLogWrapper _peerLogWrapper = new PeerLogWrapper(); - - public JKleppmannTreeStorageInterface() { - } - - @Override - public JObjectKey getRootId() { - return JObjectKey.of(_treeName.value() + "_jt_root"); - } - - @Override - public JObjectKey getTrashId() { - return JObjectKey.of(_treeName.value() + "_jt_trash"); - } - - @Override - public JObjectKey getLostFoundId() { - return JObjectKey.of(_treeName.value() + "_jt_lf"); - } - - @Override - public JObjectKey getNewNodeId() { - return JObjectKey.of(UUID.randomUUID().toString()); - } - - @Override - public JKleppmannTreeNode getById(JObjectKey id) { - var got = curTx.get(JKleppmannTreeNodeHolder.class, id); - return got.map(JKleppmannTreeNodeHolder::node).orElse(null); - } - - @Override - public JKleppmannTreeNode createNewNode(JObjectKey key, JObjectKey parent, JKleppmannTreeNodeMeta meta) { - return new JKleppmannTreeNode(key, parent, meta); - } - - @Override - public void putNode(TreeNode node) { - curTx.put(curTx.get(JKleppmannTreeNodeHolder.class, node.key()) - .map(n -> n.withNode((JKleppmannTreeNode) node)) - .orElse(new JKleppmannTreeNodeHolder((JKleppmannTreeNode) node))); - } - - @Override - public void removeNode(JObjectKey id) { - // GC - } - - @Override - public LogInterface getLog() { - return _logWrapper; - } - - @Override - public PeerTimestampLogInterface getPeerTimestampLog() { - return _peerLogWrapper; - } - - private class PeerLogWrapper implements PeerTimestampLogInterface { - @Override - public Long getForPeer(PeerId peerId) { - return _data.peerTimestampLog().get(peerId); - } - - @Override - public void putForPeer(PeerId peerId, Long timestamp) { - _data = _data.withPeerTimestampLog(_data.peerTimestampLog().plus(peerId, timestamp)); - curTx.put(_data); - } - } - - private class LogWrapper implements LogInterface { - @Override - public Pair, LogRecord> peekOldest() { - if (_data.log().isEmpty()) return null; - return Pair.of(_data.log().firstEntry()); - } - - @Override - public Pair, LogRecord> takeOldest() { - if (_data.log().isEmpty()) return null; - var ret = _data.log().firstEntry(); - _data = _data.withLog(_data.log().minusFirstEntry()); - curTx.put(_data); - return Pair.of(ret); - } - - @Override - public Pair, LogRecord> peekNewest() { - if (_data.log().isEmpty()) return null; - return Pair.of(_data.log().lastEntry()); - } - - @Override - public List, LogRecord>> newestSlice(CombinedTimestamp since, boolean inclusive) { - return _data.log().tailMap(since, inclusive).entrySet().stream().map(e -> Pair.of(e.getKey(), e.getValue())).toList(); - } - - @Override - public List, LogRecord>> getAll() { - return _data.log().entrySet().stream().map(e -> Pair.of(e.getKey(), e.getValue())).toList(); - } - - @Override - public boolean isEmpty() { - return _data.log().isEmpty(); - } - - @Override - public boolean containsKey(CombinedTimestamp timestamp) { - return _data.log().containsKey(timestamp); - } - - @Override - public long size() { - return _data.log().size(); - } - - @Override - public void put(CombinedTimestamp timestamp, LogRecord record) { - if (_data.log().containsKey(timestamp)) - throw new IllegalStateException("Overwriting log entry?"); - _data = _data.withLog(_data.log().plus(timestamp, record)); - curTx.put(_data); - } - - @Override - public void replace(CombinedTimestamp timestamp, LogRecord record) { - _data = _data.withLog(_data.log().plus(timestamp, record)); - curTx.put(_data); - } - } - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.java deleted file mode 100644 index 8ab75d24..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpExtractor.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.invalidation.Op; -import com.usatiuk.dhfs.invalidation.OpExtractor; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.dhfs.syncmap.DtoMapperService; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.List; - -@ApplicationScoped -public class JKleppmannTreeOpExtractor implements OpExtractor { - @Inject - TransactionManager txm; - @Inject - Transaction curTx; - @Inject - RemoteTransaction remoteTransaction; - @Inject - DtoMapperService dtoMapperService; - @Inject - JKleppmannTreeManager jKleppmannTreeManager; - @Inject - InvalidationQueueService invalidationQueueService; - - - @Override - public Pair, Runnable> extractOps(JKleppmannTreePersistentData data, PeerId peerId) { - return txm.run(() -> { - var tree = jKleppmannTreeManager.getTree(data.key()).orElseThrow(); - - if (!tree.hasPendingOpsForHost(peerId)) - return Pair.of(List.of(tree.getPeriodicPushOp()), (Runnable) () -> { - }); - - var ops = tree.getPendingOpsForHost(peerId, 100); - - if (tree.hasPendingOpsForHost(peerId)) { - curTx.onCommit(() -> invalidationQueueService.pushInvalidationToOneNoDelay(peerId, data.key())); - } - var key = data.key(); - return Pair., Runnable>of(ops, (Runnable) () -> { - txm.run(() -> { - var commitTree = jKleppmannTreeManager.getTree(key).orElseThrow(); - for (var op : ops) { - commitTree.commitOpForHost(peerId, op); - } - }); - }); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.java deleted file mode 100644 index 2dacca29..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.invalidation.OpHandler; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -@ApplicationScoped -public class JKleppmannTreeOpHandler implements OpHandler { -@Inject - TransactionManager txm; - @Inject - Transaction curTx; - @Inject - JKleppmannTreeManager jKleppmannTreeManager; - @Inject - InvalidationQueueService invalidationQueueService; - - @Override - public void handleOp(PeerId from, JKleppmannTreeOpWrapper op) { - txm.run(()->{ - var tree = jKleppmannTreeManager.getTree(op.treeName()).orElseThrow(); - tree.acceptExternalOp(from, op); - // Push ack op - curTx.onCommit(() -> invalidationQueueService.pushInvalidationToOne(from, op.treeName())); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.java deleted file mode 100644 index 75ef2a66..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreeOpWrapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.invalidation.Op; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.kleppmanntree.OpMove; -import com.usatiuk.objects.JObjectKey; - -import java.io.Serializable; -import java.util.Collection; - -// Wrapper to avoid having to specify generic types -public record JKleppmannTreeOpWrapper(JObjectKey treeName, - OpMove op) implements Op, Serializable { - @Override - public Collection getEscapedRefs() { - return op.newMeta().collectRefsTo(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java deleted file mode 100644 index 6a7085d7..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfo; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.kleppmanntree.PeerInterface; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -import java.util.Collection; - -@Singleton -public class JKleppmannTreePeerInterface implements PeerInterface { - @Inject - PeerInfoService peerInfoService; - @Inject - PersistentPeerDataService persistentPeerDataService; - - @Override - public PeerId getSelfId() { - return persistentPeerDataService.getSelfUuid(); - } - - @Override - public Collection getAllPeers() { - return peerInfoService.getSynchronizedPeers().stream().map(PeerInfo::id).toList(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.java deleted file mode 100644 index e3b0585b..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicOpHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.invalidation.OpHandler; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.transaction.TransactionManager; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -@ApplicationScoped -public class JKleppmannTreePeriodicOpHandler implements OpHandler { - @Inject - TransactionManager txm; - @Inject - JKleppmannTreeManager jKleppmannTreeManager; - - @Override - public void handleOp(PeerId from, JKleppmannTreePeriodicPushOp op) { - txm.run(() -> { - var tree = jKleppmannTreeManager.getTree(op.treeName()).orElseThrow(); - tree.acceptExternalOp(from, op); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java deleted file mode 100644 index fc6e9c8e..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree; - -import com.usatiuk.dhfs.invalidation.Op; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.JObjectKey; - -import java.io.Serializable; -import java.util.Collection; -import java.util.List; - -public record JKleppmannTreePeriodicPushOp(JObjectKey treeName, PeerId from, - long timestamp) implements Op, Serializable { - @Override - public Collection getEscapedRefs() { - return List.of(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.java deleted file mode 100644 index c1e7dafd..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNode.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree.structs; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.kleppmanntree.OpMove; -import com.usatiuk.kleppmanntree.TreeNode; -import com.usatiuk.objects.JObjectKey; -import jakarta.annotation.Nullable; -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; - -import java.io.Serializable; -import java.util.Collection; -import java.util.Optional; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public record JKleppmannTreeNode(JObjectKey key, JObjectKey parent, - OpMove lastEffectiveOp, - @Nullable JKleppmannTreeNodeMeta meta, - PMap children) implements TreeNode, Serializable { - - public JKleppmannTreeNode(JObjectKey id, JObjectKey parent, JKleppmannTreeNodeMeta meta) { - this(id, parent, null, meta, HashTreePMap.empty()); - } - - @Override - public JKleppmannTreeNode withParent(JObjectKey parent) { - return new JKleppmannTreeNode(key, parent, lastEffectiveOp, meta, children); - } - - @Override - public JKleppmannTreeNode withLastEffectiveOp(OpMove lastEffectiveOp) { - return new JKleppmannTreeNode(key, parent, lastEffectiveOp, meta, children); - } - - @Override - public JKleppmannTreeNode withMeta(JKleppmannTreeNodeMeta meta) { - return new JKleppmannTreeNode(key, parent, lastEffectiveOp, meta, children); - } - - @Override - public JKleppmannTreeNode withChildren(PMap children) { - return new JKleppmannTreeNode(key, parent, lastEffectiveOp, meta, children); - } - - public Collection collectRefsTo() { - return Stream.concat(children().values().stream(), - Optional.ofNullable(meta) - .>map(o -> o.collectRefsTo().stream()) - .orElse(Stream.empty())) - .collect(Collectors.toUnmodifiableSet()); - } - - public int estimateSize() { - return children.size() * 64; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.java deleted file mode 100644 index fb3ac05c..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeHolder.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree.structs; - -import com.usatiuk.dhfs.refcount.JDataRef; -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.PCollection; -import org.pcollections.TreePSet; - -import java.io.Serializable; -import java.util.Collection; -import java.util.Objects; - -// Separate refcounting from JKleppmannTreeNode -public record JKleppmannTreeNodeHolder(PCollection refsFrom, boolean frozen, - JKleppmannTreeNode node) implements JDataRefcounted, Serializable { - - public JKleppmannTreeNodeHolder(JKleppmannTreeNode node) { - this(TreePSet.empty(), false, node); - } - - public JKleppmannTreeNodeHolder(JKleppmannTreeNode node, boolean frozen) { - this(TreePSet.empty(), frozen, node); - } - - public JKleppmannTreeNodeHolder withNode(JKleppmannTreeNode node) { - Objects.requireNonNull(node, "node"); - return new JKleppmannTreeNodeHolder(refsFrom, frozen, node); - } - - @Override - public JKleppmannTreeNodeHolder withRefsFrom(PCollection refs) { - return new JKleppmannTreeNodeHolder(refs, frozen, node); - } - - @Override - public JKleppmannTreeNodeHolder withFrozen(boolean frozen) { - return new JKleppmannTreeNodeHolder(refsFrom, frozen, node); - } - - @Override - public Collection collectRefsTo() { - return node.collectRefsTo(); - } - - @Override - public JObjectKey key() { - return node.key(); - } - - @Override - public int estimateSize() { - return node.estimateSize(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java deleted file mode 100644 index 86d558d3..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree.structs; - -import com.usatiuk.kleppmanntree.NodeMeta; -import com.usatiuk.objects.JObjectKey; - -import java.util.Collection; - -//@ProtoMirror(JKleppmannTreeNodeMetaP.class) -public interface JKleppmannTreeNodeMeta extends NodeMeta { - JKleppmannTreeNodeMeta withName(String name); - - Collection collectRefsTo(); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java deleted file mode 100644 index c7186e75..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.usatiuk.dhfs.jkleppmanntree.structs; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.refcount.JDataRef; -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.kleppmanntree.CombinedTimestamp; -import com.usatiuk.kleppmanntree.LogRecord; -import com.usatiuk.kleppmanntree.OpMove; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.PCollection; -import org.pcollections.PMap; -import org.pcollections.PSortedMap; - -import java.util.Collection; -import java.util.List; - -public record JKleppmannTreePersistentData( - JObjectKey key, PCollection refsFrom, boolean frozen, - long clock, - PMap, OpMove>> queues, - PMap peerTimestampLog, - PSortedMap, LogRecord> log -) implements JDataRefcounted { - @Override - public JKleppmannTreePersistentData withRefsFrom(PCollection refs) { - return new JKleppmannTreePersistentData(key, refs, frozen, clock, queues, peerTimestampLog, log); - } - - @Override - public JKleppmannTreePersistentData withFrozen(boolean frozen) { - return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log); - } - - public JKleppmannTreePersistentData withClock(long clock) { - return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log); - } - - public JKleppmannTreePersistentData withQueues(PMap, OpMove>> queues) { - return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log); - } - - public JKleppmannTreePersistentData withPeerTimestampLog(PMap peerTimestampLog) { - return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log); - } - - public JKleppmannTreePersistentData withLog(PSortedMap, LogRecord> log) { - return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log); - } - - @Override - public Collection collectRefsTo() { - return List.of(JObjectKey.of(key().value() + "_jt_trash"), JObjectKey.of(key().value() + "_jt_root"), JObjectKey.of(key().value() + "_jt_lf")); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapEntry.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapEntry.java deleted file mode 100644 index 0045c9c4..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapEntry.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; - -public record JMapEntry(JObjectKey key, - JObjectKey holder, - K selfKey, - JObjectKey ref) implements JData { - public JMapEntry(JObjectKey holder, K selfKey, JObjectKey ref) { - this(JMapHelper.makeKey(holder, selfKey), holder, selfKey, ref); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java deleted file mode 100644 index 48251738..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.CloseableKvIterator; -import com.usatiuk.objects.iterators.IteratorStart; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -import java.util.ArrayList; -import java.util.Optional; - -// TODO: It's not actually generic right now, only longs are supported essentially -@Singleton -public class JMapHelper { - @Inject - Transaction curTx; - - static JObjectKey makePrefix(JObjectKey holder) { - return JObjectKey.of(holder.value() + "="); - } - - static JObjectKey makeKeyFirst(JObjectKey holder) { - return JObjectKey.of(holder.value() + "<"); - } - - static JObjectKey makeKey(JObjectKey holder, K key) { - return JObjectKey.of(makePrefix(holder).value() + key.toString()); - } - - static JObjectKey makeKeyLast(JObjectKey holder) { - return JObjectKey.of(holder.value() + ">"); - } - - public CloseableKvIterator> getIterator(JMapHolder holder, IteratorStart start, K key) { - return new JMapIterator<>(curTx.getIterator(start, makeKey(holder.key(), key)), holder); - } - - public CloseableKvIterator> getIterator(JMapHolder holder) { - return new JMapIterator<>(curTx.getIterator(IteratorStart.GT, makeKeyFirst(holder.key())), holder); - } - - public void put(JMapHolder holder, K key, JObjectKey ref) { - curTx.put(new JMapEntry<>(holder.key(), key, ref)); - } - - public Optional> get(JMapHolder holder, K key) { - return curTx.get(JMapEntry.class, makeKey(holder.key(), key)).map(e -> (JMapEntry) e); - } - - public void delete(JMapHolder holder, K key) { - curTx.delete(makeKey(holder.key(), key)); - } - - public void deleteAll(JMapHolder he) { - ArrayList collectedKeys = new ArrayList<>(); - try (var it = getIterator(he)) { - while (it.hasNext()) { - var curKey = it.peekNextKey(); - collectedKeys.add(curKey); - it.skip(); - } - } - - for (var curKey : collectedKeys) { - delete(he, curKey); - Log.tracev("Removed map entry {0} to {1}", he.key(), curKey); - } - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolder.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolder.java deleted file mode 100644 index c77229db..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolder.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import com.usatiuk.objects.JData; - -public interface JMapHolder extends JData { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.java deleted file mode 100644 index 66a146c1..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHolderRefcounterTxHook.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -@Singleton -public class JMapHolderRefcounterTxHook implements PreCommitTxHook { - @Inject - Transaction curTx; - @Inject - JMapHelper helper; - - private JDataRefcounted getRef(JObjectKey key) { - var found = curTx.get(JDataRefcounted.class, key).orElse(null); - - if (found != null) { - return found; - } - - return new RemoteObjectMeta(key); - } - - @Override - public void onDelete(JObjectKey key, JData cur) { - if (cur instanceof RemoteObjectDataWrapper dw) { - if (dw.data() instanceof JMapHolder he) { - helper.deleteAll(he); - return; - } - } - - if (cur instanceof JMapHolder he) { - helper.deleteAll(he); - return; - } - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapIterator.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapIterator.java deleted file mode 100644 index c881a81c..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapIterator.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.CloseableKvIterator; -import org.apache.commons.lang3.NotImplementedException; -import org.apache.commons.lang3.tuple.Pair; - -public class JMapIterator implements CloseableKvIterator> { - private final CloseableKvIterator _backing; - private final JObjectKey _prefix; - private boolean _hasNext = true; - - public JMapIterator(CloseableKvIterator backing, JMapHolder holder) { - _backing = backing; - _prefix = JMapHelper.makePrefix(holder.key()); - advance(); - } - - void advance() { - assert _hasNext; - if (!_backing.hasNext()) { - _hasNext = false; - return; - } - if (!_backing.peekNextKey().value().startsWith(_prefix.value())) { - _backing.skip(); - if (!_backing.peekNextKey().value().startsWith(_prefix.value())) { - _hasNext = false; - } - } - } - - public K keyToKey(JObjectKey key) { - var keyPart = key.value().substring(_prefix.value().length()); - return (K) JMapLongKey.of(Long.parseLong(keyPart)); - } - - @Override - public K peekNextKey() { - if (!_hasNext) { - throw new IllegalStateException("No next element"); - } - - return keyToKey(_backing.peekNextKey()); - } - - @Override - public void skip() { - if (!_hasNext) { - throw new IllegalStateException("No next element"); - } - _backing.skip(); - advance(); - } - - @Override - public K peekPrevKey() { - throw new NotImplementedException(); - } - - @Override - public Pair> prev() { - throw new NotImplementedException(); - } - - @Override - public boolean hasPrev() { - throw new NotImplementedException(); - } - - @Override - public void skipPrev() { - throw new NotImplementedException(); - } - - @Override - public void close() { - _backing.close(); - } - - @Override - public boolean hasNext() { - return _hasNext; - } - - @Override - public Pair> next() { - if (!_hasNext) { - throw new IllegalStateException("No next element"); - } - var next = _backing.next(); - assert next.getKey().value().startsWith(_prefix.value()); - advance(); - return Pair.of(keyToKey(next.getKey()), (JMapEntry) next.getValue()); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapKey.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapKey.java deleted file mode 100644 index da3435f4..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapKey.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -public interface JMapKey extends Comparable { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapLongKey.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapLongKey.java deleted file mode 100644 index 3ae655b5..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapLongKey.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import org.apache.commons.lang3.StringUtils; - -import javax.annotation.Nonnull; -import java.io.Serializable; - -public record JMapLongKey(long key) implements JMapKey, Comparable, Serializable { - public static JMapLongKey of(long key) { - return new JMapLongKey(key); - } - - public static JMapLongKey max() { - return new JMapLongKey(Long.MAX_VALUE); - } - - @Override - public String toString() { - return StringUtils.leftPad(String.valueOf(key), 20, '0'); - } - - @Override - public int compareTo(@Nonnull JMapKey o) { - if (!(o instanceof JMapLongKey lk)) { - throw new IllegalArgumentException("Unknown type of JMapKey"); - } - return Long.compare(key, lk.key); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRef.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRef.java deleted file mode 100644 index d3fd2ab1..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRef.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import com.usatiuk.dhfs.refcount.JDataNormalRef; -import com.usatiuk.dhfs.refcount.JDataRef; -import com.usatiuk.objects.JObjectKey; - -import java.util.Comparator; - -public record JMapRef(JObjectKey holder, JMapKey mapKey) implements JDataRef { - @Override - public JObjectKey obj() { - return holder; - } - - @Override - public int compareTo(JDataRef o) { - if (o instanceof JMapRef mr) { - return Comparator.comparing(JMapRef::obj).thenComparing(JMapRef::mapKey).compare(this, mr); - } else if (o instanceof JDataNormalRef) { - // TODO: Prettier? - return 1; - } else { - throw new IllegalArgumentException("Unknown type of JDataRef"); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java deleted file mode 100644 index 39b82ba1..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.usatiuk.dhfs.jmap; - -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -@Singleton -public class JMapRefcounterTxHook implements PreCommitTxHook { - @Inject - Transaction curTx; - - private JDataRefcounted getRef(JObjectKey key) { - var found = curTx.get(JDataRefcounted.class, key).orElse(null); - - if (found != null) { - return found; - } - - return new RemoteObjectMeta(key); - } - - @Override - public void onChange(JObjectKey key, JData old, JData cur) { - if (!(cur instanceof JMapEntry me)) { - return; - } - - var oldMe = (JMapEntry) old; - var oldRef = oldMe.ref(); - var curRef = me.ref(); - var referencedOld = getRef(oldRef); - curTx.put(referencedOld.withRefsFrom(referencedOld.refsFrom().minus(new JMapRef(me.holder(), me.selfKey())))); - var referencedCur = getRef(curRef); - curTx.put(referencedCur.withRefsFrom(referencedCur.refsFrom().plus(new JMapRef(me.holder(), me.selfKey())))); - Log.tracev("Removed ref from {0} to {1}, added ref to {2}", key, oldRef, curRef); - } - - @Override - public void onCreate(JObjectKey key, JData cur) { - if (!(cur instanceof JMapEntry me)) { - return; - } - - var curRef = me.ref(); - var referencedCur = getRef(curRef); - curTx.put(referencedCur.withRefsFrom(referencedCur.refsFrom().plus(new JMapRef(me.holder(), me.selfKey())))); - Log.tracev("Added ref from {0} to {1}", key, curRef); - } - - @Override - public void onDelete(JObjectKey key, JData cur) { - if (!(cur instanceof JMapEntry me)) { - return; - } - - var oldRef = me.ref(); - var referencedOld = getRef(oldRef); - curTx.put(referencedOld.withRefsFrom(referencedOld.refsFrom().minus(new JMapRef(me.holder(), me.selfKey())))); - Log.tracev("Removed ref from {0} to {1}", key, oldRef); - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.java deleted file mode 100644 index dee6ba44..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/IpPeerAddress.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery; - -import com.usatiuk.dhfs.peersync.PeerId; - -import java.net.InetAddress; - -public record IpPeerAddress(PeerId peer, PeerAddressType type, - InetAddress address, int port, int securePort) implements PeerAddress { - public IpPeerAddress withType(PeerAddressType type) { - return new IpPeerAddress(peer, type, address, port, securePort); - } - - @Override - public String toString() { - return "IP: " + address.getHostAddress() + - ":" + port + - ":" + securePort + - ", type: " + type; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.java deleted file mode 100644 index 62ae4c2a..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddrStringHelper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery; - -import com.usatiuk.dhfs.peersync.PeerId; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.Optional; - -public class PeerAddrStringHelper { - - public static Optional parse(String addr) { - if (addr.isEmpty()) { - return Optional.empty(); - } - var split = addr.split(":"); - try { - return Optional.of(new IpPeerAddress(PeerId.of(split[0]), PeerAddressType.LAN, InetAddress.getByName(split[1]), - Integer.parseInt(split[2]), Integer.parseInt(split[3]))); - } catch (UnknownHostException ex) { - throw new RuntimeException(ex); - } - } - - public static Optional parseNoPeer(PeerId peerId, String addr) { - if (addr.isEmpty()) { - return Optional.empty(); - } - var split = addr.split(":"); - try { - return Optional.of(new IpPeerAddress(peerId, PeerAddressType.LAN, InetAddress.getByName(split[0]), - Integer.parseInt(split[1]), Integer.parseInt(split[2]))); - } catch (UnknownHostException ex) { - throw new RuntimeException(ex); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddress.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddress.java deleted file mode 100644 index e4d2f4e5..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddress.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery; - -import com.usatiuk.dhfs.peersync.PeerId; - -import java.io.Serializable; - -public interface PeerAddress extends Serializable { - PeerId peer(); - - PeerAddressType type(); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddressType.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddressType.java deleted file mode 100644 index d592d5b0..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerAddressType.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery; - -public enum PeerAddressType { - LAN, - WAN, - PROXY -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.java deleted file mode 100644 index ff76df69..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PeerDiscoveryDirectory.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery; - -import com.usatiuk.dhfs.peersync.PeerId; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import org.apache.commons.collections4.MultiValuedMap; -import org.apache.commons.collections4.multimap.HashSetValuedHashMap; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - -@ApplicationScoped -public class PeerDiscoveryDirectory { - private final MultiValuedMap _entries = new HashSetValuedHashMap<>(); - @ConfigProperty(name = "dhfs.peerdiscovery.timeout") - long timeout; - - public void notifyAddr(PeerAddress addr) { - Log.tracev("New address {0}", addr); - synchronized (_entries) { - var peer = addr.peer(); - _entries.removeMapping(peer, new PeerEntry(addr, 0)); - _entries.put(peer, new PeerEntry(addr, System.currentTimeMillis())); - } - } - - public Collection getForPeer(PeerId peer) { - synchronized (_entries) { - long curTime = System.currentTimeMillis(); - if (_entries.asMap().get(peer) == null) { - return List.of(); - } - var partitioned = _entries.asMap().get(peer).stream() - .collect(Collectors.partitioningBy(e -> e.lastSeen() + timeout < curTime)); - for (var entry : partitioned.get(true)) { - _entries.removeMapping(peer, entry); - } - return partitioned.get(false).stream().map(PeerEntry::addr).toList(); - } - } - - public Collection getReachablePeers() { - synchronized (_entries) { - long curTime = System.currentTimeMillis(); - var partitioned = _entries.entries().stream() - .collect(Collectors.partitioningBy(e -> e.getValue().lastSeen() + timeout < curTime)); - for (var entry : partitioned.get(true)) { - _entries.removeMapping(entry.getKey(), entry.getValue()); - } - return partitioned.get(false).stream().map(Map.Entry::getKey).collect(Collectors.toUnmodifiableSet()); - } - } - - private record PeerEntry(PeerAddress addr, long lastSeen) { - public PeerEntry withLastSeen(long lastSeen) { - return new PeerEntry(addr, lastSeen); - } - - @Override - public boolean equals(Object o) { - if (o == null || getClass() != o.getClass()) return false; - PeerEntry peerEntry = (PeerEntry) o; - return Objects.equals(addr, peerEntry.addr); - } - - @Override - public int hashCode() { - return Objects.hashCode(addr); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.java deleted file mode 100644 index f371e430..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/PersistentStaticPeerDiscovery.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery; - -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import io.quarkus.scheduler.Scheduled; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -@ApplicationScoped -public class PersistentStaticPeerDiscovery { - @Inject - PeerDiscoveryDirectory peerDiscoveryDirectory; - @Inject - PersistentPeerDataService persistentPeerDataService; - - @Scheduled(every = "1s", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - public void discoverPeers() { - var addrs = persistentPeerDataService.getPersistentPeerAddresses(); - for (var addr : addrs) { - peerDiscoveryDirectory.notifyAddr(addr); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.java deleted file mode 100644 index b366359f..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/StaticPeerDiscovery.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery; - -import io.quarkus.scheduler.Scheduled; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.util.Arrays; -import java.util.List; -import java.util.Optional; - -@ApplicationScoped -public class StaticPeerDiscovery { - private final List _peers; - @Inject - PeerDiscoveryDirectory peerDiscoveryDirectory; - - public StaticPeerDiscovery(@ConfigProperty(name = "dhfs.peerdiscovery.static-peers") Optional staticPeers) { - var peers = staticPeers.orElse(""); - _peers = Arrays.stream(peers.split(",")).flatMap(e -> - PeerAddrStringHelper.parse(e).stream() - ).toList(); - } - - @Scheduled(every = "1s", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - public void discoverPeers() { - for (var peer : _peers) { - peerDiscoveryDirectory.notifyAddr(peer); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java deleted file mode 100644 index 9e79a923..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery.local; - -import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import io.quarkus.arc.properties.IfBuildProperty; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.Startup; -import io.quarkus.scheduler.Scheduled; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.net.*; - -@ApplicationScoped -@IfBuildProperty(name = "dhfs.local-discovery", stringValue = "true") -public class LocalPeerDiscoveryBroadcaster { - @Inject - PersistentPeerDataService persistentPeerDataService; - - @ConfigProperty(name = "quarkus.http.port") - int ourPort; - - @ConfigProperty(name = "quarkus.http.ssl-port") - int ourSecurePort; - - @ConfigProperty(name = "dhfs.objects.peerdiscovery.port") - int broadcastPort; - - @ConfigProperty(name = "dhfs.objects.peerdiscovery.broadcast") - boolean enabled; - - private DatagramSocket _socket; - - @Startup - void init() throws SocketException { - if (!enabled) { - return; - } - _socket = new DatagramSocket(); - _socket.setBroadcast(true); - } - - void shutdown(@Observes @Priority(10) ShutdownEvent event) { - if (!enabled) { - return; - } - _socket.close(); - } - - @Scheduled(every = "${dhfs.objects.peerdiscovery.interval}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - public void broadcast() throws Exception { - if (!enabled) { - return; - } - var sendData = PeerDiscoveryInfo.newBuilder() - .setUuid(persistentPeerDataService.getSelfUuid().toString()) - .setPort(ourPort) - .setSecurePort(ourSecurePort) - .build(); - - var sendBytes = sendData.toByteArray(); - - DatagramPacket sendPacket - = new DatagramPacket(sendBytes, sendBytes.length, - InetAddress.getByName("255.255.255.255"), broadcastPort); - - _socket.send(sendPacket); - - var interfaces = NetworkInterface.getNetworkInterfaces(); - while (interfaces.hasMoreElements()) { - NetworkInterface networkInterface = interfaces.nextElement(); - - try { - if (networkInterface.isLoopback() || !networkInterface.isUp()) { - continue; - } - } catch (Exception e) { - continue; - } - - for (InterfaceAddress interfaceAddress : networkInterface.getInterfaceAddresses()) { - InetAddress broadcast = interfaceAddress.getBroadcast(); - if (broadcast == null) { - continue; - } - - try { - sendPacket = new DatagramPacket(sendBytes, sendBytes.length, broadcast, broadcastPort); - _socket.send(sendPacket); - Log.tracev("Broadcast sent to: {0}, at: {1}", broadcast.getHostAddress(), networkInterface.getDisplayName()); - } catch (Exception ignored) { - continue; - } - -// Log.trace(getClass().getName() + "Broadcast sent to: " + broadcast.getHostAddress() -// + ", at: " + networkInterface.getDisplayName()); - } - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java deleted file mode 100644 index aaec3d95..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.usatiuk.dhfs.peerdiscovery.local; - -import com.google.protobuf.InvalidProtocolBufferException; -import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress; -import com.usatiuk.dhfs.peerdiscovery.PeerAddressType; -import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory; -import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo; -import com.usatiuk.dhfs.peersync.PeerId; -import io.quarkus.arc.properties.IfBuildProperty; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.Startup; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.net.*; -import java.nio.ByteBuffer; - -@ApplicationScoped -@IfBuildProperty(name = "dhfs.local-discovery", stringValue = "true") -public class LocalPeerDiscoveryClient { - @Inject - PeerDiscoveryDirectory peerDiscoveryDirectory; - @ConfigProperty(name = "dhfs.objects.peerdiscovery.broadcast") - boolean enabled; - private Thread _clientThread; - private DatagramSocket _socket; - - @Startup - void init() throws SocketException, UnknownHostException { - if (!enabled) { - return; - } - _socket = new DatagramSocket(42069, InetAddress.getByName("0.0.0.0")); - _socket.setBroadcast(true); - - _clientThread = new Thread(this::client); - _clientThread.setName("LocalPeerDiscoveryClient"); - _clientThread.start(); - } - - void shutdown(@Observes @Priority(10) ShutdownEvent event) throws InterruptedException { - if (!enabled) { - return; - } - _socket.close(); - _clientThread.interrupt(); - _clientThread.interrupt(); - while (_clientThread.isAlive()) { - try { - _clientThread.join(); - } catch (InterruptedException ignored) { - } - } - } - - private void client() { - while (!Thread.interrupted() && !_socket.isClosed()) { - try { - byte[] buf = new byte[10000]; - DatagramPacket packet = new DatagramPacket(buf, buf.length); - _socket.receive(packet); - - try { - var got = PeerDiscoveryInfo.parseFrom(ByteBuffer.wrap(buf, 0, packet.getLength())); - Log.tracev("Got peer discovery packet from {0}", packet.getAddress()); - peerDiscoveryDirectory.notifyAddr( - new IpPeerAddress( - PeerId.of(got.getUuid()), - PeerAddressType.LAN, - packet.getAddress(), - got.getPort(), - got.getSecurePort() - ) - ); - } catch (InvalidProtocolBufferException e) { - continue; - } - } catch (Exception ex) { - Log.error(ex); - } - } - Log.info("PeerDiscoveryClient stopped"); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java deleted file mode 100644 index 6b7e1fb3..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; - -public interface InitialSyncProcessor { - void prepareForInitialSync(PeerId from, JObjectKey key); - - void handleCrash(JObjectKey key); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerConnectedEventListener.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerConnectedEventListener.java deleted file mode 100644 index 2bff44ae..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerConnectedEventListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -public interface PeerConnectedEventListener { - void handlePeerConnected(PeerId peerId); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.java deleted file mode 100644 index ae84c512..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerDisconnectedEventListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -public interface PeerDisconnectedEventListener { - void handlePeerDisconnected(PeerId peerId); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerId.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerId.java deleted file mode 100644 index 55fa6813..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerId.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.usatiuk.objects.JObjectKey; - -import java.io.Serializable; - -public record PeerId(JObjectKey id) implements Serializable, Comparable { - public static PeerId of(String id) { - return new PeerId(JObjectKey.of(id)); - } - - @Override - public String toString() { - return id.toString(); - } - - public JObjectKey toJObjectKey() { - return JObjectKey.of(id.toString()); - } - - @Override - public int compareTo(PeerId o) { - return id.compareTo(o.id); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java deleted file mode 100644 index d97c9e3e..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.google.protobuf.ByteString; -import com.usatiuk.dhfs.peertrust.CertificateTools; -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.dhfs.remoteobj.JDataRemotePush; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; - -import java.security.cert.X509Certificate; - -@JDataRemotePush -public record PeerInfo(JObjectKey key, PeerId id, ByteString cert, - PMap kickCounter, - long lastSeenTimestamp) implements JDataRemote, JDataRemoteDto { - public PeerInfo(PeerId id, byte[] cert) { - this(id.toJObjectKey(), id, ByteString.copyFrom(cert), HashTreePMap.empty(), System.currentTimeMillis()); - } - - public X509Certificate parsedCert() { - return CertificateTools.certFromBytes(cert.toByteArray()); - } - - public PeerInfo withKickCounter(PMap kickCounter) { - return new PeerInfo(key, id, cert, kickCounter, lastSeenTimestamp); - } - - public PeerInfo withIncrementedKickCounter(PeerId peerId) { - return new PeerInfo(key, id, cert, kickCounter.plus(peerId, kickCounter.getOrDefault(peerId, 0L) + 1), lastSeenTimestamp); - } - - public PeerInfo withLastSeenTimestamp(long lastSeenTimestamp) { - return new PeerInfo(key, id, cert, kickCounter, lastSeenTimestamp); - } - - public long kickCounterSum() { - return kickCounter.values().stream().mapToLong(Long::longValue).sum(); - } - - @Override - public String toString() { - return "PeerInfo{" + - "key=" + key + - ", id=" + id + - ", kickCounter=" + kickCounter + - ", lastSeenTimestamp=" + lastSeenTimestamp + - '}'; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.java deleted file mode 100644 index 22e1a54b..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoProtoSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.usatiuk.dhfs.ProtoSerializer; -import com.usatiuk.dhfs.persistence.PeerInfoP; -import com.usatiuk.utils.SerializationHelper; -import jakarta.inject.Singleton; - -import java.io.IOException; - -@Singleton -public class PeerInfoProtoSerializer implements ProtoSerializer { - @Override - public PeerInfo deserialize(PeerInfoP message) { - try (var is = message.getSerializedData().newInput()) { - return SerializationHelper.deserialize(is); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public PeerInfoP serialize(PeerInfo object) { - return PeerInfoP.newBuilder().setSerializedData(SerializationHelper.serialize(object)).build(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoService.java deleted file mode 100644 index 97651b57..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoService.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder; -import com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer; -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import java.util.List; -import java.util.Optional; - -@ApplicationScoped -public class PeerInfoService { - public static final JObjectKey TREE_KEY = JObjectKey.of("peers"); - @Inject - Transaction curTx; - @Inject - TransactionManager jObjectTxManager; - @Inject - JKleppmannTreeManager jKleppmannTreeManager; - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - RemoteTransaction remoteTx; - - private JKleppmannTreeManager.JKleppmannTree getTree() { - return jKleppmannTreeManager.getTree(TREE_KEY, () -> null); - } - - public Optional getPeerInfoImpl(JObjectKey key) { - return jObjectTxManager.run(() -> { - return curTx.get(JKleppmannTreeNodeHolder.class, key).map(JKleppmannTreeNodeHolder::node).flatMap(node -> { - var meta = (JKleppmannTreeNodeMetaPeer) node.meta(); - return remoteTx.getData(PeerInfo.class, meta.peerId()); - }); - }); - - } - - public boolean existsPeer(PeerId peer) { - return jObjectTxManager.run(() -> { - var gotKey = getTree().traverse(List.of(JKleppmannTreeNodeMetaPeer.peerIdToNodeId(peer).value())); - if (gotKey == null) { - return false; - } - return true; - }); - } - - public Optional getPeerInfo(PeerId peer) { - return jObjectTxManager.run(() -> { - var gotKey = getTree().traverse(List.of(JKleppmannTreeNodeMetaPeer.peerIdToNodeId(peer).value())); - if (gotKey == null) { - return Optional.empty(); - } - return curTx.get(JKleppmannTreeNodeHolder.class, gotKey).map(JKleppmannTreeNodeHolder::node).flatMap(node -> { - var meta = (JKleppmannTreeNodeMetaPeer) node.meta(); - return remoteTx.getData(PeerInfo.class, meta.peerId()); - }); - }); - } - - public List getPeers() { - return jObjectTxManager.run(() -> { - var gotKey = getTree().traverse(List.of()); - return curTx.get(JKleppmannTreeNodeHolder.class, gotKey).map(JKleppmannTreeNodeHolder::node).map( - node -> node.children().keySet().stream() - .map(JObjectKey::of).map(this::getPeerInfoImpl) - .filter(o -> { - if (o.isEmpty()) - Log.warnv("Could not get peer info for peer {0}", o); - return o.isPresent(); - }).map(Optional::get).toList()) - .orElseThrow(); - }); - } - - public List getPeersNoSelf() { - return jObjectTxManager.run(() -> { - return getPeers().stream().filter( - peerInfo -> !peerInfo.id().equals(persistentPeerDataService.getSelfUuid())).toList(); - }); - } - - public List getSynchronizedPeers() { - return jObjectTxManager.run(() -> { - return getPeers().stream().filter(pi -> { - if (pi.id().equals(persistentPeerDataService.getSelfUuid())) { - return true; - } - return persistentPeerDataService.isInitialSyncDone(pi.id()); - }).toList(); - }); - } - - public List getSynchronizedPeersNoSelf() { - return jObjectTxManager.run(() -> { - return getPeersNoSelf().stream().filter(pi -> { - return persistentPeerDataService.isInitialSyncDone(pi.id()); - }).toList(); - }); - } - - public void putPeer(PeerId id, byte[] cert) { - jObjectTxManager.run(() -> { - var parent = getTree().traverse(List.of()); - var newPeerInfo = new PeerInfo(id, cert); - remoteTx.putData(newPeerInfo); - getTree().move(parent, new JKleppmannTreeNodeMetaPeer(newPeerInfo.id()), JKleppmannTreeNodeMetaPeer.peerIdToNodeId(newPeerInfo.id())); - }); - } - - public void removePeer(PeerId id) { - jObjectTxManager.run(() -> { - var gotKey = getTree().traverse(List.of(JKleppmannTreeNodeMetaPeer.peerIdToNodeId(id).value())); - if (gotKey == null) { - return; - } - var node = curTx.get(JKleppmannTreeNodeHolder.class, gotKey).map(JKleppmannTreeNodeHolder::node).orElse(null); - if (node == null) { - Log.warn("Peer " + id + " not found in the tree"); - return; - } - getTree().trash(node.meta(), node.key()); - curTx.onCommit(persistentPeerDataService::updateCerts); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java deleted file mode 100644 index cd094371..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.usatiuk.dhfs.remoteobj.*; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.pcollections.HashPMap; -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; - -import javax.annotation.Nullable; - -@ApplicationScoped -public class PeerInfoSyncHandler implements ObjSyncHandler { - @Inject - Transaction curTx; - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - RemoteTransaction remoteTx; - - @Override - public void handleRemoteUpdate(PeerId from, JObjectKey key, - PMap receivedChangelog, - @Nullable PeerInfo receivedData) { - var current = curTx.get(RemoteObjectMeta.class, key).orElse(null); - if (current == null) { - current = new RemoteObjectMeta(key, HashTreePMap.empty()); - curTx.put(current); - } - - var changelogCompare = SyncHelper.compareChangelogs(current.changelog(), receivedChangelog); - - switch (changelogCompare) { - case EQUAL -> { - Log.debug("No action on update: " + key + " from " + from); - if (!current.hasLocalData() && receivedData != null) { - current = current.withHaveLocal(true); - curTx.put(current); - curTx.put(curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(current.key())) - .map(w -> w.withData(receivedData)).orElse(new RemoteObjectDataWrapper<>(receivedData))); - - if (!current.knownType().isAssignableFrom(receivedData.getClass())) - throw new IllegalStateException("Object type mismatch: " + current.knownType() + " vs " + receivedData.getClass()); - - if (!current.knownType().equals(receivedData.getClass())) - current = current.withKnownType(receivedData.getClass()); - - curTx.put(current); - } - } - case NEWER -> { - Log.debug("Received newer index update than known: " + key + " from " + from); - var newChangelog = receivedChangelog.containsKey(persistentPeerDataService.getSelfUuid()) ? - receivedChangelog : receivedChangelog.plus(persistentPeerDataService.getSelfUuid(), 0L); - current = current.withChangelog(newChangelog); - - if (receivedData != null) { - current = current.withHaveLocal(true); - curTx.put(current); - curTx.put(curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(current.key())) - .map(w -> w.withData(receivedData)).orElse(new RemoteObjectDataWrapper<>(receivedData))); - - if (!current.knownType().isAssignableFrom(receivedData.getClass())) - throw new IllegalStateException("Object type mismatch: " + current.knownType() + " vs " + receivedData.getClass()); - - if (!current.knownType().equals(receivedData.getClass())) - current = current.withKnownType(receivedData.getClass()); - - curTx.put(current); - } else { - current = current.withHaveLocal(false); - curTx.put(current); - } - } - case OLDER -> { - Log.debug("Received older index update than known: " + key + " from " + from); - return; - } - case CONFLICT -> { - Log.debug("Conflict on update (inconsistent version): " + key + " from " + from); - assert receivedData != null; - - var oursCurData = remoteTx.getDataLocal(PeerInfo.class, key).orElse(null); - if (oursCurData == null) - throw new StatusRuntimeException(Status.ABORTED.withDescription("Conflict but we don't have local copy")); - - if (!receivedData.cert().equals(oursCurData.cert())) - throw new StatusRuntimeException(Status.ABORTED.withDescription("PeerInfo certificate conflict for " + key)); - - HashPMap newChangelog = HashTreePMap.from(current.changelog()); - HashPMap newKickCounter = HashTreePMap.from(oursCurData.kickCounter()); - - for (var entry : receivedChangelog.entrySet()) { - newChangelog = newChangelog.plus(entry.getKey(), - Long.max(newChangelog.getOrDefault(entry.getKey(), 0L), entry.getValue()) - ); - } - - for (var entry : receivedData.kickCounter().entrySet()) { - newKickCounter = newKickCounter.plus(entry.getKey(), - Long.max(newKickCounter.getOrDefault(entry.getKey(), 0L), entry.getValue()) - ); - } - - var newData = oursCurData.withKickCounter(newKickCounter) - .withLastSeenTimestamp(Math.max(oursCurData.lastSeenTimestamp(), receivedData.lastSeenTimestamp())); - - if (!newData.equals(oursCurData)) - newChangelog = newChangelog.plus(persistentPeerDataService.getSelfUuid(), newChangelog.getOrDefault(persistentPeerDataService.getSelfUuid(), 0L) + 1L); - - remoteTx.putDataRaw(newData); - - current = current.withChangelog(newChangelog); - } - } - - var curKnownRemoteVersion = current.knownRemoteVersions().get(from); - var receivedTotalVer = receivedChangelog.values().stream().mapToLong(Long::longValue).sum(); - - if (curKnownRemoteVersion == null || curKnownRemoteVersion < receivedTotalVer) { - current = current.withKnownRemoteVersions(current.knownRemoteVersions().plus(from, receivedTotalVer)); - curTx.put(current); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.java deleted file mode 100644 index 8a3d037e..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerLastSeenUpdater.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.scheduler.Scheduled; -import io.smallrye.common.annotation.Blocking; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -@ApplicationScoped -public class PeerLastSeenUpdater { - @Inject - ReachablePeerManager reachablePeerManager; - @Inject - PeerInfoService peerInfoService; - @Inject - Transaction curTx; - @Inject - TransactionManager txm; - @Inject - RemoteTransaction remoteTransaction; - - @ConfigProperty(name = "dhfs.objects.last-seen.timeout") - long lastSeenTimeout; - @Inject - PersistentPeerDataService persistentPeerDataService; - - @Scheduled(every = "${dhfs.objects.last-seen.update}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - @Blocking - void update() { - var snapshot = reachablePeerManager.getHostStateSnapshot(); - for (var a : snapshot.available()) { - txm.run(() -> { - var curInfo = remoteTransaction.getData(PeerInfo.class, a.id()).orElse(null); - if (curInfo == null) return; - - var newInfo = curInfo.withLastSeenTimestamp(System.currentTimeMillis()); - remoteTransaction.putData(newInfo); - }); - } - - for (var u : snapshot.unavailable()) { - txm.run(() -> { - if (!persistentPeerDataService.isInitialSyncDone(u)) - return; - - var curInfo = remoteTransaction.getData(PeerInfo.class, u.id()).orElse(null); - if (curInfo == null) return; - - var lastSeen = curInfo.lastSeenTimestamp(); - if (System.currentTimeMillis() - lastSeen > (lastSeenTimeout * 1000)) { - var kicked = curInfo.withIncrementedKickCounter(persistentPeerDataService.getSelfUuid()); - remoteTransaction.putData(kicked); - } - }); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java deleted file mode 100644 index c25c0198..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.google.protobuf.ByteString; -import com.usatiuk.dhfs.ShutdownChecker; -import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress; -import com.usatiuk.dhfs.peerdiscovery.PeerAddressType; -import com.usatiuk.dhfs.peertrust.CertificateTools; -import com.usatiuk.dhfs.peertrust.PeerTrustManager; -import com.usatiuk.dhfs.rpc.RpcClientFactory; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import com.usatiuk.utils.SerializationHelper; -import io.quarkus.logging.Log; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.pcollections.HashTreePMap; -import org.pcollections.HashTreePSet; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardOpenOption; -import java.security.KeyPair; -import java.security.cert.CertificateEncodingException; -import java.security.cert.X509Certificate; -import java.util.List; -import java.util.Optional; -import java.util.UUID; -import java.util.concurrent.ExecutorService; - -@ApplicationScoped -public class PersistentPeerDataService { - @Inject - PeerTrustManager peerTrustManager; - @Inject - ExecutorService executorService; - @Inject - RpcClientFactory rpcClientFactory; - @Inject - ShutdownChecker shutdownChecker; - @Inject - TransactionManager jObjectTxManager; - @Inject - Transaction curTx; - @Inject - PeerInfoService peerInfoService; - @Inject - TransactionManager txm; - @Inject - ReachablePeerManager reachablePeerManager; - - @ConfigProperty(name = "dhfs.peerdiscovery.preset-uuid") - Optional presetUuid; - @ConfigProperty(name = "dhfs.objects.persistence.stuff.root") - String stuffRoot; - - private PeerId _selfUuid; - private X509Certificate _selfCertificate; - private KeyPair _selfKeyPair; - - void init(@Observes @Priority(300) StartupEvent event) throws IOException { - jObjectTxManager.run(() -> { - var selfData = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (selfData != null) { - _selfUuid = selfData.selfUuid(); - _selfCertificate = CertificateTools.certFromBytes(selfData.selfCertificate().toByteArray()); - _selfKeyPair = SerializationHelper.deserialize(selfData.selfKeyPair().toByteArray()); - return; - } else { - try { - _selfUuid = presetUuid.map(PeerId::of).orElseGet(() -> PeerId.of(UUID.randomUUID().toString())); - Log.info("Generating a key pair, please wait"); - _selfKeyPair = CertificateTools.generateKeyPair(); - _selfCertificate = CertificateTools.generateCertificate(_selfKeyPair, _selfUuid.toString()); - - curTx.put(new PersistentRemoteHostsData(_selfUuid, ByteString.copyFrom(_selfCertificate.getEncoded()), SerializationHelper.serialize(_selfKeyPair), HashTreePSet.empty(), HashTreePMap.empty())); - peerInfoService.putPeer(_selfUuid, _selfCertificate.getEncoded()); - } catch (CertificateEncodingException e) { - throw new RuntimeException(e); - } - } - }); - peerTrustManager.reloadTrustManagerHosts(peerInfoService.getPeers()); - Log.info("Self uuid is: " + _selfUuid.toString()); - new File(stuffRoot).mkdirs(); - Files.write(Path.of(stuffRoot, "self_uuid"), _selfUuid.id().toString().getBytes(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); - } - - public PeerId getSelfUuid() { - return _selfUuid; - } - - public void updateCerts() { - peerTrustManager.reloadTrustManagerHosts(txm.run(() -> peerInfoService.getPeers().stream().toList())); //FIXME: - } - - public KeyPair getSelfKeypair() { - return _selfKeyPair; - } - - public X509Certificate getSelfCertificate() { - return _selfCertificate; - } - - // Returns true if host's initial sync wasn't done before, and marks it as done - public boolean markInitialSyncDone(PeerId peerId) { - return txm.run(() -> { - var data = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (data == null) throw new IllegalStateException("Self data not found"); - boolean exists = data.initialSyncDone().contains(peerId); - if (exists) { - Log.tracev("Already marked sync state for {0}", peerId); - return false; - } - curTx.put(data.withInitialSyncDone(data.initialSyncDone().plus(peerId))); - Log.infov("Did mark sync state for {0}", peerId); - return true; - }); - } - - // Returns true if it was marked as done before, and resets it - public boolean resetInitialSyncDone(PeerId peerId) { - return txm.run(() -> { - var data = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (data == null) throw new IllegalStateException("Self data not found"); - boolean exists = data.initialSyncDone().contains(peerId); - if (!exists) { - Log.infov("Already reset sync state for {0}", peerId); - return false; - } - curTx.put(data.withInitialSyncDone(data.initialSyncDone().minus(peerId))); - Log.infov("Did reset sync state for {0}", peerId); - curTx.onCommit(() -> reachablePeerManager.handleConnectionError(peerId)); - return true; - }); - } - - public boolean isInitialSyncDone(PeerId peerId) { - return txm.run(() -> { - var data = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (data == null) throw new IllegalStateException("Self data not found"); - return data.initialSyncDone().contains(peerId); - }); - } - - public List getPersistentPeerAddresses() { - return txm.run(() -> { - var data = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (data == null) throw new IllegalStateException("Self data not found"); - return data.persistentPeerAddress().values().stream().toList(); - }); - } - - public void addPersistentPeerAddress(PeerId peerId, IpPeerAddress address) { - txm.run(() -> { - var data = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (data == null) throw new IllegalStateException("Self data not found"); - var newData = data.persistentPeerAddress().plus(peerId, address.withType(PeerAddressType.WAN)); //TODO: - curTx.put(data.withPersistentPeerAddress(newData)); - }); - } - - public void removePersistentPeerAddress(PeerId peerId) { - txm.run(() -> { - var data = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (data == null) throw new IllegalStateException("Self data not found"); - var newData = data.persistentPeerAddress().minus(peerId); - curTx.put(data.withPersistentPeerAddress(newData)); - }); - } - - public IpPeerAddress getPersistentPeerAddress(PeerId peerId) { - return txm.run(() -> { - var data = curTx.get(PersistentRemoteHostsData.class, PersistentRemoteHostsData.KEY).orElse(null); - if (data == null) throw new IllegalStateException("Self data not found"); - return data.persistentPeerAddress().get(peerId); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.java deleted file mode 100644 index 1be8b761..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentRemoteHostsData.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.google.protobuf.ByteString; -import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.PMap; -import org.pcollections.PSet; - -import java.io.Serializable; - -public record PersistentRemoteHostsData(PeerId selfUuid, - ByteString selfCertificate, - ByteString selfKeyPair, - PSet initialSyncDone, - PMap persistentPeerAddress) implements JData, Serializable { - public static final JObjectKey KEY = JObjectKey.of("self_peer_data"); - - @Override - public JObjectKey key() { - return KEY; - } - - public PersistentRemoteHostsData withInitialSyncDone(PSet initialSyncDone) { - return new PersistentRemoteHostsData(selfUuid, selfCertificate, selfKeyPair, initialSyncDone, persistentPeerAddress); - } - - public PersistentRemoteHostsData withPersistentPeerAddress(PMap persistentPeerAddress) { - return new PersistentRemoteHostsData(selfUuid, selfCertificate, selfKeyPair, initialSyncDone, persistentPeerAddress); - } - - @Override - public String toString() { - return "PersistentRemoteHostsData{" + - "selfUuid=" + selfUuid + - ", initialSyncDone=" + initialSyncDone + - '}'; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/ReachablePeerManager.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/ReachablePeerManager.java deleted file mode 100644 index 4f6eac39..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/ReachablePeerManager.java +++ /dev/null @@ -1,243 +0,0 @@ -package com.usatiuk.dhfs.peersync; - -import com.usatiuk.dhfs.peerdiscovery.PeerAddress; -import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory; -import com.usatiuk.dhfs.peersync.api.ApiPeerInfo; -import com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic; -import com.usatiuk.dhfs.peertrust.PeerTrustManager; -import com.usatiuk.dhfs.remoteobj.SyncHandler; -import com.usatiuk.dhfs.repository.PingRequest; -import com.usatiuk.dhfs.rpc.RpcClientFactory; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.logging.Log; -import io.quarkus.runtime.StartupEvent; -import io.quarkus.scheduler.Scheduled; -import io.smallrye.common.annotation.Blocking; -import jakarta.annotation.Nullable; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.enterprise.inject.Instance; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.IOException; -import java.util.*; -import java.util.concurrent.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -@ApplicationScoped -public class ReachablePeerManager { - private final ConcurrentMap _states = new ConcurrentHashMap<>(); - private final Collection _connectedListeners; - private final Collection _disconnectedListeners; - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - PeerInfoService peerInfoService; - @Inject - RpcClientFactory rpcClientFactory; - @Inject - PeerSyncApiClientDynamic peerSyncApiClient; - @Inject - TransactionManager transactionManager; - @Inject - Transaction curTx; - @Inject - PeerTrustManager peerTrustManager; - @ConfigProperty(name = "dhfs.objects.sync.ping.timeout") - long pingTimeout; - @ConfigProperty(name = "dhfs.sync.cert-check", defaultValue = "true") - boolean certCheck; - @Inject - PeerDiscoveryDirectory peerDiscoveryDirectory; - @Inject - SyncHandler syncHandler; - private ExecutorService _heartbeatExecutor; - - public ReachablePeerManager(Instance connectedListeners, Instance disconnectedListeners) { - _connectedListeners = List.copyOf(connectedListeners.stream().toList()); - _disconnectedListeners = List.copyOf(disconnectedListeners.stream().toList()); - } - - // Note: keep priority updated with below - void init(@Observes @Priority(600) StartupEvent event) throws IOException { - _heartbeatExecutor = Executors.newVirtualThreadPerTaskExecutor(); - } - - @Scheduled(every = "${dhfs.objects.reconnect_interval}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - @Blocking - public void tryConnectAll() { - if (_heartbeatExecutor == null) return; - try { - var peers = peerInfoService.getPeersNoSelf(); - var pids = peers.stream().map(com.usatiuk.dhfs.peersync.PeerInfo::id).toList(); - - List stale = _states.keySet().stream().filter(p -> !pids.contains(p)).toList(); - stale.forEach(_states.keySet()::remove); - - _heartbeatExecutor.invokeAll(peers - .stream() - .>map(host -> () -> { - try { - if (isReachable(host)) - Log.tracev("Heartbeat: {0}", host); - else - Log.debugv("Trying to connect to {0}", host); - var bestAddr = selectBestAddress(host.id()).orElse(null); - if (bestAddr != null && pingCheck(host, bestAddr)) - handleConnectionSuccess(host, bestAddr); - else - handleConnectionError(host); - } catch (Exception e) { - Log.error("Failed to connect to " + host.key(), e); - } - return null; - }).toList(), 30, TimeUnit.SECONDS); //FIXME: - } catch (InterruptedException iex) { - Log.error("Heartbeat was interrupted"); - } - } - - private void handleConnectionSuccess(com.usatiuk.dhfs.peersync.PeerInfo host, PeerAddress address) { - boolean wasReachable = isReachable(host); - - boolean shouldSync = !persistentPeerDataService.isInitialSyncDone(host.id()); - - if (shouldSync) { - syncHandler.doInitialSync(host.id()); - persistentPeerDataService.markInitialSyncDone(host.id()); - } - - _states.put(host.id(), address); - - if (wasReachable) - return; - - Log.infov("Connected to {0}", host); - - for (var l : _connectedListeners) { - l.handlePeerConnected(host.id()); - } - } - - public void handleConnectionError(PeerId host) { - boolean wasReachable = isReachable(host); - - if (wasReachable) - Log.infov("Lost connection to {0}", host); - - _states.remove(host); - - for (var l : _disconnectedListeners) { - l.handlePeerDisconnected(host); - } - } - - public void handleConnectionError(com.usatiuk.dhfs.peersync.PeerInfo host) { - handleConnectionError(host.id()); - } - - // FIXME: - private boolean pingCheck(com.usatiuk.dhfs.peersync.PeerInfo host, PeerAddress address) { - try { - return rpcClientFactory.withObjSyncClient(host.id(), address, pingTimeout, (peer, c) -> { - c.ping(PingRequest.getDefaultInstance()); - return true; - }); - } catch (Exception ignored) { - Log.debugv("Host {0} is unreachable: {1}, {2}", host, ignored.getMessage(), ignored.getCause()); - return false; - } - } - - public boolean isReachable(PeerId host) { - return _states.containsKey(host); - } - - public boolean isReachable(com.usatiuk.dhfs.peersync.PeerInfo host) { - return isReachable(host.id()); - } - - public PeerAddress getAddress(PeerId host) { - return _states.get(host); - } - - public List getAvailableHosts() { - return _states.keySet().stream().toList(); - } - -// public List getUnavailableHosts() { -// return _transientPeersState.runReadLocked(d -> d.getStates().entrySet().stream() -// .filter(e -> !e.getValue().isReachable()) -// .map(Map.Entry::getKey).toList()); -// } - - public HostStateSnapshot getHostStateSnapshot() { - return transactionManager.run(() -> { - var partition = peerInfoService.getPeersNoSelf().stream().map(com.usatiuk.dhfs.peersync.PeerInfo::id) - .collect(Collectors.partitioningBy(this::isReachable)); - return new HostStateSnapshot(partition.get(true), partition.get(false)); - }); - } - - public void removeRemoteHost(PeerId peerId) { - transactionManager.run(() -> { - peerInfoService.removePeer(peerId); - }); - } - - public Optional selectBestAddress(PeerId host) { - return peerDiscoveryDirectory.getForPeer(host).stream().min(Comparator.comparing(PeerAddress::type)); - } - - private ApiPeerInfo getInfo(PeerId host) { - return transactionManager.run(() -> { - if (peerInfoService.getPeerInfo(host).isPresent()) - throw new IllegalStateException("Host " + host + " is already added"); - - var addr = selectBestAddress(host).orElseThrow(() -> new IllegalStateException("Host " + host + " is unreachable")); - var info = peerSyncApiClient.getSelfInfo(addr); - - return info; - }); - } - - public void addRemoteHost(PeerId host, @Nullable String cert) { - transactionManager.run(() -> { - var info = getInfo(host); - - var certGot = Base64.getDecoder().decode(info.cert()); - if (certCheck) { - var certApi = Base64.getDecoder().decode(cert); - if (!Arrays.equals(certGot, certApi)) - throw new IllegalStateException("Host " + host + " has different cert"); - } - peerInfoService.putPeer(host, certGot); - }); - - peerTrustManager.reloadTrustManagerHosts(transactionManager.run(() -> peerInfoService.getPeers().stream().toList())); //FIXME: - } - - - public Collection> getSeenButNotAddedHosts() { - return transactionManager.run(() -> { - return peerDiscoveryDirectory.getReachablePeers().stream().filter(p -> !peerInfoService.getPeerInfo(p).isPresent()) - .flatMap(p -> { - try { - return Stream.of(Pair.of(p, getInfo(p))); - } catch (Exception e) { - Log.warn("Error getting peer info for " + p, e); - return Stream.empty(); - } - }).toList(); - }); - } - - public record HostStateSnapshot(Collection available, Collection unavailable) { - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/ApiPeerInfo.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/ApiPeerInfo.java deleted file mode 100644 index ca2df7c3..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/ApiPeerInfo.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.dhfs.peersync.api; - -public record ApiPeerInfo(String selfUuid, String cert) { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApi.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApi.java deleted file mode 100644 index cfa3192f..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApi.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.usatiuk.dhfs.peersync.api; - -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import jakarta.inject.Inject; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; - -import java.security.cert.CertificateEncodingException; -import java.util.Base64; - -@Path("/peer-info") -public class PeerSyncApi { - @Inject - PersistentPeerDataService persistentPeerDataService; - - @Path("self") - @GET - public ApiPeerInfo getSelfInfo() { - try { - return new ApiPeerInfo(persistentPeerDataService.getSelfUuid().toString(), - Base64.getEncoder().encodeToString(persistentPeerDataService.getSelfCertificate().getEncoded())); - } catch (CertificateEncodingException e) { - throw new RuntimeException(e); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.java deleted file mode 100644 index b4da86ec..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClient.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.dhfs.peersync.api; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; - -@Path("/peer-info") -public interface PeerSyncApiClient { - @Path("self") - @GET - ApiPeerInfo getSelfInfo(); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.java deleted file mode 100644 index 7d66b0e9..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/api/PeerSyncApiClientDynamic.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.usatiuk.dhfs.peersync.api; - -import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress; -import com.usatiuk.dhfs.peerdiscovery.PeerAddress; -import io.quarkus.rest.client.reactive.QuarkusRestClientBuilder; -import jakarta.enterprise.context.ApplicationScoped; - -import java.net.URI; -import java.util.concurrent.TimeUnit; - -@ApplicationScoped -public class PeerSyncApiClientDynamic { - public ApiPeerInfo getSelfInfo(PeerAddress addr) { - return switch (addr) { - case IpPeerAddress ipAddr -> getSelfInfo(ipAddr.address().getHostAddress(), ipAddr.port()); - default -> throw new IllegalArgumentException("Unsupported peer address type: " + addr.getClass()); - }; - } - - private ApiPeerInfo getSelfInfo(String address, int port) { - var client = QuarkusRestClientBuilder.newBuilder() - .baseUri(URI.create("http://" + address + ":" + port)) - .connectTimeout(5, TimeUnit.SECONDS) - .readTimeout(5, TimeUnit.SECONDS) - .build(PeerSyncApiClient.class); - return client.getSelfInfo(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java deleted file mode 100644 index bc9fe580..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.usatiuk.dhfs.peersync.structs; - -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.JObjectKey; - -import java.util.Collection; -import java.util.List; - -//@ProtoMirror(JKleppmannTreeNodeMetaFileP.class) -public record JKleppmannTreeNodeMetaPeer(String name, JObjectKey peerId) implements JKleppmannTreeNodeMeta { - public JKleppmannTreeNodeMetaPeer(PeerId id) { - this(peerIdToNodeId(id).value(), id.id()); - } - - public static JObjectKey peerIdToNodeId(PeerId id) { - return JObjectKey.of(id.toJObjectKey().value() + "_tree_node"); - } - - public static PeerId nodeIdToPeerId(JObjectKey id) { - if (!id.value().endsWith("_tree_node")) { - throw new IllegalArgumentException("Not a tree node key: " + id); - } - return PeerId.of(id.value().substring(0, id.value().length() - "_tree_node".length())); - } - - @Override - public JKleppmannTreeNodeMeta withName(String name) { - assert name.equals(peerIdToNodeId(PeerId.of(peerId().value())).toString()); - assert name().equals(name); - return this; - } - - @Override - public Collection collectRefsTo() { - return List.of(peerId); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/CertificateTools.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/CertificateTools.java deleted file mode 100644 index a042c052..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/CertificateTools.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.usatiuk.dhfs.peertrust; - -import org.apache.commons.codec.digest.DigestUtils; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x509.BasicConstraints; -import org.bouncycastle.cert.CertIOException; -import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; -import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder; -import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.bouncycastle.operator.ContentSigner; -import org.bouncycastle.operator.OperatorCreationException; -import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.math.BigInteger; -import java.security.*; -import java.security.cert.CertificateException; -import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; -import java.util.Calendar; -import java.util.Date; - -public class CertificateTools { - - public static X509Certificate certFromBytes(byte[] bytes) { - try { - CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); - InputStream in = new ByteArrayInputStream(bytes); - return (X509Certificate) certFactory.generateCertificate(in); - } catch (CertificateException e) { - throw new RuntimeException(e); - } - } - - public static KeyPair generateKeyPair() { - try { - KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); - keyGen.initialize(2048); //FIXME: - return keyGen.generateKeyPair(); - } catch (NoSuchAlgorithmException e) { - throw new RuntimeException(e); - } - } - - public static X509Certificate generateCertificate(KeyPair keyPair, String subject) { - try { - Provider bcProvider = new BouncyCastleProvider(); - Security.addProvider(bcProvider); - - Date startDate = new Date(); - - X500Name cnName = new X500Name("CN=" + subject); - BigInteger certSerialNumber = new BigInteger(DigestUtils.sha256(subject)); - - Calendar calendar = Calendar.getInstance(); - calendar.setTime(startDate); - calendar.add(Calendar.YEAR, 999); - - Date endDate = calendar.getTime(); - - ContentSigner contentSigner = new JcaContentSignerBuilder("SHA256WithRSA").build(keyPair.getPrivate()); - - JcaX509v3CertificateBuilder certBuilder = new JcaX509v3CertificateBuilder(cnName, certSerialNumber, startDate, endDate, cnName, keyPair.getPublic()); - - BasicConstraints basicConstraints = new BasicConstraints(false); - certBuilder.addExtension(new ASN1ObjectIdentifier("2.5.29.19"), true, basicConstraints); - - return new JcaX509CertificateConverter().setProvider(bcProvider).getCertificate(certBuilder.build(contentSigner)); - } catch (OperatorCreationException | CertificateException | CertIOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java deleted file mode 100644 index c7c7ac0f..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.usatiuk.dhfs.peertrust; - -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder; -import com.usatiuk.dhfs.peersync.PeerInfo; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer; -import com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -@Singleton -public class PeerInfoCertUpdateTxHook implements PreCommitTxHook { - @Inject - Transaction curTx; - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - InvalidationQueueService invalidationQueueService; - - @Override - public void onChange(JObjectKey key, JData old, JData cur) { - // We also need to force pushing invalidation to all, in case our node acts as a "middleman" - // connecting two other nodes - // TODO: Can there be a prettier way to do this? (e.g. more general proxying of ops?) - if (cur instanceof JKleppmannTreeNodeHolder n) { - if (n.key().value().equals("peers_jt_root")) { - // TODO: This is kinda sucky - Log.infov("Changed peer tree root: {0} to {1}", key, cur); - - curTx.onCommit(() -> persistentPeerDataService.updateCerts()); - curTx.onCommit(() -> invalidationQueueService.pushInvalidationToAll(PeerInfoService.TREE_KEY)); - if (!(old instanceof JKleppmannTreeNodeHolder oldNode)) - throw new IllegalStateException("Old node is not a tree node"); - - for (var curRef : oldNode.node().children().entrySet()) { - if (!n.node().children().containsKey(curRef.getKey())) { - Log.infov("Will reset sync state for {0}", curRef.getValue()); - persistentPeerDataService.resetInitialSyncDone(JKleppmannTreeNodeMetaPeer.nodeIdToPeerId(curRef.getValue())); - } - } - return; - } - } - - if (!(cur instanceof RemoteObjectDataWrapper remote)) { - return; - } - - if (!(remote.data() instanceof PeerInfo curPi)) - return; - - var oldPi = (PeerInfo) ((RemoteObjectDataWrapper) old).data(); - - if (oldPi.kickCounterSum() != curPi.kickCounterSum()) { - Log.warnv("Peer kicked out: {0} to {1}", key, cur); - persistentPeerDataService.resetInitialSyncDone(curPi.id()); - } - - Log.infov("Changed peer info: {0} to {1}", key, cur); - - curTx.onCommit(() -> invalidationQueueService.pushInvalidationToAll(key)); - curTx.onCommit(() -> persistentPeerDataService.updateCerts()); - } - - @Override - public void onCreate(JObjectKey key, JData cur) { - if (!(cur instanceof RemoteObjectDataWrapper remote)) { - return; - } - - if (!(remote.data() instanceof PeerInfo)) - return; - - Log.infov("Created peer info: {0}, {1}", key, cur); - - curTx.onCommit(() -> persistentPeerDataService.updateCerts()); - } - - @Override - public void onDelete(JObjectKey key, JData cur) { - if (!(cur instanceof RemoteObjectDataWrapper remote)) { - return; - } - - if (!(remote.data() instanceof PeerInfo)) - return; - - Log.infov("Deleted peer info: {0}, {1}", key, cur); - - curTx.onCommit(() -> persistentPeerDataService.updateCerts()); - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.java deleted file mode 100644 index 26601253..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerRolesAugmentor.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.usatiuk.dhfs.peertrust; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import io.quarkus.logging.Log; -import io.quarkus.security.credential.CertificateCredential; -import io.quarkus.security.identity.AuthenticationRequestContext; -import io.quarkus.security.identity.SecurityIdentity; -import io.quarkus.security.identity.SecurityIdentityAugmentor; -import io.quarkus.security.runtime.QuarkusSecurityIdentity; -import io.smallrye.mutiny.Uni; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import java.util.function.Supplier; - -@ApplicationScoped -public class PeerRolesAugmentor implements SecurityIdentityAugmentor { - @Inject - PeerInfoService peerInfoService; - - @Override - public Uni augment(SecurityIdentity identity, AuthenticationRequestContext context) { - return Uni.createFrom().item(build(identity)); - } - - private Supplier build(SecurityIdentity identity) { - if (identity.isAnonymous()) { - return () -> identity; - } else { - QuarkusSecurityIdentity.Builder builder = QuarkusSecurityIdentity.builder(identity); - - var uuid = identity.getPrincipal().getName().substring(3); - - try { - var entry = peerInfoService.getPeerInfo(PeerId.of(uuid)); - - if (!entry.get().parsedCert().equals(identity.getCredential(CertificateCredential.class).getCertificate())) { - Log.error("Certificate mismatch for " + uuid); - return () -> identity; - } - - builder.addRole("cluster-member"); - return builder::build; - } catch (Exception e) { - Log.error("Error when checking certificate for " + uuid, e); - return () -> identity; - } - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustManager.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustManager.java deleted file mode 100644 index 160bc993..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustManager.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.usatiuk.dhfs.peertrust; - -import com.usatiuk.dhfs.peersync.PeerInfo; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; -import javax.net.ssl.X509TrustManager; -import java.security.KeyStore; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import java.util.Collection; -import java.util.concurrent.atomic.AtomicReference; - -@ApplicationScoped -public class PeerTrustManager implements X509TrustManager { - private final AtomicReference trustManager = new AtomicReference<>(); - @Inject - PeerInfoService peerInfoService; - - @Override - public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { - trustManager.get().checkClientTrusted(chain, authType); - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { - trustManager.get().checkServerTrusted(chain, authType); - } - - @Override - public X509Certificate[] getAcceptedIssuers() { - return trustManager.get().getAcceptedIssuers(); - } - - public synchronized void reloadTrustManagerHosts(Collection hosts) { - try { - Log.info("Trying to reload trust manager: " + hosts.size() + " known hosts"); - reloadTrustManager(hosts.stream().map(hostInfo -> - Pair.of(hostInfo.id().toString(), hostInfo.parsedCert())).toList()); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private synchronized void reloadTrustManager(Collection> certs) throws Exception { - KeyStore ts = KeyStore.getInstance(KeyStore.getDefaultType()); - ts.load(null, null); - - for (var cert : certs) { - ts.setCertificateEntry(cert.getLeft(), cert.getRight()); - } - - TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - tmf.init(ts); - - TrustManager[] tms = tmf.getTrustManagers(); - for (var tm : tms) { - if (tm instanceof X509TrustManager) { - trustManager.set((X509TrustManager) tm); - return; - } - } - - throw new NoSuchAlgorithmException("No X509TrustManager in TrustManagerFactory"); - } - -} \ No newline at end of file diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.java deleted file mode 100644 index a45fa70c..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerTrustServerCustomizer.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.usatiuk.dhfs.peertrust; - - -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import io.quarkus.vertx.http.HttpServerOptionsCustomizer; -import io.vertx.core.http.HttpServerOptions; -import io.vertx.core.net.KeyCertOptions; -import io.vertx.core.net.TrustOptions; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import javax.net.ssl.KeyManagerFactory; -import java.security.KeyStore; -import java.security.cert.Certificate; - -@ApplicationScoped -public class PeerTrustServerCustomizer implements HttpServerOptionsCustomizer { - - @Inject - PeerTrustManager peerTrustManager; - - @Inject - PersistentPeerDataService persistentPeerDataService; - - @Override - public void customizeHttpsServer(HttpServerOptions options) { - try { - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ks.load(null, null); - - ks.setKeyEntry("sslkey", - persistentPeerDataService.getSelfKeypair().getPrivate(), null, - new Certificate[]{persistentPeerDataService.getSelfCertificate()}); - - KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - keyManagerFactory.init(ks, null); - - options.setKeyCertOptions(KeyCertOptions.wrap(keyManagerFactory)); - options.setTrustOptions(TrustOptions.wrap(peerTrustManager)); - } catch (Exception e) { - throw new RuntimeException("Error configuring https: ", e); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/DeleterTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/DeleterTxHook.java deleted file mode 100644 index 28f2b3f1..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/DeleterTxHook.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.usatiuk.dhfs.refcount; - -import com.usatiuk.dhfs.remoteobj.RemoteObjectDeleter; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -@Singleton -public class DeleterTxHook implements PreCommitTxHook { - @Inject - Transaction curTx; - @Inject - RemoteObjectDeleter remoteObjectDeleter; - - private boolean canDelete(JDataRefcounted data) { - return !data.frozen() && data.refsFrom().isEmpty(); - } - - @Override - public void onChange(JObjectKey key, JData old, JData cur) { - if (!(cur instanceof JDataRefcounted refCur)) { - return; - } - if (canDelete(refCur)) { - if (refCur instanceof RemoteObjectMeta ro) { - curTx.onCommit(() -> remoteObjectDeleter.putDeletionCandidate(ro)); - return; - } - Log.trace("Deleting object on change: " + key); - curTx.delete(key); - } - } - - @Override - public void onCreate(JObjectKey key, JData cur) { - if (!(cur instanceof JDataRefcounted refCur)) { - return; - } - - if (canDelete(refCur)) { - if (refCur instanceof RemoteObjectMeta ro) { - curTx.onCommit(() -> remoteObjectDeleter.putDeletionCandidate(ro)); - return; - } - Log.warn("Deleting object on creation: " + key); - curTx.delete(key); - } - } - - @Override - public void onDelete(JObjectKey key, JData cur) { - if (!(cur instanceof JDataRefcounted refCur)) { - return; - } - - if (!canDelete(refCur)) { - throw new IllegalStateException("Deleting object with refs: " + key); - } - } - - @Override - public int getPriority() { - return 200; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataNormalRef.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataNormalRef.java deleted file mode 100644 index 3ef92fda..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataNormalRef.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.usatiuk.dhfs.refcount; - -import com.usatiuk.dhfs.jmap.JMapRef; -import com.usatiuk.objects.JObjectKey; - -public record JDataNormalRef(JObjectKey obj) implements JDataRef { - @Override - public int compareTo(JDataRef o) { - if (o instanceof JDataNormalRef) { - return obj.compareTo(((JDataNormalRef) o).obj); - } else if (o instanceof JMapRef) { - // TODO: Prettier? - return -1; - } else { - throw new IllegalArgumentException("Unknown type of JDataRef"); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRef.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRef.java deleted file mode 100644 index 729d081c..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRef.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.dhfs.refcount; - -import com.usatiuk.objects.JObjectKey; - -import java.io.Serializable; - -public interface JDataRef extends Comparable, Serializable { - JObjectKey obj(); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRefcounted.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRefcounted.java deleted file mode 100644 index 741fa0d7..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/JDataRefcounted.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.dhfs.refcount; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.PCollection; - -import java.util.Collection; -import java.util.List; - -public interface JDataRefcounted extends JData { - PCollection refsFrom(); - - JDataRefcounted withRefsFrom(PCollection refs); - - boolean frozen(); - - JDataRefcounted withFrozen(boolean frozen); - - default Collection collectRefsTo() { - return List.of(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/RefcounterTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/RefcounterTxHook.java deleted file mode 100644 index d48ce482..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/refcount/RefcounterTxHook.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.usatiuk.dhfs.refcount; - -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -@Singleton -public class RefcounterTxHook implements PreCommitTxHook { - @Inject - Transaction curTx; - - private JDataRefcounted getRef(JObjectKey key) { - var found = curTx.get(JDataRefcounted.class, key).orElse(null); - - if (found != null) { - return found; - } - - return new RemoteObjectMeta(key); - } - - @Override - public void onChange(JObjectKey key, JData old, JData cur) { - if (!(cur instanceof JDataRefcounted refCur)) { - return; - } - var refOld = (JDataRefcounted) old; - - var curRefs = refCur.collectRefsTo(); - var oldRefs = refOld.collectRefsTo(); - - for (var curRef : curRefs) { - if (!oldRefs.contains(curRef)) { - var referenced = getRef(curRef); - curTx.put(referenced.withRefsFrom(referenced.refsFrom().plus(new JDataNormalRef(key)))); - Log.tracev("Added ref from {0} to {1}", key, curRef); - } - } - - for (var oldRef : oldRefs) { - if (!curRefs.contains(oldRef)) { - var referenced = getRef(oldRef); - curTx.put(referenced.withRefsFrom(referenced.refsFrom().minus(new JDataNormalRef(key)))); - Log.tracev("Removed ref from {0} to {1}", key, oldRef); - } - } - } - - @Override - public void onCreate(JObjectKey key, JData cur) { - if (!(cur instanceof JDataRefcounted refCur)) { - return; - } - - for (var newRef : refCur.collectRefsTo()) { - var referenced = getRef(newRef); - curTx.put(referenced.withRefsFrom(referenced.refsFrom().plus(new JDataNormalRef(key)))); - Log.tracev("Added ref from {0} to {1}", key, newRef); - } - } - - @Override - public void onDelete(JObjectKey key, JData cur) { - if (!(cur instanceof JDataRefcounted refCur)) { - return; - } - - for (var removedRef : refCur.collectRefsTo()) { - var referenced = getRef(removedRef); - curTx.put(referenced.withRefsFrom(referenced.refsFrom().minus(new JDataNormalRef(key)))); - Log.tracev("Removed ref from {0} to {1}", key, removedRef); - } - } - - @Override - public int getPriority() { - return 100; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ConflictResolver.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ConflictResolver.java deleted file mode 100644 index a45040b7..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ConflictResolver.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.peersync.PeerId; - -public interface ConflictResolver { - void resolve(PeerId fromPeer, RemoteObjectMeta ours, RemoteObjectMeta theirs); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.java deleted file mode 100644 index ff674e05..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/DefaultObjSyncHandler.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; - -import javax.annotation.Nullable; - -@ApplicationScoped -public class DefaultObjSyncHandler { - @Inject - Transaction curTx; - @Inject - PersistentPeerDataService persistentPeerDataService; - - public void handleRemoteUpdate(PeerId from, JObjectKey key, - PMap receivedChangelog, - @Nullable JDataRemote receivedData) { - var current = curTx.get(RemoteObjectMeta.class, key).orElse(null); - if (current == null) { - current = new RemoteObjectMeta(key, HashTreePMap.empty()); - curTx.put(current); - } - - var changelogCompare = SyncHelper.compareChangelogs(current.changelog(), receivedChangelog); - - switch (changelogCompare) { - case EQUAL -> { - Log.debug("No action on update: " + key + " from " + from); - if (!current.hasLocalData() && receivedData != null) { - current = current.withHaveLocal(true); - curTx.put(current); - curTx.put(curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(current.key())) - .map(w -> w.withData(receivedData)).orElse(new RemoteObjectDataWrapper<>(receivedData))); - - if (!current.knownType().isAssignableFrom(receivedData.getClass())) - throw new IllegalStateException("Object type mismatch: " + current.knownType() + " vs " + receivedData.getClass()); - - if (!current.knownType().equals(receivedData.getClass())) - current = current.withKnownType(receivedData.getClass()); - - curTx.put(current); - } - } - case NEWER -> { - Log.debug("Received newer index update than known: " + key + " from " + from); - var newChangelog = receivedChangelog.containsKey(persistentPeerDataService.getSelfUuid()) ? - receivedChangelog : receivedChangelog.plus(persistentPeerDataService.getSelfUuid(), 0L); - current = current.withChangelog(newChangelog); - - if (receivedData != null) { - current = current.withHaveLocal(true); - curTx.put(current); - curTx.put(curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(current.key())) - .map(w -> w.withData(receivedData)).orElse(new RemoteObjectDataWrapper<>(receivedData))); - - if (!current.knownType().isAssignableFrom(receivedData.getClass())) - throw new IllegalStateException("Object type mismatch: " + current.knownType() + " vs " + receivedData.getClass()); - - if (!current.knownType().equals(receivedData.getClass())) - current = current.withKnownType(receivedData.getClass()); - - curTx.put(current); - } else { - current = current.withHaveLocal(false); - curTx.put(current); - } - } - case OLDER -> { - Log.debug("Received older index update than known: " + key + " from " + from); - return; - } - case CONFLICT -> { - Log.debug("Conflict on update (inconsistent version): " + key + " from " + from); - // TODO: - return; - } - } - var curKnownRemoteVersion = current.knownRemoteVersions().get(from); - var receivedTotalVer = receivedChangelog.values().stream().mapToLong(Long::longValue).sum(); - - if (curKnownRemoteVersion == null || curKnownRemoteVersion < receivedTotalVer) { - current = current.withKnownRemoteVersions(current.knownRemoteVersions().plus(from, receivedTotalVer)); - curTx.put(current); - } - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.java deleted file mode 100644 index f342de04..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/IndexUpdateOpHandler.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.invalidation.IndexUpdateOp; -import com.usatiuk.dhfs.invalidation.OpHandler; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -@ApplicationScoped -public class IndexUpdateOpHandler implements OpHandler { - @Inject - TransactionManager txm; - @Inject - Transaction curTx; - @Inject - SyncHandler syncHandler; - - @Override - public void handleOp(PeerId from, IndexUpdateOp op) { - txm.run(() -> { - syncHandler.handleRemoteUpdate(from, op.key(), op.changelog(), op.data()); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemote.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemote.java deleted file mode 100644 index 4ddac751..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemote.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.objects.JObjectKey; - -import java.io.Serializable; -import java.util.Collection; -import java.util.List; - -public interface JDataRemote extends Serializable { - JObjectKey key(); - - default int estimateSize() { - return 100; - } - - default Collection collectRefsTo() { - return List.of(); - } - - default Class dtoClass() { - assert JDataRemoteDto.class.isAssignableFrom(getClass()); - return (Class) this.getClass(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemoteDto.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemoteDto.java deleted file mode 100644 index a081b7a4..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemoteDto.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import java.io.Serializable; - -public interface JDataRemoteDto extends Serializable { - default Class objClass() { - assert JDataRemote.class.isAssignableFrom(getClass()); - return (Class) this.getClass(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemotePush.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemotePush.java deleted file mode 100644 index 6f255606..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/JDataRemotePush.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface JDataRemotePush { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java deleted file mode 100644 index 2d11cb6c..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.PMap; - -import javax.annotation.Nullable; - -public interface ObjSyncHandler { - void handleRemoteUpdate(PeerId from, JObjectKey key, - PMap receivedChangelog, - @Nullable D receivedData); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ReceivedObject.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ReceivedObject.java deleted file mode 100644 index b632900b..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ReceivedObject.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.peersync.PeerId; -import org.pcollections.PMap; - -public record ReceivedObject(PMap changelog, JDataRemoteDto data) { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java deleted file mode 100644 index 648a5643..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.PreCommitTxHook; -import com.usatiuk.objects.transaction.Transaction; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -@Singleton -public class RemoteObjPusherTxHook implements PreCommitTxHook { - @Inject - Transaction curTx; - @Inject - InvalidationQueueService invalidationQueueService; - - @Override - public void onChange(JObjectKey key, JData old, JData cur) { - boolean invalidate = switch (cur) { - case RemoteObjectMeta remote -> remote.changelog() != ((RemoteObjectMeta) old).changelog(); - case JKleppmannTreePersistentData pd -> pd.queues() != ((JKleppmannTreePersistentData) old).queues(); - default -> false; - }; - - if (invalidate) { - curTx.onCommit(() -> invalidationQueueService.pushInvalidationToAll(cur.key())); - } - } - - @Override - public void onCreate(JObjectKey key, JData cur) { - if (!(cur instanceof RemoteObjectMeta remote)) { - return; - } - - curTx.onCommit(() -> invalidationQueueService.pushInvalidationToAll(remote.key())); - } - - @Override - public void onDelete(JObjectKey key, JData cur) { - if (!(cur instanceof RemoteObjectMeta remote)) { - return; - } - } - - @Override - public int getPriority() { - return 100; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.java deleted file mode 100644 index 0432861b..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDataWrapper.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.refcount.JDataRef; -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.HashTreePSet; -import org.pcollections.PCollection; - -import java.util.Collection; - -public record RemoteObjectDataWrapper( - JObjectKey key, - PCollection refsFrom, - boolean frozen, - T data) implements JDataRefcounted { - public RemoteObjectDataWrapper(T data) { - this(RemoteObjectMeta.ofDataKey(data.key()), HashTreePSet.empty(), false, data); - } - - @Override - public RemoteObjectDataWrapper withRefsFrom(PCollection refs) { - return new RemoteObjectDataWrapper<>(key, refs, frozen, data); - } - - @Override - public RemoteObjectDataWrapper withFrozen(boolean frozen) { - return new RemoteObjectDataWrapper<>(key, refsFrom, frozen, data); - } - - public RemoteObjectDataWrapper withData(T data) { - return new RemoteObjectDataWrapper<>(key, refsFrom, frozen, data); - } - - @Override - public Collection collectRefsTo() { - return data.collectRefsTo(); - } - - @Override - public int estimateSize() { - return data.estimateSize(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java deleted file mode 100644 index 40f44be8..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java +++ /dev/null @@ -1,249 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.autosync.AutosyncProcessor; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfo; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import com.usatiuk.utils.HashSetDelayedBlockingQueue; -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.inject.Inject; -import org.apache.commons.lang3.concurrent.BasicThreadFactory; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.IOException; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.stream.Stream; - -@ApplicationScoped -public class RemoteObjectDeleter { - private final HashSetDelayedBlockingQueue _quickCandidates = new HashSetDelayedBlockingQueue<>(0); - private final HashSetDelayedBlockingQueue _candidates; - private final HashSetDelayedBlockingQueue _canDeleteRetries; - private final HashSet _movablesInProcessing = new HashSet<>(); - - @Inject - TransactionManager txm; - @Inject - Transaction curTx; - @Inject - RemoteTransaction remoteTx; - @Inject - PeerInfoService peerInfoService; - @Inject - RemoteObjectServiceClient remoteObjectServiceClient; - @Inject - AutosyncProcessor autosyncProcessor; - - @ConfigProperty(name = "dhfs.objects.move-processor.threads") - int moveProcessorThreads; - @ConfigProperty(name = "dhfs.objects.ref-processor.threads") - int refProcessorThreads; - @ConfigProperty(name = "dhfs.objects.deletion.can-delete-retry-delay") - long canDeleteRetryDelay; - - private ExecutorService _movableProcessorExecutorService; - private ExecutorService _refProcessorExecutorService; - - public RemoteObjectDeleter(@ConfigProperty(name = "dhfs.objects.deletion.delay") long deletionDelay, - @ConfigProperty(name = "dhfs.objects.deletion.can-delete-retry-delay") long canDeleteRetryDelay) { - _candidates = new HashSetDelayedBlockingQueue<>(deletionDelay); - _canDeleteRetries = new HashSetDelayedBlockingQueue<>(canDeleteRetryDelay); - } - - void init(@Observes @Priority(200) StartupEvent event) throws IOException { - BasicThreadFactory factory = new BasicThreadFactory.Builder() - .namingPattern("move-proc-%d") - .build(); - _movableProcessorExecutorService = Executors.newFixedThreadPool(moveProcessorThreads, factory); - - BasicThreadFactory factoryRef = new BasicThreadFactory.Builder() - .namingPattern("ref-proc-%d") - .build(); - _refProcessorExecutorService = Executors.newFixedThreadPool(refProcessorThreads, factoryRef); - for (int i = 0; i < refProcessorThreads; i++) { - _refProcessorExecutorService.submit(this::refProcessor); - } - - // Continue GC from last shutdown - //FIXME -// executorService.submit(() -> -// jObjectManager.findAll().forEach(n -> { -// jObjectManager.get(n).ifPresent(o -> o.runWriteLocked(JObjectManager.ResolutionStrategy.NO_RESOLUTION, (m, d, b, v) -> { -// return null; -// })); -// })); - } - - void shutdown(@Observes @Priority(800) ShutdownEvent event) throws InterruptedException { - _refProcessorExecutorService.shutdownNow(); - if (!_refProcessorExecutorService.awaitTermination(30, TimeUnit.SECONDS)) { - Log.error("Refcounting threads didn't exit in 30 seconds"); - } - } - -// public void putQuickDeletionCandidate(JObjectKey obj) { -// _quickCandidates.add(obj); -// } - - public void putDeletionCandidate(RemoteObjectMeta obj) { - if (!obj.seen()) { - if (_quickCandidates.add(obj.key())) - Log.debug("Quick deletion candidate: " + obj.key()); - return; - } - if (_candidates.add(obj.key())) - Log.debug("Deletion candidate: " + obj.key()); - } - - private void asyncProcessMovable(JObjectKey objName) { - synchronized (_movablesInProcessing) { - if (_movablesInProcessing.contains(objName)) return; - _movablesInProcessing.add(objName); - } - Log.debugv("Async processing of remote obj del: {0}", objName); - - _movableProcessorExecutorService.submit(() -> { - boolean delay = true; - try { - delay = txm.run(() -> { - Log.debugv("Starting async processing of remote obj del: {0}", objName); - RemoteObjectMeta target = curTx.get(RemoteObjectMeta.class, objName).orElse(null); - if (target == null) return true; - if (!canDelete(target)) return true; - - if (canDeleteImmediately(target)) { - Log.debugv("Async processing of remote obj del: immediate {0}", objName); - curTx.delete(objName); - return true; - } - - var knownHosts = peerInfoService.getSynchronizedPeersNoSelf(); - RemoteObjectMeta finalTarget = target; - List missing = knownHosts.stream() - .map(PeerInfo::id) - .filter(id -> !finalTarget.confirmedDeletes().contains(id)).toList(); - - var ret = remoteObjectServiceClient.canDelete(missing, objName); - - long ok = 0; - - for (var r : ret) { - if (!r.getValue().getDeletionCandidate()) { - Log.infov("Could not delete {0}: reply from {1}: {2}", target, r.getKey(), r.getValue()); - for (var rr : r.getRight().getReferrersList()) - curTx.onCommit(() -> autosyncProcessor.add(JObjectKey.of(rr.getName()))); - } else { - target = target.withConfirmedDeletes(target.confirmedDeletes().plus(r.getKey())); - ok++; - } - } - - curTx.put(target); - - if (ok != missing.size()) { - Log.debugv("Delaying deletion check of {0}", objName); - return true; - } else { - assert canDeleteImmediately(target); - Log.debugv("Async processing of remote obj del: after query {0}", objName); - curTx.delete(objName); - return false; - } - }); - } finally { - synchronized (_movablesInProcessing) { - _movablesInProcessing.remove(objName); - if (!delay) - _candidates.add(objName); - else - _canDeleteRetries.add(objName); - } - } - }); - } - - // FIXME: - private boolean canDelete(JDataRefcounted obj) { - return obj.refsFrom().isEmpty() && !obj.frozen(); - } - - // Returns true if the object can be deleted - private boolean canDeleteImmediately(RemoteObjectMeta obj) { - if (!obj.seen()) - return true; - - var knownHosts = peerInfoService.getSynchronizedPeersNoSelf(); - boolean missing = false; - for (var x : knownHosts) { - if (!obj.confirmedDeletes().contains(x.id())) { - missing = true; - break; - } - } - return !missing; - } - - private void refProcessor() { - while (true) { - try { - while (!Thread.interrupted()) { - JObjectKey next = null; - JObjectKey nextQuick = null; - - while (next == null && nextQuick == null) { - nextQuick = _quickCandidates.tryGet(); - - if (nextQuick != null) break; - - next = _canDeleteRetries.tryGet(); - if (next == null) - next = _candidates.tryGet(); - if (next == null) - nextQuick = _quickCandidates.get(canDeleteRetryDelay); - } - - Stream.of(next, nextQuick).filter(Objects::nonNull).forEach(realNext -> { - Log.debugv("Processing remote object deletion candidate: {0}", realNext); - var deleted = txm.run(() -> { - RemoteObjectMeta target = curTx.get(RemoteObjectMeta.class, realNext).orElse(null); - if (target == null) return true; - - if (!canDelete(target)) return true; - - if (canDeleteImmediately(target)) { - Log.debugv("Immediate deletion of: {0}", realNext); - curTx.delete(realNext); - return true; - } - - return false; - }); - if (!deleted) - asyncProcessMovable(realNext); - }); - } - } catch (InterruptedException ignored) { - return; - } catch (Throwable error) { - Log.error("Exception in refcounter thread", error); - } - Log.info("JObject Refcounter thread exiting"); - } - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java deleted file mode 100644 index 4a0e2bdb..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.peersync.InitialSyncProcessor; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -@ApplicationScoped -public class RemoteObjectInitialSyncProcessor implements InitialSyncProcessor { - @Inject - InvalidationQueueService invalidationQueueService; - @Inject - Transaction curTx; - @Inject - PeerInfoService peerInfoService; - - @Override - public void prepareForInitialSync(PeerId from, JObjectKey key) { - } - - @Override - public void handleCrash(JObjectKey key) { - var data = curTx.get(RemoteObjectMeta.class, key).orElseThrow(); - var versionSum = data.versionSum(); - for (var p : peerInfoService.getPeersNoSelf()) { - if (data.knownRemoteVersions().getOrDefault(p.id(), 0L) != versionSum) { - invalidationQueueService.pushInvalidationToOne(p.id(), key); - Log.infov("Pushing after crash invalidation to {0} for {1}", p.id(), key); - } - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java deleted file mode 100644 index 10242b49..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.refcount.JDataRef; -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.*; - -import java.util.Collection; -import java.util.List; - -public record RemoteObjectMeta(JObjectKey key, PCollection refsFrom, boolean frozen, - PMap knownRemoteVersions, - Class knownType, - PSet confirmedDeletes, - boolean seen, - PMap changelog, - boolean hasLocalData) implements JDataRefcounted { - // Self put - public RemoteObjectMeta(JDataRemote data, PeerId initialPeer) { - this(data.key(), HashTreePSet.empty(), false, - HashTreePMap.empty(), data.getClass(), HashTreePSet.empty(), false, - HashTreePMap.empty().plus(initialPeer, 1L), - true); - } - - public RemoteObjectMeta(JObjectKey key, PMap remoteChangelog) { - this(key, HashTreePSet.empty(), false, - HashTreePMap.empty(), JDataRemote.class, HashTreePSet.empty(), true, - remoteChangelog, - false); - } - - public RemoteObjectMeta(JObjectKey key) { - this(key, HashTreePSet.empty(), false, - HashTreePMap.empty(), JDataRemote.class, HashTreePSet.empty(), true, - TreePMap.empty(), - false); - } - - public static JObjectKey ofMetaKey(JObjectKey key) { - return key; - } - - public static JObjectKey ofDataKey(JObjectKey key) { - return JObjectKey.of(key.value() + "_data"); - } - - public JObjectKey dataKey() { - return ofDataKey(key); - } - - @Override - public RemoteObjectMeta withRefsFrom(PCollection refs) { - return new RemoteObjectMeta(key, refs, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, hasLocalData); - } - - @Override - public RemoteObjectMeta withFrozen(boolean frozen) { - return new RemoteObjectMeta(key, refsFrom, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, hasLocalData); - } - - public RemoteObjectMeta withKnownRemoteVersions(PMap knownRemoteVersions) { - return new RemoteObjectMeta(key, refsFrom, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, hasLocalData); - } - - public RemoteObjectMeta withKnownType(Class knownType) { - return new RemoteObjectMeta(key, refsFrom, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, hasLocalData); - } - - public RemoteObjectMeta withConfirmedDeletes(PSet confirmedDeletes) { - return new RemoteObjectMeta(key, refsFrom, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, hasLocalData); - } - - public RemoteObjectMeta withSeen(boolean seen) { - return new RemoteObjectMeta(key, refsFrom, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, hasLocalData); - } - - public RemoteObjectMeta withChangelog(PMap changelog) { - return new RemoteObjectMeta(key, refsFrom, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, hasLocalData); - } - - public RemoteObjectMeta withHaveLocal(boolean haveLocal) { - return new RemoteObjectMeta(key, refsFrom, frozen, knownRemoteVersions, knownType, confirmedDeletes, seen, changelog, haveLocal); - } - - public long versionSum() { - return changelog.values().stream().mapToLong(Long::longValue).sum(); - } - - @Override - public Collection collectRefsTo() { - if (hasLocalData) return List.of(dataKey()); - return List.of(); - } - - @Override - public int estimateSize() { - return 1000; - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java deleted file mode 100644 index 1f11ef4b..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import io.quarkus.logging.Log; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; -import org.apache.commons.lang3.mutable.MutableObject; -import org.pcollections.HashTreePSet; - -import java.util.Optional; - -@Singleton -public class RemoteTransaction { - @Inject - Transaction curTx; - @Inject - RemoteObjectServiceClient remoteObjectServiceClient; - @Inject - SyncHandler syncHandler; - @Inject - PersistentPeerDataService persistentPeerDataService; - - private Optional> tryDownloadRemote(RemoteObjectMeta obj) { - MutableObject> success = new MutableObject<>(null); - - try { - remoteObjectServiceClient.getObject(obj.key(), rcv -> { - if (!obj.knownType().isAssignableFrom(rcv.getRight().data().objClass())) - throw new IllegalStateException("Object type mismatch: " + obj.knownType() + " vs " + rcv.getRight().data().getClass()); - - syncHandler.handleRemoteUpdate(rcv.getLeft(), obj.key(), rcv.getRight().changelog(), rcv.getRight().data()); - - var now = curTx.get(RemoteObjectMeta.class, RemoteObjectMeta.ofMetaKey(obj.key())).orElse(null); - assert now != null; - - if (!now.hasLocalData()) - return false; - - var gotData = curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(obj.key())).orElse(null); - assert gotData != null; - - success.setValue(gotData); - return true; - }); - } catch (Exception e) { - Log.error("Failed to download object " + obj.key(), e); - return Optional.empty(); - } - - return Optional.of(success.getValue()); - } - - @SuppressWarnings("unchecked") - private Optional getData(Class type, JObjectKey key, boolean tryRequest) { - return curTx.get(RemoteObjectMeta.class, RemoteObjectMeta.ofMetaKey(key)) - .flatMap(obj -> { - if (obj.hasLocalData()) { - var realData = curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(key)).orElse(null); - if (realData == null) - throw new IllegalStateException("Local data not found for " + key); // TODO: Race - if (!type.isInstance(realData.data())) - throw new IllegalStateException("Object type mismatch: " + realData.data().getClass() + " vs " + type); - return Optional.of((T) realData.data()); - } - if (!tryRequest) - return Optional.empty(); - return tryDownloadRemote(obj).map(wrapper -> (T) wrapper.data()); - }); - } - - public Optional getMeta(JObjectKey key) { - return curTx.get(RemoteObjectMeta.class, RemoteObjectMeta.ofMetaKey(key)); - } - - public void putDataRaw(T obj) { - var curMeta = getMeta(obj.key()).orElse(null); - if (curMeta == null) - throw new IllegalArgumentException("No data found for " + obj.key() + " when in putDataRaw"); - - if (!curMeta.knownType().isAssignableFrom(obj.getClass())) - throw new IllegalStateException("Object type mismatch: " + curMeta.knownType() + " vs " + obj.getClass()); - - var newMeta = curMeta; - newMeta = newMeta.withConfirmedDeletes(HashTreePSet.empty()); - curTx.put(newMeta); - - var newData = curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(obj.key())) - .map(w -> w.withData(obj)).orElse(new RemoteObjectDataWrapper<>(obj)); - curTx.put(newData); - } - - public void putDataNew(T obj) { - curTx.putNew(new RemoteObjectMeta(obj, persistentPeerDataService.getSelfUuid())); - curTx.putNew(new RemoteObjectDataWrapper<>(obj)); - } - - public void putData(T obj) { - var curMeta = getMeta(obj.key()).orElse(null); - - if (curMeta == null) { - curTx.put(new RemoteObjectMeta(obj, persistentPeerDataService.getSelfUuid())); - curTx.put(new RemoteObjectDataWrapper<>(obj)); - return; - } - -// if (cur.data() != null && cur.data().equals(obj)) -// return; - if (!curMeta.knownType().isAssignableFrom(obj.getClass())) - throw new IllegalStateException("Object type mismatch: " + curMeta.knownType() + " vs " + obj.getClass()); - - var newMeta = curMeta; - - if (!curMeta.knownType().equals(obj.getClass())) - newMeta = newMeta.withKnownType(obj.getClass()); - - newMeta = newMeta.withConfirmedDeletes(HashTreePSet.empty()); - - newMeta = newMeta.withChangelog(newMeta.changelog().plus(persistentPeerDataService.getSelfUuid(), - newMeta.changelog().get(persistentPeerDataService.getSelfUuid()) + 1)); - curTx.put(newMeta); - var newData = curTx.get(RemoteObjectDataWrapper.class, RemoteObjectMeta.ofDataKey(obj.key())) - .map(w -> w.withData(obj)).orElse(new RemoteObjectDataWrapper<>(obj)); - curTx.put(newData); - } - - public Optional getData(Class type, JObjectKey key) { - return getData(type, key, true); - } - - public Optional getDataLocal(Class type, JObjectKey key) { - return getData(type, key, false); - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java deleted file mode 100644 index 8fdfc2df..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.ShutdownChecker; -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.peersync.InitialSyncProcessor; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient; -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.iterators.IteratorStart; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.logging.Log; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import jakarta.enterprise.inject.Instance; -import jakarta.inject.Inject; -import org.pcollections.HashTreePSet; -import org.pcollections.PMap; - -import javax.annotation.Nullable; -import java.lang.reflect.ParameterizedType; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Stream; - -@ApplicationScoped -public class SyncHandler { - private final Map, ObjSyncHandler> _objToSyncHandler; - private final Map, ObjSyncHandler> _dtoToSyncHandler; - private final Map, InitialSyncProcessor> _initialSyncProcessors; - @Inject - Transaction curTx; - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - TransactionManager txm; - @Inject - InvalidationQueueService invalidationQueueService; - @Inject - DefaultObjSyncHandler defaultObjSyncHandler; - @Inject - RemoteTransaction remoteTx; - @Inject - RemoteObjectServiceClient remoteObjectServiceClient; - @Inject - ShutdownChecker shutdownChecker; - - public SyncHandler(Instance> syncHandlers, Instance> initialSyncProcessors) { - HashMap, ObjSyncHandler> objToHandlerMap = new HashMap<>(); - HashMap, ObjSyncHandler> dtoToHandlerMap = new HashMap<>(); - HashMap, InitialSyncProcessor> initialSyncProcessorHashMap = new HashMap<>(); - - for (var syncHandler : syncHandlers.handles()) { - for (var type : Arrays.stream(syncHandler.getBean().getBeanClass().getGenericInterfaces()).flatMap( - t -> { - if (!(t instanceof ParameterizedType pm)) return Stream.empty(); - if (pm.getRawType().equals(ObjSyncHandler.class)) return Stream.of(pm); - return Stream.empty(); - } - ).toList()) { - var orig = type.getActualTypeArguments()[0]; - var dto = type.getActualTypeArguments()[1]; - assert JDataRemote.class.isAssignableFrom((Class) orig); - assert JDataRemoteDto.class.isAssignableFrom((Class) dto); - objToHandlerMap.put((Class) orig, syncHandler.get()); - dtoToHandlerMap.put((Class) dto, syncHandler.get()); - } - } - - _objToSyncHandler = Map.copyOf(objToHandlerMap); - _dtoToSyncHandler = Map.copyOf(dtoToHandlerMap); - - for (var initialSyncProcessor : initialSyncProcessors.handles()) { - for (var type : Arrays.stream(initialSyncProcessor.getBean().getBeanClass().getGenericInterfaces()).flatMap( - t -> { - if (!(t instanceof ParameterizedType pm)) return Stream.empty(); - if (pm.getRawType().equals(InitialSyncProcessor.class)) return Stream.of(pm); - return Stream.empty(); - } - ).toList()) { - var orig = type.getActualTypeArguments()[0]; - assert JData.class.isAssignableFrom((Class) orig); - initialSyncProcessorHashMap.put((Class) orig, initialSyncProcessor.get()); - } - } - - _initialSyncProcessors = Map.copyOf(initialSyncProcessorHashMap); - } - - public void handleRemoteUpdate(PeerId from, JObjectKey key, - PMap receivedChangelog, - @Nullable D receivedData) { - var current = remoteTx.getMeta(key).orElse(null); - - if (current != null) { - current = current.withConfirmedDeletes(HashTreePSet.empty()); - curTx.put(current); - } - - if (receivedData == null) { - if (current != null) { - var cmp = SyncHelper.compareChangelogs(current.changelog(), receivedChangelog); - if (cmp.equals(SyncHelper.ChangelogCmpResult.CONFLICT)) { - var got = remoteObjectServiceClient.getSpecificObject(key, from); - handleRemoteUpdate(from, key, got.getRight().changelog(), got.getRight().data()); - return; - } - } - } - - var got = Optional.ofNullable(receivedData).flatMap(d -> Optional.ofNullable(_dtoToSyncHandler.get(d.getClass()))).orElse(null); - if (got == null) { - assert receivedData == null || receivedData.objClass().equals(receivedData.getClass()); - defaultObjSyncHandler.handleRemoteUpdate(from, key, receivedChangelog, (JDataRemote) receivedData); - } else { - got.handleRemoteUpdate(from, key, receivedChangelog, receivedData); - } - } - - - public void resyncAfterCrash(@Observes @Priority(100000) StartupEvent event) { - if (shutdownChecker.lastShutdownClean()) - return; - txm.run(() -> { - try (var it = curTx.getIterator(IteratorStart.GE, JObjectKey.first())) { - while (it.hasNext()) { - var key = it.peekNextKey(); - txm.run(() -> { - var proc = curTx.get(JData.class, key).flatMap(o -> Optional.ofNullable(_initialSyncProcessors.get(o.getClass()))).orElse(null); - if (proc != null) { - proc.handleCrash(key); - } - Log.infov("Handled crash of {0}", key); - - }, true); - it.skip(); - } - } - }); - } - - public void doInitialSync(PeerId peer) { - txm.run(() -> { - Log.tracev("Will do initial sync for {0}", peer); - try (var it = curTx.getIterator(IteratorStart.GE, JObjectKey.first())) { - while (it.hasNext()) { - var key = it.peekNextKey(); - txm.run(() -> { - var proc = curTx.get(JData.class, key).flatMap(o -> Optional.ofNullable(_initialSyncProcessors.get(o.getClass()))).orElse(null); - if (proc != null) { - proc.prepareForInitialSync(peer, key); - } - Log.infov("Adding to initial sync for peer {0}: {1}", peer, key); - invalidationQueueService.pushInvalidationToOne(peer, key); - - }, true); - it.skip(); - } - } - }); - } -} \ No newline at end of file diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandlerService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandlerService.java deleted file mode 100644 index 9e8f8757..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandlerService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import jakarta.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class SyncHandlerService { - - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHelper.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHelper.java deleted file mode 100644 index 12665255..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHelper.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.usatiuk.dhfs.remoteobj; - -import com.usatiuk.dhfs.peersync.PeerId; -import org.pcollections.PMap; - -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public class SyncHelper { - public static ChangelogCmpResult compareChangelogs(PMap current, PMap other) { - boolean hasLower = false; - boolean hasHigher = false; - for (var e : Stream.concat(current.keySet().stream(), other.keySet().stream()).collect(Collectors.toUnmodifiableSet())) { - if (other.getOrDefault(e, 0L) < current.getOrDefault(e, 0L)) - hasLower = true; - if (other.getOrDefault(e, 0L) > current.getOrDefault(e, 0L)) - hasHigher = true; - } - - if (hasLower && hasHigher) - return ChangelogCmpResult.CONFLICT; - - if (hasLower) - return ChangelogCmpResult.OLDER; - - if (hasHigher) - return ChangelogCmpResult.NEWER; - - return ChangelogCmpResult.EQUAL; - } - - public enum ChangelogCmpResult { - EQUAL, - NEWER, - OLDER, - CONFLICT - } - -// public static PMap mergeChangelogs(PMap current, PMap other) { -// return current.plusAll(other); -// } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java deleted file mode 100644 index 27ef5a62..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.usatiuk.dhfs.rpc; - -import com.usatiuk.dhfs.ProtoSerializer; -import com.usatiuk.dhfs.invalidation.InvalidationQueueService; -import com.usatiuk.dhfs.invalidation.Op; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.ReachablePeerManager; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.dhfs.persistence.JObjectKeyP; -import com.usatiuk.dhfs.remoteobj.ReceivedObject; -import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta; -import com.usatiuk.dhfs.remoteobj.RemoteTransaction; -import com.usatiuk.dhfs.remoteobj.SyncHandler; -import com.usatiuk.dhfs.repository.*; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.concurrent.*; -import java.util.function.Function; -import java.util.stream.Collectors; - -@ApplicationScoped -public class RemoteObjectServiceClient { - private final ExecutorService _batchExecutor = Executors.newVirtualThreadPerTaskExecutor(); - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - RpcClientFactory rpcClientFactory; - @Inject - TransactionManager txm; - @Inject - Transaction curTx; - @Inject - RemoteTransaction remoteTx; - @Inject - SyncHandler syncHandler; - @Inject - InvalidationQueueService invalidationQueueService; - @Inject - ProtoSerializer opProtoSerializer; - @Inject - ProtoSerializer receivedObjectProtoSerializer; - @Inject - ReachablePeerManager reachablePeerManager; - - public Pair getSpecificObject(JObjectKey key, PeerId peerId) { - return rpcClientFactory.withObjSyncClient(peerId, (peer, client) -> { - var reply = client.getObject(GetObjectRequest.newBuilder().setName(JObjectKeyP.newBuilder().setName(key.toString()).build()).build()); - var deserialized = receivedObjectProtoSerializer.deserialize(reply); - return Pair.of(peer, deserialized); - }); - } - - public void getObject(JObjectKey key, Function, Boolean> onReceive) { - var objMeta = remoteTx.getMeta(key).orElse(null); - - if (objMeta == null) { - throw new IllegalArgumentException("Object " + key + " not found"); - } - - var targetVersion = objMeta.versionSum(); - var targets = objMeta.knownRemoteVersions().isEmpty() - ? reachablePeerManager.getAvailableHosts() - : objMeta.knownRemoteVersions().entrySet().stream() - .filter(entry -> entry.getValue().equals(targetVersion)) - .map(Map.Entry::getKey).toList(); - - if (targets.isEmpty()) - throw new IllegalStateException("No targets for object " + key); - - Log.info("Downloading object " + key + " from " + targets); - - rpcClientFactory.withObjSyncClient(targets, (peer, client) -> { - var reply = client.getObject(GetObjectRequest.newBuilder().setName(JObjectKeyP.newBuilder().setName(key.toString()).build()).build()); - - var deserialized = receivedObjectProtoSerializer.deserialize(reply); - - if (!onReceive.apply(Pair.of(peer, deserialized))) { - throw new StatusRuntimeException(Status.ABORTED.withDescription("Failed to process object " + key + " from " + peer)); - } - - return null; - }); - } - - public OpPushReply pushOps(PeerId target, List ops) { - var barrier = new CountDownLatch(ops.size()); - for (Op op : ops) { - txm.run(() -> { - for (var ref : op.getEscapedRefs()) { - curTx.get(RemoteObjectMeta.class, ref).map(m -> m.withSeen(true)).ifPresent(curTx::put); - } - }).onFlush(barrier::countDown); - } - var builder = OpPushRequest.newBuilder(); - for (Op op : ops) { - builder.addMsg(opProtoSerializer.serialize(op)); - } - var built = builder.build(); - try { - barrier.await(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - rpcClientFactory.withObjSyncClient(target, (tgt, client) -> client.opPush(built)); - return OpPushReply.getDefaultInstance(); - } - - public Collection> canDelete(Collection targets, JObjectKey objKey) { - Log.trace("Asking canDelete for " + objKey + " from " + targets.stream().map(PeerId::toString).collect(Collectors.joining(", "))); - try { - return _batchExecutor.invokeAll(targets.stream().>>map(h -> () -> { - var req = CanDeleteRequest.newBuilder().setName(JObjectKeyP.newBuilder().setName(objKey.toString()).build()); - return Pair.of(h, rpcClientFactory.withObjSyncClient(h, (p, client) -> client.canDelete(req.build()))); - }).toList()).stream().map(f -> { - try { - return f.get(); - } catch (InterruptedException | ExecutionException e) { - throw new RuntimeException(e); - } - }).toList(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.java deleted file mode 100644 index 695de70e..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServer.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.usatiuk.dhfs.rpc; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.repository.*; -import io.quarkus.grpc.GrpcService; -import io.quarkus.security.identity.SecurityIdentity; -import io.smallrye.common.annotation.Blocking; -import io.smallrye.mutiny.Uni; -import jakarta.annotation.security.RolesAllowed; -import jakarta.inject.Inject; - -// Note: RunOnVirtualThread hangs somehow -@GrpcService -@RolesAllowed("cluster-member") -public class RemoteObjectServiceServer implements DhfsObjectSyncGrpc { - @Inject - SecurityIdentity identity; - @Inject - RemoteObjectServiceServerImpl remoteObjectServiceServerImpl; - - private PeerId getIdentity() { - return PeerId.of(identity.getPrincipal().getName().substring(3)); - } - - @Override - @Blocking - public Uni getObject(GetObjectRequest request) { - return remoteObjectServiceServerImpl.getObject(getIdentity(), request); - } - - @Override - @Blocking - public Uni canDelete(CanDeleteRequest request) { - return remoteObjectServiceServerImpl.canDelete(getIdentity(), request); - } - - @Override - @Blocking - public Uni opPush(OpPushRequest request) { - return remoteObjectServiceServerImpl.opPush(getIdentity(), request); - } - - @Override - @Blocking - public Uni ping(PingRequest request) { - return remoteObjectServiceServerImpl.ping(getIdentity(), request); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java deleted file mode 100644 index 19b81f69..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.usatiuk.dhfs.rpc; - -import com.usatiuk.dhfs.ProtoSerializer; -import com.usatiuk.dhfs.autosync.AutosyncProcessor; -import com.usatiuk.dhfs.invalidation.Op; -import com.usatiuk.dhfs.invalidation.OpHandlerService; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.ReachablePeerManager; -import com.usatiuk.dhfs.persistence.JObjectKeyP; -import com.usatiuk.dhfs.remoteobj.*; -import com.usatiuk.dhfs.repository.*; -import com.usatiuk.dhfs.syncmap.DtoMapperService; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionHandle; -import com.usatiuk.objects.transaction.TransactionManager; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; -import io.quarkus.logging.Log; -import io.smallrye.mutiny.Uni; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.ArrayList; -import java.util.concurrent.atomic.AtomicLong; - -// Note: RunOnVirtualThread hangs somehow -@ApplicationScoped -public class RemoteObjectServiceServerImpl { - @Inject - TransactionManager txm; - @Inject - ReachablePeerManager reachablePeerManager; - @Inject - Transaction curTx; - - @Inject - ProtoSerializer opProtoSerializer; - @Inject - ProtoSerializer receivedObjectProtoSerializer; - @Inject - RemoteTransaction remoteTx; - @Inject - OpHandlerService opHandlerService; - @Inject - DtoMapperService dtoMapperService; - @Inject - AutosyncProcessor autosyncProcessor; - - public Uni getObject(PeerId from, GetObjectRequest request) { - Log.info("<-- getObject: " + request.getName() + " from " + from); - - Pair got = txm.run(() -> { - var meta = remoteTx.getMeta(JObjectKey.of(request.getName().getName())).orElse(null); - var obj = remoteTx.getDataLocal(JDataRemote.class, JObjectKey.of(request.getName().getName())).orElse(null); - if (meta != null && !meta.seen()) - curTx.put(meta.withSeen(true)); - if (obj != null) - for (var ref : obj.collectRefsTo()) { - var refMeta = remoteTx.getMeta(ref).orElse(null); - if (refMeta != null && !refMeta.seen()) - curTx.put(refMeta.withSeen(true)); - } - return Pair.of(meta, obj == null ? null : dtoMapperService.toDto(obj, obj.dtoClass())); - }); - - if ((got.getValue() != null) && (got.getKey() == null)) { - Log.error("Inconsistent state for object meta: " + request.getName()); - throw new StatusRuntimeException(Status.INTERNAL); - } - - if (got.getValue() == null) { - Log.info("<-- getObject NOT FOUND: " + request.getName() + " from " + from); - throw new StatusRuntimeException(Status.NOT_FOUND); - } - - var serialized = receivedObjectProtoSerializer.serialize(new ReceivedObject(got.getKey().changelog(), got.getRight())); - return Uni.createFrom().item(serialized); - } - - public Uni canDelete(PeerId from, CanDeleteRequest request) { - Log.infov("<-- canDelete: {0} from {1}", request, from); - - var builder = CanDeleteReply.newBuilder(); - - txm.run(() -> { - var obj = curTx.get(RemoteObjectMeta.class, JObjectKey.of(request.getName().getName())).orElse(null); - - if (obj == null) { - builder.setDeletionCandidate(true); - return; - } - - builder.setDeletionCandidate(!obj.frozen() && obj.refsFrom().isEmpty()); - - if (!builder.getDeletionCandidate()) { - for (var r : obj.refsFrom()) { - builder.addReferrers(JObjectKeyP.newBuilder().setName(r.obj().toString()).build()); - curTx.onCommit(() -> autosyncProcessor.add(r.obj())); - } - } - - if (!builder.getDeletionCandidate()) { - Log.infov("Not deletion candidate: {0}, {1} (asked from {2})", obj, builder, from); - } - }); - return Uni.createFrom().item(builder.build()); - } - - public Uni opPush(PeerId from, OpPushRequest request) { - if (request.getMsgCount() == 0) { - Log.infov("<-- opPush: empty from {0}", from); - return Uni.createFrom().item(OpPushReply.getDefaultInstance()); - } - - var handles = new ArrayList(); - try { - var ops = request.getMsgList().stream().map(opProtoSerializer::deserialize).toList(); - for (var op : ops) { - Log.infov("<-- opPush: {0} from {1}", op, from); - var handle = txm.run(() -> { - opHandlerService.handleOp(from, op); - }); - handles.add(handle); - } - } catch (Exception e) { - Log.error("Error handling ops", e); - throw e; - } - return Uni.createFrom().emitter(e -> { - var counter = new AtomicLong(handles.size()); - for (var handle : handles) { - handle.onFlush(() -> { - if (counter.decrementAndGet() == 0) { - e.complete(OpPushReply.getDefaultInstance()); - } - }); - } - }); - } - - public Uni ping(PeerId from, PingRequest request) { - return Uni.createFrom().item(PingReply.getDefaultInstance()); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcChannelFactory.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcChannelFactory.java deleted file mode 100644 index 26035f9c..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcChannelFactory.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.usatiuk.dhfs.rpc; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import com.usatiuk.dhfs.peertrust.PeerTrustManager; -import io.grpc.ChannelCredentials; -import io.grpc.ManagedChannel; -import io.grpc.TlsChannelCredentials; -import io.grpc.netty.NettyChannelBuilder; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import javax.net.ssl.KeyManagerFactory; -import java.security.KeyStore; -import java.security.cert.Certificate; -import java.util.concurrent.TimeUnit; - -@ApplicationScoped -public class RpcChannelFactory { - @Inject - PersistentPeerDataService persistentPeerDataService; - @Inject - PeerTrustManager peerTrustManager; - - private ChannelCredentials getChannelCredentials() { - try { - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ks.load(null, null); - - ks.setKeyEntry("clientkey", persistentPeerDataService.getSelfKeypair().getPrivate(), null, new Certificate[]{persistentPeerDataService.getSelfCertificate()}); - - KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - keyManagerFactory.init(ks, null); - - ChannelCredentials creds = TlsChannelCredentials.newBuilder().trustManager(peerTrustManager).keyManager(keyManagerFactory.getKeyManagers()).build(); - return creds; - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - ManagedChannel getSecureChannel(PeerId host, String address, int port) { - return NettyChannelBuilder.forAddress(address, port, getChannelCredentials()).overrideAuthority(host.toString()).idleTimeout(10, TimeUnit.SECONDS).build(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java deleted file mode 100644 index bad0ae29..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.usatiuk.dhfs.rpc; - -import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress; -import com.usatiuk.dhfs.peerdiscovery.PeerAddress; -import com.usatiuk.dhfs.peersync.PeerDisconnectedEventListener; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.ReachablePeerManager; -import com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc; -import io.grpc.ManagedChannel; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; -import io.quarkus.logging.Log; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.net.InetAddress; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.TimeUnit; - -// TODO: Dedup this -@ApplicationScoped -public class RpcClientFactory implements PeerDisconnectedEventListener { - @ConfigProperty(name = "dhfs.objects.sync.timeout") - long syncTimeout; - - @Inject - ReachablePeerManager reachablePeerManager; - - @Inject - RpcChannelFactory rpcChannelFactory; - - // FIXME: Leaks! - private ConcurrentMap _objSyncCache = new ConcurrentHashMap<>(); - - public R withObjSyncClient(Collection targets, ObjectSyncClientFunction fn) { - var shuffledList = new ArrayList<>(targets); - Collections.shuffle(shuffledList); - for (PeerId target : shuffledList) { - try { - return withObjSyncClient(target, fn); - } catch (StatusRuntimeException e) { - if (e.getStatus().getCode().equals(Status.UNAVAILABLE.getCode())) - Log.debug("Host " + target + " is unreachable: " + e.getMessage()); - else - Log.warn("When calling " + target + " " + e.getMessage()); - } catch (Exception e) { - Log.warn("When calling " + target + " " + e.getMessage()); - } - } - throw new StatusRuntimeException(Status.UNAVAILABLE.withDescription("No reachable targets!")); - } - - public R withObjSyncClient(PeerId target, ObjectSyncClientFunction fn) { - var hostinfo = reachablePeerManager.getAddress(target); - - if (hostinfo == null) - throw new StatusRuntimeException(Status.UNAVAILABLE.withDescription("Not known to be reachable: " + target)); - - return withObjSyncClient(target, hostinfo, syncTimeout, fn); - } - - public R withObjSyncClient(PeerId host, PeerAddress address, long timeout, ObjectSyncClientFunction fn) { - return switch (address) { - case IpPeerAddress ipPeerAddress -> - withObjSyncClient(host, ipPeerAddress.address(), ipPeerAddress.securePort(), timeout, fn); - default -> throw new IllegalStateException("Unexpected value: " + address); - }; - } - - public R withObjSyncClient(PeerId host, InetAddress addr, int port, long timeout, ObjectSyncClientFunction fn) { - var key = new ObjSyncStubKey(host, addr, port); - var stub = _objSyncCache.computeIfAbsent(key, (k) -> { - var channel = rpcChannelFactory.getSecureChannel(host, addr.getHostAddress(), port); - return DhfsObjectSyncGrpcGrpc.newBlockingStub(channel) - .withMaxOutboundMessageSize(Integer.MAX_VALUE) - .withMaxInboundMessageSize(Integer.MAX_VALUE); - }); - return fn.apply(host, stub.withDeadlineAfter(timeout, TimeUnit.SECONDS)); - } - - @Override - public void handlePeerDisconnected(PeerId peerId) { - ArrayList toRemove = new ArrayList<>(); - for (var objSyncStubKey : _objSyncCache.keySet()) { - if (objSyncStubKey.id().equals(peerId)) { - toRemove.add(objSyncStubKey); - } - } - for (var objSyncStubKey : toRemove) { - var stub = _objSyncCache.remove(objSyncStubKey); - if (stub != null) { - ((ManagedChannel) stub.getChannel()).shutdown(); - } - } - } - - @FunctionalInterface - public interface ObjectSyncClientFunction { - R apply(PeerId peer, DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub client); - } - - private record ObjSyncStubKey(PeerId id, InetAddress addr, int port) { - } - -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java deleted file mode 100644 index cbc47498..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.usatiuk.dhfs.rpc; - -import com.usatiuk.dhfs.ProtoSerializer; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.persistence.JDataRemoteDtoP; -import com.usatiuk.dhfs.persistence.JObjectKeyP; -import com.usatiuk.dhfs.persistence.PeerIdP; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.dhfs.remoteobj.ReceivedObject; -import com.usatiuk.dhfs.repository.GetObjectReply; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; - -@ApplicationScoped -public class TemporaryReceivedObjectSerializer implements ProtoSerializer { - @Inject - ProtoSerializer remoteObjectSerializer; - - @Override - public ReceivedObject deserialize(GetObjectReply message) { - PMap changelog = HashTreePMap.empty(); - for (var entry : message.getChangelog().getEntriesList()) { - changelog = changelog.plus(PeerId.of(entry.getKey().getId().getName()), entry.getValue()); - } - var data = remoteObjectSerializer.deserialize(message.getPushedData()); - return new ReceivedObject(changelog, data); - } - - @Override - public GetObjectReply serialize(ReceivedObject object) { - var builder = GetObjectReply.newBuilder(); - var changelogBuilder = builder.getChangelogBuilder(); - object.changelog().forEach((peer, version) -> { - changelogBuilder.addEntriesBuilder() - .setKey(PeerIdP.newBuilder().setId(JObjectKeyP.newBuilder().setName(peer.id().toString()).build()).build()) - .setValue(version); - }); - builder.setPushedData(remoteObjectSerializer.serialize(object.data())); - return builder.build(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.java deleted file mode 100644 index ea3cbd1c..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryRemoteObjectSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.dhfs.rpc; - -import com.usatiuk.dhfs.ProtoSerializer; -import com.usatiuk.dhfs.persistence.JDataRemoteDtoP; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import com.usatiuk.utils.SerializationHelper; -import jakarta.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class TemporaryRemoteObjectSerializer implements ProtoSerializer { - @Override - public JDataRemoteDto deserialize(JDataRemoteDtoP message) { - return SerializationHelper.deserialize(message.getSerializedData().toByteArray()); - } - - @Override - public JDataRemoteDtoP serialize(JDataRemoteDto object) { - return JDataRemoteDtoP.newBuilder() - .setSerializedData(SerializationHelper.serialize(object)) - .build(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapper.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapper.java deleted file mode 100644 index 28fc6024..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.usatiuk.dhfs.syncmap; - -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; - -public interface DtoMapper { - D toDto(F obj); - - F fromDto(D dto); -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapperService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapperService.java deleted file mode 100644 index 022c7c9f..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/syncmap/DtoMapperService.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.usatiuk.dhfs.syncmap; - -import com.usatiuk.dhfs.remoteobj.JDataRemote; -import com.usatiuk.dhfs.remoteobj.JDataRemoteDto; -import jakarta.enterprise.inject.Instance; -import jakarta.inject.Singleton; - -import java.lang.reflect.ParameterizedType; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.stream.Stream; - -@Singleton -public class DtoMapperService { - private final Map, DtoMapper> _remoteToDtoMap; - private final Map, DtoMapper> _dtoToRemoteMap; - - public DtoMapperService(Instance> dtoMappers) { - HashMap, DtoMapper> remoteToDtoMap = new HashMap<>(); - HashMap, DtoMapper> dtoToRemoteMap = new HashMap<>(); - - for (var dtoMapper : dtoMappers.handles()) { - for (var type : Arrays.stream(dtoMapper.getBean().getBeanClass().getGenericInterfaces()).flatMap( - t -> { - if (!(t instanceof ParameterizedType pm)) return Stream.empty(); - if (pm.getRawType().equals(DtoMapper.class)) return Stream.of(pm); - return Stream.empty(); - } - ).toList()) { - var orig = type.getActualTypeArguments()[0]; - var dto = type.getActualTypeArguments()[1]; - assert JDataRemote.class.isAssignableFrom((Class) orig); - assert JDataRemoteDto.class.isAssignableFrom((Class) dto); - remoteToDtoMap.put((Class) orig, dtoMapper.get()); - dtoToRemoteMap.put((Class) dto, dtoMapper.get()); - } - } - - _remoteToDtoMap = Map.copyOf(remoteToDtoMap); - _dtoToRemoteMap = Map.copyOf(dtoToRemoteMap); - } - - public D toDto(F from, Class to) { - if (to.equals(from.getClass())) { - return (D) from; - } - var got = _remoteToDtoMap.get(from.getClass()).toDto(from); - assert to.isInstance(got); - return to.cast(got); - } - - public F fromDto(D from, Class to) { - if (to.equals(from.getClass())) { - return (F) from; - } - var got = _dtoToRemoteMap.get(from.getClass()).fromDto(from); - assert to.isInstance(got); - return to.cast(got); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/KnownPeerPut.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/KnownPeerPut.java deleted file mode 100644 index 7d56b194..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/KnownPeerPut.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.usatiuk.dhfs.webapi; - -import jakarta.annotation.Nullable; - -public record KnownPeerPut(@Nullable String cert) { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerAddressInfo.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerAddressInfo.java deleted file mode 100644 index 145ffee3..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerAddressInfo.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.dhfs.webapi; - -public record PeerAddressInfo(String uuid, String address) { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerInfo.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerInfo.java deleted file mode 100644 index de62ecb7..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerInfo.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.usatiuk.dhfs.webapi; - -import jakarta.annotation.Nullable; - -public record PeerInfo(String uuid, String cert, @Nullable String knownAddress) { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java deleted file mode 100644 index 7e85253b..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.usatiuk.dhfs.webapi; - -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.dhfs.peersync.ReachablePeerManager; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import jakarta.inject.Inject; -import jakarta.ws.rs.*; - -import java.util.*; - -@Path("/peers-manage") -public class PeerManagementApi { - @Inject - PeerInfoService peerInfoService; - @Inject - ReachablePeerManager reachablePeerManager; - @Inject - PersistentPeerDataService persistentPeerDataService; - - @Path("known-peers") - @GET - public List knownPeers() { - return peerInfoService.getPeers().stream().map( - peerInfo -> new PeerInfo(peerInfo.id().toString(), Base64.getEncoder().encodeToString(peerInfo.cert().toByteArray()), - Optional.ofNullable(reachablePeerManager.getAddress(peerInfo.id())).map(Objects::toString).orElse(null))).toList(); - } - - @Path("known-peers/{peerId}") - @PUT - public void addPeer(@PathParam("peerId") String peerId, KnownPeerPut knownPeerPut) { - reachablePeerManager.addRemoteHost(PeerId.of(peerId), knownPeerPut.cert()); - } - - @Path("known-peers/{peerId}") - @DELETE - public void deletePeer(@PathParam("peerId") String peerId) { - reachablePeerManager.removeRemoteHost(PeerId.of(peerId)); - } - - @Path("available-peers") - @GET - public Collection availablePeers() { - return reachablePeerManager.getSeenButNotAddedHosts().stream() - .map(p -> new PeerInfo(p.getLeft().toString(), p.getRight().cert(), - reachablePeerManager.selectBestAddress(p.getLeft()).map(Objects::toString).orElse(null))) - .toList(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java deleted file mode 100644 index 351b4ecb..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.usatiuk.dhfs.webapi; - -import com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper; -import com.usatiuk.dhfs.peersync.PeerId; -import com.usatiuk.dhfs.peersync.PeerInfoService; -import com.usatiuk.dhfs.peersync.ReachablePeerManager; -import com.usatiuk.dhfs.peersync.PersistentPeerDataService; -import jakarta.inject.Inject; -import jakarta.ws.rs.*; - -import java.util.Collection; - -@Path("/peers-addr-manage") -public class PersistentPeerAddressApi { - @Inject - PeerInfoService peerInfoService; - @Inject - ReachablePeerManager reachablePeerManager; - @Inject - PersistentPeerDataService persistentPeerDataService; - - @Path("{peerId}") - @PUT - public void addPeerAddress(String peerAddr, @PathParam("peerId") String peerId) { - if (peerAddr.isEmpty()) { - deletePeerAddress(peerId); - return; - } - persistentPeerDataService.addPersistentPeerAddress(PeerId.of(peerId), PeerAddrStringHelper.parseNoPeer(PeerId.of(peerId), peerAddr).orElseThrow(IllegalArgumentException::new)); - } - - @Path("{peerId}") - @DELETE - public void deletePeerAddress(@PathParam("peerId") String peerId) { - persistentPeerDataService.removePersistentPeerAddress(PeerId.of(peerId)); - } - - @Path("{peerId}") - @GET - public String getPeerAddress(@PathParam("peerId") String peerId) { - return persistentPeerDataService.getPersistentPeerAddress(PeerId.of(peerId)).toString(); - } - - @Path("") - @GET - public Collection getPeerAddresses() { - return persistentPeerDataService.getPersistentPeerAddresses() - .stream() - .map(p -> new PeerAddressInfo(p.peer().toString(), p.address().getHostAddress() + ":" + p.port() + ":" + p.securePort())) - .toList(); - } -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/SelfInfo.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/SelfInfo.java deleted file mode 100644 index 1eff4e1f..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/SelfInfo.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.usatiuk.dhfs.webapi; - -public record SelfInfo(String uuid, String cert) { -} diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webui/WebUiRouter.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webui/WebUiRouter.java deleted file mode 100644 index bdbb6ce5..00000000 --- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webui/WebUiRouter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.usatiuk.dhfs.webui; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.core.http.HttpServerRequest; -import io.vertx.ext.web.Router; -import io.vertx.ext.web.RoutingContext; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Optional; - -@ApplicationScoped -public class WebUiRouter { - - private final Optional _root; - - public WebUiRouter(@ConfigProperty(name = "dhfs.webui.root") Optional root) { - _root = root.map(s -> Path.of(s).normalize().toString()); - } - - void installRoute(@Observes StartupEvent startupEvent, Router router) { - _root.ifPresent(r -> { - router.route().path("/").handler(ctx -> ctx.redirect("/webui")); - router.route() - .path("/webui/*") - .handler(this::handle); - }); - } - - public void handle(RoutingContext event) { - var indexHtml = Paths.get(_root.orElseThrow(() -> new IllegalStateException("Web ui root not set but handler called")), "index.html").toString(); - - HttpServerRequest request = event.request(); - String requestedPath = Path.of(event.currentRoute().getPath()).relativize(Path.of(event.normalizedPath())).toString(); - - if ("/".equals(requestedPath)) { - request.response().sendFile(indexHtml); - return; - } - - Path requested = Paths.get(_root.get(), requestedPath); - if (!requested.normalize().startsWith(Paths.get(_root.get()))) { - request.response().setStatusCode(404).end(); - return; - } - - event.vertx().fileSystem().lprops(requested.toString(), exists -> { - if (exists.succeeded() && exists.result().isRegularFile()) - request.response().sendFile(requested.toString()); - else - request.response().sendFile(indexHtml); - }); - } -} diff --git a/dhfs-parent/sync-base/src/main/proto/dhfs_peer_discovery.proto b/dhfs-parent/sync-base/src/main/proto/dhfs_peer_discovery.proto deleted file mode 100644 index 76b2453b..00000000 --- a/dhfs-parent/sync-base/src/main/proto/dhfs_peer_discovery.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; - -option java_multiple_files = true; -option java_package = "com.usatiuk.dhfs.peerdiscovery"; -option java_outer_classname = "DhfsObjectPeerDiscoveryApi"; - -package dhfs.peerdiscovery; - -message PeerDiscoveryInfo { - string uuid = 1; - uint32 port = 2; - uint32 securePort = 3; -} diff --git a/dhfs-parent/sync-base/src/main/proto/dhfs_serial.proto b/dhfs-parent/sync-base/src/main/proto/dhfs_serial.proto deleted file mode 100644 index c92996dc..00000000 --- a/dhfs-parent/sync-base/src/main/proto/dhfs_serial.proto +++ /dev/null @@ -1,45 +0,0 @@ -syntax = "proto3"; - -option java_multiple_files = true; -option java_package = "com.usatiuk.dhfs.persistence"; -option java_outer_classname = "DhfsObjectPersistence"; - -package dhfs.persistence; - -message JObjectKeyP { - string name = 1; -} - -message PeerIdP { - JObjectKeyP id = 1; -} - -message ObjectChangelog { - message entries_Entry { - PeerIdP key = 1; - int64 value = 2; - } - repeated entries_Entry entries = 1; -} - -// TODO: Serialization -message FileDtoP { - bytes serializedData = 1; -} - -message ChunkDataP { - JObjectKeyP key = 1; - bytes data = 2; -} - -message PeerInfoP { - bytes serializedData = 1; -} - -message JDataRemoteDtoP { - bytes serializedData = 1; -} - -message JDataP { - bytes serializedData = 1; -} \ No newline at end of file diff --git a/dhfs-parent/sync-base/src/main/proto/dhfs_sync.proto b/dhfs-parent/sync-base/src/main/proto/dhfs_sync.proto deleted file mode 100644 index 6e94efd7..00000000 --- a/dhfs-parent/sync-base/src/main/proto/dhfs_sync.proto +++ /dev/null @@ -1,52 +0,0 @@ -syntax = "proto3"; - -import "dhfs_serial.proto"; - -option java_multiple_files = true; -option java_package = "com.usatiuk.dhfs.repository"; -option java_outer_classname = "DhfsObjectSyncApi"; - -package dhfs.sync; - -service DhfsObjectSyncGrpc { - rpc OpPush (OpPushRequest) returns (OpPushReply) {} - - rpc GetObject (GetObjectRequest) returns (GetObjectReply) {} - rpc CanDelete (CanDeleteRequest) returns (CanDeleteReply) {} - - rpc Ping (PingRequest) returns (PingReply) {} -} - -message PingRequest {} - -message PingReply {} - -message GetObjectRequest { - dhfs.persistence.JObjectKeyP name = 2; -} - -message GetObjectReply { - dhfs.persistence.ObjectChangelog changelog = 5; - dhfs.persistence.JDataRemoteDtoP pushedData = 6; -} - -message CanDeleteRequest { - dhfs.persistence.JObjectKeyP name = 2; -} - -message CanDeleteReply { - bool deletionCandidate = 2; - repeated dhfs.persistence.JObjectKeyP referrers = 3; -} - -message OpPushRequest { - repeated OpP msg = 2; -} - -message OpPushReply { - -} - -message OpP { - bytes serializedData = 1; -} diff --git a/dhfs-parent/sync-base/src/main/resources/META-INF/beans.xml b/dhfs-parent/sync-base/src/main/resources/META-INF/beans.xml deleted file mode 100644 index e69de29b..00000000 diff --git a/dhfs-parent/sync-base/src/main/resources/application.properties b/dhfs-parent/sync-base/src/main/resources/application.properties deleted file mode 100644 index f3000b63..00000000 --- a/dhfs-parent/sync-base/src/main/resources/application.properties +++ /dev/null @@ -1,34 +0,0 @@ -quarkus.grpc.server.use-separate-server=false -dhfs.objects.peerdiscovery.port=42069 -dhfs.objects.peerdiscovery.interval=4s -dhfs.objects.peerdiscovery.broadcast=true -dhfs.objects.sync.timeout=30 -dhfs.objects.sync.ping.timeout=5 -dhfs.objects.invalidation.threads=16 -dhfs.objects.invalidation.delay=1000 -dhfs.objects.reconnect_interval=5s -dhfs.objects.write_log=false -dhfs.objects.periodic-push-op-interval=5m -dhfs.fuse.root=${HOME}/dhfs_default/fuse -dhfs.objects.persistence.stuff.root=${HOME}/dhfs_default/data/stuff -dhfs.fuse.debug=false -dhfs.fuse.enabled=true -dhfs.files.allow_recursive_delete=false -dhfs.files.target_chunk_size=2097152 -dhfs.files.target_chunk_alignment=19 -dhfs.objects.deletion.delay=1000 -dhfs.objects.deletion.can-delete-retry-delay=10000 -dhfs.objects.ref_verification=true -dhfs.files.use_hash_for_chunks=false -dhfs.objects.autosync.threads=16 -dhfs.objects.autosync.download-all=false -dhfs.objects.move-processor.threads=16 -dhfs.objects.ref-processor.threads=16 -dhfs.objects.opsender.batch-size=100 -dhfs.objects.lock_timeout_secs=2 -dhfs.local-discovery=true -dhfs.peerdiscovery.timeout=10000 -quarkus.log.category."com.usatiuk".min-level=TRACE -quarkus.log.category."com.usatiuk".level=TRACE -quarkus.http.insecure-requests=enabled -quarkus.http.ssl.client-auth=required diff --git a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java b/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java deleted file mode 100644 index b48b8f93..00000000 --- a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.usatiuk.dhfs; - -import com.usatiuk.dhfs.refcount.JDataRef; -import com.usatiuk.dhfs.testobjs.TestRefcount; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.transaction.Transaction; -import com.usatiuk.objects.transaction.TransactionManager; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; -import jakarta.inject.Inject; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.pcollections.HashTreePSet; - -import java.util.List; -import java.util.Map; - -class Profiles { - public static class RefcounterTestProfile extends TempDataProfile { - @Override - protected void getConfigOverrides(Map ret) { - ret.put("quarkus.log.category.\"com.usatiuk.dhfs\".level", "INFO"); - ret.put("dhfs.fuse.enabled", "false"); - ret.put("dhfs.objects.ref_verification", "false"); - } - } -} - -@QuarkusTest -@TestProfile(Profiles.RefcounterTestProfile.class) -public class RefcounterTest { - - @Inject - Transaction curTx; - @Inject - TransactionManager txm; - - @Test - void refcountParentChange() { - final JObjectKey PARENT_1_KEY = JObjectKey.of("refcountParentChange_parent1"); - final JObjectKey PARENT_2_KEY = JObjectKey.of("refcountParentChange_parent2"); - final JObjectKey CHILD_KEY = JObjectKey.of("refcountParentChange_child"); - - txm.run(() -> { - curTx.put((new TestRefcount(PARENT_1_KEY)).withFrozen(true)); - curTx.put((new TestRefcount(PARENT_2_KEY)).withFrozen(true)); - }); - - txm.run(() -> { - curTx.put((new TestRefcount(CHILD_KEY)).withFrozen(false)); - curTx.put(curTx.get(TestRefcount.class, PARENT_1_KEY).get().withKids(HashTreePSet.empty().plus(CHILD_KEY))); - }); - - txm.run(() -> { - var kid = curTx.get(TestRefcount.class, CHILD_KEY).get(); - Assertions.assertIterableEquals(List.of(PARENT_1_KEY), kid.refsFrom().stream().map(JDataRef::obj).toList()); - }); - - txm.run(() -> { - curTx.put(curTx.get(TestRefcount.class, PARENT_1_KEY).get().withKids(HashTreePSet.empty().minus(CHILD_KEY))); - curTx.put(curTx.get(TestRefcount.class, PARENT_2_KEY).get().withKids(HashTreePSet.empty().plus(CHILD_KEY))); - }); - - txm.run(() -> { - Assertions.assertIterableEquals(List.of(PARENT_2_KEY), curTx.get(TestRefcount.class, CHILD_KEY).get().refsFrom().stream().map(JDataRef::obj).toList()); - }); - } - -} diff --git a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TempDataProfile.java b/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TempDataProfile.java deleted file mode 100644 index e5a9f59b..00000000 --- a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TempDataProfile.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.usatiuk.dhfs; - -import io.quarkus.test.junit.QuarkusTestProfile; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Map; - -abstract public class TempDataProfile implements QuarkusTestProfile { - protected void getConfigOverrides(Map toPut) { - } - - @Override - final public Map getConfigOverrides() { - Path tempDirWithPrefix; - try { - tempDirWithPrefix = Files.createTempDirectory("dhfs-test"); - } catch (IOException e) { - throw new RuntimeException(e); - } - var ret = new HashMap(); - ret.put("dhfs.objects.persistence.files.root", tempDirWithPrefix.resolve("dhfs_root_test").toString()); - ret.put("dhfs.fuse.root", tempDirWithPrefix.resolve("dhfs_fuse_root_test").toString()); - getConfigOverrides(ret); - return ret; - } -} diff --git a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java b/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java deleted file mode 100644 index b3659d01..00000000 --- a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/TestDataCleaner.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.usatiuk.dhfs; - -import io.quarkus.logging.Log; -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import jakarta.annotation.Priority; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; -import java.util.Objects; - -@ApplicationScoped -public class TestDataCleaner { - @ConfigProperty(name = "dhfs.objects.persistence.files.root") - String tempDirectory; - - void init(@Observes @Priority(1) StartupEvent event) throws IOException { - try { - purgeDirectory(Path.of(tempDirectory).toFile()); - } catch (Exception ignored) { - Log.warn("Couldn't cleanup test data on init"); - } - } - - void shutdown(@Observes @Priority(1000000000) ShutdownEvent event) throws IOException { - purgeDirectory(Path.of(tempDirectory).toFile()); - } - - void purgeDirectory(File dir) { - for (File file : Objects.requireNonNull(dir.listFiles())) { - if (file.isDirectory()) - purgeDirectory(file); - file.delete(); - } - } -} diff --git a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/testobjs/TestRefcount.java b/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/testobjs/TestRefcount.java deleted file mode 100644 index 60ce9bec..00000000 --- a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/testobjs/TestRefcount.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.usatiuk.dhfs.testobjs; - -import com.usatiuk.dhfs.refcount.JDataRef; -import com.usatiuk.dhfs.refcount.JDataRefcounted; -import com.usatiuk.objects.JObjectKey; -import org.pcollections.HashTreePSet; -import org.pcollections.PCollection; - -import java.util.Collection; - -public record TestRefcount(JObjectKey key, PCollection refsFrom, boolean frozen, - PCollection kids) implements JDataRefcounted { - - public TestRefcount(JObjectKey key) { - this(key, HashTreePSet.empty(), false, HashTreePSet.empty()); - } - - @Override - public TestRefcount withRefsFrom(PCollection refs) { - return new TestRefcount(key, refs, frozen, kids); - } - - @Override - public TestRefcount withFrozen(boolean frozen) { - return new TestRefcount(key, refsFrom, frozen, kids); - } - - public TestRefcount withKids(PCollection kids) { - return new TestRefcount(key, refsFrom, frozen, kids); - } - - @Override - public Collection collectRefsTo() { - return kids; - } -} diff --git a/dhfs-parent/sync-base/src/test/resources/application.properties b/dhfs-parent/sync-base/src/test/resources/application.properties deleted file mode 100644 index 629cf9e5..00000000 --- a/dhfs-parent/sync-base/src/test/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -dhfs.objects.persistence.files.root=${HOME}/dhfs_data/dhfs_root_test -dhfs.objects.root=${HOME}/dhfs_data/dhfs_root_d_test -dhfs.fuse.root=${HOME}/dhfs_data/dhfs_fuse_root_test -dhfs.objects.ref_verification=true -dhfs.objects.deletion.delay=0 -quarkus.log.category."com.usatiuk.dhfs".level=TRACE -quarkus.log.category."com.usatiuk.dhfs".min-level=TRACE -quarkus.http.test-port=0 -quarkus.http.test-ssl-port=0 -dhfs.local-discovery=false -dhfs.objects.persistence.snapshot-extra-checks=true \ No newline at end of file diff --git a/dhfs-parent/utils/pom.xml b/dhfs-parent/utils/pom.xml deleted file mode 100644 index 443813de..00000000 --- a/dhfs-parent/utils/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - 4.0.0 - - com.usatiuk.dhfs - parent - 1.0-SNAPSHOT - - - utils - - - 21 - 21 - UTF-8 - - - - - io.quarkus - quarkus-junit5 - test - - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-grpc - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.apache.commons - commons-lang3 - - - org.jboss.slf4j - slf4j-jboss-logmanager - test - - - commons-io - commons-io - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 1C - false - classes - - - true - - - concurrent - - - - - - - - \ No newline at end of file diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/AutoCloseableNoThrow.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/AutoCloseableNoThrow.java deleted file mode 100644 index 26f49a56..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/AutoCloseableNoThrow.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.usatiuk.utils; - -public interface AutoCloseableNoThrow extends AutoCloseable { - @Override - void close(); -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/ByteUtils.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/ByteUtils.java deleted file mode 100644 index f7075b40..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/ByteUtils.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.usatiuk.utils; - -import java.nio.ByteBuffer; - -public class ByteUtils { - public static byte[] longToBytes(long val) { - return ByteBuffer.wrap(new byte[8]).putLong(val).array(); - } - - public static long bytesToLong(byte[] bytes) { - return ByteBuffer.wrap(bytes).getLong(); - } - - // Returns a ByteBuffer of size 8 with position reset - public static ByteBuffer longToBb(long val) { - return ByteBuffer.allocate(8).putLong(val).flip(); - } -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/DataLocker.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/DataLocker.java deleted file mode 100644 index 7e3e7a7c..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/DataLocker.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.usatiuk.utils; - -import jakarta.annotation.Nonnull; -import jakarta.annotation.Nullable; - -import java.lang.ref.Cleaner; -import java.lang.ref.WeakReference; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -public class DataLocker { - private final ConcurrentHashMap> _locks = new ConcurrentHashMap<>(); - private static final Cleaner CLEANER = Cleaner.create(); - - private Lock getTag(Object data) { - var newTag = new ReentrantLock(); - var newTagRef = new WeakReference<>(newTag); - - while (true) { - var oldTagRef = _locks.putIfAbsent(data, newTagRef); - var oldTag = oldTagRef != null ? oldTagRef.get() : null; - - if (oldTag == null && oldTagRef != null) { - _locks.remove(data, oldTagRef); - continue; - } - - if (oldTag != null) - return oldTag; - - CLEANER.register(newTag, () -> { - _locks.remove(data, newTagRef); - }); - return newTag; - } - } - - @Nonnull - public AutoCloseableNoThrow lock(Object data) { - var lock = getTag(data); - lock.lock(); - return lock::unlock; - } - - @Nullable - public AutoCloseableNoThrow tryLock(Object data) { - var lock = getTag(data); - if (lock.tryLock()) { - return lock::unlock; - } else { - return null; - } - } -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/HashSetDelayedBlockingQueue.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/HashSetDelayedBlockingQueue.java deleted file mode 100644 index b4ff8dc7..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/HashSetDelayedBlockingQueue.java +++ /dev/null @@ -1,279 +0,0 @@ -package com.usatiuk.utils; - -import jakarta.annotation.Nullable; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.function.Function; - -public class HashSetDelayedBlockingQueue { - private final LinkedHashMap> _set = new LinkedHashMap<>(); - private final Object _sleepSynchronizer = new Object(); - private long _delay; - private boolean _closed = false; - - public HashSetDelayedBlockingQueue(long delay) { - _delay = delay; - } - - public long getDelay() { - return _delay; - } - - public void setDelay(long delay) { - synchronized (_sleepSynchronizer) { - _delay = delay; - _sleepSynchronizer.notifyAll(); - } - } - - // If there's object with key in the queue, don't do anything - // Returns whether it was added or not - public boolean add(T el) { - synchronized (this) { - if (_closed) throw new IllegalStateException("Adding to a queue that is closed!"); - - if (_set.putIfAbsent(el, new SetElement<>(el, System.currentTimeMillis())) != null) - return false; - - this.notify(); - return true; - } - } - - - // Adds the object to the queue, if it exists re-adds it - // With no delay - // Returns the old object, or null - public T addNoDelay(T el) { - synchronized (this) { - if (_closed) throw new IllegalStateException("Adding to a queue that is closed!"); - - SetElement old = _set.putFirst(el, new SetElement<>(el, 0)); - this.notify(); - - if (old != null) - return old.el(); - else - return null; - } - } - - // Adds the object to the queue, if it exists re-adds it with a new delay - // Returns the old object, or null - public T readd(T el) { - synchronized (this) { - if (_closed) throw new IllegalStateException("Adding to a queue that is closed!"); - - SetElement old = _set.putLast(el, new SetElement<>(el, System.currentTimeMillis())); - this.notify(); - - if (old != null) - return old.el(); - else - return null; - } - } - - // Merges the object with the old one - // Returns the old object, or null - public T merge(T el, Function transformer) { - synchronized (this) { - if (_closed) throw new IllegalStateException("Adding to a queue that is closed!"); - - var old = _set.get(el); - - var next = new SetElement<>(transformer.apply(old != null ? old.el : null), System.currentTimeMillis()); - - _set.putLast(el, next); - - this.notify(); - - if (old != null) - return old.el(); - else - return null; - } - } - - // Removes the object - public T remove(T el) { - synchronized (this) { - var rem = _set.remove(el); - if (rem == null) return null; - return rem.el(); - } - } - - public T get(long timeout) throws InterruptedException { - long startedWaiting = timeout > 0 ? System.currentTimeMillis() : -1; - - while (!Thread.interrupted()) { - long sleep; - synchronized (this) { - if (timeout > 0) - if (System.currentTimeMillis() > (startedWaiting + timeout)) return null; - - while (_set.isEmpty()) { - if (timeout > 0) { - this.wait(Math.max(timeout - (System.currentTimeMillis() - startedWaiting), 1)); - if (System.currentTimeMillis() > (startedWaiting + timeout)) return null; - } else { - this.wait(); - } - } - - var curTime = System.currentTimeMillis(); - - var first = _set.firstEntry().getValue().time(); - - if (first + _delay > curTime) - sleep = (first + _delay) - curTime; - else - return _set.pollFirstEntry().getValue().el(); - } - - if (timeout > 0) - sleep = Math.min(sleep, (startedWaiting + timeout) - System.currentTimeMillis()); - - if (sleep <= 0) - continue; - - synchronized (_sleepSynchronizer) { - _sleepSynchronizer.wait(sleep); - } - } - - throw new InterruptedException(); - } - - public T get() throws InterruptedException { - T ret; - do { - } while ((ret = get(-1)) == null); - return ret; - } - - public boolean hasImmediate() { - synchronized (this) { - if (_set.isEmpty()) return false; - - var curTime = System.currentTimeMillis(); - - var first = _set.firstEntry().getValue().time(); - return first + _delay <= curTime; - } - } - - @Nullable - public T tryGet() { - synchronized (this) { - if (_set.isEmpty()) return null; - - var curTime = System.currentTimeMillis(); - - var first = _set.firstEntry().getValue().time(); - - if (first + _delay > curTime) - return null; - else - return _set.pollFirstEntry().getValue().el(); - } - } - - public Collection getAll() { - ArrayList out = new ArrayList<>(); - - synchronized (this) { - var curTime = System.currentTimeMillis(); - - while (!_set.isEmpty()) { - SetElement el = _set.firstEntry().getValue(); - if (el.time() + _delay > curTime) break; - out.add(_set.pollFirstEntry().getValue().el()); - } - } - - return out; - } - - public Collection close() { - synchronized (this) { - _closed = true; - var ret = _set.values().stream().map(SetElement::el).toList(); - _set.clear(); - return ret; - } - } - - public Collection getAllWait() throws InterruptedException { - Collection out; - do { - } while ((out = getAllWait(Integer.MAX_VALUE, -1)).isEmpty()); - return out; - } - - public Collection getAllWait(int max) throws InterruptedException { - Collection out; - do { - } while ((out = getAllWait(max, -1)).isEmpty()); - return out; - } - - public Collection getAllWait(int max, long timeout) throws InterruptedException { - ArrayList out = new ArrayList<>(); - - long startedWaiting = timeout > 0 ? System.currentTimeMillis() : -1; - - while (!Thread.interrupted()) { - if (timeout > 0) - if (System.currentTimeMillis() > (startedWaiting + timeout)) return out; - - long sleep = 0; - - synchronized (this) { - while (_set.isEmpty()) { - if (timeout > 0) { - this.wait(Math.max(timeout - (System.currentTimeMillis() - startedWaiting), 1)); - if (System.currentTimeMillis() > (startedWaiting + timeout)) - return out; - } else { - this.wait(); - } - } - - var curTime = System.currentTimeMillis(); - - var first = _set.firstEntry().getValue().time(); - if (first + _delay > curTime) - sleep = (first + _delay) - curTime; - else { - while (!_set.isEmpty() && (out.size() < max)) { - SetElement el = _set.firstEntry().getValue(); - if (el.time() + _delay > curTime) break; - out.add(_set.pollFirstEntry().getValue().el()); - } - } - } - - if (timeout > 0) { - var cur = System.currentTimeMillis(); - if (cur > (startedWaiting + timeout)) return out; - sleep = Math.min(sleep, (startedWaiting + timeout) - cur); - } - - if (sleep > 0) { - synchronized (_sleepSynchronizer) { - _sleepSynchronizer.wait(sleep); - } - } else - return out; - } - - return out; - } - - private record SetElement(T el, long time) { - } -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/ListUtils.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/ListUtils.java deleted file mode 100644 index c9b06caa..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/ListUtils.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.usatiuk.utils; - -import java.util.List; -import java.util.function.Function; - -public class ListUtils { - - public static List prependAndMap(T_V item, List suffix, Function suffixFn) { - T_V[] arr = (T_V[]) new Object[suffix.size() + 1]; - arr[0] = item; - for (int i = 0; i < suffix.size(); i++) { - arr[i + 1] = suffixFn.apply(suffix.get(i)); - } - return List.of(arr); - } - - public static List prepend(T item, List suffix) { - T[] arr = (T[]) new Object[suffix.size() + 1]; - arr[0] = item; - for (int i = 0; i < suffix.size(); i++) { - arr[i + 1] = suffix.get(i); - } - return List.of(arr); - } - - public static List map(List suffix, Function suffixFn) { - T_V[] arr = (T_V[]) new Object[suffix.size()]; - for (int i = 0; i < suffix.size(); i++) { - arr[i] = suffixFn.apply(suffix.get(i)); - } - return List.of(arr); - } -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/SerializationHelper.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/SerializationHelper.java deleted file mode 100644 index 2df57b06..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/SerializationHelper.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.usatiuk.utils; - -import com.google.protobuf.ByteString; -import com.google.protobuf.UnsafeByteOperations; -import org.apache.commons.io.input.ClassLoaderObjectInputStream; -import org.apache.commons.lang3.SerializationUtils; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.Serializable; - -public abstract class SerializationHelper { - // Taken from SerializationUtils - public static T deserialize(final InputStream inputStream) { - try (ClassLoaderObjectInputStream in = new ClassLoaderObjectInputStream(SerializationHelper.class.getClassLoader(), inputStream)) { - final T obj = (T) in.readObject(); - return obj; - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - public static T deserialize(final byte[] objectData, int offset) { - return deserialize(new ByteArrayInputStream(objectData, offset, objectData.length - offset)); - } - - public static T deserialize(final byte[] objectData) { - return deserialize(objectData, 0); - } - - public static byte[] serializeArray(final T obj) { - return SerializationUtils.serialize(obj); - } - - public static ByteString serialize(final T obj) { - return UnsafeByteOperations.unsafeWrap(serializeArray(obj)); - } -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.java deleted file mode 100644 index 963da69d..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/StatusRuntimeExceptionNoStacktrace.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.usatiuk.utils; - -import io.grpc.Metadata; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; - -import javax.annotation.Nullable; - -public class StatusRuntimeExceptionNoStacktrace extends StatusRuntimeException { - public StatusRuntimeExceptionNoStacktrace(Status status) { - super(status); - } - - public StatusRuntimeExceptionNoStacktrace(Status status, @Nullable Metadata trailers) { - super(status, trailers); - } - - @Override - public synchronized Throwable fillInStackTrace() { - return this; - } -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/UninitializedByteBuffer.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/UninitializedByteBuffer.java deleted file mode 100644 index 3e857d90..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/UninitializedByteBuffer.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.usatiuk.utils; - -import java.lang.foreign.*; -import java.lang.invoke.MethodHandle; -import java.nio.ByteBuffer; -import java.util.function.Consumer; - -public class UninitializedByteBuffer { - private static final Linker LINKER = Linker.nativeLinker(); - private static final MethodHandle malloc = LINKER.downcallHandle( - LINKER.defaultLookup().find("malloc").orElseThrow(), - FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.JAVA_LONG) - ); - private static final MethodHandle free = LINKER.downcallHandle( - LINKER.defaultLookup().find("free").orElseThrow(), - FunctionDescriptor.ofVoid(ValueLayout.ADDRESS) - ); - - public static ByteBuffer allocate(int capacity) { - UnsafeAccessor.NIO.reserveMemory(capacity, capacity); - - MemorySegment segment = null; - try { - segment = (MemorySegment) malloc.invokeExact((long) capacity); - } catch (Throwable e) { - throw new RuntimeException(e); - } - - Consumer cleanup = s -> { - try { - free.invokeExact(s); - UnsafeAccessor.NIO.unreserveMemory(capacity, capacity); - } catch (Throwable e) { - throw new RuntimeException(e); - } - }; - var reint = segment.reinterpret(capacity, Arena.ofAuto(), cleanup); - return reint.asByteBuffer(); - } - - public static long getAddress(ByteBuffer buffer) { - return UnsafeAccessor.NIO.getBufferAddress(buffer); - } -} diff --git a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/UnsafeAccessor.java b/dhfs-parent/utils/src/main/java/com/usatiuk/utils/UnsafeAccessor.java deleted file mode 100644 index 17d72460..00000000 --- a/dhfs-parent/utils/src/main/java/com/usatiuk/utils/UnsafeAccessor.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.usatiuk.utils; - -import jdk.internal.access.JavaNioAccess; -import jdk.internal.access.SharedSecrets; -import sun.misc.Unsafe; - -import java.lang.reflect.Field; - -public abstract class UnsafeAccessor { - public static final JavaNioAccess NIO; - public static final Unsafe UNSAFE; - - static { - try { - NIO = SharedSecrets.getJavaNioAccess(); - Field f = Unsafe.class.getDeclaredField("theUnsafe"); - f.setAccessible(true); - UNSAFE = (Unsafe) f.get(null); - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} diff --git a/dhfs-parent/utils/src/test/java/com/usatiuk/utils/HashSetDelayedBlockingQueueTest.java b/dhfs-parent/utils/src/test/java/com/usatiuk/utils/HashSetDelayedBlockingQueueTest.java deleted file mode 100644 index 9f242bf1..00000000 --- a/dhfs-parent/utils/src/test/java/com/usatiuk/utils/HashSetDelayedBlockingQueueTest.java +++ /dev/null @@ -1,228 +0,0 @@ -package com.usatiuk.utils; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.concurrent.atomic.AtomicBoolean; - -public class HashSetDelayedBlockingQueueTest { - - @Test - void Get() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(1000); - - var curTime = System.currentTimeMillis(); - queue.add("hello!"); - var thing = queue.get(); - var gotTime = System.currentTimeMillis(); - Assertions.assertEquals("hello!", thing); - Assertions.assertTrue((gotTime - curTime) >= 1000); - } - - - @Test - void addNoDelay() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(1000); - - var curTime = System.currentTimeMillis(); - queue.addNoDelay("hello!"); - var thing = queue.get(); - var gotTime = System.currentTimeMillis(); - Assertions.assertEquals("hello!", thing); - Assertions.assertTrue((gotTime - curTime) < 500); - } - - @Test - void GetImmediate() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(0); - - var curTime = System.currentTimeMillis(); - queue.add("hello!"); - Assertions.assertEquals("hello!", queue.get()); - var gotTime = System.currentTimeMillis(); - Assertions.assertTrue((gotTime - curTime) <= 50); - } - - @Test - void GetTimeout() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(1000); - - var curTime = System.currentTimeMillis(); - var thing = queue.get(500L); - Assertions.assertNull(thing); - var gotTime = System.currentTimeMillis(); - Assertions.assertTrue((gotTime - curTime) <= 10000); - } - - @Test - void GetAll() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(1000); - - var curTime = System.currentTimeMillis(); - var ex = Executors.newSingleThreadExecutor(); - ex.submit(() -> { - try { - Thread.sleep(10); - queue.add("hello1"); - queue.add("hello2"); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - }); - var thing = queue.getAllWait(); // Theoretically you can get one... - if (thing.size() == 1) thing.addAll(queue.getAllWait()); - var gotTime = System.currentTimeMillis(); - Assertions.assertIterableEquals(List.of("hello1", "hello2"), thing); - Assertions.assertTrue((gotTime - curTime) >= 1010); - } - - - @Test - void GetAllLimit() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(1000); - - var curTime = System.currentTimeMillis(); - var ex = Executors.newSingleThreadExecutor(); - ex.submit(() -> { - try { - Thread.sleep(10); - queue.add("hello1"); - queue.add("hello2"); - queue.add("hello3"); - queue.add("hello4"); - queue.add("hello5"); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - }); - Thread.sleep(500); - var got1 = queue.getAllWait(3); - var got2 = queue.getAllWait(3); - Assertions.assertEquals(3, got1.size()); - Assertions.assertEquals(2, got2.size()); - var gotTime = System.currentTimeMillis(); - Assertions.assertIterableEquals(List.of("hello1", "hello2", "hello3"), got1); - Assertions.assertIterableEquals(List.of("hello4", "hello5"), got2); - Assertions.assertTrue((gotTime - curTime) >= 1010); - } - - @Test - void GetAllLimitImmediate() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(1000); - - var curTime = System.currentTimeMillis(); - var ex = Executors.newSingleThreadExecutor(); - ex.submit(() -> { - try { - Thread.sleep(10); - queue.add("hello1"); - queue.add("hello2"); - queue.add("hello3"); - queue.add("hello4"); - queue.add("hello5"); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - }); - Thread.sleep(1100); - var got1 = queue.getAllWait(3); - var got2 = queue.getAllWait(3); - Assertions.assertEquals(3, got1.size()); - Assertions.assertEquals(2, got2.size()); - var gotTime = System.currentTimeMillis(); - Assertions.assertIterableEquals(List.of("hello1", "hello2", "hello3"), got1); - Assertions.assertIterableEquals(List.of("hello4", "hello5"), got2); - } - - @Test - void readdTest() throws InterruptedException { - var queue = new HashSetDelayedBlockingQueue<>(1000); - - var curTime = System.currentTimeMillis(); - var ex = Executors.newSingleThreadExecutor(); - ex.submit(() -> { - try { - Thread.sleep(10); - queue.readd("hello1"); - queue.readd("hello2"); - Thread.sleep(800); - queue.readd("hello1"); - queue.readd("hello2"); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - }); - var thing = queue.getAllWait(); // Theoretically you can get one... - if (thing.size() == 1) thing.add(queue.getAllWait().stream().findFirst().get()); - var gotTime = System.currentTimeMillis(); - Assertions.assertIterableEquals(List.of("hello1", "hello2"), thing); - Assertions.assertTrue((gotTime - curTime) >= 1810); - } - - @Test - void interruptTest() throws InterruptedException, ExecutionException, TimeoutException { - var queue = new HashSetDelayedBlockingQueue<>(100000); - - var curTime = System.currentTimeMillis(); - AtomicBoolean ok = new AtomicBoolean(false); - Thread t = new Thread(() -> { - Assertions.assertThrows(InterruptedException.class, queue::get); - Assertions.assertThrows(InterruptedException.class, queue::getAllWait); - Assertions.assertTrue((System.currentTimeMillis() - curTime) < 2000); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - ok.set(true); - }); - - t.start(); - - Thread.sleep(500); - t.interrupt(); - Thread.sleep(500); - t.interrupt(); - - Thread.sleep(1500); - - Assertions.assertTrue(ok.get()); - } - - @Test - void setDelayTest() throws InterruptedException, ExecutionException, TimeoutException { - var queue = new HashSetDelayedBlockingQueue(100000); - - var curTime = System.currentTimeMillis(); - var ex = Executors.newSingleThreadExecutor(); - - var future = ex.submit(() -> { - Assertions.assertEquals("hello1", queue.get()); - Assertions.assertTrue((System.currentTimeMillis() - curTime) < 2000); - var startTime2 = System.currentTimeMillis(); - Assertions.assertEquals("hello2", queue.get()); - Assertions.assertTrue((System.currentTimeMillis() - startTime2) < 200); - var startTime3 = System.currentTimeMillis(); - Assertions.assertEquals("hello3", queue.get()); - Assertions.assertTrue((System.currentTimeMillis() - startTime3) >= 1000); - return null; - }); - - Thread.sleep(500); - queue.add("hello1"); - queue.add("hello2"); - Thread.sleep(500); - queue.setDelay(0); - Thread.sleep(500); - queue.setDelay(1000); - queue.add("hello3"); - - future.get(10, TimeUnit.SECONDS); - } - -} diff --git a/docker-compose.example.yml b/docker-compose.example.yml deleted file mode 100644 index 3ce57c2b..00000000 --- a/docker-compose.example.yml +++ /dev/null @@ -1,25 +0,0 @@ -version: "3.2" - -services: - dhfs1: - # image: ghcr.io/usatiuk/dhfs:main - build: . - privileged: true - devices: - - /dev/fuse - command: "./dockerentry.sh -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5010 -Ddhfs.objects.autosync.download-all=true" - ports: - - 8080:8080 - - 8081:8443 - - 5005:5005 - dhfs2: - # image: ghcr.io/usatiuk/dhfs:main - build: . - privileged: true - devices: - - /dev/fuse - command: "./dockerentry.sh -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5010 -Ddhfs.objects.autosync.download-all=true" - ports: - - 8090:8080 - - 8091:8443 - - 5010:5010 diff --git a/dockerentry.sh b/dockerentry.sh deleted file mode 100644 index 319f9471..00000000 --- a/dockerentry.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -e || true -set -u || true -set -o pipefail || true -set -x || true - -exec java \ - -Xmx512M \ - --add-exports java.base/sun.nio.ch=ALL-UNNAMED \ - --add-exports java.base/jdk.internal.access=ALL-UNNAMED \ - -Ddhfs.objects.persistence.files.root=/dhfs_root/p \ - -Ddhfs.objects.root=/dhfs_root/d \ - -Ddhfs.fuse.root=/dhfs_root_fuse \ - -Dquarkus.http.host=0.0.0.0 \ - -Ddhfs.objects.ref_verification=false \ - -Dquarkus.log.category.\"com.usatiuk.dhfs\".level=$DHFS_LOGLEVEL \ - "$@" \ - -jar quarkus-run.jar diff --git a/element-list b/element-list new file mode 100644 index 00000000..143d09ef --- /dev/null +++ b/element-list @@ -0,0 +1,31 @@ +unnamed package +com.usatiuk.dhfs +com.usatiuk.dhfs.autosync +com.usatiuk.dhfs.invalidation +com.usatiuk.dhfs.jkleppmanntree +com.usatiuk.dhfs.jkleppmanntree.structs +com.usatiuk.dhfs.jmap +com.usatiuk.dhfs.peerdiscovery +com.usatiuk.dhfs.peerdiscovery.local +com.usatiuk.dhfs.peersync +com.usatiuk.dhfs.peersync.api +com.usatiuk.dhfs.peersync.structs +com.usatiuk.dhfs.peertrust +com.usatiuk.dhfs.persistence +com.usatiuk.dhfs.refcount +com.usatiuk.dhfs.remoteobj +com.usatiuk.dhfs.repository +com.usatiuk.dhfs.rpc +com.usatiuk.dhfs.syncmap +com.usatiuk.dhfs.webapi +com.usatiuk.dhfs.webui +com.usatiuk.dhfsfs.objects +com.usatiuk.dhfsfs.service +com.usatiuk.dhfsfuse +com.usatiuk.kleppmanntree +com.usatiuk.objects +com.usatiuk.objects.iterators +com.usatiuk.objects.snapshot +com.usatiuk.objects.stores +com.usatiuk.objects.transaction +com.usatiuk.utils diff --git a/help-doc.html b/help-doc.html new file mode 100644 index 00000000..dd41947f --- /dev/null +++ b/help-doc.html @@ -0,0 +1,203 @@ + + + + +API Help (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+

JavaDoc Help

+ +
+
+

Navigation

+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
+
+
+

Kinds of Pages

+The following sections describe the different kinds of pages in this collection. +
+

Overview

+

The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+
+
+

Package

+

Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

+
    +
  • Interfaces
  • +
  • Classes
  • +
  • Enum Classes
  • +
  • Exception Classes
  • +
  • Annotation Interfaces
  • +
+
+
+

Class or Interface

+

Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

+
    +
  • Class Inheritance Diagram
  • +
  • Direct Subclasses
  • +
  • All Known Subinterfaces
  • +
  • All Known Implementing Classes
  • +
  • Class or Interface Declaration
  • +
  • Class or Interface Description
  • +
+
+
    +
  • Nested Class Summary
  • +
  • Enum Constant Summary
  • +
  • Field Summary
  • +
  • Property Summary
  • +
  • Constructor Summary
  • +
  • Method Summary
  • +
  • Required Element Summary
  • +
  • Optional Element Summary
  • +
+
+
    +
  • Enum Constant Details
  • +
  • Field Details
  • +
  • Property Details
  • +
  • Constructor Details
  • +
  • Method Details
  • +
  • Element Details
  • +
+

Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

+

The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

+
+
+

Other Files

+

Packages and modules may contain pages with additional information related to the declarations nearby.

+
+
+

Use

+

Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

+
+
+

Tree (Class Hierarchy)

+

There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

+
    +
  • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
  • +
  • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
  • +
+
+
+

Constant Field Values

+

The Constant Field Values page lists the static final fields and their values.

+
+
+

Serialized Form

+

Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

+
+
+

All Packages

+

The All Packages page contains an alphabetic index of all packages contained in the documentation.

+
+
+

All Classes and Interfaces

+

The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

+
+
+

Index

+

The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

+
+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
+ +
+
+
+ + diff --git a/index-all.html b/index-all.html new file mode 100644 index 00000000..25196c05 --- /dev/null +++ b/index-all.html @@ -0,0 +1,6667 @@ + + + + +Index (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Index

+
+A B C D E F G H I J K L M N O P Q R S T U V W _ 
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form +

A

+
+
acceptExternalOp(PeerId, Op) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
add(JObjectKey) - Method in class com.usatiuk.dhfs.autosync.AutosyncProcessor
+
 
+
add(T) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
addAllEntries(Iterable<? extends ObjectChangelog.entries_Entry>) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
addAllMsg(Iterable<? extends OpP>) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
addAllReferrers(Iterable<? extends JObjectKeyP>) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
addEntries(int, ObjectChangelog.entries_Entry) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
addEntries(int, ObjectChangelog.entries_Entry.Builder) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
addEntries(ObjectChangelog.entries_Entry) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
addEntries(ObjectChangelog.entries_Entry.Builder) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
addEntriesBuilder() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
addEntriesBuilder(int) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
addMsg(int, OpP) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
addMsg(int, OpP.Builder) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
addMsg(OpP) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
addMsg(OpP.Builder) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
addMsgBuilder() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
addMsgBuilder(int) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
addNoDelay(T) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
addPeer(String, KnownPeerPut) - Method in class com.usatiuk.dhfs.webapi.PeerManagementApi
+
 
+
addPeerAddress(String, String) - Method in class com.usatiuk.dhfs.webapi.PersistentPeerAddressApi
+
 
+
addPersistentPeerAddress(PeerId, IpPeerAddress) - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
addReferrers(int, JObjectKeyP) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
addReferrers(int, JObjectKeyP.Builder) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
addReferrers(JObjectKeyP) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
addReferrers(JObjectKeyP.Builder) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
addReferrersBuilder() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
addReferrersBuilder(int) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
addRemoteHost(PeerId, String) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
address() - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Returns the value of the address record component.
+
+
address() - Method in record class com.usatiuk.dhfs.webapi.PeerAddressInfo
+
+
Returns the value of the address record component.
+
+
allocate(int) - Static method in class com.usatiuk.utils.UninitializedByteBuffer
+
 
+
AlreadyExistsException - Exception Class in com.usatiuk.kleppmanntree
+
 
+
AlreadyExistsException(String) - Constructor for exception class com.usatiuk.kleppmanntree.AlreadyExistsException
+
 
+
ApiPeerInfo - Record Class in com.usatiuk.dhfs.peersync.api
+
 
+
ApiPeerInfo(String, String) - Constructor for record class com.usatiuk.dhfs.peersync.api.ApiPeerInfo
+
+
Creates an instance of a ApiPeerInfo record class.
+
+
apply(PeerId, DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub) - Method in interface com.usatiuk.dhfs.rpc.RpcClientFactory.ObjectSyncClientFunction
+
 
+
applyExternalOp(PeerIdT, OpMove<TimestampT, PeerIdT, MetaT, NodeIdT>) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
asyncFence(long, Runnable) - Method in class com.usatiuk.objects.stores.WritebackObjectPersistentStore
+
 
+
augment(SecurityIdentity, AuthenticationRequestContext) - Method in class com.usatiuk.dhfs.peertrust.PeerRolesAugmentor
+
 
+
AutoCloseableNoThrow - Interface in com.usatiuk.utils
+
 
+
AutosyncProcessor - Class in com.usatiuk.dhfs.autosync
+
 
+
AutosyncProcessor() - Constructor for class com.usatiuk.dhfs.autosync.AutosyncProcessor
+
 
+
AutosyncTxHook - Class in com.usatiuk.dhfs.autosync
+
 
+
AutosyncTxHook() - Constructor for class com.usatiuk.dhfs.autosync.AutosyncTxHook
+
 
+
available() - Method in record class com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot
+
+
Returns the value of the available record component.
+
+
availablePeers() - Method in class com.usatiuk.dhfs.webapi.PeerManagementApi
+
 
+
+

B

+
+
begin() - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
begin() - Method in class com.usatiuk.objects.transaction.TransactionManagerImpl
+
 
+
bindService() - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
bindService() - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
bindService(DhfsObjectSyncGrpcGrpc.AsyncService) - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
 
+
broadcast() - Method in class com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryBroadcaster
+
 
+
build() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
build() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
build(Channel, CallOptions) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub
+
 
+
build(Channel, CallOptions) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub
+
 
+
build(Channel, CallOptions) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub
+
 
+
build(Channel, CallOptions) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
buildPartial() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
bundleId() - Method in record class com.usatiuk.objects.stores.PendingDelete
+
+
Returns the value of the bundleId record component.
+
+
bundleId() - Method in record class com.usatiuk.objects.stores.PendingWrite
+
+
Returns the value of the bundleId record component.
+
+
bundleId() - Method in interface com.usatiuk.objects.stores.PendingWriteEntry
+
 
+
bytesToLong(byte[]) - Static method in class com.usatiuk.utils.ByteUtils
+
 
+
ByteUtils - Class in com.usatiuk.utils
+
 
+
ByteUtils() - Constructor for class com.usatiuk.utils.ByteUtils
+
 
+
+

C

+
+
CachingObjectPersistentStore - Class in com.usatiuk.objects.stores
+
 
+
CachingObjectPersistentStore(int) - Constructor for class com.usatiuk.objects.stores.CachingObjectPersistentStore
+
 
+
canDelete(PeerId, CanDeleteRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl
+
 
+
canDelete(CanDeleteRequest) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpc
+
 
+
canDelete(CanDeleteRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcBean
+
 
+
canDelete(CanDeleteRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
 
+
canDelete(CanDeleteRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub
+
 
+
canDelete(CanDeleteRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub
+
 
+
canDelete(CanDeleteRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
canDelete(CanDeleteRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub
+
 
+
canDelete(CanDeleteRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServer
+
 
+
canDelete(CanDeleteRequest, StreamObserver<CanDeleteReply>) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.AsyncService
+
 
+
canDelete(CanDeleteRequest, StreamObserver<CanDeleteReply>) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub
+
 
+
canDelete(Collection<PeerId>, JObjectKey) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceClient
+
 
+
CanDeleteReply - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.CanDeleteReply
+
+
CanDeleteReply.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.CanDeleteReply
+
+
CanDeleteReplyOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
CanDeleteRequest - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.CanDeleteRequest
+
+
CanDeleteRequest.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.CanDeleteRequest
+
+
CanDeleteRequestOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
cert() - Method in record class com.usatiuk.dhfs.peersync.api.ApiPeerInfo
+
+
Returns the value of the cert record component.
+
+
cert() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Returns the value of the cert record component.
+
+
cert() - Method in record class com.usatiuk.dhfs.webapi.KnownPeerPut
+
+
Returns the value of the cert record component.
+
+
cert() - Method in record class com.usatiuk.dhfs.webapi.PeerInfo
+
+
Returns the value of the cert record component.
+
+
cert() - Method in record class com.usatiuk.dhfs.webapi.SelfInfo
+
+
Returns the value of the cert record component.
+
+
certFromBytes(byte[]) - Static method in class com.usatiuk.dhfs.peertrust.CertificateTools
+
 
+
CertificateTools - Class in com.usatiuk.dhfs.peertrust
+
 
+
CertificateTools() - Constructor for class com.usatiuk.dhfs.peertrust.CertificateTools
+
 
+
changelog() - Method in record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
Returns the value of the changelog record component.
+
+
changelog() - Method in record class com.usatiuk.dhfs.remoteobj.ReceivedObject
+
+
Returns the value of the changelog record component.
+
+
changelog() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the changelog record component.
+
+
CHANGELOG_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
checkClientTrusted(X509Certificate[], String) - Method in class com.usatiuk.dhfs.peertrust.PeerTrustManager
+
 
+
checkServerTrusted(X509Certificate[], String) - Method in class com.usatiuk.dhfs.peertrust.PeerTrustManager
+
 
+
childId() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Returns the value of the childId record component.
+
+
childId() - Method in record class com.usatiuk.kleppmanntree.OpMove
+
+
Returns the value of the childId record component.
+
+
children() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Returns the value of the children record component.
+
+
children() - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
chmod(JObjectKey, long) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Change the mode of a file or directory.
+
+
chmod(String, long) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
chown(String, long, long) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
ChunkData - Record Class in com.usatiuk.dhfsfs.objects
+
+
ChunkData is a data structure that represents an immutable binary blob
+
+
ChunkData(JObjectKey, ByteString) - Constructor for record class com.usatiuk.dhfsfs.objects.ChunkData
+
+
Creates an instance of a ChunkData record class.
+
+
ChunkDataP - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.ChunkDataP
+
+
ChunkDataP.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.ChunkDataP
+
+
ChunkDataPOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
chunks() - Method in record class com.usatiuk.dhfsfs.objects.FileDto
+
+
Returns the value of the chunks record component.
+
+
clear() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
clear() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
clearChangelog() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
clearData() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
bytes data = 2;
+
+
clearDeletionCandidate() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
bool deletionCandidate = 2;
+
+
clearEntries() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
clearField(Descriptors.FieldDescriptor) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
clearId() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
clearKey() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
clearKey() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
clearMsg() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
clearName() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
+
string name = 1;
+
+
clearName() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
clearName() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
clearOneof(Descriptors.OneofDescriptor) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
clearPort() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
uint32 port = 2;
+
+
clearPushedData() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
clearReferrers() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
clearSecurePort() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
uint32 securePort = 3;
+
+
clearSerializedData() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
+
bytes serializedData = 1;
+
+
clearSerializedData() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
+
bytes serializedData = 1;
+
+
clearSerializedData() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
+
bytes serializedData = 1;
+
+
clearSerializedData() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
+
bytes serializedData = 1;
+
+
clearSerializedData() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
+
bytes serializedData = 1;
+
+
clearUuid() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
string uuid = 1;
+
+
clearValue() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
int64 value = 2;
+
+
clock() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns the value of the clock record component.
+
+
Clock<TimestampT> - Interface in com.usatiuk.kleppmanntree
+
 
+
clone() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
clone() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
close() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
close() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
close() - Method in class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
close() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
close() - Method in class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
close() - Method in class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
close() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
close() - Method in class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
close() - Method in interface com.usatiuk.objects.snapshot.Snapshot
+
 
+
close() - Method in interface com.usatiuk.utils.AutoCloseableNoThrow
+
 
+
close() - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
CloseableKvIterator<K,V> - Interface in com.usatiuk.objects.iterators
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
collectRefsTo() - Method in interface com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
 
+
collectRefsTo() - Method in interface com.usatiuk.dhfs.refcount.JDataRefcounted
+
 
+
collectRefsTo() - Method in interface com.usatiuk.dhfs.remoteobj.JDataRemote
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
 
+
collectRefsTo() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
 
+
com.usatiuk.dhfs - package com.usatiuk.dhfs
+
 
+
com.usatiuk.dhfs.autosync - package com.usatiuk.dhfs.autosync
+
 
+
com.usatiuk.dhfs.invalidation - package com.usatiuk.dhfs.invalidation
+
 
+
com.usatiuk.dhfs.jkleppmanntree - package com.usatiuk.dhfs.jkleppmanntree
+
 
+
com.usatiuk.dhfs.jkleppmanntree.structs - package com.usatiuk.dhfs.jkleppmanntree.structs
+
 
+
com.usatiuk.dhfs.jmap - package com.usatiuk.dhfs.jmap
+
 
+
com.usatiuk.dhfs.peerdiscovery - package com.usatiuk.dhfs.peerdiscovery
+
 
+
com.usatiuk.dhfs.peerdiscovery.local - package com.usatiuk.dhfs.peerdiscovery.local
+
 
+
com.usatiuk.dhfs.peersync - package com.usatiuk.dhfs.peersync
+
 
+
com.usatiuk.dhfs.peersync.api - package com.usatiuk.dhfs.peersync.api
+
 
+
com.usatiuk.dhfs.peersync.structs - package com.usatiuk.dhfs.peersync.structs
+
 
+
com.usatiuk.dhfs.peertrust - package com.usatiuk.dhfs.peertrust
+
 
+
com.usatiuk.dhfs.persistence - package com.usatiuk.dhfs.persistence
+
 
+
com.usatiuk.dhfs.refcount - package com.usatiuk.dhfs.refcount
+
 
+
com.usatiuk.dhfs.remoteobj - package com.usatiuk.dhfs.remoteobj
+
 
+
com.usatiuk.dhfs.repository - package com.usatiuk.dhfs.repository
+
 
+
com.usatiuk.dhfs.rpc - package com.usatiuk.dhfs.rpc
+
 
+
com.usatiuk.dhfs.syncmap - package com.usatiuk.dhfs.syncmap
+
 
+
com.usatiuk.dhfs.webapi - package com.usatiuk.dhfs.webapi
+
 
+
com.usatiuk.dhfs.webui - package com.usatiuk.dhfs.webui
+
 
+
com.usatiuk.dhfsfs.objects - package com.usatiuk.dhfsfs.objects
+
 
+
com.usatiuk.dhfsfs.service - package com.usatiuk.dhfsfs.service
+
 
+
com.usatiuk.dhfsfuse - package com.usatiuk.dhfsfuse
+
 
+
com.usatiuk.kleppmanntree - package com.usatiuk.kleppmanntree
+
 
+
com.usatiuk.objects - package com.usatiuk.objects
+
 
+
com.usatiuk.objects.iterators - package com.usatiuk.objects.iterators
+
 
+
com.usatiuk.objects.snapshot - package com.usatiuk.objects.snapshot
+
 
+
com.usatiuk.objects.stores - package com.usatiuk.objects.stores
+
 
+
com.usatiuk.objects.transaction - package com.usatiuk.objects.transaction
+
 
+
com.usatiuk.utils - package com.usatiuk.utils
+
 
+
CombinedTimestamp<TimestampT,PeerIdT> - Record Class in com.usatiuk.kleppmanntree
+
 
+
CombinedTimestamp(TimestampT, PeerIdT) - Constructor for record class com.usatiuk.kleppmanntree.CombinedTimestamp
+
+
Creates an instance of a CombinedTimestamp record class.
+
+
commit() - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
commit() - Method in class com.usatiuk.objects.transaction.TransactionManagerImpl
+
 
+
commit(TransactionImpl) - Method in class com.usatiuk.objects.transaction.TransactionService
+
 
+
commitOpForHost(PeerId, Op) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
commitTx(TxManifestObj<? extends JDataVersionedWrapper>, long) - Method in class com.usatiuk.objects.stores.CachingObjectPersistentStore
+
 
+
commitTx(TxManifestRaw, long) - Method in class com.usatiuk.objects.stores.LmdbObjectPersistentStore
+
 
+
commitTx(TxManifestRaw, long) - Method in class com.usatiuk.objects.stores.MemoryObjectPersistentStore
+
 
+
commitTx(TxManifestRaw, long) - Method in interface com.usatiuk.objects.stores.ObjectPersistentStore
+
 
+
commitTx(Collection<TxRecord.TxObjectRecord<?>>) - Method in class com.usatiuk.objects.stores.WritebackObjectPersistentStore
+
 
+
compareChangelogs(PMap<PeerId, Long>, PMap<PeerId, Long>) - Static method in class com.usatiuk.dhfs.remoteobj.SyncHelper
+
 
+
compareTo(JMapKey) - Method in record class com.usatiuk.dhfs.jmap.JMapLongKey
+
 
+
compareTo(PeerId) - Method in record class com.usatiuk.dhfs.peersync.PeerId
+
 
+
compareTo(JDataRef) - Method in record class com.usatiuk.dhfs.jmap.JMapRef
+
 
+
compareTo(JDataRef) - Method in record class com.usatiuk.dhfs.refcount.JDataNormalRef
+
 
+
compareTo(CombinedTimestamp<TimestampT, PeerIdT>) - Method in record class com.usatiuk.kleppmanntree.CombinedTimestamp
+
 
+
compareTo(JObjectKey) - Method in interface com.usatiuk.objects.JObjectKey
+
 
+
compareTo(JObjectKey) - Method in class com.usatiuk.objects.JObjectKeyImpl
+
 
+
compareTo(JObjectKey) - Method in record class com.usatiuk.objects.JObjectKeyMax
+
 
+
compareTo(JObjectKey) - Method in record class com.usatiuk.objects.JObjectKeyMin
+
 
+
confirmedDeletes() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the confirmedDeletes record component.
+
+
CONFLICT - Enum constant in enum class com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult
+
 
+
ConflictResolver - Interface in com.usatiuk.dhfs.remoteobj
+
 
+
containsKey(CombinedTimestamp<TimestampT, PeerIdT>) - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
create(String, long) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Create a new file with the given name and mode.
+
+
create(String, long, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
createNewNode(JObjectKey, JObjectKey, JKleppmannTreeNodeMeta) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
createNewNode(NodeIdT, NodeIdT, MetaT) - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
createTransaction() - Method in class com.usatiuk.objects.transaction.TransactionService
+
 
+
ctime() - Method in record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Returns the value of the ctime record component.
+
+
cTime() - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Returns the value of the cTime record component.
+
+
current() - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
current() - Method in class com.usatiuk.objects.transaction.TransactionManagerImpl
+
 
+
CurrentTransaction - Class in com.usatiuk.objects.transaction
+
 
+
CurrentTransaction() - Constructor for class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
customizeHttpsServer(HttpServerOptions) - Method in class com.usatiuk.dhfs.peertrust.PeerTrustServerCustomizer
+
 
+
+

D

+
+
data() - Method in record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
Returns the value of the data record component.
+
+
data() - Method in record class com.usatiuk.dhfs.remoteobj.ReceivedObject
+
+
Returns the value of the data record component.
+
+
data() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Returns the value of the data record component.
+
+
data() - Method in record class com.usatiuk.dhfsfs.objects.ChunkData
+
+
Returns the value of the data record component.
+
+
data() - Method in interface com.usatiuk.objects.JDataVersionedWrapper
+
 
+
data() - Method in record class com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
Returns the value of the data record component.
+
+
data() - Method in class com.usatiuk.objects.JDataVersionedWrapperLazy
+
 
+
data() - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite
+
+
Returns the value of the data record component.
+
+
Data<V> - Interface in com.usatiuk.objects.iterators
+
 
+
DATA_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
dataKey() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
DataLocker - Class in com.usatiuk.utils
+
 
+
DataLocker() - Constructor for class com.usatiuk.utils.DataLocker
+
 
+
DataWrapper<V> - Record Class in com.usatiuk.objects.iterators
+
 
+
DataWrapper(V) - Constructor for record class com.usatiuk.objects.iterators.DataWrapper
+
+
Creates an instance of a DataWrapper record class.
+
+
DeadlockDetector - Class in Unnamed Package
+
 
+
DeadlockDetector() - Constructor for class DeadlockDetector
+
 
+
DefaultObjSyncHandler - Class in com.usatiuk.dhfs.remoteobj
+
 
+
DefaultObjSyncHandler() - Constructor for class com.usatiuk.dhfs.remoteobj.DefaultObjSyncHandler
+
 
+
DeferredInvalidationQueueData - Class in com.usatiuk.dhfs.invalidation
+
 
+
DeferredInvalidationQueueData() - Constructor for class com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueData
+
 
+
DeferredInvalidationQueueService - Class in com.usatiuk.dhfs.invalidation
+
 
+
DeferredInvalidationQueueService() - Constructor for class com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueService
+
 
+
deferredInvalidations - Variable in class com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueData
+
 
+
delete(JMapHolder<K>, K) - Method in class com.usatiuk.dhfs.jmap.JMapHelper
+
 
+
delete(JObjectKey) - Method in class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
delete(JObjectKey) - Method in interface com.usatiuk.objects.transaction.Transaction
+
 
+
deleteAll(JMapHolder<K>) - Method in class com.usatiuk.dhfs.jmap.JMapHelper
+
 
+
deleted() - Method in record class com.usatiuk.objects.stores.TxManifestObj
+
+
Returns the value of the deleted record component.
+
+
deleted() - Method in record class com.usatiuk.objects.stores.TxManifestRaw
+
+
Returns the value of the deleted record component.
+
+
deletePeer(String) - Method in class com.usatiuk.dhfs.webapi.PeerManagementApi
+
 
+
deletePeerAddress(String) - Method in class com.usatiuk.dhfs.webapi.PersistentPeerAddressApi
+
 
+
DeleterTxHook - Class in com.usatiuk.dhfs.refcount
+
 
+
DeleterTxHook() - Constructor for class com.usatiuk.dhfs.refcount.DeleterTxHook
+
 
+
DELETIONCANDIDATE_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
deserialize(byte[]) - Static method in class com.usatiuk.utils.SerializationHelper
+
 
+
deserialize(byte[], int) - Static method in class com.usatiuk.utils.SerializationHelper
+
 
+
deserialize(JDataRemoteDtoP) - Method in class com.usatiuk.dhfs.rpc.TemporaryRemoteObjectSerializer
+
 
+
deserialize(JObjectKeyP) - Method in class com.usatiuk.dhfs.JObjectKeyProtoSerializer
+
 
+
deserialize(PeerInfoP) - Method in class com.usatiuk.dhfs.peersync.PeerInfoProtoSerializer
+
 
+
deserialize(GetObjectReply) - Method in class com.usatiuk.dhfs.rpc.TemporaryReceivedObjectSerializer
+
 
+
deserialize(OpP) - Method in class com.usatiuk.dhfs.TemporaryOpSerializer
+
 
+
deserialize(InputStream) - Static method in class com.usatiuk.utils.SerializationHelper
+
 
+
deserialize(ByteBuffer) - Method in class com.usatiuk.objects.JavaDataSerializer
+
 
+
deserialize(ByteBuffer) - Method in class com.usatiuk.objects.JDataVersionedWrapperSerializer
+
 
+
deserialize(ByteBuffer) - Method in interface com.usatiuk.objects.ObjectSerializer
+
 
+
deserialize(M) - Method in interface com.usatiuk.dhfs.ProtoSerializer
+
 
+
DhfsFileService - Class in com.usatiuk.dhfsfs.service
+
+
Actual filesystem implementation.
+
+
DhfsFileService() - Constructor for class com.usatiuk.dhfsfs.service.DhfsFileService
+
 
+
DhfsFuse - Class in com.usatiuk.dhfsfuse
+
 
+
DhfsFuse() - Constructor for class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
DhfsObjectPeerDiscoveryApi - Class in com.usatiuk.dhfs.peerdiscovery
+
 
+
DhfsObjectPersistence - Class in com.usatiuk.dhfs.persistence
+
 
+
DhfsObjectSyncApi - Class in com.usatiuk.dhfs.repository
+
 
+
DhfsObjectSyncGrpc - Interface in com.usatiuk.dhfs.repository
+
 
+
DhfsObjectSyncGrpcBean - Class in com.usatiuk.dhfs.repository
+
 
+
DhfsObjectSyncGrpcClient - Class in com.usatiuk.dhfs.repository
+
 
+
DhfsObjectSyncGrpcClient(String, Channel, BiFunction<String, MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub, MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub>) - Constructor for class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
 
+
DhfsObjectSyncGrpcGrpc - Class in com.usatiuk.dhfs.repository
+
 
+
DhfsObjectSyncGrpcGrpc.AsyncService - Interface in com.usatiuk.dhfs.repository
+
 
+
DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub - Class in com.usatiuk.dhfs.repository
+
+
A stub to allow clients to do synchronous rpc calls to service DhfsObjectSyncGrpc.
+
+
DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub - Class in com.usatiuk.dhfs.repository
+
+
A stub to allow clients to do ListenableFuture-style rpc calls to service DhfsObjectSyncGrpc.
+
+
DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase - Class in com.usatiuk.dhfs.repository
+
+
Base class for the server implementation of the service DhfsObjectSyncGrpc.
+
+
DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub - Class in com.usatiuk.dhfs.repository
+
+
A stub to allow clients to do asynchronous rpc calls to service DhfsObjectSyncGrpc.
+
+
DhfsObjectSyncGrpcImplBase() - Constructor for class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
DhfsObjectSyncGrpcImplBase() - Constructor for class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
DhfsStorageServerApp() - Constructor for class com.usatiuk.dhfsfuse.Main.DhfsStorageServerApp
+
 
+
DIRECTORY - Enum constant in enum class com.usatiuk.dhfsfs.service.GetattrType
+
 
+
DirectoryNotEmptyException - Exception Class in com.usatiuk.dhfsfs.service
+
+
DirectoryNotEmptyException is thrown when a directory is not empty.
+
+
DirectoryNotEmptyException() - Constructor for exception class com.usatiuk.dhfsfs.service.DirectoryNotEmptyException
+
 
+
discoverPeers() - Method in class com.usatiuk.dhfs.peerdiscovery.PersistentStaticPeerDiscovery
+
 
+
discoverPeers() - Method in class com.usatiuk.dhfs.peerdiscovery.StaticPeerDiscovery
+
 
+
doInitialSync(PeerId) - Method in class com.usatiuk.dhfs.remoteobj.SyncHandler
+
 
+
dtoClass() - Method in interface com.usatiuk.dhfs.remoteobj.JDataRemote
+
 
+
dtoClass() - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
DtoMapper<F,D> - Interface in com.usatiuk.dhfs.syncmap
+
 
+
DtoMapperService - Class in com.usatiuk.dhfs.syncmap
+
 
+
DtoMapperService(Instance<DtoMapper<?, ?>>) - Constructor for class com.usatiuk.dhfs.syncmap.DtoMapperService
+
 
+
+

E

+
+
effectiveOp() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Returns the value of the effectiveOp record component.
+
+
effects() - Method in record class com.usatiuk.kleppmanntree.LogRecord
+
+
Returns the value of the effects record component.
+
+
ENTRIES_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
EQUAL - Enum constant in enum class com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult
+
 
+
equals(Object) - Method in record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.invalidation.InvalidationQueueEntry
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jmap.JMapLongKey
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.jmap.JMapRef
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
equals(Object) - Method in record class com.usatiuk.dhfs.peersync.api.ApiPeerInfo
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.peersync.PeerId
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
equals(Object) - Method in record class com.usatiuk.dhfs.refcount.JDataNormalRef
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.remoteobj.ReceivedObject
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
equals(Object) - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
equals(Object) - Method in record class com.usatiuk.dhfs.webapi.KnownPeerPut
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.webapi.PeerAddressInfo
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.webapi.PeerInfo
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfs.webapi.SelfInfo
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfsfs.objects.ChunkData
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfsfs.objects.FileDto
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.kleppmanntree.CombinedTimestamp
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.kleppmanntree.LogEffectOld
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.kleppmanntree.LogRecord
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.kleppmanntree.OpMove
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.iterators.DataWrapper
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.iterators.TombstoneImpl
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in class com.usatiuk.objects.JObjectKeyImpl
+
 
+
equals(Object) - Method in record class com.usatiuk.objects.JObjectKeyMax
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.JObjectKeyMin
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.stores.PendingDelete
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.stores.PendingWrite
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.stores.TxManifestObj
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.stores.TxManifestRaw
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted
+
+
Indicates whether some other object is "equal to" this one.
+
+
equals(Object) - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite
+
+
Indicates whether some other object is "equal to" this one.
+
+
estimateSize() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
 
+
estimateSize() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
estimateSize() - Method in interface com.usatiuk.dhfs.remoteobj.JDataRemote
+
 
+
estimateSize() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
 
+
estimateSize() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
estimateSize() - Method in record class com.usatiuk.dhfsfs.objects.ChunkData
+
 
+
estimateSize() - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
estimateSize() - Method in interface com.usatiuk.objects.JData
+
 
+
estimateSize() - Method in interface com.usatiuk.objects.JDataVersionedWrapper
+
 
+
estimateSize() - Method in record class com.usatiuk.objects.JDataVersionedWrapperImpl
+
 
+
estimateSize() - Method in class com.usatiuk.objects.JDataVersionedWrapperLazy
+
 
+
executeTx(Runnable) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
executeTx(Supplier<T>) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
existsPeer(PeerId) - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
extractOps(JKleppmannTreePersistentData, PeerId) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpExtractor
+
 
+
extractOps(RemoteObjectMeta, PeerId) - Method in class com.usatiuk.dhfs.invalidation.RemoteObjectMetaOpExtractor
+
 
+
extractOps(JData, PeerId) - Method in class com.usatiuk.dhfs.invalidation.OpExtractorService
+
 
+
extractOps(T, PeerId) - Method in interface com.usatiuk.dhfs.invalidation.OpExtractor
+
 
+
+

F

+
+
file() - Method in record class com.usatiuk.dhfsfs.objects.FileDto
+
+
Returns the value of the file record component.
+
+
File - Record Class in com.usatiuk.dhfsfs.objects
+
+
File is a data structure that represents a file in the file system
+
+
File(JObjectKey, long, long, long, boolean) - Constructor for record class com.usatiuk.dhfsfs.objects.File
+
+
Creates an instance of a File record class.
+
+
FILE - Enum constant in enum class com.usatiuk.dhfsfs.service.GetattrType
+
 
+
FileDto - Record Class in com.usatiuk.dhfsfs.objects
+
+
FileDto is a data transfer object that contains a file and its chunks.
+
+
FileDto(File, List<Pair<Long, JObjectKey>>) - Constructor for record class com.usatiuk.dhfsfs.objects.FileDto
+
+
Creates an instance of a FileDto record class.
+
+
FileDtoMapper - Class in com.usatiuk.dhfsfs.objects
+
+
Maps a File object to a FileDto object and vice versa.
+
+
FileDtoMapper() - Constructor for class com.usatiuk.dhfsfs.objects.FileDtoMapper
+
 
+
FileDtoP - Class in com.usatiuk.dhfs.persistence
+
+
+ TODO: Serialization
+
+
FileDtoP.Builder - Class in com.usatiuk.dhfs.persistence
+
+
+ TODO: Serialization
+
+
FileDtoPOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
FileHelper - Class in com.usatiuk.dhfsfs.objects
+
+
Helper class for working with files.
+
+
FileHelper() - Constructor for class com.usatiuk.dhfsfs.objects.FileHelper
+
 
+
fileIno() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
Returns the value of the fileIno record component.
+
+
FileSyncHandler - Class in com.usatiuk.dhfsfs.objects
+
+
Handles synchronization of file objects.
+
+
FileSyncHandler() - Constructor for class com.usatiuk.dhfsfs.objects.FileSyncHandler
+
 
+
fillInStackTrace() - Method in exception class com.usatiuk.dhfsfs.service.DirectoryNotEmptyException
+
 
+
fillInStackTrace() - Method in exception class com.usatiuk.kleppmanntree.AlreadyExistsException
+
 
+
fillInStackTrace() - Method in exception class com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace
+
 
+
findParent(Function<TreeNode<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>, Boolean>) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
findParent(Function<TreeNode<TimestampT, PeerIdT, MetaT, NodeIdT>, Boolean>) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
first() - Static method in interface com.usatiuk.objects.JObjectKey
+
 
+
from() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
Returns the value of the from record component.
+
+
fromByteBuffer(ByteBuffer) - Static method in interface com.usatiuk.objects.JObjectKey
+
 
+
fromBytes(byte[]) - Static method in interface com.usatiuk.objects.JObjectKey
+
 
+
fromDto(FileDto) - Method in class com.usatiuk.dhfsfs.objects.FileDtoMapper
+
 
+
fromDto(D) - Method in interface com.usatiuk.dhfs.syncmap.DtoMapper
+
 
+
fromDto(D, Class<F>) - Method in class com.usatiuk.dhfs.syncmap.DtoMapperService
+
 
+
frozen() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
Returns the value of the frozen record component.
+
+
frozen() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns the value of the frozen record component.
+
+
frozen() - Method in interface com.usatiuk.dhfs.refcount.JDataRefcounted
+
 
+
frozen() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Returns the value of the frozen record component.
+
+
frozen() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the frozen record component.
+
+
+

G

+
+
GE - Enum constant in enum class com.usatiuk.objects.iterators.IteratorStart
+
 
+
generateCertificate(KeyPair, String) - Static method in class com.usatiuk.dhfs.peertrust.CertificateTools
+
 
+
generateKeyPair() - Static method in class com.usatiuk.dhfs.peertrust.CertificateTools
+
 
+
get() - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
get(long) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
get(JMapHolder<K>, K) - Method in class com.usatiuk.dhfs.jmap.JMapHelper
+
 
+
get(Class<T>, JObjectKey) - Method in class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
get(Class<T>, JObjectKey) - Method in interface com.usatiuk.objects.transaction.Transaction
+
 
+
getAcceptedIssuers() - Method in class com.usatiuk.dhfs.peertrust.PeerTrustManager
+
 
+
getAddress(PeerId) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
getAddress(ByteBuffer) - Static method in class com.usatiuk.utils.UninitializedByteBuffer
+
 
+
getAll() - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
getAll() - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
getAllPeers() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeerInterface
+
 
+
getAllPeers() - Method in interface com.usatiuk.kleppmanntree.PeerInterface
+
 
+
getAllWait() - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
getAllWait(int) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
getAllWait(int, long) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
getattr(JObjectKey) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Get the attributes of a file or directory.
+
+
getattr(String, FileStat) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
GetattrRes - Record Class in com.usatiuk.dhfsfs.service
+
+
GetattrRes is a record that represents the result of a getattr operation.
+
+
GetattrRes(long, long, long, GetattrType) - Constructor for record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Creates an instance of a GetattrRes record class.
+
+
GetattrType - Enum Class in com.usatiuk.dhfsfs.service
+
 
+
getAvailableHosts() - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
getById(JObjectKey) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
getById(NodeIdT) - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
getCanDeleteMethod() - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
 
+
getChangelog() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
getChangelog() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
getChangelog() - Method in interface com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
getChangelogBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
getChangelogOrBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
getChangelogOrBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
getChangelogOrBuilder() - Method in interface com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
getChunks(File) - Method in class com.usatiuk.dhfsfs.objects.FileHelper
+
+
Get the chunks of a file.
+
+
getData() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
bytes data = 2;
+
+
getData() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
+
bytes data = 2;
+
+
getData() - Method in interface com.usatiuk.dhfs.persistence.ChunkDataPOrBuilder
+
+
bytes data = 2;
+
+
getData(Class<T>, JObjectKey) - Method in class com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
 
+
getDataLocal(Class<T>, JObjectKey) - Method in class com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
getDefaultInstance() - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
getDefaultInstanceForType() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
getDelay() - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
getDeletionCandidate() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
bool deletionCandidate = 2;
+
+
getDeletionCandidate() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
+
bool deletionCandidate = 2;
+
+
getDeletionCandidate() - Method in interface com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder
+
+
bool deletionCandidate = 2;
+
+
getDescriptor() - Static method in class com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.DhfsObjectPersistence
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncApi
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
getDescriptor() - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
getDescriptorForType() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
getEntries(int) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntries(int) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntries(int) - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelogOrBuilder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesBuilder(int) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesBuilderList() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesCount() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesCount() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesCount() - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelogOrBuilder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesList() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesList() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesList() - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelogOrBuilder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesOrBuilder(int) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesOrBuilder(int) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesOrBuilder(int) - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelogOrBuilder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesOrBuilderList() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesOrBuilderList() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEntriesOrBuilderList() - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelogOrBuilder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
getEscapedRefs() - Method in record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
 
+
getEscapedRefs() - Method in interface com.usatiuk.dhfs.invalidation.Op
+
 
+
getEscapedRefs() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
 
+
getEscapedRefs() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
 
+
getForPeer(PeerId) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory
+
 
+
getForPeer(PeerIdT) - Method in interface com.usatiuk.kleppmanntree.PeerTimestampLogInterface
+
 
+
getFreeSpace() - Method in class com.usatiuk.objects.stores.LmdbObjectPersistentStore
+
 
+
getFreeSpace() - Method in class com.usatiuk.objects.stores.MemoryObjectPersistentStore
+
 
+
getFreeSpace() - Method in interface com.usatiuk.objects.stores.ObjectPersistentStore
+
 
+
getGetObjectMethod() - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
 
+
getHostStateSnapshot() - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
getId() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
getId() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
getId() - Method in interface com.usatiuk.dhfs.persistence.PeerIdPOrBuilder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
getIdBuilder() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
getIdOrBuilder() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
getIdOrBuilder() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
getIdOrBuilder() - Method in interface com.usatiuk.dhfs.persistence.PeerIdPOrBuilder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
getIterator(JMapHolder<K>) - Method in class com.usatiuk.dhfs.jmap.JMapHelper
+
 
+
getIterator(JMapHolder<K>, IteratorStart, K) - Method in class com.usatiuk.dhfs.jmap.JMapHelper
+
 
+
getIterator(IteratorStart, JObjectKey) - Method in class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
getIterator(IteratorStart, JObjectKey) - Method in interface com.usatiuk.objects.transaction.Transaction
+
 
+
getIterator(IteratorStart, K) - Method in interface com.usatiuk.objects.snapshot.Snapshot
+
 
+
getIterator(JObjectKey) - Method in interface com.usatiuk.objects.transaction.Transaction
+
 
+
getKey() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
getKey() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
getKey() - Method in interface com.usatiuk.dhfs.persistence.ChunkDataPOrBuilder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
getKey() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
getKey() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
getKey() - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelog.entries_EntryOrBuilder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
getKeyBuilder() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
getKeyBuilder() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
getKeyOrBuilder() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
getKeyOrBuilder() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
getKeyOrBuilder() - Method in interface com.usatiuk.dhfs.persistence.ChunkDataPOrBuilder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
getKeyOrBuilder() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
getKeyOrBuilder() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
getKeyOrBuilder() - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelog.entries_EntryOrBuilder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
getLog() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
getLog() - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
getLostFoundId() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
getLostFoundId() - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
getMeta(JObjectKey) - Method in class com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
 
+
getMsg(int) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsg(int) - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsg(int) - Method in interface com.usatiuk.dhfs.repository.OpPushRequestOrBuilder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgBuilder(int) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgBuilderList() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgCount() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgCount() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgCount() - Method in interface com.usatiuk.dhfs.repository.OpPushRequestOrBuilder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgList() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgList() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgList() - Method in interface com.usatiuk.dhfs.repository.OpPushRequestOrBuilder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgOrBuilder(int) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgOrBuilder(int) - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgOrBuilder(int) - Method in interface com.usatiuk.dhfs.repository.OpPushRequestOrBuilder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgOrBuilderList() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgOrBuilderList() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getMsgOrBuilderList() - Method in interface com.usatiuk.dhfs.repository.OpPushRequestOrBuilder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
getName() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
+
string name = 1;
+
+
getName() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
+
string name = 1;
+
+
getName() - Method in interface com.usatiuk.dhfs.persistence.JObjectKeyPOrBuilder
+
+
string name = 1;
+
+
getName() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getName() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getName() - Method in interface com.usatiuk.dhfs.repository.CanDeleteRequestOrBuilder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getName() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getName() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getName() - Method in interface com.usatiuk.dhfs.repository.GetObjectRequestOrBuilder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameBuilder() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameBytes() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
+
string name = 1;
+
+
getNameBytes() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
+
string name = 1;
+
+
getNameBytes() - Method in interface com.usatiuk.dhfs.persistence.JObjectKeyPOrBuilder
+
+
string name = 1;
+
+
getNameOrBuilder() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameOrBuilder() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameOrBuilder() - Method in interface com.usatiuk.dhfs.repository.CanDeleteRequestOrBuilder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameOrBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameOrBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNameOrBuilder() - Method in interface com.usatiuk.dhfs.repository.GetObjectRequestOrBuilder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
getNewNodeId() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
getNewNodeId() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
getNewNodeId() - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
getObject(PeerId, GetObjectRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl
+
 
+
getObject(GetObjectRequest) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpc
+
 
+
getObject(GetObjectRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcBean
+
 
+
getObject(GetObjectRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
 
+
getObject(GetObjectRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub
+
 
+
getObject(GetObjectRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub
+
 
+
getObject(GetObjectRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
getObject(GetObjectRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub
+
 
+
getObject(GetObjectRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServer
+
 
+
getObject(GetObjectRequest, StreamObserver<GetObjectReply>) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.AsyncService
+
 
+
getObject(GetObjectRequest, StreamObserver<GetObjectReply>) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub
+
 
+
getObject(JObjectKey, Function<Pair<PeerId, ReceivedObject>, Boolean>) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceClient
+
 
+
GetObjectReply - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.GetObjectReply
+
+
GetObjectReply.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.GetObjectReply
+
+
GetObjectReplyOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
GetObjectRequest - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.GetObjectRequest
+
+
GetObjectRequest.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.GetObjectRequest
+
+
GetObjectRequestOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
getOpPushMethod() - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
getParserForType() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
getPeerAddress(String) - Method in class com.usatiuk.dhfs.webapi.PersistentPeerAddressApi
+
 
+
getPeerAddresses() - Method in class com.usatiuk.dhfs.webapi.PersistentPeerAddressApi
+
 
+
getPeerInfo(PeerId) - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
getPeerInfoImpl(JObjectKey) - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
getPeers() - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
getPeersNoSelf() - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
getPeerTimestampLog() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
getPeerTimestampLog() - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
getPendingOpsForHost(PeerId, int) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
getPeriodicPushOp() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
getPersistentPeerAddress(PeerId) - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
getPersistentPeerAddresses() - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
getPingMethod() - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
 
+
getPort() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
uint32 port = 2;
+
+
getPort() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
uint32 port = 2;
+
+
getPort() - Method in interface com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfoOrBuilder
+
+
uint32 port = 2;
+
+
getPriority() - Method in class com.usatiuk.dhfs.autosync.AutosyncTxHook
+
 
+
getPriority() - Method in class com.usatiuk.dhfs.refcount.DeleterTxHook
+
 
+
getPriority() - Method in class com.usatiuk.dhfs.refcount.RefcounterTxHook
+
 
+
getPriority() - Method in class com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook
+
 
+
getPriority() - Method in interface com.usatiuk.objects.transaction.PreCommitTxHook
+
 
+
getPushedData() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
getPushedData() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
getPushedData() - Method in interface com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
getPushedDataBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
getPushedDataOrBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
getPushedDataOrBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
getPushedDataOrBuilder() - Method in interface com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
getReachablePeers() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory
+
 
+
getReferrers(int) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrers(int) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrers(int) - Method in interface com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersBuilder(int) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersBuilderList() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersCount() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersCount() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersCount() - Method in interface com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersList() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersList() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersList() - Method in interface com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersOrBuilder(int) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersOrBuilder(int) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersOrBuilder(int) - Method in interface com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersOrBuilderList() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersOrBuilderList() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getReferrersOrBuilderList() - Method in interface com.usatiuk.dhfs.repository.CanDeleteReplyOrBuilder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
getRootId() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
getRootId() - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
getSecurePort() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
uint32 securePort = 3;
+
+
getSecurePort() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
uint32 securePort = 3;
+
+
getSecurePort() - Method in interface com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfoOrBuilder
+
+
uint32 securePort = 3;
+
+
getSeenButNotAddedHosts() - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
getSelfCertificate() - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
getSelfId() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeerInterface
+
 
+
getSelfId() - Method in interface com.usatiuk.kleppmanntree.PeerInterface
+
 
+
getSelfInfo() - Method in class com.usatiuk.dhfs.peersync.api.PeerSyncApi
+
 
+
getSelfInfo() - Method in interface com.usatiuk.dhfs.peersync.api.PeerSyncApiClient
+
 
+
getSelfInfo(PeerAddress) - Method in class com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic
+
 
+
getSelfKeypair() - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
getSelfUuid() - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in interface com.usatiuk.dhfs.persistence.FileDtoPOrBuilder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in interface com.usatiuk.dhfs.persistence.JDataPOrBuilder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in interface com.usatiuk.dhfs.persistence.JDataRemoteDtoPOrBuilder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in interface com.usatiuk.dhfs.persistence.PeerInfoPOrBuilder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in class com.usatiuk.dhfs.repository.OpP
+
+
bytes serializedData = 1;
+
+
getSerializedData() - Method in interface com.usatiuk.dhfs.repository.OpPOrBuilder
+
+
bytes serializedData = 1;
+
+
getSerializedSize() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
getSerializedSize() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
getServiceDescriptor() - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
 
+
getSnapshot() - Method in class com.usatiuk.objects.stores.CachingObjectPersistentStore
+
 
+
getSnapshot() - Method in class com.usatiuk.objects.stores.LmdbObjectPersistentStore
+
 
+
getSnapshot() - Method in class com.usatiuk.objects.stores.MemoryObjectPersistentStore
+
 
+
getSnapshot() - Method in interface com.usatiuk.objects.stores.ObjectPersistentStore
+
 
+
getSnapshot() - Method in class com.usatiuk.objects.stores.SerializingObjectPersistentStore
+
 
+
getSnapshot() - Method in class com.usatiuk.objects.stores.WritebackObjectPersistentStore
+
 
+
getSpecificObject(JObjectKey, PeerId) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceClient
+
 
+
getStub() - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
 
+
getSynchronizedPeers() - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
getSynchronizedPeersNoSelf() - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
getTimestamp() - Method in interface com.usatiuk.kleppmanntree.Clock
+
 
+
getTotalSpace() - Method in class com.usatiuk.objects.stores.LmdbObjectPersistentStore
+
 
+
getTotalSpace() - Method in class com.usatiuk.objects.stores.MemoryObjectPersistentStore
+
 
+
getTotalSpace() - Method in interface com.usatiuk.objects.stores.ObjectPersistentStore
+
 
+
getTrashId() - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
getTrashId() - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
getTree(JObjectKey) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager
+
 
+
getTree(JObjectKey, Supplier<JKleppmannTreeNodeMeta>) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager
+
 
+
getUuid() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
string uuid = 1;
+
+
getUuid() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
string uuid = 1;
+
+
getUuid() - Method in interface com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfoOrBuilder
+
+
string uuid = 1;
+
+
getUuidBytes() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
string uuid = 1;
+
+
getUuidBytes() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
string uuid = 1;
+
+
getUuidBytes() - Method in interface com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfoOrBuilder
+
+
string uuid = 1;
+
+
getValue() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
int64 value = 2;
+
+
getValue() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
+
int64 value = 2;
+
+
getValue() - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelog.entries_EntryOrBuilder
+
+
int64 value = 2;
+
+
GT - Enum constant in enum class com.usatiuk.objects.iterators.IteratorStart
+
 
+
+

H

+
+
handle(RoutingContext) - Method in class com.usatiuk.dhfs.webui.WebUiRouter
+
 
+
handleConnectionError(PeerId) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
handleConnectionError(PeerInfo) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
handleCrash(JObjectKey) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeInitialSyncProcessor
+
 
+
handleCrash(JObjectKey) - Method in interface com.usatiuk.dhfs.peersync.InitialSyncProcessor
+
 
+
handleCrash(JObjectKey) - Method in class com.usatiuk.dhfs.remoteobj.RemoteObjectInitialSyncProcessor
+
 
+
handleOp(PeerId, IndexUpdateOp) - Method in class com.usatiuk.dhfs.remoteobj.IndexUpdateOpHandler
+
 
+
handleOp(PeerId, Op) - Method in class com.usatiuk.dhfs.invalidation.OpHandlerService
+
 
+
handleOp(PeerId, JKleppmannTreeOpWrapper) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpHandler
+
 
+
handleOp(PeerId, JKleppmannTreePeriodicPushOp) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicOpHandler
+
 
+
handleOp(PeerId, T) - Method in interface com.usatiuk.dhfs.invalidation.OpHandler
+
 
+
handlePeerConnected(PeerId) - Method in class com.usatiuk.dhfs.invalidation.DeferredInvalidationQueueService
+
 
+
handlePeerConnected(PeerId) - Method in interface com.usatiuk.dhfs.peersync.PeerConnectedEventListener
+
 
+
handlePeerDisconnected(PeerId) - Method in interface com.usatiuk.dhfs.peersync.PeerDisconnectedEventListener
+
 
+
handlePeerDisconnected(PeerId) - Method in class com.usatiuk.dhfs.rpc.RpcClientFactory
+
 
+
handleRemoteUpdate(PeerId, JObjectKey, PMap<PeerId, Long>, PeerInfo) - Method in class com.usatiuk.dhfs.peersync.PeerInfoSyncHandler
+
 
+
handleRemoteUpdate(PeerId, JObjectKey, PMap<PeerId, Long>, JDataRemote) - Method in class com.usatiuk.dhfs.remoteobj.DefaultObjSyncHandler
+
 
+
handleRemoteUpdate(PeerId, JObjectKey, PMap<PeerId, Long>, FileDto) - Method in class com.usatiuk.dhfsfs.objects.FileSyncHandler
+
 
+
handleRemoteUpdate(PeerId, JObjectKey, PMap<PeerId, Long>, D) - Method in interface com.usatiuk.dhfs.remoteobj.ObjSyncHandler
+
 
+
handleRemoteUpdate(PeerId, JObjectKey, PMap<PeerId, Long>, D) - Method in class com.usatiuk.dhfs.remoteobj.SyncHandler
+
 
+
hasChangelog() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
hasChangelog() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
hasChangelog() - Method in interface com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
hashCode() - Method in record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.invalidation.InvalidationQueueEntry
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jmap.JMapLongKey
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.jmap.JMapRef
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
hashCode() - Method in record class com.usatiuk.dhfs.peersync.api.ApiPeerInfo
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.peersync.PeerId
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
hashCode() - Method in record class com.usatiuk.dhfs.refcount.JDataNormalRef
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.remoteobj.ReceivedObject
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
hashCode() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
hashCode() - Method in record class com.usatiuk.dhfs.webapi.KnownPeerPut
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.webapi.PeerAddressInfo
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.webapi.PeerInfo
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfs.webapi.SelfInfo
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfsfs.objects.ChunkData
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfsfs.objects.FileDto
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.kleppmanntree.CombinedTimestamp
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.kleppmanntree.LogEffectOld
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.kleppmanntree.LogRecord
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.kleppmanntree.OpMove
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.iterators.DataWrapper
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.iterators.TombstoneImpl
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in class com.usatiuk.objects.JObjectKeyImpl
+
 
+
hashCode() - Method in record class com.usatiuk.objects.JObjectKeyMax
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.JObjectKeyMin
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.stores.PendingDelete
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.stores.PendingWrite
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.stores.TxManifestObj
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.stores.TxManifestRaw
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted
+
+
Returns a hash code value for this object.
+
+
hashCode() - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite
+
+
Returns a hash code value for this object.
+
+
HashSetDelayedBlockingQueue<T> - Class in com.usatiuk.utils
+
 
+
HashSetDelayedBlockingQueue(long) - Constructor for class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
hasId() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
hasId() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
hasId() - Method in interface com.usatiuk.dhfs.persistence.PeerIdPOrBuilder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
hasImmediate() - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
hasImpl() - Method in class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
hasImpl() - Method in class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
hasImpl() - Method in class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
hasImpl() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
hasImpl() - Method in class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
hasKey() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
hasKey() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
hasKey() - Method in interface com.usatiuk.dhfs.persistence.ChunkDataPOrBuilder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
hasKey() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
hasKey() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
hasKey() - Method in interface com.usatiuk.dhfs.persistence.ObjectChangelog.entries_EntryOrBuilder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
hasLocalData() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the hasLocalData record component.
+
+
hasName() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
hasName() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
hasName() - Method in interface com.usatiuk.dhfs.repository.CanDeleteRequestOrBuilder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
hasName() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
hasName() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
hasName() - Method in interface com.usatiuk.dhfs.repository.GetObjectRequestOrBuilder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
hasNext() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
hasNext() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
hasNext() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
hasNext() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
hasPendingOpsForHost(PeerId) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
hasPrev() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
hasPrev() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
hasPrev() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
hasPrev() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
hasPrev() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
hasPushedData() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
hasPushedData() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
hasPushedData() - Method in interface com.usatiuk.dhfs.repository.GetObjectReplyOrBuilder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
holder() - Method in record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Returns the value of the holder record component.
+
+
holder() - Method in record class com.usatiuk.dhfs.jmap.JMapRef
+
+
Returns the value of the holder record component.
+
+
HostStateSnapshot(Collection<PeerId>, Collection<PeerId>) - Constructor for record class com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot
+
+
Creates an instance of a HostStateSnapshot record class.
+
+
+

I

+
+
id() - Method in record class com.usatiuk.dhfs.peersync.PeerId
+
+
Returns the value of the id record component.
+
+
id() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Returns the value of the id record component.
+
+
id() - Method in interface com.usatiuk.objects.snapshot.Snapshot
+
 
+
ID_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
IndexUpdateOp - Record Class in com.usatiuk.dhfs.invalidation
+
 
+
IndexUpdateOp(JObjectKey, PMap<PeerId, Long>, JDataRemoteDto) - Constructor for record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
Creates an instance of a IndexUpdateOp record class.
+
+
IndexUpdateOpHandler - Class in com.usatiuk.dhfs.remoteobj
+
 
+
IndexUpdateOpHandler() - Constructor for class com.usatiuk.dhfs.remoteobj.IndexUpdateOpHandler
+
 
+
initialSyncDone() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Returns the value of the initialSyncDone record component.
+
+
InitialSyncProcessor<T> - Interface in com.usatiuk.dhfs.peersync
+
 
+
inoToParent(JObjectKey) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Get the parent directory of a file or directory.
+
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
internalGetFieldAccessorTable() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
InvalidationQueueEntry - Record Class in com.usatiuk.dhfs.invalidation
+
 
+
InvalidationQueueEntry(PeerId, JObjectKey) - Constructor for record class com.usatiuk.dhfs.invalidation.InvalidationQueueEntry
+
+
Creates an instance of a InvalidationQueueEntry record class.
+
+
InvalidationQueueService - Class in com.usatiuk.dhfs.invalidation
+
 
+
InvalidationQueueService(int) - Constructor for class com.usatiuk.dhfs.invalidation.InvalidationQueueService
+
 
+
IpPeerAddress - Record Class in com.usatiuk.dhfs.peerdiscovery
+
 
+
IpPeerAddress(PeerId, PeerAddressType, InetAddress, int, int) - Constructor for record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Creates an instance of a IpPeerAddress record class.
+
+
isEmpty() - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
isInitialized() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
isInitialSyncDone(PeerId) - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
isReachable(PeerId) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
isReachable(PeerInfo) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
IteratorStart - Enum Class in com.usatiuk.objects.iterators
+
 
+
+

J

+
+
JavaDataSerializer - Class in com.usatiuk.objects
+
 
+
JavaDataSerializer() - Constructor for class com.usatiuk.objects.JavaDataSerializer
+
 
+
JData - Interface in com.usatiuk.objects
+
 
+
JDataNormalRef - Record Class in com.usatiuk.dhfs.refcount
+
 
+
JDataNormalRef(JObjectKey) - Constructor for record class com.usatiuk.dhfs.refcount.JDataNormalRef
+
+
Creates an instance of a JDataNormalRef record class.
+
+
JDataP - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.JDataP
+
+
JDataP.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.JDataP
+
+
JDataPOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
JDataRef - Interface in com.usatiuk.dhfs.refcount
+
 
+
JDataRefcounted - Interface in com.usatiuk.dhfs.refcount
+
 
+
JDataRemote - Interface in com.usatiuk.dhfs.remoteobj
+
 
+
JDataRemoteDto - Interface in com.usatiuk.dhfs.remoteobj
+
 
+
JDataRemoteDtoP - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.JDataRemoteDtoP
+
+
JDataRemoteDtoP.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.JDataRemoteDtoP
+
+
JDataRemoteDtoPOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
JDataRemotePush - Annotation Interface in com.usatiuk.dhfs.remoteobj
+
 
+
JDataVersionedWrapper - Interface in com.usatiuk.objects
+
 
+
JDataVersionedWrapperImpl - Record Class in com.usatiuk.objects
+
 
+
JDataVersionedWrapperImpl(JData, long) - Constructor for record class com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
Creates an instance of a JDataVersionedWrapperImpl record class.
+
+
JDataVersionedWrapperLazy - Class in com.usatiuk.objects
+
 
+
JDataVersionedWrapperLazy(long, int, Supplier<JData>) - Constructor for class com.usatiuk.objects.JDataVersionedWrapperLazy
+
 
+
JDataVersionedWrapperSerializer - Class in com.usatiuk.objects
+
 
+
JDataVersionedWrapperSerializer() - Constructor for class com.usatiuk.objects.JDataVersionedWrapperSerializer
+
 
+
JKleppmannTreeInitialSyncProcessor - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreeInitialSyncProcessor() - Constructor for class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeInitialSyncProcessor
+
 
+
JKleppmannTreeManager - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreeManager() - Constructor for class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager
+
 
+
JKleppmannTreeManager.JKleppmannTree - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreeNode - Record Class in com.usatiuk.dhfs.jkleppmanntree.structs
+
 
+
JKleppmannTreeNode(JObjectKey, JObjectKey, JKleppmannTreeNodeMeta) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
 
+
JKleppmannTreeNode(JObjectKey, JObjectKey, OpMove<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>, JKleppmannTreeNodeMeta, PMap<String, JObjectKey>) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Creates an instance of a JKleppmannTreeNode record class.
+
+
JKleppmannTreeNodeHolder - Record Class in com.usatiuk.dhfs.jkleppmanntree.structs
+
 
+
JKleppmannTreeNodeHolder(JKleppmannTreeNode) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
JKleppmannTreeNodeHolder(JKleppmannTreeNode, boolean) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
JKleppmannTreeNodeHolder(PCollection<JDataRef>, boolean, JKleppmannTreeNode) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
Creates an instance of a JKleppmannTreeNodeHolder record class.
+
+
JKleppmannTreeNodeMeta - Interface in com.usatiuk.dhfs.jkleppmanntree.structs
+
 
+
JKleppmannTreeNodeMetaDirectory - Record Class in com.usatiuk.dhfsfs.objects
+
+
JKleppmannTreeNodeMetaDirectory is a record that represents a directory in the JKleppmann tree.
+
+
JKleppmannTreeNodeMetaDirectory(String) - Constructor for record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
+
Creates an instance of a JKleppmannTreeNodeMetaDirectory record class.
+
+
JKleppmannTreeNodeMetaFile - Record Class in com.usatiuk.dhfsfs.objects
+
+
JKleppmannTreeNodeMetaFile is a record that represents a file in the JKleppmann tree.
+
+
JKleppmannTreeNodeMetaFile(String, JObjectKey) - Constructor for record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
Creates an instance of a JKleppmannTreeNodeMetaFile record class.
+
+
JKleppmannTreeNodeMetaPeer - Record Class in com.usatiuk.dhfs.peersync.structs
+
 
+
JKleppmannTreeNodeMetaPeer(PeerId) - Constructor for record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
 
+
JKleppmannTreeNodeMetaPeer(String, JObjectKey) - Constructor for record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
Creates an instance of a JKleppmannTreeNodeMetaPeer record class.
+
+
JKleppmannTreeOpExtractor - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreeOpExtractor() - Constructor for class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpExtractor
+
 
+
JKleppmannTreeOpHandler - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreeOpHandler() - Constructor for class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpHandler
+
 
+
JKleppmannTreeOpWrapper - Record Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreeOpWrapper(JObjectKey, OpMove<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
+
Creates an instance of a JKleppmannTreeOpWrapper record class.
+
+
JKleppmannTreePeerInterface - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreePeerInterface() - Constructor for class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeerInterface
+
 
+
JKleppmannTreePeriodicOpHandler - Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreePeriodicOpHandler() - Constructor for class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicOpHandler
+
 
+
JKleppmannTreePeriodicPushOp - Record Class in com.usatiuk.dhfs.jkleppmanntree
+
 
+
JKleppmannTreePeriodicPushOp(JObjectKey, PeerId, long) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
Creates an instance of a JKleppmannTreePeriodicPushOp record class.
+
+
JKleppmannTreePersistentData - Record Class in com.usatiuk.dhfs.jkleppmanntree.structs
+
 
+
JKleppmannTreePersistentData(JObjectKey, PCollection<JDataRef>, boolean, long, PMap<PeerId, PSortedMap<CombinedTimestamp<Long, PeerId>, OpMove<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>>>, PMap<PeerId, Long>, PSortedMap<CombinedTimestamp<Long, PeerId>, LogRecord<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>>) - Constructor for record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Creates an instance of a JKleppmannTreePersistentData record class.
+
+
JKleppmannTreeStorageInterface() - Constructor for class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
JMapEntry<K> - Record Class in com.usatiuk.dhfs.jmap
+
 
+
JMapEntry(JObjectKey, JObjectKey, K, JObjectKey) - Constructor for record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Creates an instance of a JMapEntry record class.
+
+
JMapEntry(JObjectKey, K, JObjectKey) - Constructor for record class com.usatiuk.dhfs.jmap.JMapEntry
+
 
+
JMapHelper - Class in com.usatiuk.dhfs.jmap
+
 
+
JMapHelper() - Constructor for class com.usatiuk.dhfs.jmap.JMapHelper
+
 
+
JMapHolder<K> - Interface in com.usatiuk.dhfs.jmap
+
 
+
JMapHolderRefcounterTxHook - Class in com.usatiuk.dhfs.jmap
+
 
+
JMapHolderRefcounterTxHook() - Constructor for class com.usatiuk.dhfs.jmap.JMapHolderRefcounterTxHook
+
 
+
JMapIterator<K> - Class in com.usatiuk.dhfs.jmap
+
 
+
JMapIterator(CloseableKvIterator<JObjectKey, JData>, JMapHolder<K>) - Constructor for class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
JMapKey - Interface in com.usatiuk.dhfs.jmap
+
 
+
JMapLongKey - Record Class in com.usatiuk.dhfs.jmap
+
 
+
JMapLongKey(long) - Constructor for record class com.usatiuk.dhfs.jmap.JMapLongKey
+
+
Creates an instance of a JMapLongKey record class.
+
+
JMapRef - Record Class in com.usatiuk.dhfs.jmap
+
 
+
JMapRef(JObjectKey, JMapKey) - Constructor for record class com.usatiuk.dhfs.jmap.JMapRef
+
+
Creates an instance of a JMapRef record class.
+
+
JMapRefcounterTxHook - Class in com.usatiuk.dhfs.jmap
+
 
+
JMapRefcounterTxHook() - Constructor for class com.usatiuk.dhfs.jmap.JMapRefcounterTxHook
+
 
+
JnrPtrByteOutput - Class in com.usatiuk.dhfsfuse
+
 
+
JnrPtrByteOutput(Pointer, long) - Constructor for class com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
 
+
JObjectKey - Interface in com.usatiuk.objects
+
 
+
JObjectKeyImpl - Class in com.usatiuk.objects
+
 
+
JObjectKeyImpl(byte[]) - Constructor for class com.usatiuk.objects.JObjectKeyImpl
+
 
+
JObjectKeyImpl(String) - Constructor for class com.usatiuk.objects.JObjectKeyImpl
+
 
+
JObjectKeyMax - Record Class in com.usatiuk.objects
+
 
+
JObjectKeyMax() - Constructor for record class com.usatiuk.objects.JObjectKeyMax
+
+
Creates an instance of a JObjectKeyMax record class.
+
+
JObjectKeyMin - Record Class in com.usatiuk.objects
+
 
+
JObjectKeyMin() - Constructor for record class com.usatiuk.objects.JObjectKeyMin
+
+
Creates an instance of a JObjectKeyMin record class.
+
+
JObjectKeyP - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.JObjectKeyP
+
+
JObjectKeyP.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.JObjectKeyP
+
+
JObjectKeyPOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
JObjectKeyProtoSerializer - Class in com.usatiuk.dhfs
+
 
+
JObjectKeyProtoSerializer() - Constructor for class com.usatiuk.dhfs.JObjectKeyProtoSerializer
+
 
+
+

K

+
+
key() - Method in record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.invalidation.InvalidationQueueEntry
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
key() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.jmap.JMapLongKey
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
 
+
key() - Method in interface com.usatiuk.dhfs.remoteobj.JDataRemote
+
 
+
key() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfsfs.objects.ChunkData
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Returns the value of the key record component.
+
+
key() - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
key() - Method in interface com.usatiuk.objects.JData
+
 
+
key() - Method in record class com.usatiuk.objects.stores.PendingDelete
+
+
Returns the value of the key record component.
+
+
key() - Method in interface com.usatiuk.objects.transaction.TxRecord.TxObjectRecord
+
 
+
key() - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted
+
+
Returns the value of the key record component.
+
+
key() - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite
+
 
+
KEY - Static variable in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
 
+
KEY_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
KEY_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
KeyPredicateKvIterator<K,V> - Class in com.usatiuk.objects.iterators
+
 
+
KeyPredicateKvIterator(CloseableKvIterator<K, V>, IteratorStart, K, Function<K, Boolean>) - Constructor for class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
keyToKey(JObjectKey) - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
kickCounter() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Returns the value of the kickCounter record component.
+
+
kickCounterSum() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
 
+
KleppmannTree<TimestampT,PeerIdT,MetaT,NodeIdT> - Class in com.usatiuk.kleppmanntree
+
 
+
KleppmannTree(StorageInterface<TimestampT, PeerIdT, MetaT, NodeIdT>, PeerInterface<PeerIdT>, Clock<TimestampT>, OpRecorder<TimestampT, PeerIdT, MetaT, NodeIdT>) - Constructor for class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
knownAddress() - Method in record class com.usatiuk.dhfs.webapi.PeerInfo
+
+
Returns the value of the knownAddress record component.
+
+
KnownPeerPut - Record Class in com.usatiuk.dhfs.webapi
+
 
+
KnownPeerPut(String) - Constructor for record class com.usatiuk.dhfs.webapi.KnownPeerPut
+
+
Creates an instance of a KnownPeerPut record class.
+
+
knownPeers() - Method in class com.usatiuk.dhfs.webapi.PeerManagementApi
+
 
+
knownRemoteVersions() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the knownRemoteVersions record component.
+
+
knownType() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the knownType record component.
+
+
+

L

+
+
LAN - Enum constant in enum class com.usatiuk.dhfs.peerdiscovery.PeerAddressType
+
 
+
last() - Static method in interface com.usatiuk.objects.JObjectKey
+
 
+
lastEffectiveOp() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Returns the value of the lastEffectiveOp record component.
+
+
lastEffectiveOp() - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
lastSeenTimestamp() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Returns the value of the lastSeenTimestamp record component.
+
+
lastShutdownClean() - Method in class com.usatiuk.dhfs.ShutdownChecker
+
 
+
LE - Enum constant in enum class com.usatiuk.objects.iterators.IteratorStart
+
 
+
ListUtils - Class in com.usatiuk.utils
+
 
+
ListUtils() - Constructor for class com.usatiuk.utils.ListUtils
+
 
+
LmdbObjectPersistentStore - Class in com.usatiuk.objects.stores
+
 
+
LmdbObjectPersistentStore(String) - Constructor for class com.usatiuk.objects.stores.LmdbObjectPersistentStore
+
 
+
LocalPeerDiscoveryBroadcaster - Class in com.usatiuk.dhfs.peerdiscovery.local
+
 
+
LocalPeerDiscoveryBroadcaster() - Constructor for class com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryBroadcaster
+
 
+
LocalPeerDiscoveryClient - Class in com.usatiuk.dhfs.peerdiscovery.local
+
 
+
LocalPeerDiscoveryClient() - Constructor for class com.usatiuk.dhfs.peerdiscovery.local.LocalPeerDiscoveryClient
+
 
+
lock(Object) - Method in class com.usatiuk.utils.DataLocker
+
 
+
log() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns the value of the log record component.
+
+
LogEffect<TimestampT,PeerIdT,MetaT,NodeIdT> - Record Class in com.usatiuk.kleppmanntree
+
 
+
LogEffect(LogEffectOld<TimestampT, PeerIdT, MetaT, NodeIdT>, OpMove<TimestampT, PeerIdT, MetaT, NodeIdT>, NodeIdT, MetaT, NodeIdT) - Constructor for record class com.usatiuk.kleppmanntree.LogEffect
+
+
Creates an instance of a LogEffect record class.
+
+
LogEffectOld<TimestampT,PeerIdT,MetaT,NodeIdT> - Record Class in com.usatiuk.kleppmanntree
+
 
+
LogEffectOld(OpMove<TimestampT, PeerIdT, MetaT, NodeIdT>, NodeIdT, MetaT) - Constructor for record class com.usatiuk.kleppmanntree.LogEffectOld
+
+
Creates an instance of a LogEffectOld record class.
+
+
LogInterface<TimestampT,PeerIdT,MetaT,NodeIdT> - Interface in com.usatiuk.kleppmanntree
+
 
+
LogRecord<TimestampT,PeerIdT,MetaT,NodeIdT> - Record Class in com.usatiuk.kleppmanntree
+
 
+
LogRecord(OpMove<TimestampT, PeerIdT, MetaT, NodeIdT>, List<LogEffect<TimestampT, PeerIdT, MetaT, NodeIdT>>) - Constructor for record class com.usatiuk.kleppmanntree.LogRecord
+
+
Creates an instance of a LogRecord record class.
+
+
longToBb(long) - Static method in class com.usatiuk.utils.ByteUtils
+
 
+
longToBytes(long) - Static method in class com.usatiuk.utils.ByteUtils
+
 
+
LT - Enum constant in enum class com.usatiuk.objects.iterators.IteratorStart
+
 
+
+

M

+
+
main(String...) - Static method in class com.usatiuk.dhfsfuse.Main
+
 
+
Main - Class in com.usatiuk.dhfsfuse
+
 
+
Main() - Constructor for class com.usatiuk.dhfsfuse.Main
+
 
+
Main.DhfsStorageServerApp - Class in com.usatiuk.dhfsfuse
+
 
+
map(List<T>, Function<T, T_V>) - Static method in class com.usatiuk.utils.ListUtils
+
 
+
mapKey() - Method in record class com.usatiuk.dhfs.jmap.JMapRef
+
+
Returns the value of the mapKey record component.
+
+
MappingKvIterator<K,V,V_T> - Class in com.usatiuk.objects.iterators
+
 
+
MappingKvIterator(CloseableKvIterator<K, V>, Function<V, V_T>) - Constructor for class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
markInitialSyncDone(PeerId) - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
max() - Static method in record class com.usatiuk.dhfs.jmap.JMapLongKey
+
 
+
MAX - Static variable in interface com.usatiuk.objects.JObjectKey
+
 
+
MaybeTombstone<T> - Interface in com.usatiuk.objects.iterators
+
 
+
MemoryObjectPersistentStore - Class in com.usatiuk.objects.stores
+
 
+
MemoryObjectPersistentStore() - Constructor for class com.usatiuk.objects.stores.MemoryObjectPersistentStore
+
 
+
merge(T, Function<T, T>) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
mergeChangelog(ObjectChangelog) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
mergeFrom(Message) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
mergeFrom(PeerDiscoveryInfo) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
mergeFrom(ChunkDataP) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
mergeFrom(FileDtoP) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
mergeFrom(JDataP) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
mergeFrom(JDataRemoteDtoP) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
mergeFrom(JObjectKeyP) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
mergeFrom(ObjectChangelog) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
mergeFrom(ObjectChangelog.entries_Entry) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
mergeFrom(PeerIdP) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
mergeFrom(PeerInfoP) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
mergeFrom(CanDeleteReply) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
mergeFrom(CanDeleteRequest) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
mergeFrom(GetObjectReply) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
mergeFrom(GetObjectRequest) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
mergeFrom(OpP) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
mergeFrom(OpPushReply) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
mergeFrom(OpPushRequest) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
mergeFrom(PingReply) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
mergeFrom(PingRequest) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
mergeId(JObjectKeyP) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
mergeKey(JObjectKeyP) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
mergeKey(PeerIdP) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
mergeName(JObjectKeyP) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
mergeName(JObjectKeyP) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
mergePushedData(JDataRemoteDtoP) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
mergeUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
MergingKvIterator<K,V> - Class in com.usatiuk.objects.iterators
+
 
+
MergingKvIterator(IteratorStart, K, CloseableKvIterator<K, V>...) - Constructor for class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
MergingKvIterator(IteratorStart, K, List<CloseableKvIterator<K, V>>) - Constructor for class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
meta() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Returns the value of the meta record component.
+
+
meta() - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
MIN - Static variable in interface com.usatiuk.objects.JObjectKey
+
 
+
mkdir(String, long) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Create a new directory with the given name and mode.
+
+
mkdir(String, long) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
mode() - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Returns the value of the mode record component.
+
+
mode() - Method in record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Returns the value of the mode record component.
+
+
move(JObjectKey, JKleppmannTreeNodeMeta, JObjectKey) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
move(NodeIdT, LocalMetaT, NodeIdT) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
move(NodeIdT, MetaT, NodeIdT, boolean) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
MSG_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
mtime() - Method in record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Returns the value of the mtime record component.
+
+
mTime() - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Returns the value of the mTime record component.
+
+
MutinyDhfsObjectSyncGrpcGrpc - Class in com.usatiuk.dhfs.repository
+
 
+
MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase - Class in com.usatiuk.dhfs.repository
+
 
+
MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub - Class in com.usatiuk.dhfs.repository
+
 
+
+

N

+
+
name() - Method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
Returns the value of the name record component.
+
+
name() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
+
Returns the value of the name record component.
+
+
name() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
Returns the value of the name record component.
+
+
name() - Method in interface com.usatiuk.kleppmanntree.NodeMeta
+
 
+
name() - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
NAME_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
NAME_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
NAME_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
NavigableMapKvIterator<K,V> - Class in com.usatiuk.objects.iterators
+
 
+
NavigableMapKvIterator(NavigableMap<K, ? extends V>, IteratorStart, K) - Constructor for class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
newBlockingStub(Channel) - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
+
Creates a new blocking-style stub that supports unary and streaming output calls on the service
+
+
newBuilder() - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
newBuilder() - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
newBuilder(PeerDiscoveryInfo) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
newBuilder(ChunkDataP) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
newBuilder(FileDtoP) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
newBuilder(JDataP) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
newBuilder(JDataRemoteDtoP) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
newBuilder(JObjectKeyP) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
newBuilder(ObjectChangelog) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
newBuilder(ObjectChangelog.entries_Entry) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
newBuilder(PeerIdP) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
newBuilder(PeerInfoP) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
newBuilder(CanDeleteReply) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
newBuilder(CanDeleteRequest) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
newBuilder(GetObjectReply) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
newBuilder(GetObjectRequest) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
newBuilder(OpP) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
newBuilder(OpPushReply) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
newBuilder(OpPushRequest) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
newBuilder(PingReply) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
newBuilder(PingRequest) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
newBuilderForType() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
newBuilderForType(GeneratedMessageV3.BuilderParent) - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
NEWER - Enum constant in enum class com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult
+
 
+
newestSlice(CombinedTimestamp<TimestampT, PeerIdT>, boolean) - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
newFutureStub(Channel) - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
+
Creates a new ListenableFuture-style stub that supports unary calls on the service
+
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
newInstance(GeneratedMessageV3.UnusedPrivateParameter) - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
newInstanceWithStub(MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
 
+
newMeta() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Returns the value of the newMeta record component.
+
+
newMeta() - Method in record class com.usatiuk.kleppmanntree.OpMove
+
+
Returns the value of the newMeta record component.
+
+
newMutinyStub(Channel) - Static method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc
+
 
+
newName() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
 
+
newName() - Method in record class com.usatiuk.kleppmanntree.OpMove
+
 
+
newParentId() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Returns the value of the newParentId record component.
+
+
newParentId() - Method in record class com.usatiuk.kleppmanntree.OpMove
+
+
Returns the value of the newParentId record component.
+
+
newStub(Channel) - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
+
Creates a new async stub that supports all call types for the service
+
+
next() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
next() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
next() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
next() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
nextImpl() - Method in class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
nextImpl() - Method in class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
nextImpl() - Method in class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
nextImpl() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
nextImpl() - Method in class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
NIO - Static variable in class com.usatiuk.utils.UnsafeAccessor
+
 
+
node() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
Returns the value of the node record component.
+
+
nodeId() - Method in record class com.usatiuk.kleppmanntree.CombinedTimestamp
+
+
Returns the value of the nodeId record component.
+
+
nodeIdToPeerId(JObjectKey) - Static method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
 
+
NodeMeta - Interface in com.usatiuk.kleppmanntree
+
 
+
notifyAddr(PeerAddress) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory
+
 
+
+

O

+
+
obj() - Method in record class com.usatiuk.dhfs.jmap.JMapRef
+
 
+
obj() - Method in record class com.usatiuk.dhfs.refcount.JDataNormalRef
+
+
Returns the value of the obj record component.
+
+
obj() - Method in interface com.usatiuk.dhfs.refcount.JDataRef
+
 
+
objClass() - Method in interface com.usatiuk.dhfs.remoteobj.JDataRemoteDto
+
 
+
objClass() - Method in record class com.usatiuk.dhfsfs.objects.FileDto
+
 
+
ObjectChangelog - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.ObjectChangelog
+
+
ObjectChangelog.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.ObjectChangelog
+
+
ObjectChangelog.entries_Entry - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.ObjectChangelog.entries_Entry
+
+
ObjectChangelog.entries_Entry.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.ObjectChangelog.entries_Entry
+
+
ObjectChangelog.entries_EntryOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
ObjectChangelogOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
ObjectPersistentStore - Interface in com.usatiuk.objects.stores
+
 
+
ObjectSerializer<T> - Interface in com.usatiuk.objects
+
 
+
ObjSyncHandler<T,D> - Interface in com.usatiuk.dhfs.remoteobj
+
 
+
of(long) - Static method in record class com.usatiuk.dhfs.jmap.JMapLongKey
+
 
+
of(String) - Static method in record class com.usatiuk.dhfs.peersync.PeerId
+
 
+
of(String) - Static method in interface com.usatiuk.objects.JObjectKey
+
 
+
ofDataKey(JObjectKey) - Static method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
ofMetaKey(JObjectKey) - Static method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
oldEffectiveMove() - Method in record class com.usatiuk.kleppmanntree.LogEffectOld
+
+
Returns the value of the oldEffectiveMove record component.
+
+
OLDER - Enum constant in enum class com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult
+
 
+
oldInfo() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Returns the value of the oldInfo record component.
+
+
oldMeta() - Method in record class com.usatiuk.kleppmanntree.LogEffectOld
+
+
Returns the value of the oldMeta record component.
+
+
oldName() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
 
+
oldParent() - Method in record class com.usatiuk.kleppmanntree.LogEffectOld
+
+
Returns the value of the oldParent record component.
+
+
onChange(JObjectKey, JData, JData) - Method in class com.usatiuk.dhfs.autosync.AutosyncTxHook
+
 
+
onChange(JObjectKey, JData, JData) - Method in class com.usatiuk.dhfs.jmap.JMapRefcounterTxHook
+
 
+
onChange(JObjectKey, JData, JData) - Method in class com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook
+
 
+
onChange(JObjectKey, JData, JData) - Method in class com.usatiuk.dhfs.refcount.DeleterTxHook
+
 
+
onChange(JObjectKey, JData, JData) - Method in class com.usatiuk.dhfs.refcount.RefcounterTxHook
+
 
+
onChange(JObjectKey, JData, JData) - Method in class com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook
+
 
+
onChange(JObjectKey, JData, JData) - Method in interface com.usatiuk.objects.transaction.PreCommitTxHook
+
 
+
onCommit(Runnable) - Method in class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
onCommit(Runnable) - Method in interface com.usatiuk.objects.transaction.Transaction
+
 
+
onCreate(JObjectKey, JData) - Method in class com.usatiuk.dhfs.autosync.AutosyncTxHook
+
 
+
onCreate(JObjectKey, JData) - Method in class com.usatiuk.dhfs.jmap.JMapRefcounterTxHook
+
 
+
onCreate(JObjectKey, JData) - Method in class com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook
+
 
+
onCreate(JObjectKey, JData) - Method in class com.usatiuk.dhfs.refcount.DeleterTxHook
+
 
+
onCreate(JObjectKey, JData) - Method in class com.usatiuk.dhfs.refcount.RefcounterTxHook
+
 
+
onCreate(JObjectKey, JData) - Method in class com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook
+
 
+
onCreate(JObjectKey, JData) - Method in interface com.usatiuk.objects.transaction.PreCommitTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in class com.usatiuk.dhfs.autosync.AutosyncTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in class com.usatiuk.dhfs.jmap.JMapHolderRefcounterTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in class com.usatiuk.dhfs.jmap.JMapRefcounterTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in class com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in class com.usatiuk.dhfs.refcount.DeleterTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in class com.usatiuk.dhfs.refcount.RefcounterTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in class com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook
+
 
+
onDelete(JObjectKey, JData) - Method in interface com.usatiuk.objects.transaction.PreCommitTxHook
+
 
+
onFlush(Runnable) - Method in class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
onFlush(Runnable) - Method in interface com.usatiuk.objects.transaction.TransactionHandle
+
 
+
op() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
+
Returns the value of the op record component.
+
+
op() - Method in record class com.usatiuk.kleppmanntree.LogRecord
+
+
Returns the value of the op record component.
+
+
Op - Interface in com.usatiuk.dhfs.invalidation
+
 
+
open(String) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Try to resolve a path to a file or directory.
+
+
open(String, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
OpExtractor<T> - Interface in com.usatiuk.dhfs.invalidation
+
 
+
OpExtractorService - Class in com.usatiuk.dhfs.invalidation
+
 
+
OpExtractorService(Instance<OpExtractor<?>>) - Constructor for class com.usatiuk.dhfs.invalidation.OpExtractorService
+
 
+
OpHandler<T> - Interface in com.usatiuk.dhfs.invalidation
+
 
+
OpHandlerService - Class in com.usatiuk.dhfs.invalidation
+
 
+
OpHandlerService(Instance<OpHandler<?>>) - Constructor for class com.usatiuk.dhfs.invalidation.OpHandlerService
+
 
+
OpMove<TimestampT,PeerIdT,MetaT,NodeIdT> - Record Class in com.usatiuk.kleppmanntree
+
 
+
OpMove(CombinedTimestamp<TimestampT, PeerIdT>, NodeIdT, MetaT, NodeIdT) - Constructor for record class com.usatiuk.kleppmanntree.OpMove
+
+
Creates an instance of a OpMove record class.
+
+
OpP - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.OpP
+
+
OpP.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.OpP
+
+
OpPOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
opPush(PeerId, OpPushRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl
+
 
+
opPush(OpPushRequest) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpc
+
 
+
opPush(OpPushRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcBean
+
 
+
opPush(OpPushRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
 
+
opPush(OpPushRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub
+
 
+
opPush(OpPushRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub
+
 
+
opPush(OpPushRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
opPush(OpPushRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub
+
 
+
opPush(OpPushRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServer
+
 
+
opPush(OpPushRequest, StreamObserver<OpPushReply>) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.AsyncService
+
 
+
opPush(OpPushRequest, StreamObserver<OpPushReply>) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub
+
 
+
OpPushReply - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.OpPushReply
+
+
OpPushReply.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.OpPushReply
+
+
OpPushReplyOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
OpPushRequest - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.OpPushRequest
+
+
OpPushRequest.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.OpPushRequest
+
+
OpPushRequestOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
OpRecorder<TimestampT,PeerIdT,MetaT,NodeIdT> - Interface in com.usatiuk.kleppmanntree
+
 
+
+

P

+
+
parent() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Returns the value of the parent record component.
+
+
parent() - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
parse(String) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper
+
 
+
parsedCert() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseDelimitedFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(byte[]) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(ByteString) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(CodedInputStream) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(InputStream) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(ByteBuffer) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
parseNoPeer(PeerId, String) - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper
+
 
+
parser() - Static method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.OpP
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
parser() - Static method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
peekImpl() - Method in class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
peekImpl() - Method in class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
peekImpl() - Method in class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
peekImpl() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
peekImpl() - Method in class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
peekNewest() - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
peekNextKey() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
peekNextKey() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
peekNextKey() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
peekNextKey() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
peekNextKey() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
peekOldest() - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
peekPrevKey() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
peekPrevKey() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
peekPrevKey() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
peekPrevKey() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
peekPrevKey() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
peekTimestamp() - Method in interface com.usatiuk.kleppmanntree.Clock
+
 
+
peer() - Method in record class com.usatiuk.dhfs.invalidation.InvalidationQueueEntry
+
+
Returns the value of the peer record component.
+
+
peer() - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Returns the value of the peer record component.
+
+
peer() - Method in interface com.usatiuk.dhfs.peerdiscovery.PeerAddress
+
 
+
PeerAddress - Interface in com.usatiuk.dhfs.peerdiscovery
+
 
+
PeerAddressInfo - Record Class in com.usatiuk.dhfs.webapi
+
 
+
PeerAddressInfo(String, String) - Constructor for record class com.usatiuk.dhfs.webapi.PeerAddressInfo
+
+
Creates an instance of a PeerAddressInfo record class.
+
+
PeerAddressType - Enum Class in com.usatiuk.dhfs.peerdiscovery
+
 
+
PeerAddrStringHelper - Class in com.usatiuk.dhfs.peerdiscovery
+
 
+
PeerAddrStringHelper() - Constructor for class com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper
+
 
+
PeerConnectedEventListener - Interface in com.usatiuk.dhfs.peersync
+
 
+
PeerDisconnectedEventListener - Interface in com.usatiuk.dhfs.peersync
+
 
+
PeerDiscoveryDirectory - Class in com.usatiuk.dhfs.peerdiscovery
+
 
+
PeerDiscoveryDirectory() - Constructor for class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory
+
 
+
PeerDiscoveryInfo - Class in com.usatiuk.dhfs.peerdiscovery
+
+
Protobuf type dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
PeerDiscoveryInfo.Builder - Class in com.usatiuk.dhfs.peerdiscovery
+
+
Protobuf type dhfs.peerdiscovery.PeerDiscoveryInfo
+
+
PeerDiscoveryInfoOrBuilder - Interface in com.usatiuk.dhfs.peerdiscovery
+
 
+
peerId() - Method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
Returns the value of the peerId record component.
+
+
PeerId - Record Class in com.usatiuk.dhfs.peersync
+
 
+
PeerId(JObjectKey) - Constructor for record class com.usatiuk.dhfs.peersync.PeerId
+
+
Creates an instance of a PeerId record class.
+
+
PeerIdP - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.PeerIdP
+
+
PeerIdP.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.PeerIdP
+
+
PeerIdPOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
peerIdToNodeId(PeerId) - Static method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
 
+
PeerInfo - Record Class in com.usatiuk.dhfs.peersync
+
 
+
PeerInfo - Record Class in com.usatiuk.dhfs.webapi
+
 
+
PeerInfo(PeerId, byte[]) - Constructor for record class com.usatiuk.dhfs.peersync.PeerInfo
+
 
+
PeerInfo(JObjectKey, PeerId, ByteString, PMap<PeerId, Long>, long) - Constructor for record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Creates an instance of a PeerInfo record class.
+
+
PeerInfo(String, String, String) - Constructor for record class com.usatiuk.dhfs.webapi.PeerInfo
+
+
Creates an instance of a PeerInfo record class.
+
+
PeerInfoCertUpdateTxHook - Class in com.usatiuk.dhfs.peertrust
+
 
+
PeerInfoCertUpdateTxHook() - Constructor for class com.usatiuk.dhfs.peertrust.PeerInfoCertUpdateTxHook
+
 
+
PeerInfoP - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.PeerInfoP
+
+
PeerInfoP.Builder - Class in com.usatiuk.dhfs.persistence
+
+
Protobuf type dhfs.persistence.PeerInfoP
+
+
PeerInfoPOrBuilder - Interface in com.usatiuk.dhfs.persistence
+
 
+
PeerInfoProtoSerializer - Class in com.usatiuk.dhfs.peersync
+
 
+
PeerInfoProtoSerializer() - Constructor for class com.usatiuk.dhfs.peersync.PeerInfoProtoSerializer
+
 
+
PeerInfoService - Class in com.usatiuk.dhfs.peersync
+
 
+
PeerInfoService() - Constructor for class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
PeerInfoSyncHandler - Class in com.usatiuk.dhfs.peersync
+
 
+
PeerInfoSyncHandler() - Constructor for class com.usatiuk.dhfs.peersync.PeerInfoSyncHandler
+
 
+
PeerInterface<PeerIdT> - Interface in com.usatiuk.kleppmanntree
+
 
+
PeerLastSeenUpdater - Class in com.usatiuk.dhfs.peersync
+
 
+
PeerLastSeenUpdater() - Constructor for class com.usatiuk.dhfs.peersync.PeerLastSeenUpdater
+
 
+
PeerManagementApi - Class in com.usatiuk.dhfs.webapi
+
 
+
PeerManagementApi() - Constructor for class com.usatiuk.dhfs.webapi.PeerManagementApi
+
 
+
PeerRolesAugmentor - Class in com.usatiuk.dhfs.peertrust
+
 
+
PeerRolesAugmentor() - Constructor for class com.usatiuk.dhfs.peertrust.PeerRolesAugmentor
+
 
+
PeerSyncApi - Class in com.usatiuk.dhfs.peersync.api
+
 
+
PeerSyncApi() - Constructor for class com.usatiuk.dhfs.peersync.api.PeerSyncApi
+
 
+
PeerSyncApiClient - Interface in com.usatiuk.dhfs.peersync.api
+
 
+
PeerSyncApiClientDynamic - Class in com.usatiuk.dhfs.peersync.api
+
 
+
PeerSyncApiClientDynamic() - Constructor for class com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic
+
 
+
peerTimestampLog() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns the value of the peerTimestampLog record component.
+
+
PeerTimestampLogInterface<TimestampT,PeerIdT> - Interface in com.usatiuk.kleppmanntree
+
 
+
PeerTrustManager - Class in com.usatiuk.dhfs.peertrust
+
 
+
PeerTrustManager() - Constructor for class com.usatiuk.dhfs.peertrust.PeerTrustManager
+
 
+
PeerTrustServerCustomizer - Class in com.usatiuk.dhfs.peertrust
+
 
+
PeerTrustServerCustomizer() - Constructor for class com.usatiuk.dhfs.peertrust.PeerTrustServerCustomizer
+
 
+
PendingDelete - Record Class in com.usatiuk.objects.stores
+
 
+
PendingDelete(JObjectKey, long) - Constructor for record class com.usatiuk.objects.stores.PendingDelete
+
+
Creates an instance of a PendingDelete record class.
+
+
PendingWrite - Record Class in com.usatiuk.objects.stores
+
 
+
PendingWrite(JDataVersionedWrapper, long) - Constructor for record class com.usatiuk.objects.stores.PendingWrite
+
+
Creates an instance of a PendingWrite record class.
+
+
PendingWriteEntry - Interface in com.usatiuk.objects.stores
+
 
+
persistentPeerAddress() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Returns the value of the persistentPeerAddress record component.
+
+
PersistentPeerAddressApi - Class in com.usatiuk.dhfs.webapi
+
 
+
PersistentPeerAddressApi() - Constructor for class com.usatiuk.dhfs.webapi.PersistentPeerAddressApi
+
 
+
PersistentPeerDataService - Class in com.usatiuk.dhfs.peersync
+
 
+
PersistentPeerDataService() - Constructor for class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
PersistentRemoteHostsData - Record Class in com.usatiuk.dhfs.peersync
+
 
+
PersistentRemoteHostsData(PeerId, ByteString, ByteString, PSet<PeerId>, PMap<PeerId, IpPeerAddress>) - Constructor for record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Creates an instance of a PersistentRemoteHostsData record class.
+
+
PersistentStaticPeerDiscovery - Class in com.usatiuk.dhfs.peerdiscovery
+
 
+
PersistentStaticPeerDiscovery() - Constructor for class com.usatiuk.dhfs.peerdiscovery.PersistentStaticPeerDiscovery
+
 
+
ping(PeerId, PingRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl
+
 
+
ping(PingRequest) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpc
+
 
+
ping(PingRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcBean
+
 
+
ping(PingRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcClient
+
 
+
ping(PingRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub
+
 
+
ping(PingRequest) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub
+
 
+
ping(PingRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
 
+
ping(PingRequest) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub
+
 
+
ping(PingRequest) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceServer
+
 
+
ping(PingRequest, StreamObserver<PingReply>) - Method in interface com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.AsyncService
+
 
+
ping(PingRequest, StreamObserver<PingReply>) - Method in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub
+
 
+
PingReply - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.PingReply
+
+
PingReply.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.PingReply
+
+
PingReplyOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
PingRequest - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.PingRequest
+
+
PingRequest.Builder - Class in com.usatiuk.dhfs.repository
+
+
Protobuf type dhfs.sync.PingRequest
+
+
PingRequestOrBuilder - Interface in com.usatiuk.dhfs.repository
+
 
+
port() - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Returns the value of the port record component.
+
+
PORT_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
PreCommitTxHook - Interface in com.usatiuk.objects.transaction
+
 
+
prepareForInitialSync(PeerId, JObjectKey) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeInitialSyncProcessor
+
 
+
prepareForInitialSync(PeerId, JObjectKey) - Method in interface com.usatiuk.dhfs.peersync.InitialSyncProcessor
+
 
+
prepareForInitialSync(PeerId, JObjectKey) - Method in class com.usatiuk.dhfs.remoteobj.RemoteObjectInitialSyncProcessor
+
 
+
prepend(T, List<T>) - Static method in class com.usatiuk.utils.ListUtils
+
 
+
prependAndMap(T_V, List<T>, Function<T, T_V>) - Static method in class com.usatiuk.utils.ListUtils
+
 
+
prev() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
prev() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
prev() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
prev() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
prev() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
ProtoSerializer<M,O> - Interface in com.usatiuk.dhfs
+
 
+
PROXY - Enum constant in enum class com.usatiuk.dhfs.peerdiscovery.PeerAddressType
+
 
+
PUSHEDDATA_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
pushInvalidationToAll(JObjectKey) - Method in class com.usatiuk.dhfs.invalidation.InvalidationQueueService
+
 
+
pushInvalidationToOne(PeerId, JObjectKey) - Method in class com.usatiuk.dhfs.invalidation.InvalidationQueueService
+
 
+
pushInvalidationToOneNoDelay(PeerId, JObjectKey) - Method in class com.usatiuk.dhfs.invalidation.InvalidationQueueService
+
 
+
pushOps(PeerId, List<Op>) - Method in class com.usatiuk.dhfs.rpc.RemoteObjectServiceClient
+
 
+
put(JMapHolder<K>, K, JObjectKey) - Method in class com.usatiuk.dhfs.jmap.JMapHelper
+
 
+
put(CombinedTimestamp<TimestampT, PeerIdT>, LogRecord<TimestampT, PeerIdT, MetaT, NodeIdT>) - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
put(JData) - Method in class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
put(JData) - Method in interface com.usatiuk.objects.transaction.Transaction
+
 
+
putData(T) - Method in class com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
 
+
putDataNew(T) - Method in class com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
 
+
putDataRaw(T) - Method in class com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
 
+
putDeletionCandidate(RemoteObjectMeta) - Method in class com.usatiuk.dhfs.remoteobj.RemoteObjectDeleter
+
 
+
putForPeer(PeerIdT, TimestampT) - Method in interface com.usatiuk.kleppmanntree.PeerTimestampLogInterface
+
 
+
putNew(JData) - Method in class com.usatiuk.objects.transaction.CurrentTransaction
+
 
+
putNew(JData) - Method in interface com.usatiuk.objects.transaction.Transaction
+
 
+
putNode(TreeNode<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
putNode(TreeNode<TimestampT, PeerIdT, MetaT, NodeIdT>) - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
putPeer(PeerId, byte[]) - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
+

Q

+
+
queues() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns the value of the queues record component.
+
+
+

R

+
+
random() - Static method in interface com.usatiuk.objects.JObjectKey
+
 
+
ReachablePeerManager - Class in com.usatiuk.dhfs.peersync
+
 
+
ReachablePeerManager(Instance<PeerConnectedEventListener>, Instance<PeerDisconnectedEventListener>) - Constructor for class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
ReachablePeerManager.HostStateSnapshot - Record Class in com.usatiuk.dhfs.peersync
+
 
+
read(JObjectKey, long, int) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Read the contents of a file.
+
+
read(String, Pointer, long, long, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
readd(T) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
readdir(String, Pointer, FuseFillDir, long, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
readDir(String) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Read the contents of a directory.
+
+
readlink(JObjectKey) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Read the contents of a symlink.
+
+
readlink(String, Pointer, long) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
readlinkBS(JObjectKey) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Read the contents of a symlink as a ByteString.
+
+
readObject(K) - Method in interface com.usatiuk.objects.snapshot.Snapshot
+
 
+
ReceivedObject - Record Class in com.usatiuk.dhfs.remoteobj
+
 
+
ReceivedObject(PMap<PeerId, Long>, JDataRemoteDto) - Constructor for record class com.usatiuk.dhfs.remoteobj.ReceivedObject
+
+
Creates an instance of a ReceivedObject record class.
+
+
recordBoostrapFor(PeerIdT) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
recordBootstrap(PeerId) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
recordOp(OpMove<TimestampT, PeerIdT, MetaT, NodeIdT>) - Method in interface com.usatiuk.kleppmanntree.OpRecorder
+
 
+
recordOpForPeer(PeerIdT, OpMove<TimestampT, PeerIdT, MetaT, NodeIdT>) - Method in interface com.usatiuk.kleppmanntree.OpRecorder
+
 
+
ref() - Method in record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Returns the value of the ref record component.
+
+
RefcounterTxHook - Class in com.usatiuk.dhfs.refcount
+
 
+
RefcounterTxHook() - Constructor for class com.usatiuk.dhfs.refcount.RefcounterTxHook
+
 
+
REFERRERS_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
refsFrom() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
Returns the value of the refsFrom record component.
+
+
refsFrom() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns the value of the refsFrom record component.
+
+
refsFrom() - Method in interface com.usatiuk.dhfs.refcount.JDataRefcounted
+
 
+
refsFrom() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Returns the value of the refsFrom record component.
+
+
refsFrom() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the refsFrom record component.
+
+
registerAllExtensions(ExtensionRegistry) - Static method in class com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi
+
 
+
registerAllExtensions(ExtensionRegistry) - Static method in class com.usatiuk.dhfs.persistence.DhfsObjectPersistence
+
 
+
registerAllExtensions(ExtensionRegistry) - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncApi
+
 
+
registerAllExtensions(ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.peerdiscovery.DhfsObjectPeerDiscoveryApi
+
 
+
registerAllExtensions(ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.persistence.DhfsObjectPersistence
+
 
+
registerAllExtensions(ExtensionRegistryLite) - Static method in class com.usatiuk.dhfs.repository.DhfsObjectSyncApi
+
 
+
release(String, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
reloadTrustManagerHosts(Collection<PeerInfo>) - Method in class com.usatiuk.dhfs.peertrust.PeerTrustManager
+
 
+
RemoteObjectDataWrapper<T> - Record Class in com.usatiuk.dhfs.remoteobj
+
 
+
RemoteObjectDataWrapper(JObjectKey, PCollection<JDataRef>, boolean, T) - Constructor for record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Creates an instance of a RemoteObjectDataWrapper record class.
+
+
RemoteObjectDataWrapper(T) - Constructor for record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
 
+
RemoteObjectDeleter - Class in com.usatiuk.dhfs.remoteobj
+
 
+
RemoteObjectDeleter(long, long) - Constructor for class com.usatiuk.dhfs.remoteobj.RemoteObjectDeleter
+
 
+
RemoteObjectInitialSyncProcessor - Class in com.usatiuk.dhfs.remoteobj
+
 
+
RemoteObjectInitialSyncProcessor() - Constructor for class com.usatiuk.dhfs.remoteobj.RemoteObjectInitialSyncProcessor
+
 
+
RemoteObjectMeta - Record Class in com.usatiuk.dhfs.remoteobj
+
 
+
RemoteObjectMeta(JDataRemote, PeerId) - Constructor for record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
RemoteObjectMeta(JObjectKey) - Constructor for record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
RemoteObjectMeta(JObjectKey, PCollection<JDataRef>, boolean, PMap<PeerId, Long>, Class<? extends JDataRemote>, PSet<PeerId>, boolean, PMap<PeerId, Long>, boolean) - Constructor for record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Creates an instance of a RemoteObjectMeta record class.
+
+
RemoteObjectMeta(JObjectKey, PMap<PeerId, Long>) - Constructor for record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
RemoteObjectMetaOpExtractor - Class in com.usatiuk.dhfs.invalidation
+
 
+
RemoteObjectMetaOpExtractor() - Constructor for class com.usatiuk.dhfs.invalidation.RemoteObjectMetaOpExtractor
+
 
+
RemoteObjectServiceClient - Class in com.usatiuk.dhfs.rpc
+
 
+
RemoteObjectServiceClient() - Constructor for class com.usatiuk.dhfs.rpc.RemoteObjectServiceClient
+
 
+
RemoteObjectServiceServer - Class in com.usatiuk.dhfs.rpc
+
 
+
RemoteObjectServiceServer() - Constructor for class com.usatiuk.dhfs.rpc.RemoteObjectServiceServer
+
 
+
RemoteObjectServiceServerImpl - Class in com.usatiuk.dhfs.rpc
+
 
+
RemoteObjectServiceServerImpl() - Constructor for class com.usatiuk.dhfs.rpc.RemoteObjectServiceServerImpl
+
 
+
RemoteObjPusherTxHook - Class in com.usatiuk.dhfs.remoteobj
+
 
+
RemoteObjPusherTxHook() - Constructor for class com.usatiuk.dhfs.remoteobj.RemoteObjPusherTxHook
+
 
+
RemoteTransaction - Class in com.usatiuk.dhfs.remoteobj
+
 
+
RemoteTransaction() - Constructor for class com.usatiuk.dhfs.remoteobj.RemoteTransaction
+
 
+
remove(T) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
removeEntries(int) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
removeMsg(int) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
removeNode(JObjectKey) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface
+
 
+
removeNode(NodeIdT) - Method in interface com.usatiuk.kleppmanntree.StorageInterface
+
 
+
removePeer(PeerId) - Method in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
removePersistentPeerAddress(PeerId) - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
removeReferrers(int) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
removeRemoteHost(PeerId) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
rename(String, String) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Rename a file or directory.
+
+
rename(String, String) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
replace(CombinedTimestamp<TimestampT, PeerIdT>, LogRecord<TimestampT, PeerIdT, MetaT, NodeIdT>) - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
replaceChunks(File, List<Pair<Long, JObjectKey>>) - Method in class com.usatiuk.dhfsfs.objects.FileHelper
+
+
Replace the chunks of a file.
+
+
resetInitialSyncDone(PeerId) - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
resolve(PeerId, RemoteObjectMeta, RemoteObjectMeta) - Method in interface com.usatiuk.dhfs.remoteobj.ConflictResolver
+
 
+
resyncAfterCrash(StartupEvent) - Method in class com.usatiuk.dhfs.remoteobj.SyncHandler
+
 
+
reverse() - Method in class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
reverse() - Method in class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
reverse() - Method in class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
reverse() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
reverse() - Method in class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
reversed() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
reversed() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
ReversedKvIterator<K,V> - Class in com.usatiuk.objects.iterators
+
 
+
ReversedKvIterator(CloseableKvIterator<K, V>) - Constructor for class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
ReversibleKvIterator<K,V> - Class in com.usatiuk.objects.iterators
+
 
+
ReversibleKvIterator() - Constructor for class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
rmdir(String) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
rollback() - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
rollback() - Method in class com.usatiuk.objects.transaction.TransactionManagerImpl
+
 
+
rollback(TransactionImpl) - Method in class com.usatiuk.objects.transaction.TransactionService
+
 
+
RpcChannelFactory - Class in com.usatiuk.dhfs.rpc
+
 
+
RpcChannelFactory() - Constructor for class com.usatiuk.dhfs.rpc.RpcChannelFactory
+
 
+
RpcClientFactory - Class in com.usatiuk.dhfs.rpc
+
 
+
RpcClientFactory() - Constructor for class com.usatiuk.dhfs.rpc.RpcClientFactory
+
 
+
RpcClientFactory.ObjectSyncClientFunction<R> - Interface in com.usatiuk.dhfs.rpc
+
 
+
run(Runnable) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
run(Runnable, boolean) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
run(String...) - Method in class com.usatiuk.dhfsfuse.Main.DhfsStorageServerApp
+
 
+
run(Supplier<T>) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
run(Supplier<T>, boolean) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
runTries(Runnable, int) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
runTries(Runnable, int, boolean) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
runTries(Supplier<T>, int) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
runTries(Supplier<T>, int, boolean) - Method in interface com.usatiuk.objects.transaction.TransactionManager
+
 
+
+

S

+
+
securePort() - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Returns the value of the securePort record component.
+
+
SECUREPORT_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
seen() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns the value of the seen record component.
+
+
selectBestAddress(PeerId) - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
selfCertificate() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Returns the value of the selfCertificate record component.
+
+
SelfInfo - Record Class in com.usatiuk.dhfs.webapi
+
 
+
SelfInfo(String, String) - Constructor for record class com.usatiuk.dhfs.webapi.SelfInfo
+
+
Creates an instance of a SelfInfo record class.
+
+
selfKey() - Method in record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Returns the value of the selfKey record component.
+
+
selfKeyPair() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Returns the value of the selfKeyPair record component.
+
+
selfUuid() - Method in record class com.usatiuk.dhfs.peersync.api.ApiPeerInfo
+
+
Returns the value of the selfUuid record component.
+
+
selfUuid() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Returns the value of the selfUuid record component.
+
+
SerializationHelper - Class in com.usatiuk.utils
+
 
+
SerializationHelper() - Constructor for class com.usatiuk.utils.SerializationHelper
+
 
+
serialize(Op) - Method in class com.usatiuk.dhfs.TemporaryOpSerializer
+
 
+
serialize(PeerInfo) - Method in class com.usatiuk.dhfs.peersync.PeerInfoProtoSerializer
+
 
+
serialize(JDataRemoteDto) - Method in class com.usatiuk.dhfs.rpc.TemporaryRemoteObjectSerializer
+
 
+
serialize(ReceivedObject) - Method in class com.usatiuk.dhfs.rpc.TemporaryReceivedObjectSerializer
+
 
+
serialize(JData) - Method in class com.usatiuk.objects.JavaDataSerializer
+
 
+
serialize(JDataVersionedWrapper) - Method in class com.usatiuk.objects.JDataVersionedWrapperSerializer
+
 
+
serialize(JObjectKey) - Method in class com.usatiuk.dhfs.JObjectKeyProtoSerializer
+
 
+
serialize(O) - Method in interface com.usatiuk.dhfs.ProtoSerializer
+
 
+
serialize(T) - Method in interface com.usatiuk.objects.ObjectSerializer
+
 
+
serialize(T) - Static method in class com.usatiuk.utils.SerializationHelper
+
 
+
serializeArray(T) - Static method in class com.usatiuk.utils.SerializationHelper
+
 
+
SERIALIZEDDATA_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
SERIALIZEDDATA_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
SERIALIZEDDATA_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
SERIALIZEDDATA_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
SERIALIZEDDATA_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.repository.OpP
+
 
+
SerializingObjectPersistentStore - Class in com.usatiuk.objects.stores
+
 
+
SerializingObjectPersistentStore() - Constructor for class com.usatiuk.objects.stores.SerializingObjectPersistentStore
+
 
+
SERVICE_NAME - Static variable in class com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc
+
 
+
setCacheCallback(Runnable) - Method in class com.usatiuk.objects.JDataVersionedWrapperLazy
+
 
+
setChangelog(ObjectChangelog) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
setChangelog(ObjectChangelog.Builder) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.ObjectChangelog changelog = 5;
+
+
setData(ByteString) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
bytes data = 2;
+
+
setDelay(long) - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
setDeletionCandidate(boolean) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
bool deletionCandidate = 2;
+
+
setEntries(int, ObjectChangelog.entries_Entry) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
setEntries(int, ObjectChangelog.entries_Entry.Builder) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
+
repeated .dhfs.persistence.ObjectChangelog.entries_Entry entries = 1;
+
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
setField(Descriptors.FieldDescriptor, Object) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
setId(JObjectKeyP) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
setId(JObjectKeyP.Builder) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
+
.dhfs.persistence.JObjectKeyP id = 1;
+
+
setKey(JObjectKeyP) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
setKey(JObjectKeyP.Builder) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
+
.dhfs.persistence.JObjectKeyP key = 1;
+
+
setKey(PeerIdP) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
setKey(PeerIdP.Builder) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
.dhfs.persistence.PeerIdP key = 1;
+
+
setMsg(int, OpP) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
setMsg(int, OpP.Builder) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
+
repeated .dhfs.sync.OpP msg = 2;
+
+
setName(JObjectKeyP) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
setName(JObjectKeyP) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
setName(JObjectKeyP.Builder) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
setName(JObjectKeyP.Builder) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
+
.dhfs.persistence.JObjectKeyP name = 2;
+
+
setName(String) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
+
string name = 1;
+
+
setNameBytes(ByteString) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
+
string name = 1;
+
+
setPort(int) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
uint32 port = 2;
+
+
setPushedData(JDataRemoteDtoP) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
setPushedData(JDataRemoteDtoP.Builder) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
+
.dhfs.persistence.JDataRemoteDtoP pushedData = 6;
+
+
setReferrers(int, JObjectKeyP) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
setReferrers(int, JObjectKeyP.Builder) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
+
repeated .dhfs.persistence.JObjectKeyP referrers = 3;
+
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
setSecurePort(int) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
uint32 securePort = 3;
+
+
setSerializedData(ByteString) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
+
bytes serializedData = 1;
+
+
setSerializedData(ByteString) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
+
bytes serializedData = 1;
+
+
setSerializedData(ByteString) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
+
bytes serializedData = 1;
+
+
setSerializedData(ByteString) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
+
bytes serializedData = 1;
+
+
setSerializedData(ByteString) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
+
bytes serializedData = 1;
+
+
setTimes(JObjectKey, long, long) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Set the access and modification times of a file.
+
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.FileDtoP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.JDataP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.PeerIdP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.GetObjectReply.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.OpP.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.OpPushReply.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.OpPushRequest.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.PingReply.Builder
+
 
+
setUnknownFields(UnknownFieldSet) - Method in class com.usatiuk.dhfs.repository.PingRequest.Builder
+
 
+
setUuid(String) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
string uuid = 1;
+
+
setUuidBytes(ByteString) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo.Builder
+
+
string uuid = 1;
+
+
setValue(long) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder
+
+
int64 value = 2;
+
+
ShutdownChecker - Class in com.usatiuk.dhfs
+
 
+
ShutdownChecker() - Constructor for class com.usatiuk.dhfs.ShutdownChecker
+
 
+
size() - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
size(JObjectKey) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Get the size of a file.
+
+
skip() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
skip() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
skip() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
skip() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
skip() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
skipImpl() - Method in class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
skipImpl() - Method in class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
skipImpl() - Method in class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
skipImpl() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
skipImpl() - Method in class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
skipPrev() - Method in class com.usatiuk.dhfs.jmap.JMapIterator
+
 
+
skipPrev() - Method in interface com.usatiuk.objects.iterators.CloseableKvIterator
+
 
+
skipPrev() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
skipPrev() - Method in class com.usatiuk.objects.iterators.ReversedKvIterator
+
 
+
skipPrev() - Method in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
Snapshot<K,V> - Interface in com.usatiuk.objects.snapshot
+
 
+
statfs(String, Statvfs) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
StaticPeerDiscovery - Class in com.usatiuk.dhfs.peerdiscovery
+
 
+
StaticPeerDiscovery(Optional<String>) - Constructor for class com.usatiuk.dhfs.peerdiscovery.StaticPeerDiscovery
+
 
+
StatusRuntimeExceptionNoStacktrace - Exception Class in com.usatiuk.utils
+
 
+
StatusRuntimeExceptionNoStacktrace(Status) - Constructor for exception class com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace
+
 
+
StatusRuntimeExceptionNoStacktrace(Status, Metadata) - Constructor for exception class com.usatiuk.utils.StatusRuntimeExceptionNoStacktrace
+
 
+
StorageInterface<TimestampT,PeerIdT,MetaT,NodeIdT> - Interface in com.usatiuk.kleppmanntree
+
 
+
symlink() - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Returns the value of the symlink record component.
+
+
symlink(String, String) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Create a symlink.
+
+
symlink(String, String) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
SYMLINK - Enum constant in enum class com.usatiuk.dhfsfs.service.GetattrType
+
 
+
SyncHandler - Class in com.usatiuk.dhfs.remoteobj
+
 
+
SyncHandler(Instance<ObjSyncHandler<?, ?>>, Instance<InitialSyncProcessor<?>>) - Constructor for class com.usatiuk.dhfs.remoteobj.SyncHandler
+
 
+
SyncHandlerService - Class in com.usatiuk.dhfs.remoteobj
+
 
+
SyncHandlerService() - Constructor for class com.usatiuk.dhfs.remoteobj.SyncHandlerService
+
 
+
SyncHelper - Class in com.usatiuk.dhfs.remoteobj
+
 
+
SyncHelper() - Constructor for class com.usatiuk.dhfs.remoteobj.SyncHelper
+
 
+
SyncHelper.ChangelogCmpResult - Enum Class in com.usatiuk.dhfs.remoteobj
+
 
+
+

T

+
+
takeOldest() - Method in interface com.usatiuk.kleppmanntree.LogInterface
+
 
+
TemporaryOpSerializer - Class in com.usatiuk.dhfs
+
 
+
TemporaryOpSerializer() - Constructor for class com.usatiuk.dhfs.TemporaryOpSerializer
+
 
+
TemporaryReceivedObjectSerializer - Class in com.usatiuk.dhfs.rpc
+
 
+
TemporaryReceivedObjectSerializer() - Constructor for class com.usatiuk.dhfs.rpc.TemporaryReceivedObjectSerializer
+
 
+
TemporaryRemoteObjectSerializer - Class in com.usatiuk.dhfs.rpc
+
 
+
TemporaryRemoteObjectSerializer() - Constructor for class com.usatiuk.dhfs.rpc.TemporaryRemoteObjectSerializer
+
 
+
timestamp() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
Returns the value of the timestamp record component.
+
+
timestamp() - Method in record class com.usatiuk.kleppmanntree.CombinedTimestamp
+
+
Returns the value of the timestamp record component.
+
+
timestamp() - Method in record class com.usatiuk.kleppmanntree.OpMove
+
+
Returns the value of the timestamp record component.
+
+
toBuilder() - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
toBuilder() - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
toByteBuffer() - Method in interface com.usatiuk.objects.JObjectKey
+
 
+
toByteBuffer() - Method in class com.usatiuk.objects.JObjectKeyImpl
+
 
+
toByteBuffer() - Method in record class com.usatiuk.objects.JObjectKeyMax
+
 
+
toByteBuffer() - Method in record class com.usatiuk.objects.JObjectKeyMin
+
 
+
toDto(File) - Method in class com.usatiuk.dhfsfs.objects.FileDtoMapper
+
 
+
toDto(F) - Method in interface com.usatiuk.dhfs.syncmap.DtoMapper
+
 
+
toDto(F, Class<D>) - Method in class com.usatiuk.dhfs.syncmap.DtoMapperService
+
 
+
toJObjectKey() - Method in record class com.usatiuk.dhfs.peersync.PeerId
+
 
+
Tombstone<V> - Interface in com.usatiuk.objects.iterators
+
 
+
TombstoneImpl<V> - Record Class in com.usatiuk.objects.iterators
+
 
+
TombstoneImpl() - Constructor for record class com.usatiuk.objects.iterators.TombstoneImpl
+
+
Creates an instance of a TombstoneImpl record class.
+
+
TombstoneSkippingIterator<K,V> - Class in com.usatiuk.objects.iterators
+
 
+
TombstoneSkippingIterator(IteratorStart, K, List<CloseableKvIterator<K, MaybeTombstone<V>>>) - Constructor for class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
toString() - Method in record class com.usatiuk.dhfs.invalidation.IndexUpdateOp
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.invalidation.InvalidationQueueEntry
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jmap.JMapEntry
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jmap.JMapLongKey
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.jmap.JMapRef
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.peersync.api.ApiPeerInfo
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.peersync.PeerId
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.refcount.JDataNormalRef
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.remoteobj.ReceivedObject
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.webapi.KnownPeerPut
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.webapi.PeerAddressInfo
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.webapi.PeerInfo
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfs.webapi.SelfInfo
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfsfs.objects.ChunkData
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfsfs.objects.File
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfsfs.objects.FileDto
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.kleppmanntree.CombinedTimestamp
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.kleppmanntree.LogEffect
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.kleppmanntree.LogEffectOld
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.kleppmanntree.LogRecord
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.kleppmanntree.OpMove
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.iterators.DataWrapper
+
+
Returns a string representation of this record class.
+
+
toString() - Method in class com.usatiuk.objects.iterators.KeyPredicateKvIterator
+
 
+
toString() - Method in class com.usatiuk.objects.iterators.MappingKvIterator
+
 
+
toString() - Method in class com.usatiuk.objects.iterators.MergingKvIterator
+
 
+
toString() - Method in class com.usatiuk.objects.iterators.NavigableMapKvIterator
+
 
+
toString() - Method in record class com.usatiuk.objects.iterators.TombstoneImpl
+
+
Returns a string representation of this record class.
+
+
toString() - Method in class com.usatiuk.objects.iterators.TombstoneSkippingIterator
+
 
+
toString() - Method in record class com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
Returns a string representation of this record class.
+
+
toString() - Method in interface com.usatiuk.objects.JObjectKey
+
 
+
toString() - Method in class com.usatiuk.objects.JObjectKeyImpl
+
 
+
toString() - Method in record class com.usatiuk.objects.JObjectKeyMax
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.JObjectKeyMin
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.stores.PendingDelete
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.stores.PendingWrite
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.stores.TxManifestObj
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.stores.TxManifestRaw
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted
+
+
Returns a string representation of this record class.
+
+
toString() - Method in record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite
+
+
Returns a string representation of this record class.
+
+
Transaction - Interface in com.usatiuk.objects.transaction
+
 
+
TransactionHandle - Interface in com.usatiuk.objects.transaction
+
 
+
TransactionManager - Interface in com.usatiuk.objects.transaction
+
 
+
TransactionManagerImpl - Class in com.usatiuk.objects.transaction
+
 
+
TransactionManagerImpl() - Constructor for class com.usatiuk.objects.transaction.TransactionManagerImpl
+
 
+
TransactionService - Class in com.usatiuk.objects.transaction
+
 
+
trash(JKleppmannTreeNodeMeta, JObjectKey) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
traverse(List<String>) - Method in class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager.JKleppmannTree
+
 
+
traverse(List<String>) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
traverse(NodeIdT, List<String>) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
TREE_KEY - Static variable in class com.usatiuk.dhfs.peersync.PeerInfoService
+
 
+
treeName() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper
+
+
Returns the value of the treeName record component.
+
+
treeName() - Method in record class com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp
+
+
Returns the value of the treeName record component.
+
+
TreeNode<TimestampT,PeerIdT,MetaT,NodeIdT> - Interface in com.usatiuk.kleppmanntree
+
 
+
truncate(JObjectKey, long) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Truncate a file to the given length.
+
+
truncate(String, long) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
tryConnectAll() - Method in class com.usatiuk.dhfs.peersync.ReachablePeerManager
+
 
+
tryGet() - Method in class com.usatiuk.utils.HashSetDelayedBlockingQueue
+
 
+
tryLock(Object) - Method in class com.usatiuk.utils.DataLocker
+
 
+
TxCommitException - Exception Class in com.usatiuk.objects.transaction
+
 
+
TxCommitException(String) - Constructor for exception class com.usatiuk.objects.transaction.TxCommitException
+
 
+
TxCommitException(String, Throwable) - Constructor for exception class com.usatiuk.objects.transaction.TxCommitException
+
 
+
TxManifestObj<T> - Record Class in com.usatiuk.objects.stores
+
 
+
TxManifestObj(Collection<Pair<JObjectKey, T>>, Collection<JObjectKey>) - Constructor for record class com.usatiuk.objects.stores.TxManifestObj
+
+
Creates an instance of a TxManifestObj record class.
+
+
TxManifestRaw - Record Class in com.usatiuk.objects.stores
+
 
+
TxManifestRaw(Collection<Pair<JObjectKey, ByteString>>, Collection<JObjectKey>) - Constructor for record class com.usatiuk.objects.stores.TxManifestRaw
+
+
Creates an instance of a TxManifestRaw record class.
+
+
TxObjectRecordDeleted(JObjectKey) - Constructor for record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordDeleted
+
+
Creates an instance of a TxObjectRecordDeleted record class.
+
+
TxObjectRecordWrite(JData) - Constructor for record class com.usatiuk.objects.transaction.TxRecord.TxObjectRecordWrite
+
+
Creates an instance of a TxObjectRecordWrite record class.
+
+
TxRecord - Class in com.usatiuk.objects.transaction
+
 
+
TxRecord() - Constructor for class com.usatiuk.objects.transaction.TxRecord
+
 
+
TxRecord.TxObjectRecord<T> - Interface in com.usatiuk.objects.transaction
+
 
+
TxRecord.TxObjectRecordDeleted - Record Class in com.usatiuk.objects.transaction
+
 
+
TxRecord.TxObjectRecordWrite<T> - Record Class in com.usatiuk.objects.transaction
+
 
+
type() - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
+
Returns the value of the type record component.
+
+
type() - Method in interface com.usatiuk.dhfs.peerdiscovery.PeerAddress
+
 
+
type() - Method in record class com.usatiuk.dhfsfs.service.GetattrRes
+
+
Returns the value of the type record component.
+
+
+

U

+
+
unavailable() - Method in record class com.usatiuk.dhfs.peersync.ReachablePeerManager.HostStateSnapshot
+
+
Returns the value of the unavailable record component.
+
+
UninitializedByteBuffer - Class in com.usatiuk.utils
+
 
+
UninitializedByteBuffer() - Constructor for class com.usatiuk.utils.UninitializedByteBuffer
+
 
+
unlink(String) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Unlink a file or directory.
+
+
unlink(String) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
UNSAFE - Static variable in class com.usatiuk.utils.UnsafeAccessor
+
 
+
UnsafeAccessor - Class in com.usatiuk.utils
+
 
+
UnsafeAccessor() - Constructor for class com.usatiuk.utils.UnsafeAccessor
+
 
+
updateCerts() - Method in class com.usatiuk.dhfs.peersync.PersistentPeerDataService
+
 
+
updateExternalTimestamp(PeerIdT, TimestampT) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
updateTimestamp(TimestampT) - Method in interface com.usatiuk.kleppmanntree.Clock
+
 
+
utimens(String, Timespec[]) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
uuid() - Method in record class com.usatiuk.dhfs.webapi.PeerAddressInfo
+
+
Returns the value of the uuid record component.
+
+
uuid() - Method in record class com.usatiuk.dhfs.webapi.PeerInfo
+
+
Returns the value of the uuid record component.
+
+
uuid() - Method in record class com.usatiuk.dhfs.webapi.SelfInfo
+
+
Returns the value of the uuid record component.
+
+
UUID_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
+

V

+
+
value() - Method in interface com.usatiuk.objects.iterators.Data
+
 
+
value() - Method in record class com.usatiuk.objects.iterators.DataWrapper
+
+
Returns the value of the value record component.
+
+
value() - Method in interface com.usatiuk.objects.JDataVersionedWrapper
+
 
+
value() - Method in interface com.usatiuk.objects.JObjectKey
+
 
+
value() - Method in class com.usatiuk.objects.JObjectKeyImpl
+
 
+
value() - Method in record class com.usatiuk.objects.JObjectKeyMax
+
 
+
value() - Method in record class com.usatiuk.objects.JObjectKeyMin
+
 
+
value() - Method in record class com.usatiuk.objects.stores.PendingWrite
+
+
Returns the value of the value record component.
+
+
VALUE_FIELD_NUMBER - Static variable in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
valueOf(String) - Static method in enum class com.usatiuk.dhfs.peerdiscovery.PeerAddressType
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - Static method in enum class com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - Static method in enum class com.usatiuk.dhfsfs.service.GetattrType
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - Static method in enum class com.usatiuk.objects.iterators.IteratorStart
+
+
Returns the enum constant of this class with the specified name.
+
+
values() - Static method in enum class com.usatiuk.dhfs.peerdiscovery.PeerAddressType
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - Static method in enum class com.usatiuk.dhfs.remoteobj.SyncHelper.ChangelogCmpResult
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - Static method in enum class com.usatiuk.dhfsfs.service.GetattrType
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - Static method in enum class com.usatiuk.objects.iterators.IteratorStart
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
version() - Method in interface com.usatiuk.objects.JDataVersionedWrapper
+
 
+
version() - Method in record class com.usatiuk.objects.JDataVersionedWrapperImpl
+
+
Returns the value of the version record component.
+
+
version() - Method in class com.usatiuk.objects.JDataVersionedWrapperLazy
+
 
+
versionSum() - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
+

W

+
+
walkTree(Consumer<TreeNode<TimestampT, PeerIdT, MetaT, NodeIdT>>) - Method in class com.usatiuk.kleppmanntree.KleppmannTree
+
 
+
WAN - Enum constant in enum class com.usatiuk.dhfs.peerdiscovery.PeerAddressType
+
 
+
WebUiRouter - Class in com.usatiuk.dhfs.webui
+
 
+
WebUiRouter(Optional<String>) - Constructor for class com.usatiuk.dhfs.webui.WebUiRouter
+
 
+
withChangelog(PMap<PeerId, Long>) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withChildren(PMap<String, JObjectKey>) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
 
+
withChildren(PMap<String, NodeIdT>) - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
withClock(long) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
 
+
withCompression(String) - Method in class com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase
+
+
Set whether the server will try to use a compressed response.
+
+
withConfirmedDeletes(PSet<PeerId>) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withCTime(long) - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
withCurrentMTime() - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
withData(T) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
 
+
withFrozen(boolean) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
withFrozen(boolean) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
 
+
withFrozen(boolean) - Method in interface com.usatiuk.dhfs.refcount.JDataRefcounted
+
 
+
withFrozen(boolean) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
 
+
withFrozen(boolean) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withHaveLocal(boolean) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withIncrementedKickCounter(PeerId) - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
 
+
withInitialSyncDone(PSet<PeerId>) - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
 
+
withKickCounter(PMap<PeerId, Long>) - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
 
+
withKnownRemoteVersions(PMap<PeerId, Long>) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withKnownType(Class<? extends JDataRemote>) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withLastEffectiveOp(OpMove<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
 
+
withLastEffectiveOp(OpMove<TimestampT, PeerIdT, MetaT, NodeIdT>) - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
withLastSeenTimestamp(long) - Method in record class com.usatiuk.dhfs.peersync.PeerInfo
+
 
+
withLog(PSortedMap<CombinedTimestamp<Long, PeerId>, LogRecord<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>>) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
 
+
withMeta(JKleppmannTreeNodeMeta) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
 
+
withMeta(MetaT) - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
withMode(long) - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
withMTime(long) - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
withName(String) - Method in interface com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta
+
 
+
withName(String) - Method in record class com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer
+
 
+
withName(String) - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaDirectory
+
 
+
withName(String) - Method in record class com.usatiuk.dhfsfs.objects.JKleppmannTreeNodeMetaFile
+
 
+
withName(String) - Method in interface com.usatiuk.kleppmanntree.NodeMeta
+
 
+
withNode(JKleppmannTreeNode) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
withObjSyncClient(PeerId, PeerAddress, long, RpcClientFactory.ObjectSyncClientFunction<R>) - Method in class com.usatiuk.dhfs.rpc.RpcClientFactory
+
 
+
withObjSyncClient(PeerId, RpcClientFactory.ObjectSyncClientFunction<R>) - Method in class com.usatiuk.dhfs.rpc.RpcClientFactory
+
 
+
withObjSyncClient(PeerId, InetAddress, int, long, RpcClientFactory.ObjectSyncClientFunction<R>) - Method in class com.usatiuk.dhfs.rpc.RpcClientFactory
+
 
+
withObjSyncClient(Collection<PeerId>, RpcClientFactory.ObjectSyncClientFunction<R>) - Method in class com.usatiuk.dhfs.rpc.RpcClientFactory
+
 
+
withParent(JObjectKey) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode
+
 
+
withParent(NodeIdT) - Method in interface com.usatiuk.kleppmanntree.TreeNode
+
 
+
withPeerTimestampLog(PMap<PeerId, Long>) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
 
+
withPersistentPeerAddress(PMap<PeerId, IpPeerAddress>) - Method in record class com.usatiuk.dhfs.peersync.PersistentRemoteHostsData
+
 
+
withQueues(PMap<PeerId, PSortedMap<CombinedTimestamp<Long, PeerId>, OpMove<Long, PeerId, JKleppmannTreeNodeMeta, JObjectKey>>>) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
 
+
withRefsFrom(PCollection<JDataRef>) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeHolder
+
 
+
withRefsFrom(PCollection<JDataRef>) - Method in record class com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData
+
 
+
withRefsFrom(PCollection<JDataRef>) - Method in interface com.usatiuk.dhfs.refcount.JDataRefcounted
+
 
+
withRefsFrom(PCollection<JDataRef>) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper
+
 
+
withRefsFrom(PCollection<JDataRef>) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withSeen(boolean) - Method in record class com.usatiuk.dhfs.remoteobj.RemoteObjectMeta
+
 
+
withSymlink(boolean) - Method in record class com.usatiuk.dhfsfs.objects.File
+
 
+
withType(PeerAddressType) - Method in record class com.usatiuk.dhfs.peerdiscovery.IpPeerAddress
+
 
+
write(byte) - Method in class com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
 
+
write(byte[], int, int) - Method in class com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
 
+
write(JObjectKey, long, byte[]) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Write data to a file.
+
+
write(JObjectKey, long, ByteString) - Method in class com.usatiuk.dhfsfs.service.DhfsFileService
+
+
Write data to a file.
+
+
write(String, ByteBuffer, long, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
write(String, Pointer, long, long, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
write(ByteBuffer) - Method in class com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
 
+
write_buf(String, FuseBufvec, long, FuseFileInfo) - Method in class com.usatiuk.dhfsfuse.DhfsFuse
+
 
+
WritebackObjectPersistentStore - Class in com.usatiuk.objects.stores
+
 
+
WritebackObjectPersistentStore() - Constructor for class com.usatiuk.objects.stores.WritebackObjectPersistentStore
+
 
+
writeLazy(byte[], int, int) - Method in class com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
 
+
writeLazy(ByteBuffer) - Method in class com.usatiuk.dhfsfuse.JnrPtrByteOutput
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.ChunkDataP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.FileDtoP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.JDataP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.JDataRemoteDtoP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.JObjectKeyP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.ObjectChangelog
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.PeerIdP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.persistence.PeerInfoP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.CanDeleteReply
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.CanDeleteRequest
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.GetObjectReply
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.GetObjectRequest
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.OpP
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.OpPushReply
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.OpPushRequest
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.PingReply
+
 
+
writeTo(CodedOutputStream) - Method in class com.usatiuk.dhfs.repository.PingRequest
+
 
+
written() - Method in record class com.usatiuk.objects.stores.TxManifestObj
+
+
Returns the value of the written record component.
+
+
written() - Method in record class com.usatiuk.objects.stores.TxManifestRaw
+
+
Returns the value of the written record component.
+
+
+

_

+
+
_goingForward - Variable in class com.usatiuk.objects.iterators.ReversibleKvIterator
+
 
+
+A B C D E F G H I J K L M N O P Q R S T U V W _ 
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form
+
+
+ +
+
+
+ + diff --git a/index.html b/index.html new file mode 100644 index 00000000..91604102 --- /dev/null +++ b/index.html @@ -0,0 +1,131 @@ + + + + +Overview (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + + + + diff --git a/launcher/.gitignore b/launcher/.gitignore deleted file mode 100644 index 2863a0bd..00000000 --- a/launcher/.gitignore +++ /dev/null @@ -1,80 +0,0 @@ -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# AWS User-specific -.idea/**/aws.xml - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/artifacts -# .idea/compiler.xml -# .idea/jarRepositories.xml -# .idea/modules.xml -# .idea/*.iml -# .idea/modules -# *.iml -# *.ipr - -# CMake -cmake-build-*/ -build/ - -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - -# File-based project format -*.iws - -# IntelliJ -out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Cursive Clojure plugin -.idea/replstate.xml - -# SonarLint plugin -.idea/sonarlint/ - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -# Editor-based Rest Client -.idea/httpRequests - -# Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser - -Testing diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt deleted file mode 100644 index ffa1261d..00000000 --- a/launcher/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -cmake_minimum_required(VERSION 3.10) -project(launcher) - -if (SANITIZE STREQUAL "YES") - message(WARNING "Enabling sanitizers!") - add_compile_options(-Wall -Wextra -pedantic -Wshadow -Wformat=2 -Wfloat-equal -D_GLIBCXX_DEBUG -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2) - add_compile_options(-fsanitize=address -fsanitize=undefined -fno-sanitize-recover) - add_link_options(-fsanitize=address -fsanitize=undefined -fno-sanitize-recover) -endif () - -if (CMAKE_BUILD_TYPE STREQUAL "Release") - add_compile_options(-flto) - add_link_options(-flto) -endif () - -if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - add_compile_options(-O3) - add_link_options(-O3) -endif () - -find_package(wxWidgets REQUIRED COMPONENTS net core base) -if (wxWidgets_USE_FILE) # not defined in CONFIG mode - include(${wxWidgets_USE_FILE}) -endif () - -add_subdirectory(src) \ No newline at end of file diff --git a/launcher/src/CMakeLists.txt b/launcher/src/CMakeLists.txt deleted file mode 100644 index 292298b4..00000000 --- a/launcher/src/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -add_executable(launcher - LauncherApp.cpp -) -target_link_libraries(launcher ${wxWidgets_LIBRARIES}) diff --git a/launcher/src/LauncherApp.cpp b/launcher/src/LauncherApp.cpp deleted file mode 100644 index fd7a9d11..00000000 --- a/launcher/src/LauncherApp.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// Created by Stepan Usatiuk on 11.07.2024. -// - -// For compilers that don't support precompilation, include "wx/wx.h" -#include "wx/wxprec.h" - -#ifndef WX_PRECOMP -# include "wx/wx.h" -#endif - -#include "wx/notebook.h" - -#include "LauncherApp.h" - -#include "wx/taskbar.h" - -IMPLEMENT_APP(LauncherApp) - -// This is executed upon startup, like 'main()' in non-wxWidgets programs. -bool LauncherApp::OnInit() { - wxFrame* frame = new MainFrame(_T("DHFS Launcher"), wxDefaultPosition); - frame->CreateStatusBar(); - frame->SetStatusText(_T("Hello World")); - frame->Show(true); - SetTopWindow(frame); - - wxTaskBarIcon* tb = new wxTaskBarIcon(); - auto img = new wxImage(32, 32, false); - img->Clear(128); - tb->SetIcon(*(new wxBitmapBundle(*(new wxBitmap(*img)))), "e"); - - return true; -} - -BEGIN_EVENT_TABLE(MainFrame, wxFrame) - EVT_BUTTON(BUTTON_Hello, MainFrame::OnExit) // Tell the OS to run MainFrame::OnExit when -END_EVENT_TABLE() // The button is pressed - -MainFrame::MainFrame(const wxString& title, const wxPoint& pos) - : wxFrame((wxFrame*) NULL, -1, title, pos) { - Notebook = new wxNotebook(this, NOTEBOOK_Main); - - Panel = new wxPanel(Notebook); - Panel2 = new wxPanel(Notebook); - Notebook->AddPage(Panel, "Hello"); - Notebook->AddPage(Panel2, "Hello2"); - - Panel->SetBackgroundColour(wxColour(0xFF0000)); - - HelloWorld = new wxButton(Panel, BUTTON_Hello, _T("Hello World"), - // shows a button on this window - wxDefaultPosition, wxDefaultSize, 0); // with the text "hello World" -} - -void MainFrame::OnExit(wxCommandEvent& event) { - Close(TRUE); -} diff --git a/launcher/src/LauncherApp.h b/launcher/src/LauncherApp.h deleted file mode 100644 index 7d019b89..00000000 --- a/launcher/src/LauncherApp.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// Created by Stepan Usatiuk on 11.07.2024. -// - -#ifndef HELLOWORLDAPP_H -#define HELLOWORLDAPP_H - -// The HelloWorldApp class. This class shows a window -// containing a statusbar with the text "Hello World" -class LauncherApp : public wxApp { -public: - virtual bool OnInit(); -}; - -class MainFrame : public wxFrame // MainFrame is the class for our window, -{ - // It contains the window and all objects in it -public: - MainFrame(const wxString& title, const wxPoint& pos); - - wxButton* HelloWorld; - wxNotebook* Notebook; - wxPanel *Panel; - wxPanel *Panel2; - - void OnExit(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() -}; - -enum { - BUTTON_Hello = wxID_HIGHEST + 1, // declares an id which will be used to call our button - NOTEBOOK_Main = wxID_HIGHEST + 2 // declares an id which will be used to call our button -}; - -DECLARE_APP(LauncherApp) - -#endif //HELLOWORLDAPP_H diff --git a/legal/ADDITIONAL_LICENSE_INFO b/legal/ADDITIONAL_LICENSE_INFO new file mode 100644 index 00000000..ff700cd0 --- /dev/null +++ b/legal/ADDITIONAL_LICENSE_INFO @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff --git a/legal/ASSEMBLY_EXCEPTION b/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 00000000..42966666 --- /dev/null +++ b/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.org ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + https://openjdk.org/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff --git a/legal/LICENSE b/legal/LICENSE new file mode 100644 index 00000000..8b400c7a --- /dev/null +++ b/legal/LICENSE @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff --git a/legal/jquery.md b/legal/jquery.md new file mode 100644 index 00000000..a763ec6f --- /dev/null +++ b/legal/jquery.md @@ -0,0 +1,26 @@ +## jQuery v3.7.1 + +### jQuery License +``` +jQuery v 3.7.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +``` diff --git a/legal/jqueryUI.md b/legal/jqueryUI.md new file mode 100644 index 00000000..8bda9d7a --- /dev/null +++ b/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.13.2 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/link.svg b/link.svg new file mode 100644 index 00000000..7ccc5ed0 --- /dev/null +++ b/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/member-search-index.js b/member-search-index.js new file mode 100644 index 00000000..d3c12dbd --- /dev/null +++ b/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"_goingForward"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"acceptExternalOp(PeerId, Op)","u":"acceptExternalOp(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.invalidation.Op)"},{"p":"com.usatiuk.dhfs.autosync","c":"AutosyncProcessor","l":"add(JObjectKey)","u":"add(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"add(T)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addAllEntries(Iterable)","u":"addAllEntries(java.lang.Iterable)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addAllMsg(Iterable)","u":"addAllMsg(java.lang.Iterable)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addAllReferrers(Iterable)","u":"addAllReferrers(java.lang.Iterable)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addEntries(int, ObjectChangelog.entries_Entry)","u":"addEntries(int,com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addEntries(int, ObjectChangelog.entries_Entry.Builder)","u":"addEntries(int,com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addEntries(ObjectChangelog.entries_Entry)","u":"addEntries(com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addEntries(ObjectChangelog.entries_Entry.Builder)","u":"addEntries(com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addEntriesBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addEntriesBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addMsg(int, OpP)","u":"addMsg(int,com.usatiuk.dhfs.repository.OpP)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addMsg(int, OpP.Builder)","u":"addMsg(int,com.usatiuk.dhfs.repository.OpP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addMsg(OpP)","u":"addMsg(com.usatiuk.dhfs.repository.OpP)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addMsg(OpP.Builder)","u":"addMsg(com.usatiuk.dhfs.repository.OpP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addMsgBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addMsgBuilder(int)"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"addNoDelay(T)"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerManagementApi","l":"addPeer(String, KnownPeerPut)","u":"addPeer(java.lang.String,com.usatiuk.dhfs.webapi.KnownPeerPut)"},{"p":"com.usatiuk.dhfs.webapi","c":"PersistentPeerAddressApi","l":"addPeerAddress(String, String)","u":"addPeerAddress(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"addPersistentPeerAddress(PeerId, IpPeerAddress)","u":"addPersistentPeerAddress(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.peerdiscovery.IpPeerAddress)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addReferrers(int, JObjectKeyP)","u":"addReferrers(int,com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addReferrers(int, JObjectKeyP.Builder)","u":"addReferrers(int,com.usatiuk.dhfs.persistence.JObjectKeyP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addReferrers(JObjectKeyP)","u":"addReferrers(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addReferrers(JObjectKeyP.Builder)","u":"addReferrers(com.usatiuk.dhfs.persistence.JObjectKeyP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addReferrersBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addReferrersBuilder(int)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"addRemoteHost(PeerId, String)","u":"addRemoteHost(com.usatiuk.dhfs.peersync.PeerId,java.lang.String)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"addRepeatedField(Descriptors.FieldDescriptor, Object)","u":"addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"address()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerAddressInfo","l":"address()"},{"p":"com.usatiuk.utils","c":"UninitializedByteBuffer","l":"allocate(int)"},{"p":"com.usatiuk.kleppmanntree","c":"AlreadyExistsException","l":"AlreadyExistsException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.usatiuk.dhfs.peersync.api","c":"ApiPeerInfo","l":"ApiPeerInfo(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcClientFactory.ObjectSyncClientFunction","l":"apply(PeerId, DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub)","u":"apply(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub)"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"applyExternalOp(PeerIdT, OpMove)","u":"applyExternalOp(PeerIdT,com.usatiuk.kleppmanntree.OpMove)"},{"p":"com.usatiuk.objects.stores","c":"WritebackObjectPersistentStore","l":"asyncFence(long, Runnable)","u":"asyncFence(long,java.lang.Runnable)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerRolesAugmentor","l":"augment(SecurityIdentity, AuthenticationRequestContext)","u":"augment(io.quarkus.security.identity.SecurityIdentity,io.quarkus.security.identity.AuthenticationRequestContext)"},{"p":"com.usatiuk.dhfs.autosync","c":"AutosyncProcessor","l":"AutosyncProcessor()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.autosync","c":"AutosyncTxHook","l":"AutosyncTxHook()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager.HostStateSnapshot","l":"available()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerManagementApi","l":"availablePeers()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"begin()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManagerImpl","l":"begin()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"bindService()"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"bindService()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"bindService(DhfsObjectSyncGrpcGrpc.AsyncService)","u":"bindService(com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc.AsyncService)"},{"p":"com.usatiuk.dhfs.peerdiscovery.local","c":"LocalPeerDiscoveryBroadcaster","l":"broadcast()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"build()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub","l":"build(Channel, CallOptions)","u":"build(io.grpc.Channel,io.grpc.CallOptions)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub","l":"build(Channel, CallOptions)","u":"build(io.grpc.Channel,io.grpc.CallOptions)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub","l":"build(Channel, CallOptions)","u":"build(io.grpc.Channel,io.grpc.CallOptions)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub","l":"build(Channel, CallOptions)","u":"build(io.grpc.Channel,io.grpc.CallOptions)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"buildPartial()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"buildPartial()"},{"p":"com.usatiuk.objects.stores","c":"PendingDelete","l":"bundleId()"},{"p":"com.usatiuk.objects.stores","c":"PendingWrite","l":"bundleId()"},{"p":"com.usatiuk.objects.stores","c":"PendingWriteEntry","l":"bundleId()"},{"p":"com.usatiuk.utils","c":"ByteUtils","l":"bytesToLong(byte[])"},{"p":"com.usatiuk.utils","c":"ByteUtils","l":"ByteUtils()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects.stores","c":"CachingObjectPersistentStore","l":"CachingObjectPersistentStore(int)","u":"%3Cinit%3E(int)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpc","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcBean","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcClient","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServer","l":"canDelete(CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.AsyncService","l":"canDelete(CanDeleteRequest, StreamObserver)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub","l":"canDelete(CanDeleteRequest, StreamObserver)","u":"canDelete(com.usatiuk.dhfs.repository.CanDeleteRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceClient","l":"canDelete(Collection, JObjectKey)","u":"canDelete(java.util.Collection,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServerImpl","l":"canDelete(PeerId, CanDeleteRequest)","u":"canDelete(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.peersync.api","c":"ApiPeerInfo","l":"cert()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"cert()"},{"p":"com.usatiuk.dhfs.webapi","c":"KnownPeerPut","l":"cert()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerInfo","l":"cert()"},{"p":"com.usatiuk.dhfs.webapi","c":"SelfInfo","l":"cert()"},{"p":"com.usatiuk.dhfs.peertrust","c":"CertificateTools","l":"certFromBytes(byte[])"},{"p":"com.usatiuk.dhfs.peertrust","c":"CertificateTools","l":"CertificateTools()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"CHANGELOG_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"changelog()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ReceivedObject","l":"changelog()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"changelog()"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerTrustManager","l":"checkClientTrusted(X509Certificate[], String)","u":"checkClientTrusted(java.security.cert.X509Certificate[],java.lang.String)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerTrustManager","l":"checkServerTrusted(X509Certificate[], String)","u":"checkServerTrusted(java.security.cert.X509Certificate[],java.lang.String)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"childId()"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"childId()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"children()"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"children()"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"chmod(JObjectKey, long)","u":"chmod(com.usatiuk.objects.JObjectKey,long)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"chmod(String, long)","u":"chmod(java.lang.String,long)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"chown(String, long, long)","u":"chown(java.lang.String,long,long)"},{"p":"com.usatiuk.dhfsfs.objects","c":"ChunkData","l":"ChunkData(JObjectKey, ByteString)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDto","l":"chunks()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"clear()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"clearChangelog()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"clearData()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"clearDeletionCandidate()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"clearEntries()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"clearField(Descriptors.FieldDescriptor)","u":"clearField(com.google.protobuf.Descriptors.FieldDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"clearId()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"clearKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"clearKey()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"clearMsg()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"clearName()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"clearName()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"clearName()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"clearOneof(Descriptors.OneofDescriptor)","u":"clearOneof(com.google.protobuf.Descriptors.OneofDescriptor)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"clearPort()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"clearPushedData()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"clearReferrers()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"clearSecurePort()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"clearSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"clearSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"clearSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"clearSerializedData()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"clearSerializedData()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"clearUuid()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"clearValue()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"clock()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"clone()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"close()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"close()"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"close()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"close()"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"close()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"close()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"close()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"close()"},{"p":"com.usatiuk.objects.snapshot","c":"Snapshot","l":"close()"},{"p":"com.usatiuk.utils","c":"AutoCloseableNoThrow","l":"close()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"close()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeMeta","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataRefcounted","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"JDataRemote","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaDirectory","l":"collectRefsTo()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"collectRefsTo()"},{"p":"com.usatiuk.kleppmanntree","c":"CombinedTimestamp","l":"CombinedTimestamp(TimestampT, PeerIdT)","u":"%3Cinit%3E(TimestampT,PeerIdT)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"commit()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManagerImpl","l":"commit()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionService","l":"commit(TransactionImpl)","u":"commit(com.usatiuk.objects.transaction.TransactionImpl)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"commitOpForHost(PeerId, Op)","u":"commitOpForHost(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.invalidation.Op)"},{"p":"com.usatiuk.objects.stores","c":"WritebackObjectPersistentStore","l":"commitTx(Collection>)","u":"commitTx(java.util.Collection)"},{"p":"com.usatiuk.objects.stores","c":"CachingObjectPersistentStore","l":"commitTx(TxManifestObj, long)","u":"commitTx(com.usatiuk.objects.stores.TxManifestObj,long)"},{"p":"com.usatiuk.objects.stores","c":"LmdbObjectPersistentStore","l":"commitTx(TxManifestRaw, long)","u":"commitTx(com.usatiuk.objects.stores.TxManifestRaw,long)"},{"p":"com.usatiuk.objects.stores","c":"MemoryObjectPersistentStore","l":"commitTx(TxManifestRaw, long)","u":"commitTx(com.usatiuk.objects.stores.TxManifestRaw,long)"},{"p":"com.usatiuk.objects.stores","c":"ObjectPersistentStore","l":"commitTx(TxManifestRaw, long)","u":"commitTx(com.usatiuk.objects.stores.TxManifestRaw,long)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper","l":"compareChangelogs(PMap, PMap)","u":"compareChangelogs(org.pcollections.PMap,org.pcollections.PMap)"},{"p":"com.usatiuk.kleppmanntree","c":"CombinedTimestamp","l":"compareTo(CombinedTimestamp)","u":"compareTo(com.usatiuk.kleppmanntree.CombinedTimestamp)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"compareTo(JDataRef)","u":"compareTo(com.usatiuk.dhfs.refcount.JDataRef)"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataNormalRef","l":"compareTo(JDataRef)","u":"compareTo(com.usatiuk.dhfs.refcount.JDataRef)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"compareTo(JMapKey)","u":"compareTo(com.usatiuk.dhfs.jmap.JMapKey)"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"compareTo(JObjectKey)","u":"compareTo(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"compareTo(JObjectKey)","u":"compareTo(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects","c":"JObjectKeyMax","l":"compareTo(JObjectKey)","u":"compareTo(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects","c":"JObjectKeyMin","l":"compareTo(JObjectKey)","u":"compareTo(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"compareTo(PeerId)","u":"compareTo(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"confirmedDeletes()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper.ChangelogCmpResult","l":"CONFLICT"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"containsKey(CombinedTimestamp)","u":"containsKey(com.usatiuk.kleppmanntree.CombinedTimestamp)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"create(String, long)","u":"create(java.lang.String,long)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"create(String, long, FuseFileInfo)","u":"create(java.lang.String,long,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"createNewNode(JObjectKey, JObjectKey, JKleppmannTreeNodeMeta)","u":"createNewNode(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JObjectKey,com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta)"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"createNewNode(NodeIdT, NodeIdT, MetaT)","u":"createNewNode(NodeIdT,NodeIdT,MetaT)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionService","l":"createTransaction()"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"ctime()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"cTime()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"current()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManagerImpl","l":"current()"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"CurrentTransaction()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerTrustServerCustomizer","l":"customizeHttpsServer(HttpServerOptions)","u":"customizeHttpsServer(io.vertx.core.http.HttpServerOptions)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"DATA_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"data()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ReceivedObject","l":"data()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"data()"},{"p":"com.usatiuk.dhfsfs.objects","c":"ChunkData","l":"data()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapper","l":"data()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperImpl","l":"data()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperLazy","l":"data()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordWrite","l":"data()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"dataKey()"},{"p":"com.usatiuk.utils","c":"DataLocker","l":"DataLocker()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects.iterators","c":"DataWrapper","l":"DataWrapper(V)","u":"%3Cinit%3E(V)"},{"p":"","c":"DeadlockDetector","l":"DeadlockDetector()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"DefaultObjSyncHandler","l":"DefaultObjSyncHandler()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.invalidation","c":"DeferredInvalidationQueueData","l":"DeferredInvalidationQueueData()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.invalidation","c":"DeferredInvalidationQueueService","l":"DeferredInvalidationQueueService()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.invalidation","c":"DeferredInvalidationQueueData","l":"deferredInvalidations"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHelper","l":"delete(JMapHolder, K)","u":"delete(com.usatiuk.dhfs.jmap.JMapHolder,K)"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"delete(JObjectKey)","u":"delete(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects.transaction","c":"Transaction","l":"delete(JObjectKey)","u":"delete(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHelper","l":"deleteAll(JMapHolder)","u":"deleteAll(com.usatiuk.dhfs.jmap.JMapHolder)"},{"p":"com.usatiuk.objects.stores","c":"TxManifestObj","l":"deleted()"},{"p":"com.usatiuk.objects.stores","c":"TxManifestRaw","l":"deleted()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerManagementApi","l":"deletePeer(String)","u":"deletePeer(java.lang.String)"},{"p":"com.usatiuk.dhfs.webapi","c":"PersistentPeerAddressApi","l":"deletePeerAddress(String)","u":"deletePeerAddress(java.lang.String)"},{"p":"com.usatiuk.dhfs.refcount","c":"DeleterTxHook","l":"DeleterTxHook()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"DELETIONCANDIDATE_FIELD_NUMBER"},{"p":"com.usatiuk.utils","c":"SerializationHelper","l":"deserialize(byte[])"},{"p":"com.usatiuk.utils","c":"SerializationHelper","l":"deserialize(byte[], int)","u":"deserialize(byte[],int)"},{"p":"com.usatiuk.objects","c":"JavaDataSerializer","l":"deserialize(ByteBuffer)","u":"deserialize(java.nio.ByteBuffer)"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperSerializer","l":"deserialize(ByteBuffer)","u":"deserialize(java.nio.ByteBuffer)"},{"p":"com.usatiuk.objects","c":"ObjectSerializer","l":"deserialize(ByteBuffer)","u":"deserialize(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.rpc","c":"TemporaryReceivedObjectSerializer","l":"deserialize(GetObjectReply)","u":"deserialize(com.usatiuk.dhfs.repository.GetObjectReply)"},{"p":"com.usatiuk.utils","c":"SerializationHelper","l":"deserialize(InputStream)","u":"deserialize(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.rpc","c":"TemporaryRemoteObjectSerializer","l":"deserialize(JDataRemoteDtoP)","u":"deserialize(com.usatiuk.dhfs.persistence.JDataRemoteDtoP)"},{"p":"com.usatiuk.dhfs","c":"JObjectKeyProtoSerializer","l":"deserialize(JObjectKeyP)","u":"deserialize(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs","c":"ProtoSerializer","l":"deserialize(M)"},{"p":"com.usatiuk.dhfs","c":"TemporaryOpSerializer","l":"deserialize(OpP)","u":"deserialize(com.usatiuk.dhfs.repository.OpP)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoProtoSerializer","l":"deserialize(PeerInfoP)","u":"deserialize(com.usatiuk.dhfs.persistence.PeerInfoP)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"DhfsFileService()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"DhfsFuse()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcClient","l":"DhfsObjectSyncGrpcClient(String, Channel, BiFunction)","u":"%3Cinit%3E(java.lang.String,io.grpc.Channel,java.util.function.BiFunction)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"DhfsObjectSyncGrpcImplBase()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"DhfsObjectSyncGrpcImplBase()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfuse","c":"Main.DhfsStorageServerApp","l":"DhfsStorageServerApp()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrType","l":"DIRECTORY"},{"p":"com.usatiuk.dhfsfs.service","c":"DirectoryNotEmptyException","l":"DirectoryNotEmptyException()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PersistentStaticPeerDiscovery","l":"discoverPeers()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"StaticPeerDiscovery","l":"discoverPeers()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHandler","l":"doInitialSync(PeerId)","u":"doInitialSync(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"JDataRemote","l":"dtoClass()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"dtoClass()"},{"p":"com.usatiuk.dhfs.syncmap","c":"DtoMapperService","l":"DtoMapperService(Instance>)","u":"%3Cinit%3E(jakarta.enterprise.inject.Instance)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"effectiveOp()"},{"p":"com.usatiuk.kleppmanntree","c":"LogRecord","l":"effects()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"ENTRIES_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper.ChangelogCmpResult","l":"EQUAL"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueEntry","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpWrapper","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peersync.api","c":"ApiPeerInfo","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager.HostStateSnapshot","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataNormalRef","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ReceivedObject","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.webapi","c":"KnownPeerPut","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerAddressInfo","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerInfo","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.webapi","c":"SelfInfo","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfsfs.objects","c":"ChunkData","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDto","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaDirectory","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.kleppmanntree","c":"CombinedTimestamp","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffectOld","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.kleppmanntree","c":"LogRecord","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.iterators","c":"DataWrapper","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneImpl","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperImpl","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects","c":"JObjectKeyMax","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects","c":"JObjectKeyMin","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.stores","c":"PendingDelete","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.stores","c":"PendingWrite","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.stores","c":"TxManifestObj","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.stores","c":"TxManifestRaw","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordDeleted","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordWrite","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"estimateSize()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"estimateSize()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"JDataRemote","l":"estimateSize()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"estimateSize()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"estimateSize()"},{"p":"com.usatiuk.dhfsfs.objects","c":"ChunkData","l":"estimateSize()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"estimateSize()"},{"p":"com.usatiuk.objects","c":"JData","l":"estimateSize()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapper","l":"estimateSize()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperImpl","l":"estimateSize()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperLazy","l":"estimateSize()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"executeTx(Runnable)","u":"executeTx(java.lang.Runnable)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"executeTx(Supplier)","u":"executeTx(java.util.function.Supplier)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"existsPeer(PeerId)","u":"existsPeer(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.invalidation","c":"OpExtractorService","l":"extractOps(JData, PeerId)","u":"extractOps(com.usatiuk.objects.JData,com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpExtractor","l":"extractOps(JKleppmannTreePersistentData, PeerId)","u":"extractOps(com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData,com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.invalidation","c":"RemoteObjectMetaOpExtractor","l":"extractOps(RemoteObjectMeta, PeerId)","u":"extractOps(com.usatiuk.dhfs.remoteobj.RemoteObjectMeta,com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.invalidation","c":"OpExtractor","l":"extractOps(T, PeerId)","u":"extractOps(T,com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrType","l":"FILE"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDto","l":"file()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"File(JObjectKey, long, long, long, boolean)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,long,long,long,boolean)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDto","l":"FileDto(File, List>)","u":"%3Cinit%3E(com.usatiuk.dhfsfs.objects.File,java.util.List)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDtoMapper","l":"FileDtoMapper()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileHelper","l":"FileHelper()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"fileIno()"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileSyncHandler","l":"FileSyncHandler()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfs.service","c":"DirectoryNotEmptyException","l":"fillInStackTrace()"},{"p":"com.usatiuk.kleppmanntree","c":"AlreadyExistsException","l":"fillInStackTrace()"},{"p":"com.usatiuk.utils","c":"StatusRuntimeExceptionNoStacktrace","l":"fillInStackTrace()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"findParent(Function, Boolean>)","u":"findParent(java.util.function.Function)"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"findParent(Function, Boolean>)","u":"findParent(java.util.function.Function)"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"first()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"from()"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"fromByteBuffer(ByteBuffer)","u":"fromByteBuffer(java.nio.ByteBuffer)"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"fromBytes(byte[])"},{"p":"com.usatiuk.dhfs.syncmap","c":"DtoMapper","l":"fromDto(D)"},{"p":"com.usatiuk.dhfs.syncmap","c":"DtoMapperService","l":"fromDto(D, Class)","u":"fromDto(D,java.lang.Class)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDtoMapper","l":"fromDto(FileDto)","u":"fromDto(com.usatiuk.dhfsfs.objects.FileDto)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"frozen()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"frozen()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataRefcounted","l":"frozen()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"frozen()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"frozen()"},{"p":"com.usatiuk.objects.iterators","c":"IteratorStart","l":"GE"},{"p":"com.usatiuk.dhfs.peertrust","c":"CertificateTools","l":"generateCertificate(KeyPair, String)","u":"generateCertificate(java.security.KeyPair,java.lang.String)"},{"p":"com.usatiuk.dhfs.peertrust","c":"CertificateTools","l":"generateKeyPair()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"get()"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"get(Class, JObjectKey)","u":"get(java.lang.Class,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects.transaction","c":"Transaction","l":"get(Class, JObjectKey)","u":"get(java.lang.Class,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHelper","l":"get(JMapHolder, K)","u":"get(com.usatiuk.dhfs.jmap.JMapHolder,K)"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"get(long)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerTrustManager","l":"getAcceptedIssuers()"},{"p":"com.usatiuk.utils","c":"UninitializedByteBuffer","l":"getAddress(ByteBuffer)","u":"getAddress(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"getAddress(PeerId)","u":"getAddress(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"getAll()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"getAll()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeerInterface","l":"getAllPeers()"},{"p":"com.usatiuk.kleppmanntree","c":"PeerInterface","l":"getAllPeers()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"getAllWait()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"getAllWait(int)"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"getAllWait(int, long)","u":"getAllWait(int,long)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"getattr(JObjectKey)","u":"getattr(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"getattr(String, FileStat)","u":"getattr(java.lang.String,ru.serce.jnrfuse.struct.FileStat)"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"GetattrRes(long, long, long, GetattrType)","u":"%3Cinit%3E(long,long,long,com.usatiuk.dhfsfs.service.GetattrType)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"getAvailableHosts()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"getById(JObjectKey)","u":"getById(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"getById(NodeIdT)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"getCanDeleteMethod()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getChangelog()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getChangelog()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReplyOrBuilder","l":"getChangelog()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getChangelogBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getChangelogOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getChangelogOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReplyOrBuilder","l":"getChangelogOrBuilder()"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileHelper","l":"getChunks(File)","u":"getChunks(com.usatiuk.dhfsfs.objects.File)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"getData()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getData()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataPOrBuilder","l":"getData()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteTransaction","l":"getData(Class, JObjectKey)","u":"getData(java.lang.Class,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteTransaction","l":"getDataLocal(Class, JObjectKey)","u":"getDataLocal(java.lang.Class,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"getDefaultInstance()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"getDefaultInstanceForType()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"getDelay()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getDeletionCandidate()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getDeletionCandidate()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReplyOrBuilder","l":"getDeletionCandidate()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"DhfsObjectPeerDiscoveryApi","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"DhfsObjectPersistence","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncApi","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"getDescriptor()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"getDescriptorForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getEntries(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getEntries(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelogOrBuilder","l":"getEntries(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getEntriesBuilder(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getEntriesBuilderList()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getEntriesCount()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getEntriesCount()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelogOrBuilder","l":"getEntriesCount()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getEntriesList()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getEntriesList()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelogOrBuilder","l":"getEntriesList()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getEntriesOrBuilder(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getEntriesOrBuilder(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelogOrBuilder","l":"getEntriesOrBuilder(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"getEntriesOrBuilderList()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getEntriesOrBuilderList()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelogOrBuilder","l":"getEntriesOrBuilderList()"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"getEscapedRefs()"},{"p":"com.usatiuk.dhfs.invalidation","c":"Op","l":"getEscapedRefs()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpWrapper","l":"getEscapedRefs()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"getEscapedRefs()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryDirectory","l":"getForPeer(PeerId)","u":"getForPeer(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.kleppmanntree","c":"PeerTimestampLogInterface","l":"getForPeer(PeerIdT)"},{"p":"com.usatiuk.objects.stores","c":"LmdbObjectPersistentStore","l":"getFreeSpace()"},{"p":"com.usatiuk.objects.stores","c":"MemoryObjectPersistentStore","l":"getFreeSpace()"},{"p":"com.usatiuk.objects.stores","c":"ObjectPersistentStore","l":"getFreeSpace()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"getGetObjectMethod()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"getHostStateSnapshot()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"getId()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"getId()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdPOrBuilder","l":"getId()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"getIdBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"getIdOrBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"getIdOrBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdPOrBuilder","l":"getIdOrBuilder()"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"getIterator(IteratorStart, JObjectKey)","u":"getIterator(com.usatiuk.objects.iterators.IteratorStart,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects.transaction","c":"Transaction","l":"getIterator(IteratorStart, JObjectKey)","u":"getIterator(com.usatiuk.objects.iterators.IteratorStart,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects.snapshot","c":"Snapshot","l":"getIterator(IteratorStart, K)","u":"getIterator(com.usatiuk.objects.iterators.IteratorStart,K)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHelper","l":"getIterator(JMapHolder)","u":"getIterator(com.usatiuk.dhfs.jmap.JMapHolder)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHelper","l":"getIterator(JMapHolder, IteratorStart, K)","u":"getIterator(com.usatiuk.dhfs.jmap.JMapHolder,com.usatiuk.objects.iterators.IteratorStart,K)"},{"p":"com.usatiuk.objects.transaction","c":"Transaction","l":"getIterator(JObjectKey)","u":"getIterator(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"getKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataPOrBuilder","l":"getKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"getKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_EntryOrBuilder","l":"getKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"getKeyBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"getKeyBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"getKeyOrBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getKeyOrBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataPOrBuilder","l":"getKeyOrBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"getKeyOrBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getKeyOrBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_EntryOrBuilder","l":"getKeyOrBuilder()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"getLog()"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"getLog()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"getLostFoundId()"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"getLostFoundId()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteTransaction","l":"getMeta(JObjectKey)","u":"getMeta(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getMsg(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getMsg(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequestOrBuilder","l":"getMsg(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getMsgBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getMsgBuilderList()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getMsgCount()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getMsgCount()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequestOrBuilder","l":"getMsgCount()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getMsgList()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getMsgList()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequestOrBuilder","l":"getMsgList()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getMsgOrBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getMsgOrBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequestOrBuilder","l":"getMsgOrBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"getMsgOrBuilderList()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getMsgOrBuilderList()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequestOrBuilder","l":"getMsgOrBuilderList()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"getName()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"getName()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyPOrBuilder","l":"getName()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"getName()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"getName()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequestOrBuilder","l":"getName()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"getName()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"getName()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequestOrBuilder","l":"getName()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"getNameBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"getNameBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"getNameBytes()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"getNameBytes()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyPOrBuilder","l":"getNameBytes()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"getNameOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"getNameOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequestOrBuilder","l":"getNameOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"getNameOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"getNameOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequestOrBuilder","l":"getNameOrBuilder()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"getNewNodeId()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"getNewNodeId()"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"getNewNodeId()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpc","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcBean","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcClient","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServer","l":"getObject(GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.AsyncService","l":"getObject(GetObjectRequest, StreamObserver)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub","l":"getObject(GetObjectRequest, StreamObserver)","u":"getObject(com.usatiuk.dhfs.repository.GetObjectRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceClient","l":"getObject(JObjectKey, Function, Boolean>)","u":"getObject(com.usatiuk.objects.JObjectKey,java.util.function.Function)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServerImpl","l":"getObject(PeerId, GetObjectRequest)","u":"getObject(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"getOpPushMethod()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"getParserForType()"},{"p":"com.usatiuk.dhfs.webapi","c":"PersistentPeerAddressApi","l":"getPeerAddress(String)","u":"getPeerAddress(java.lang.String)"},{"p":"com.usatiuk.dhfs.webapi","c":"PersistentPeerAddressApi","l":"getPeerAddresses()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"getPeerInfo(PeerId)","u":"getPeerInfo(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"getPeerInfoImpl(JObjectKey)","u":"getPeerInfoImpl(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"getPeers()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"getPeersNoSelf()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"getPeerTimestampLog()"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"getPeerTimestampLog()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"getPendingOpsForHost(PeerId, int)","u":"getPendingOpsForHost(com.usatiuk.dhfs.peersync.PeerId,int)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"getPeriodicPushOp()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"getPersistentPeerAddress(PeerId)","u":"getPersistentPeerAddress(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"getPersistentPeerAddresses()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"getPingMethod()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"getPort()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getPort()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfoOrBuilder","l":"getPort()"},{"p":"com.usatiuk.dhfs.autosync","c":"AutosyncTxHook","l":"getPriority()"},{"p":"com.usatiuk.dhfs.refcount","c":"DeleterTxHook","l":"getPriority()"},{"p":"com.usatiuk.dhfs.refcount","c":"RefcounterTxHook","l":"getPriority()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjPusherTxHook","l":"getPriority()"},{"p":"com.usatiuk.objects.transaction","c":"PreCommitTxHook","l":"getPriority()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getPushedData()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getPushedData()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReplyOrBuilder","l":"getPushedData()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getPushedDataBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"getPushedDataOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getPushedDataOrBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReplyOrBuilder","l":"getPushedDataOrBuilder()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryDirectory","l":"getReachablePeers()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getReferrers(int)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getReferrers(int)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReplyOrBuilder","l":"getReferrers(int)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getReferrersBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getReferrersBuilderList()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getReferrersCount()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getReferrersCount()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReplyOrBuilder","l":"getReferrersCount()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getReferrersList()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getReferrersList()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReplyOrBuilder","l":"getReferrersList()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getReferrersOrBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getReferrersOrBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReplyOrBuilder","l":"getReferrersOrBuilder(int)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"getReferrersOrBuilderList()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getReferrersOrBuilderList()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReplyOrBuilder","l":"getReferrersOrBuilderList()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"getRootId()"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"getRootId()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"getSecurePort()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getSecurePort()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfoOrBuilder","l":"getSecurePort()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"getSeenButNotAddedHosts()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"getSelfCertificate()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeerInterface","l":"getSelfId()"},{"p":"com.usatiuk.kleppmanntree","c":"PeerInterface","l":"getSelfId()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"PeerSyncApi","l":"getSelfInfo()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"PeerSyncApiClient","l":"getSelfInfo()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"PeerSyncApiClientDynamic","l":"getSelfInfo(PeerAddress)","u":"getSelfInfo(com.usatiuk.dhfs.peerdiscovery.PeerAddress)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"getSelfKeypair()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"getSelfUuid()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoPOrBuilder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataPOrBuilder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoPOrBuilder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoPOrBuilder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPOrBuilder","l":"getSerializedData()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"getSerializedSize()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"getServiceDescriptor()"},{"p":"com.usatiuk.objects.stores","c":"CachingObjectPersistentStore","l":"getSnapshot()"},{"p":"com.usatiuk.objects.stores","c":"LmdbObjectPersistentStore","l":"getSnapshot()"},{"p":"com.usatiuk.objects.stores","c":"MemoryObjectPersistentStore","l":"getSnapshot()"},{"p":"com.usatiuk.objects.stores","c":"ObjectPersistentStore","l":"getSnapshot()"},{"p":"com.usatiuk.objects.stores","c":"SerializingObjectPersistentStore","l":"getSnapshot()"},{"p":"com.usatiuk.objects.stores","c":"WritebackObjectPersistentStore","l":"getSnapshot()"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceClient","l":"getSpecificObject(JObjectKey, PeerId)","u":"getSpecificObject(com.usatiuk.objects.JObjectKey,com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcClient","l":"getStub()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"getSynchronizedPeers()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"getSynchronizedPeersNoSelf()"},{"p":"com.usatiuk.kleppmanntree","c":"Clock","l":"getTimestamp()"},{"p":"com.usatiuk.objects.stores","c":"LmdbObjectPersistentStore","l":"getTotalSpace()"},{"p":"com.usatiuk.objects.stores","c":"MemoryObjectPersistentStore","l":"getTotalSpace()"},{"p":"com.usatiuk.objects.stores","c":"ObjectPersistentStore","l":"getTotalSpace()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"getTrashId()"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"getTrashId()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager","l":"getTree(JObjectKey)","u":"getTree(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager","l":"getTree(JObjectKey, Supplier)","u":"getTree(com.usatiuk.objects.JObjectKey,java.util.function.Supplier)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"getUuid()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getUuid()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfoOrBuilder","l":"getUuid()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"getUuidBytes()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"getUuidBytes()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfoOrBuilder","l":"getUuidBytes()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"getValue()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"getValue()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_EntryOrBuilder","l":"getValue()"},{"p":"com.usatiuk.objects.iterators","c":"IteratorStart","l":"GT"},{"p":"com.usatiuk.dhfs.webui","c":"WebUiRouter","l":"handle(RoutingContext)","u":"handle(io.vertx.ext.web.RoutingContext)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"handleConnectionError(PeerId)","u":"handleConnectionError(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"handleConnectionError(PeerInfo)","u":"handleConnectionError(com.usatiuk.dhfs.peersync.PeerInfo)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeInitialSyncProcessor","l":"handleCrash(JObjectKey)","u":"handleCrash(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peersync","c":"InitialSyncProcessor","l":"handleCrash(JObjectKey)","u":"handleCrash(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectInitialSyncProcessor","l":"handleCrash(JObjectKey)","u":"handleCrash(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"IndexUpdateOpHandler","l":"handleOp(PeerId, IndexUpdateOp)","u":"handleOp(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.invalidation.IndexUpdateOp)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpHandler","l":"handleOp(PeerId, JKleppmannTreeOpWrapper)","u":"handleOp(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicOpHandler","l":"handleOp(PeerId, JKleppmannTreePeriodicPushOp)","u":"handleOp(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp)"},{"p":"com.usatiuk.dhfs.invalidation","c":"OpHandlerService","l":"handleOp(PeerId, Op)","u":"handleOp(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.invalidation.Op)"},{"p":"com.usatiuk.dhfs.invalidation","c":"OpHandler","l":"handleOp(PeerId, T)","u":"handleOp(com.usatiuk.dhfs.peersync.PeerId,T)"},{"p":"com.usatiuk.dhfs.invalidation","c":"DeferredInvalidationQueueService","l":"handlePeerConnected(PeerId)","u":"handlePeerConnected(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerConnectedEventListener","l":"handlePeerConnected(PeerId)","u":"handlePeerConnected(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerDisconnectedEventListener","l":"handlePeerDisconnected(PeerId)","u":"handlePeerDisconnected(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcClientFactory","l":"handlePeerDisconnected(PeerId)","u":"handlePeerDisconnected(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ObjSyncHandler","l":"handleRemoteUpdate(PeerId, JObjectKey, PMap, D)","u":"handleRemoteUpdate(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey,org.pcollections.PMap,D)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHandler","l":"handleRemoteUpdate(PeerId, JObjectKey, PMap, D)","u":"handleRemoteUpdate(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey,org.pcollections.PMap,D)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileSyncHandler","l":"handleRemoteUpdate(PeerId, JObjectKey, PMap, FileDto)","u":"handleRemoteUpdate(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey,org.pcollections.PMap,com.usatiuk.dhfsfs.objects.FileDto)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"DefaultObjSyncHandler","l":"handleRemoteUpdate(PeerId, JObjectKey, PMap, JDataRemote)","u":"handleRemoteUpdate(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey,org.pcollections.PMap,com.usatiuk.dhfs.remoteobj.JDataRemote)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoSyncHandler","l":"handleRemoteUpdate(PeerId, JObjectKey, PMap, PeerInfo)","u":"handleRemoteUpdate(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey,org.pcollections.PMap,com.usatiuk.dhfs.peersync.PeerInfo)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"hasChangelog()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"hasChangelog()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReplyOrBuilder","l":"hasChangelog()"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"hashCode()"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueEntry","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpWrapper","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"hashCode()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"ApiPeerInfo","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager.HostStateSnapshot","l":"hashCode()"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataNormalRef","l":"hashCode()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ReceivedObject","l":"hashCode()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"hashCode()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"hashCode()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"hashCode()"},{"p":"com.usatiuk.dhfs.webapi","c":"KnownPeerPut","l":"hashCode()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerAddressInfo","l":"hashCode()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerInfo","l":"hashCode()"},{"p":"com.usatiuk.dhfs.webapi","c":"SelfInfo","l":"hashCode()"},{"p":"com.usatiuk.dhfsfs.objects","c":"ChunkData","l":"hashCode()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"hashCode()"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDto","l":"hashCode()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaDirectory","l":"hashCode()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"hashCode()"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"hashCode()"},{"p":"com.usatiuk.kleppmanntree","c":"CombinedTimestamp","l":"hashCode()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"hashCode()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffectOld","l":"hashCode()"},{"p":"com.usatiuk.kleppmanntree","c":"LogRecord","l":"hashCode()"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"hashCode()"},{"p":"com.usatiuk.objects.iterators","c":"DataWrapper","l":"hashCode()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneImpl","l":"hashCode()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperImpl","l":"hashCode()"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"hashCode()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMax","l":"hashCode()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMin","l":"hashCode()"},{"p":"com.usatiuk.objects.stores","c":"PendingDelete","l":"hashCode()"},{"p":"com.usatiuk.objects.stores","c":"PendingWrite","l":"hashCode()"},{"p":"com.usatiuk.objects.stores","c":"TxManifestObj","l":"hashCode()"},{"p":"com.usatiuk.objects.stores","c":"TxManifestRaw","l":"hashCode()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordDeleted","l":"hashCode()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordWrite","l":"hashCode()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"HashSetDelayedBlockingQueue(long)","u":"%3Cinit%3E(long)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"hasId()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"hasId()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdPOrBuilder","l":"hasId()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"hasImmediate()"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"hasImpl()"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"hasImpl()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"hasImpl()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"hasImpl()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"hasImpl()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"hasKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"hasKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataPOrBuilder","l":"hasKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"hasKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"hasKey()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_EntryOrBuilder","l":"hasKey()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"hasLocalData()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"hasName()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"hasName()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequestOrBuilder","l":"hasName()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"hasName()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"hasName()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequestOrBuilder","l":"hasName()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"hasNext()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"hasNext()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"hasNext()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"hasNext()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"hasPendingOpsForHost(PeerId)","u":"hasPendingOpsForHost(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"hasPrev()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"hasPrev()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"hasPrev()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"hasPrev()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"hasPrev()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"hasPushedData()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"hasPushedData()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReplyOrBuilder","l":"hasPushedData()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"holder()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"holder()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager.HostStateSnapshot","l":"HostStateSnapshot(Collection, Collection)","u":"%3Cinit%3E(java.util.Collection,java.util.Collection)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"ID_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"id()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"id()"},{"p":"com.usatiuk.objects.snapshot","c":"Snapshot","l":"id()"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"IndexUpdateOp(JObjectKey, PMap, JDataRemoteDto)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,org.pcollections.PMap,com.usatiuk.dhfs.remoteobj.JDataRemoteDto)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"IndexUpdateOpHandler","l":"IndexUpdateOpHandler()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"initialSyncDone()"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"inoToParent(JObjectKey)","u":"inoToParent(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"internalGetFieldAccessorTable()"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueEntry","l":"InvalidationQueueEntry(PeerId, JObjectKey)","u":"%3Cinit%3E(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueService","l":"InvalidationQueueService(int)","u":"%3Cinit%3E(int)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"IpPeerAddress(PeerId, PeerAddressType, InetAddress, int, int)","u":"%3Cinit%3E(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.peerdiscovery.PeerAddressType,java.net.InetAddress,int,int)"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"isEmpty()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"isInitialized()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"isInitialSyncDone(PeerId)","u":"isInitialSyncDone(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"isReachable(PeerId)","u":"isReachable(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"isReachable(PeerInfo)","u":"isReachable(com.usatiuk.dhfs.peersync.PeerInfo)"},{"p":"com.usatiuk.objects","c":"JavaDataSerializer","l":"JavaDataSerializer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataNormalRef","l":"JDataNormalRef(JObjectKey)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperImpl","l":"JDataVersionedWrapperImpl(JData, long)","u":"%3Cinit%3E(com.usatiuk.objects.JData,long)"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperLazy","l":"JDataVersionedWrapperLazy(long, int, Supplier)","u":"%3Cinit%3E(long,int,java.util.function.Supplier)"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperSerializer","l":"JDataVersionedWrapperSerializer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeInitialSyncProcessor","l":"JKleppmannTreeInitialSyncProcessor()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager","l":"JKleppmannTreeManager()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"JKleppmannTreeNode(JObjectKey, JObjectKey, JKleppmannTreeNodeMeta)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JObjectKey,com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"JKleppmannTreeNode(JObjectKey, JObjectKey, OpMove, JKleppmannTreeNodeMeta, PMap)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JObjectKey,com.usatiuk.kleppmanntree.OpMove,com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta,org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"JKleppmannTreeNodeHolder(JKleppmannTreeNode)","u":"%3Cinit%3E(com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"JKleppmannTreeNodeHolder(JKleppmannTreeNode, boolean)","u":"%3Cinit%3E(com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode,boolean)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"JKleppmannTreeNodeHolder(PCollection, boolean, JKleppmannTreeNode)","u":"%3Cinit%3E(org.pcollections.PCollection,boolean,com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode)"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaDirectory","l":"JKleppmannTreeNodeMetaDirectory(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"JKleppmannTreeNodeMetaFile(String, JObjectKey)","u":"%3Cinit%3E(java.lang.String,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"JKleppmannTreeNodeMetaPeer(PeerId)","u":"%3Cinit%3E(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"JKleppmannTreeNodeMetaPeer(String, JObjectKey)","u":"%3Cinit%3E(java.lang.String,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpExtractor","l":"JKleppmannTreeOpExtractor()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpHandler","l":"JKleppmannTreeOpHandler()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpWrapper","l":"JKleppmannTreeOpWrapper(JObjectKey, OpMove)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.usatiuk.kleppmanntree.OpMove)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeerInterface","l":"JKleppmannTreePeerInterface()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicOpHandler","l":"JKleppmannTreePeriodicOpHandler()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"JKleppmannTreePeriodicPushOp(JObjectKey, PeerId, long)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.usatiuk.dhfs.peersync.PeerId,long)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"JKleppmannTreePersistentData(JObjectKey, PCollection, boolean, long, PMap, OpMove>>, PMap, PSortedMap, LogRecord>)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,org.pcollections.PCollection,boolean,long,org.pcollections.PMap,org.pcollections.PMap,org.pcollections.PSortedMap)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"JKleppmannTreeStorageInterface()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"JMapEntry(JObjectKey, JObjectKey, K, JObjectKey)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JObjectKey,K,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"JMapEntry(JObjectKey, K, JObjectKey)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,K,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHelper","l":"JMapHelper()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHolderRefcounterTxHook","l":"JMapHolderRefcounterTxHook()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"JMapIterator(CloseableKvIterator, JMapHolder)","u":"%3Cinit%3E(com.usatiuk.objects.iterators.CloseableKvIterator,com.usatiuk.dhfs.jmap.JMapHolder)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"JMapLongKey(long)","u":"%3Cinit%3E(long)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"JMapRef(JObjectKey, JMapKey)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.usatiuk.dhfs.jmap.JMapKey)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRefcounterTxHook","l":"JMapRefcounterTxHook()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfuse","c":"JnrPtrByteOutput","l":"JnrPtrByteOutput(Pointer, long)","u":"%3Cinit%3E(jnr.ffi.Pointer,long)"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"JObjectKeyImpl(byte[])","u":"%3Cinit%3E(byte[])"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"JObjectKeyImpl(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.usatiuk.objects","c":"JObjectKeyMax","l":"JObjectKeyMax()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMin","l":"JObjectKeyMin()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs","c":"JObjectKeyProtoSerializer","l":"JObjectKeyProtoSerializer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"KEY"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"KEY_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"KEY_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"key()"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueEntry","l":"key()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"key()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"key()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"key()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"key()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"key()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"key()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"key()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"JDataRemote","l":"key()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"key()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"key()"},{"p":"com.usatiuk.dhfsfs.objects","c":"ChunkData","l":"key()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"key()"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"key()"},{"p":"com.usatiuk.objects","c":"JData","l":"key()"},{"p":"com.usatiuk.objects.stores","c":"PendingDelete","l":"key()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecord","l":"key()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordDeleted","l":"key()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordWrite","l":"key()"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"KeyPredicateKvIterator(CloseableKvIterator, IteratorStart, K, Function)","u":"%3Cinit%3E(com.usatiuk.objects.iterators.CloseableKvIterator,com.usatiuk.objects.iterators.IteratorStart,K,java.util.function.Function)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"keyToKey(JObjectKey)","u":"keyToKey(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"kickCounter()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"kickCounterSum()"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"KleppmannTree(StorageInterface, PeerInterface, Clock, OpRecorder)","u":"%3Cinit%3E(com.usatiuk.kleppmanntree.StorageInterface,com.usatiuk.kleppmanntree.PeerInterface,com.usatiuk.kleppmanntree.Clock,com.usatiuk.kleppmanntree.OpRecorder)"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerInfo","l":"knownAddress()"},{"p":"com.usatiuk.dhfs.webapi","c":"KnownPeerPut","l":"KnownPeerPut(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerManagementApi","l":"knownPeers()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"knownRemoteVersions()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"knownType()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddressType","l":"LAN"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"last()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"lastEffectiveOp()"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"lastEffectiveOp()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"lastSeenTimestamp()"},{"p":"com.usatiuk.dhfs","c":"ShutdownChecker","l":"lastShutdownClean()"},{"p":"com.usatiuk.objects.iterators","c":"IteratorStart","l":"LE"},{"p":"com.usatiuk.utils","c":"ListUtils","l":"ListUtils()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects.stores","c":"LmdbObjectPersistentStore","l":"LmdbObjectPersistentStore(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.usatiuk.dhfs.peerdiscovery.local","c":"LocalPeerDiscoveryBroadcaster","l":"LocalPeerDiscoveryBroadcaster()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peerdiscovery.local","c":"LocalPeerDiscoveryClient","l":"LocalPeerDiscoveryClient()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.utils","c":"DataLocker","l":"lock(Object)","u":"lock(java.lang.Object)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"log()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"LogEffect(LogEffectOld, OpMove, NodeIdT, MetaT, NodeIdT)","u":"%3Cinit%3E(com.usatiuk.kleppmanntree.LogEffectOld,com.usatiuk.kleppmanntree.OpMove,NodeIdT,MetaT,NodeIdT)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffectOld","l":"LogEffectOld(OpMove, NodeIdT, MetaT)","u":"%3Cinit%3E(com.usatiuk.kleppmanntree.OpMove,NodeIdT,MetaT)"},{"p":"com.usatiuk.kleppmanntree","c":"LogRecord","l":"LogRecord(OpMove, List>)","u":"%3Cinit%3E(com.usatiuk.kleppmanntree.OpMove,java.util.List)"},{"p":"com.usatiuk.utils","c":"ByteUtils","l":"longToBb(long)"},{"p":"com.usatiuk.utils","c":"ByteUtils","l":"longToBytes(long)"},{"p":"com.usatiuk.objects.iterators","c":"IteratorStart","l":"LT"},{"p":"com.usatiuk.dhfsfuse","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfuse","c":"Main","l":"main(String...)","u":"main(java.lang.String...)"},{"p":"com.usatiuk.utils","c":"ListUtils","l":"map(List, Function)","u":"map(java.util.List,java.util.function.Function)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"mapKey()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"MappingKvIterator(CloseableKvIterator, Function)","u":"%3Cinit%3E(com.usatiuk.objects.iterators.CloseableKvIterator,java.util.function.Function)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"markInitialSyncDone(PeerId)","u":"markInitialSyncDone(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"MAX"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"max()"},{"p":"com.usatiuk.objects.stores","c":"MemoryObjectPersistentStore","l":"MemoryObjectPersistentStore()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"merge(T, Function)","u":"merge(T,java.util.function.Function)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"mergeChangelog(ObjectChangelog)","u":"mergeChangelog(com.usatiuk.dhfs.persistence.ObjectChangelog)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"mergeFrom(CanDeleteReply)","u":"mergeFrom(com.usatiuk.dhfs.repository.CanDeleteReply)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"mergeFrom(CanDeleteRequest)","u":"mergeFrom(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"mergeFrom(ChunkDataP)","u":"mergeFrom(com.usatiuk.dhfs.persistence.ChunkDataP)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"mergeFrom(CodedInputStream, ExtensionRegistryLite)","u":"mergeFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"mergeFrom(FileDtoP)","u":"mergeFrom(com.usatiuk.dhfs.persistence.FileDtoP)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"mergeFrom(GetObjectReply)","u":"mergeFrom(com.usatiuk.dhfs.repository.GetObjectReply)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"mergeFrom(GetObjectRequest)","u":"mergeFrom(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"mergeFrom(JDataP)","u":"mergeFrom(com.usatiuk.dhfs.persistence.JDataP)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"mergeFrom(JDataRemoteDtoP)","u":"mergeFrom(com.usatiuk.dhfs.persistence.JDataRemoteDtoP)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"mergeFrom(JObjectKeyP)","u":"mergeFrom(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"mergeFrom(Message)","u":"mergeFrom(com.google.protobuf.Message)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"mergeFrom(ObjectChangelog)","u":"mergeFrom(com.usatiuk.dhfs.persistence.ObjectChangelog)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"mergeFrom(ObjectChangelog.entries_Entry)","u":"mergeFrom(com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"mergeFrom(OpP)","u":"mergeFrom(com.usatiuk.dhfs.repository.OpP)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"mergeFrom(OpPushReply)","u":"mergeFrom(com.usatiuk.dhfs.repository.OpPushReply)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"mergeFrom(OpPushRequest)","u":"mergeFrom(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"mergeFrom(PeerDiscoveryInfo)","u":"mergeFrom(com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"mergeFrom(PeerIdP)","u":"mergeFrom(com.usatiuk.dhfs.persistence.PeerIdP)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"mergeFrom(PeerInfoP)","u":"mergeFrom(com.usatiuk.dhfs.persistence.PeerInfoP)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"mergeFrom(PingReply)","u":"mergeFrom(com.usatiuk.dhfs.repository.PingReply)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"mergeFrom(PingRequest)","u":"mergeFrom(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"mergeId(JObjectKeyP)","u":"mergeId(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"mergeKey(JObjectKeyP)","u":"mergeKey(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"mergeKey(PeerIdP)","u":"mergeKey(com.usatiuk.dhfs.persistence.PeerIdP)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"mergeName(JObjectKeyP)","u":"mergeName(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"mergeName(JObjectKeyP)","u":"mergeName(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"mergePushedData(JDataRemoteDtoP)","u":"mergePushedData(com.usatiuk.dhfs.persistence.JDataRemoteDtoP)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"mergeUnknownFields(UnknownFieldSet)","u":"mergeUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"MergingKvIterator(IteratorStart, K, CloseableKvIterator...)","u":"%3Cinit%3E(com.usatiuk.objects.iterators.IteratorStart,K,com.usatiuk.objects.iterators.CloseableKvIterator...)"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"MergingKvIterator(IteratorStart, K, List>)","u":"%3Cinit%3E(com.usatiuk.objects.iterators.IteratorStart,K,java.util.List)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"meta()"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"meta()"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"MIN"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"mkdir(String, long)","u":"mkdir(java.lang.String,long)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"mkdir(String, long)","u":"mkdir(java.lang.String,long)"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"mode()"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"mode()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"move(JObjectKey, JKleppmannTreeNodeMeta, JObjectKey)","u":"move(com.usatiuk.objects.JObjectKey,com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"move(NodeIdT, LocalMetaT, NodeIdT)","u":"move(NodeIdT,LocalMetaT,NodeIdT)"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"move(NodeIdT, MetaT, NodeIdT, boolean)","u":"move(NodeIdT,MetaT,NodeIdT,boolean)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"MSG_FIELD_NUMBER"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"mtime()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"mTime()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"NAME_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"NAME_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"NAME_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"name()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaDirectory","l":"name()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"name()"},{"p":"com.usatiuk.kleppmanntree","c":"NodeMeta","l":"name()"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"name()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"NavigableMapKvIterator(NavigableMap, IteratorStart, K)","u":"%3Cinit%3E(java.util.NavigableMap,com.usatiuk.objects.iterators.IteratorStart,K)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"newBlockingStub(Channel)","u":"newBlockingStub(io.grpc.Channel)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"newBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"newBuilder(CanDeleteReply)","u":"newBuilder(com.usatiuk.dhfs.repository.CanDeleteReply)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"newBuilder(CanDeleteRequest)","u":"newBuilder(com.usatiuk.dhfs.repository.CanDeleteRequest)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"newBuilder(ChunkDataP)","u":"newBuilder(com.usatiuk.dhfs.persistence.ChunkDataP)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"newBuilder(FileDtoP)","u":"newBuilder(com.usatiuk.dhfs.persistence.FileDtoP)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"newBuilder(GetObjectReply)","u":"newBuilder(com.usatiuk.dhfs.repository.GetObjectReply)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"newBuilder(GetObjectRequest)","u":"newBuilder(com.usatiuk.dhfs.repository.GetObjectRequest)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"newBuilder(JDataP)","u":"newBuilder(com.usatiuk.dhfs.persistence.JDataP)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"newBuilder(JDataRemoteDtoP)","u":"newBuilder(com.usatiuk.dhfs.persistence.JDataRemoteDtoP)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"newBuilder(JObjectKeyP)","u":"newBuilder(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"newBuilder(ObjectChangelog)","u":"newBuilder(com.usatiuk.dhfs.persistence.ObjectChangelog)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"newBuilder(ObjectChangelog.entries_Entry)","u":"newBuilder(com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"newBuilder(OpP)","u":"newBuilder(com.usatiuk.dhfs.repository.OpP)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"newBuilder(OpPushReply)","u":"newBuilder(com.usatiuk.dhfs.repository.OpPushReply)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"newBuilder(OpPushRequest)","u":"newBuilder(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"newBuilder(PeerDiscoveryInfo)","u":"newBuilder(com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"newBuilder(PeerIdP)","u":"newBuilder(com.usatiuk.dhfs.persistence.PeerIdP)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"newBuilder(PeerInfoP)","u":"newBuilder(com.usatiuk.dhfs.persistence.PeerInfoP)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"newBuilder(PingReply)","u":"newBuilder(com.usatiuk.dhfs.repository.PingReply)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"newBuilder(PingRequest)","u":"newBuilder(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"newBuilderForType()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"newBuilderForType(GeneratedMessageV3.BuilderParent)","u":"newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper.ChangelogCmpResult","l":"NEWER"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"newestSlice(CombinedTimestamp, boolean)","u":"newestSlice(com.usatiuk.kleppmanntree.CombinedTimestamp,boolean)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"newFutureStub(Channel)","u":"newFutureStub(io.grpc.Channel)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"newInstance(GeneratedMessageV3.UnusedPrivateParameter)","u":"newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcClient","l":"newInstanceWithStub(MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub)","u":"newInstanceWithStub(com.usatiuk.dhfs.repository.MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"newMeta()"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"newMeta()"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc","l":"newMutinyStub(Channel)","u":"newMutinyStub(io.grpc.Channel)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"newName()"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"newName()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"newParentId()"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"newParentId()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"newStub(Channel)","u":"newStub(io.grpc.Channel)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"next()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"next()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"next()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"next()"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"nextImpl()"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"nextImpl()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"nextImpl()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"nextImpl()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"nextImpl()"},{"p":"com.usatiuk.utils","c":"UnsafeAccessor","l":"NIO"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"node()"},{"p":"com.usatiuk.kleppmanntree","c":"CombinedTimestamp","l":"nodeId()"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"nodeIdToPeerId(JObjectKey)","u":"nodeIdToPeerId(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryDirectory","l":"notifyAddr(PeerAddress)","u":"notifyAddr(com.usatiuk.dhfs.peerdiscovery.PeerAddress)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"obj()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataNormalRef","l":"obj()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataRef","l":"obj()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"JDataRemoteDto","l":"objClass()"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDto","l":"objClass()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"of(long)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"of(String)","u":"of(java.lang.String)"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"of(String)","u":"of(java.lang.String)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"ofDataKey(JObjectKey)","u":"ofDataKey(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"ofMetaKey(JObjectKey)","u":"ofMetaKey(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffectOld","l":"oldEffectiveMove()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper.ChangelogCmpResult","l":"OLDER"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"oldInfo()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffectOld","l":"oldMeta()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"oldName()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffectOld","l":"oldParent()"},{"p":"com.usatiuk.dhfs.autosync","c":"AutosyncTxHook","l":"onChange(JObjectKey, JData, JData)","u":"onChange(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRefcounterTxHook","l":"onChange(JObjectKey, JData, JData)","u":"onChange(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerInfoCertUpdateTxHook","l":"onChange(JObjectKey, JData, JData)","u":"onChange(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.refcount","c":"DeleterTxHook","l":"onChange(JObjectKey, JData, JData)","u":"onChange(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.refcount","c":"RefcounterTxHook","l":"onChange(JObjectKey, JData, JData)","u":"onChange(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjPusherTxHook","l":"onChange(JObjectKey, JData, JData)","u":"onChange(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"PreCommitTxHook","l":"onChange(JObjectKey, JData, JData)","u":"onChange(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"onCommit(Runnable)","u":"onCommit(java.lang.Runnable)"},{"p":"com.usatiuk.objects.transaction","c":"Transaction","l":"onCommit(Runnable)","u":"onCommit(java.lang.Runnable)"},{"p":"com.usatiuk.dhfs.autosync","c":"AutosyncTxHook","l":"onCreate(JObjectKey, JData)","u":"onCreate(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRefcounterTxHook","l":"onCreate(JObjectKey, JData)","u":"onCreate(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerInfoCertUpdateTxHook","l":"onCreate(JObjectKey, JData)","u":"onCreate(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.refcount","c":"DeleterTxHook","l":"onCreate(JObjectKey, JData)","u":"onCreate(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.refcount","c":"RefcounterTxHook","l":"onCreate(JObjectKey, JData)","u":"onCreate(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjPusherTxHook","l":"onCreate(JObjectKey, JData)","u":"onCreate(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"PreCommitTxHook","l":"onCreate(JObjectKey, JData)","u":"onCreate(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.autosync","c":"AutosyncTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHolderRefcounterTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRefcounterTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerInfoCertUpdateTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.refcount","c":"DeleterTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.refcount","c":"RefcounterTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjPusherTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"PreCommitTxHook","l":"onDelete(JObjectKey, JData)","u":"onDelete(com.usatiuk.objects.JObjectKey,com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"onFlush(Runnable)","u":"onFlush(java.lang.Runnable)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionHandle","l":"onFlush(Runnable)","u":"onFlush(java.lang.Runnable)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpWrapper","l":"op()"},{"p":"com.usatiuk.kleppmanntree","c":"LogRecord","l":"op()"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"open(String)","u":"open(java.lang.String)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"open(String, FuseFileInfo)","u":"open(java.lang.String,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.dhfs.invalidation","c":"OpExtractorService","l":"OpExtractorService(Instance>)","u":"%3Cinit%3E(jakarta.enterprise.inject.Instance)"},{"p":"com.usatiuk.dhfs.invalidation","c":"OpHandlerService","l":"OpHandlerService(Instance>)","u":"%3Cinit%3E(jakarta.enterprise.inject.Instance)"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"OpMove(CombinedTimestamp, NodeIdT, MetaT, NodeIdT)","u":"%3Cinit%3E(com.usatiuk.kleppmanntree.CombinedTimestamp,NodeIdT,MetaT,NodeIdT)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpc","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcBean","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcClient","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServer","l":"opPush(OpPushRequest)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.AsyncService","l":"opPush(OpPushRequest, StreamObserver)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub","l":"opPush(OpPushRequest, StreamObserver)","u":"opPush(com.usatiuk.dhfs.repository.OpPushRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServerImpl","l":"opPush(PeerId, OpPushRequest)","u":"opPush(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.repository.OpPushRequest)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"parent()"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"parent()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddrStringHelper","l":"parse(String)","u":"parse(java.lang.String)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"parsedCert()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseDelimitedFrom(InputStream)","u":"parseDelimitedFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseDelimitedFrom(InputStream, ExtensionRegistryLite)","u":"parseDelimitedFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(byte[])"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(byte[], ExtensionRegistryLite)","u":"parseFrom(byte[],com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(ByteBuffer)","u":"parseFrom(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(ByteBuffer, ExtensionRegistryLite)","u":"parseFrom(java.nio.ByteBuffer,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(ByteString)","u":"parseFrom(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(ByteString, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.ByteString,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(CodedInputStream)","u":"parseFrom(com.google.protobuf.CodedInputStream)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(CodedInputStream, ExtensionRegistryLite)","u":"parseFrom(com.google.protobuf.CodedInputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(InputStream)","u":"parseFrom(java.io.InputStream)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parseFrom(InputStream, ExtensionRegistryLite)","u":"parseFrom(java.io.InputStream,com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddrStringHelper","l":"parseNoPeer(PeerId, String)","u":"parseNoPeer(com.usatiuk.dhfs.peersync.PeerId,java.lang.String)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"parser()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"parser()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"parser()"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"peekImpl()"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"peekImpl()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"peekImpl()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"peekImpl()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"peekImpl()"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"peekNewest()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"peekNextKey()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"peekNextKey()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"peekNextKey()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"peekNextKey()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"peekNextKey()"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"peekOldest()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"peekPrevKey()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"peekPrevKey()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"peekPrevKey()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"peekPrevKey()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"peekPrevKey()"},{"p":"com.usatiuk.kleppmanntree","c":"Clock","l":"peekTimestamp()"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueEntry","l":"peer()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"peer()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddress","l":"peer()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerAddressInfo","l":"PeerAddressInfo(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddrStringHelper","l":"PeerAddrStringHelper()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryDirectory","l":"PeerDiscoveryDirectory()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"peerId()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"PeerId(JObjectKey)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"peerIdToNodeId(PeerId)","u":"peerIdToNodeId(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"PeerInfo(JObjectKey, PeerId, ByteString, PMap, long)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,com.usatiuk.dhfs.peersync.PeerId,com.google.protobuf.ByteString,org.pcollections.PMap,long)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"PeerInfo(PeerId, byte[])","u":"%3Cinit%3E(com.usatiuk.dhfs.peersync.PeerId,byte[])"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerInfo","l":"PeerInfo(String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerInfoCertUpdateTxHook","l":"PeerInfoCertUpdateTxHook()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoProtoSerializer","l":"PeerInfoProtoSerializer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"PeerInfoService()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoSyncHandler","l":"PeerInfoSyncHandler()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerLastSeenUpdater","l":"PeerLastSeenUpdater()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerManagementApi","l":"PeerManagementApi()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerRolesAugmentor","l":"PeerRolesAugmentor()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"PeerSyncApi","l":"PeerSyncApi()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"PeerSyncApiClientDynamic","l":"PeerSyncApiClientDynamic()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"peerTimestampLog()"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerTrustManager","l":"PeerTrustManager()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerTrustServerCustomizer","l":"PeerTrustServerCustomizer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects.stores","c":"PendingDelete","l":"PendingDelete(JObjectKey, long)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,long)"},{"p":"com.usatiuk.objects.stores","c":"PendingWrite","l":"PendingWrite(JDataVersionedWrapper, long)","u":"%3Cinit%3E(com.usatiuk.objects.JDataVersionedWrapper,long)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"persistentPeerAddress()"},{"p":"com.usatiuk.dhfs.webapi","c":"PersistentPeerAddressApi","l":"PersistentPeerAddressApi()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"PersistentPeerDataService()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"PersistentRemoteHostsData(PeerId, ByteString, ByteString, PSet, PMap)","u":"%3Cinit%3E(com.usatiuk.dhfs.peersync.PeerId,com.google.protobuf.ByteString,com.google.protobuf.ByteString,org.pcollections.PSet,org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PersistentStaticPeerDiscovery","l":"PersistentStaticPeerDiscovery()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServerImpl","l":"ping(PeerId, PingRequest)","u":"ping(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpc","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcBean","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcClient","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServer","l":"ping(PingRequest)","u":"ping(com.usatiuk.dhfs.repository.PingRequest)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.AsyncService","l":"ping(PingRequest, StreamObserver)","u":"ping(com.usatiuk.dhfs.repository.PingRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub","l":"ping(PingRequest, StreamObserver)","u":"ping(com.usatiuk.dhfs.repository.PingRequest,io.grpc.stub.StreamObserver)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"PORT_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"port()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeInitialSyncProcessor","l":"prepareForInitialSync(PeerId, JObjectKey)","u":"prepareForInitialSync(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.peersync","c":"InitialSyncProcessor","l":"prepareForInitialSync(PeerId, JObjectKey)","u":"prepareForInitialSync(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectInitialSyncProcessor","l":"prepareForInitialSync(PeerId, JObjectKey)","u":"prepareForInitialSync(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.utils","c":"ListUtils","l":"prepend(T, List)","u":"prepend(T,java.util.List)"},{"p":"com.usatiuk.utils","c":"ListUtils","l":"prependAndMap(T_V, List, Function)","u":"prependAndMap(T_V,java.util.List,java.util.function.Function)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"prev()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"prev()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"prev()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"prev()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"prev()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddressType","l":"PROXY"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"PUSHEDDATA_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueService","l":"pushInvalidationToAll(JObjectKey)","u":"pushInvalidationToAll(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueService","l":"pushInvalidationToOne(PeerId, JObjectKey)","u":"pushInvalidationToOne(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueService","l":"pushInvalidationToOneNoDelay(PeerId, JObjectKey)","u":"pushInvalidationToOneNoDelay(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceClient","l":"pushOps(PeerId, List)","u":"pushOps(com.usatiuk.dhfs.peersync.PeerId,java.util.List)"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"put(CombinedTimestamp, LogRecord)","u":"put(com.usatiuk.kleppmanntree.CombinedTimestamp,com.usatiuk.kleppmanntree.LogRecord)"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"put(JData)","u":"put(com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"Transaction","l":"put(JData)","u":"put(com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapHelper","l":"put(JMapHolder, K, JObjectKey)","u":"put(com.usatiuk.dhfs.jmap.JMapHolder,K,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteTransaction","l":"putData(T)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteTransaction","l":"putDataNew(T)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteTransaction","l":"putDataRaw(T)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDeleter","l":"putDeletionCandidate(RemoteObjectMeta)","u":"putDeletionCandidate(com.usatiuk.dhfs.remoteobj.RemoteObjectMeta)"},{"p":"com.usatiuk.kleppmanntree","c":"PeerTimestampLogInterface","l":"putForPeer(PeerIdT, TimestampT)","u":"putForPeer(PeerIdT,TimestampT)"},{"p":"com.usatiuk.objects.transaction","c":"CurrentTransaction","l":"putNew(JData)","u":"putNew(com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"Transaction","l":"putNew(JData)","u":"putNew(com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"putNode(TreeNode)","u":"putNode(com.usatiuk.kleppmanntree.TreeNode)"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"putNode(TreeNode)","u":"putNode(com.usatiuk.kleppmanntree.TreeNode)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"putPeer(PeerId, byte[])","u":"putPeer(com.usatiuk.dhfs.peersync.PeerId,byte[])"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"queues()"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"random()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"ReachablePeerManager(Instance, Instance)","u":"%3Cinit%3E(jakarta.enterprise.inject.Instance,jakarta.enterprise.inject.Instance)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"read(JObjectKey, long, int)","u":"read(com.usatiuk.objects.JObjectKey,long,int)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"read(String, Pointer, long, long, FuseFileInfo)","u":"read(java.lang.String,jnr.ffi.Pointer,long,long,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"readd(T)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"readDir(String)","u":"readDir(java.lang.String)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"readdir(String, Pointer, FuseFillDir, long, FuseFileInfo)","u":"readdir(java.lang.String,jnr.ffi.Pointer,ru.serce.jnrfuse.FuseFillDir,long,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"readlink(JObjectKey)","u":"readlink(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"readlink(String, Pointer, long)","u":"readlink(java.lang.String,jnr.ffi.Pointer,long)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"readlinkBS(JObjectKey)","u":"readlinkBS(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects.snapshot","c":"Snapshot","l":"readObject(K)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ReceivedObject","l":"ReceivedObject(PMap, JDataRemoteDto)","u":"%3Cinit%3E(org.pcollections.PMap,com.usatiuk.dhfs.remoteobj.JDataRemoteDto)"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"recordBoostrapFor(PeerIdT)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"recordBootstrap(PeerId)","u":"recordBootstrap(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.kleppmanntree","c":"OpRecorder","l":"recordOp(OpMove)","u":"recordOp(com.usatiuk.kleppmanntree.OpMove)"},{"p":"com.usatiuk.kleppmanntree","c":"OpRecorder","l":"recordOpForPeer(PeerIdT, OpMove)","u":"recordOpForPeer(PeerIdT,com.usatiuk.kleppmanntree.OpMove)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"ref()"},{"p":"com.usatiuk.dhfs.refcount","c":"RefcounterTxHook","l":"RefcounterTxHook()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"REFERRERS_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"refsFrom()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"refsFrom()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataRefcounted","l":"refsFrom()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"refsFrom()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"refsFrom()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"DhfsObjectPeerDiscoveryApi","l":"registerAllExtensions(ExtensionRegistry)","u":"registerAllExtensions(com.google.protobuf.ExtensionRegistry)"},{"p":"com.usatiuk.dhfs.persistence","c":"DhfsObjectPersistence","l":"registerAllExtensions(ExtensionRegistry)","u":"registerAllExtensions(com.google.protobuf.ExtensionRegistry)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncApi","l":"registerAllExtensions(ExtensionRegistry)","u":"registerAllExtensions(com.google.protobuf.ExtensionRegistry)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"DhfsObjectPeerDiscoveryApi","l":"registerAllExtensions(ExtensionRegistryLite)","u":"registerAllExtensions(com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.persistence","c":"DhfsObjectPersistence","l":"registerAllExtensions(ExtensionRegistryLite)","u":"registerAllExtensions(com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncApi","l":"registerAllExtensions(ExtensionRegistryLite)","u":"registerAllExtensions(com.google.protobuf.ExtensionRegistryLite)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"release(String, FuseFileInfo)","u":"release(java.lang.String,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.dhfs.peertrust","c":"PeerTrustManager","l":"reloadTrustManagerHosts(Collection)","u":"reloadTrustManagerHosts(java.util.Collection)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"RemoteObjectDataWrapper(JObjectKey, PCollection, boolean, T)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,org.pcollections.PCollection,boolean,T)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"RemoteObjectDataWrapper(T)","u":"%3Cinit%3E(T)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDeleter","l":"RemoteObjectDeleter(long, long)","u":"%3Cinit%3E(long,long)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectInitialSyncProcessor","l":"RemoteObjectInitialSyncProcessor()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"RemoteObjectMeta(JDataRemote, PeerId)","u":"%3Cinit%3E(com.usatiuk.dhfs.remoteobj.JDataRemote,com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"RemoteObjectMeta(JObjectKey)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"RemoteObjectMeta(JObjectKey, PCollection, boolean, PMap, Class, PSet, boolean, PMap, boolean)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,org.pcollections.PCollection,boolean,org.pcollections.PMap,java.lang.Class,org.pcollections.PSet,boolean,org.pcollections.PMap,boolean)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"RemoteObjectMeta(JObjectKey, PMap)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey,org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.invalidation","c":"RemoteObjectMetaOpExtractor","l":"RemoteObjectMetaOpExtractor()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceClient","l":"RemoteObjectServiceClient()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServer","l":"RemoteObjectServiceServer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.rpc","c":"RemoteObjectServiceServerImpl","l":"RemoteObjectServiceServerImpl()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjPusherTxHook","l":"RemoteObjPusherTxHook()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteTransaction","l":"RemoteTransaction()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"remove(T)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"removeEntries(int)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"removeMsg(int)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface","l":"removeNode(JObjectKey)","u":"removeNode(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.kleppmanntree","c":"StorageInterface","l":"removeNode(NodeIdT)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"removePeer(PeerId)","u":"removePeer(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"removePersistentPeerAddress(PeerId)","u":"removePersistentPeerAddress(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"removeReferrers(int)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"removeRemoteHost(PeerId)","u":"removeRemoteHost(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"rename(String, String)","u":"rename(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"rename(String, String)","u":"rename(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"replace(CombinedTimestamp, LogRecord)","u":"replace(com.usatiuk.kleppmanntree.CombinedTimestamp,com.usatiuk.kleppmanntree.LogRecord)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileHelper","l":"replaceChunks(File, List>)","u":"replaceChunks(com.usatiuk.dhfsfs.objects.File,java.util.List)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"resetInitialSyncDone(PeerId)","u":"resetInitialSyncDone(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ConflictResolver","l":"resolve(PeerId, RemoteObjectMeta, RemoteObjectMeta)","u":"resolve(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.remoteobj.RemoteObjectMeta,com.usatiuk.dhfs.remoteobj.RemoteObjectMeta)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHandler","l":"resyncAfterCrash(StartupEvent)","u":"resyncAfterCrash(io.quarkus.runtime.StartupEvent)"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"reverse()"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"reverse()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"reverse()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"reverse()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"reverse()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"reversed()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"reversed()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"ReversedKvIterator(CloseableKvIterator)","u":"%3Cinit%3E(com.usatiuk.objects.iterators.CloseableKvIterator)"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"ReversibleKvIterator()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"rmdir(String)","u":"rmdir(java.lang.String)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"rollback()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManagerImpl","l":"rollback()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionService","l":"rollback(TransactionImpl)","u":"rollback(com.usatiuk.objects.transaction.TransactionImpl)"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcChannelFactory","l":"RpcChannelFactory()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcClientFactory","l":"RpcClientFactory()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"run(Runnable)","u":"run(java.lang.Runnable)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"run(Runnable, boolean)","u":"run(java.lang.Runnable,boolean)"},{"p":"com.usatiuk.dhfsfuse","c":"Main.DhfsStorageServerApp","l":"run(String...)","u":"run(java.lang.String...)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"run(Supplier)","u":"run(java.util.function.Supplier)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"run(Supplier, boolean)","u":"run(java.util.function.Supplier,boolean)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"runTries(Runnable, int)","u":"runTries(java.lang.Runnable,int)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"runTries(Runnable, int, boolean)","u":"runTries(java.lang.Runnable,int,boolean)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"runTries(Supplier, int)","u":"runTries(java.util.function.Supplier,int)"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManager","l":"runTries(Supplier, int, boolean)","u":"runTries(java.util.function.Supplier,int,boolean)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"SECUREPORT_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"securePort()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"seen()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"selectBestAddress(PeerId)","u":"selectBestAddress(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"selfCertificate()"},{"p":"com.usatiuk.dhfs.webapi","c":"SelfInfo","l":"SelfInfo(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"selfKey()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"selfKeyPair()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"ApiPeerInfo","l":"selfUuid()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"selfUuid()"},{"p":"com.usatiuk.utils","c":"SerializationHelper","l":"SerializationHelper()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects","c":"JavaDataSerializer","l":"serialize(JData)","u":"serialize(com.usatiuk.objects.JData)"},{"p":"com.usatiuk.dhfs.rpc","c":"TemporaryRemoteObjectSerializer","l":"serialize(JDataRemoteDto)","u":"serialize(com.usatiuk.dhfs.remoteobj.JDataRemoteDto)"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperSerializer","l":"serialize(JDataVersionedWrapper)","u":"serialize(com.usatiuk.objects.JDataVersionedWrapper)"},{"p":"com.usatiuk.dhfs","c":"JObjectKeyProtoSerializer","l":"serialize(JObjectKey)","u":"serialize(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs","c":"ProtoSerializer","l":"serialize(O)"},{"p":"com.usatiuk.dhfs","c":"TemporaryOpSerializer","l":"serialize(Op)","u":"serialize(com.usatiuk.dhfs.invalidation.Op)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoProtoSerializer","l":"serialize(PeerInfo)","u":"serialize(com.usatiuk.dhfs.peersync.PeerInfo)"},{"p":"com.usatiuk.dhfs.rpc","c":"TemporaryReceivedObjectSerializer","l":"serialize(ReceivedObject)","u":"serialize(com.usatiuk.dhfs.remoteobj.ReceivedObject)"},{"p":"com.usatiuk.objects","c":"ObjectSerializer","l":"serialize(T)"},{"p":"com.usatiuk.utils","c":"SerializationHelper","l":"serialize(T)"},{"p":"com.usatiuk.utils","c":"SerializationHelper","l":"serializeArray(T)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"SERIALIZEDDATA_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"SERIALIZEDDATA_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"SERIALIZEDDATA_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"SERIALIZEDDATA_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"SERIALIZEDDATA_FIELD_NUMBER"},{"p":"com.usatiuk.objects.stores","c":"SerializingObjectPersistentStore","l":"SerializingObjectPersistentStore()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.repository","c":"DhfsObjectSyncGrpcGrpc","l":"SERVICE_NAME"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperLazy","l":"setCacheCallback(Runnable)","u":"setCacheCallback(java.lang.Runnable)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"setChangelog(ObjectChangelog)","u":"setChangelog(com.usatiuk.dhfs.persistence.ObjectChangelog)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"setChangelog(ObjectChangelog.Builder)","u":"setChangelog(com.usatiuk.dhfs.persistence.ObjectChangelog.Builder)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"setData(ByteString)","u":"setData(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"setDelay(long)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"setDeletionCandidate(boolean)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"setEntries(int, ObjectChangelog.entries_Entry)","u":"setEntries(int,com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"setEntries(int, ObjectChangelog.entries_Entry.Builder)","u":"setEntries(int,com.usatiuk.dhfs.persistence.ObjectChangelog.entries_Entry.Builder)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"setField(Descriptors.FieldDescriptor, Object)","u":"setField(com.google.protobuf.Descriptors.FieldDescriptor,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"setId(JObjectKeyP)","u":"setId(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"setId(JObjectKeyP.Builder)","u":"setId(com.usatiuk.dhfs.persistence.JObjectKeyP.Builder)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"setKey(JObjectKeyP)","u":"setKey(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"setKey(JObjectKeyP.Builder)","u":"setKey(com.usatiuk.dhfs.persistence.JObjectKeyP.Builder)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"setKey(PeerIdP)","u":"setKey(com.usatiuk.dhfs.persistence.PeerIdP)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"setKey(PeerIdP.Builder)","u":"setKey(com.usatiuk.dhfs.persistence.PeerIdP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"setMsg(int, OpP)","u":"setMsg(int,com.usatiuk.dhfs.repository.OpP)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"setMsg(int, OpP.Builder)","u":"setMsg(int,com.usatiuk.dhfs.repository.OpP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"setName(JObjectKeyP)","u":"setName(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"setName(JObjectKeyP)","u":"setName(com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"setName(JObjectKeyP.Builder)","u":"setName(com.usatiuk.dhfs.persistence.JObjectKeyP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"setName(JObjectKeyP.Builder)","u":"setName(com.usatiuk.dhfs.persistence.JObjectKeyP.Builder)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"setName(String)","u":"setName(java.lang.String)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"setNameBytes(ByteString)","u":"setNameBytes(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"setPort(int)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"setPushedData(JDataRemoteDtoP)","u":"setPushedData(com.usatiuk.dhfs.persistence.JDataRemoteDtoP)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"setPushedData(JDataRemoteDtoP.Builder)","u":"setPushedData(com.usatiuk.dhfs.persistence.JDataRemoteDtoP.Builder)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"setReferrers(int, JObjectKeyP)","u":"setReferrers(int,com.usatiuk.dhfs.persistence.JObjectKeyP)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"setReferrers(int, JObjectKeyP.Builder)","u":"setReferrers(int,com.usatiuk.dhfs.persistence.JObjectKeyP.Builder)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"setRepeatedField(Descriptors.FieldDescriptor, int, Object)","u":"setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor,int,java.lang.Object)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"setSecurePort(int)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"setSerializedData(ByteString)","u":"setSerializedData(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"setSerializedData(ByteString)","u":"setSerializedData(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"setSerializedData(ByteString)","u":"setSerializedData(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"setSerializedData(ByteString)","u":"setSerializedData(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"setSerializedData(ByteString)","u":"setSerializedData(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"setTimes(JObjectKey, long, long)","u":"setTimes(com.usatiuk.objects.JObjectKey,long,long)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest.Builder","l":"setUnknownFields(UnknownFieldSet)","u":"setUnknownFields(com.google.protobuf.UnknownFieldSet)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"setUuid(String)","u":"setUuid(java.lang.String)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo.Builder","l":"setUuidBytes(ByteString)","u":"setUuidBytes(com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry.Builder","l":"setValue(long)"},{"p":"com.usatiuk.dhfs","c":"ShutdownChecker","l":"ShutdownChecker()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"size()"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"size(JObjectKey)","u":"size(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"skip()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"skip()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"skip()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"skip()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"skip()"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"skipImpl()"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"skipImpl()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"skipImpl()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"skipImpl()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"skipImpl()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapIterator","l":"skipPrev()"},{"p":"com.usatiuk.objects.iterators","c":"CloseableKvIterator","l":"skipPrev()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"skipPrev()"},{"p":"com.usatiuk.objects.iterators","c":"ReversedKvIterator","l":"skipPrev()"},{"p":"com.usatiuk.objects.iterators","c":"ReversibleKvIterator","l":"skipPrev()"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"statfs(String, Statvfs)","u":"statfs(java.lang.String,ru.serce.jnrfuse.struct.Statvfs)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"StaticPeerDiscovery","l":"StaticPeerDiscovery(Optional)","u":"%3Cinit%3E(java.util.Optional)"},{"p":"com.usatiuk.utils","c":"StatusRuntimeExceptionNoStacktrace","l":"StatusRuntimeExceptionNoStacktrace(Status)","u":"%3Cinit%3E(io.grpc.Status)"},{"p":"com.usatiuk.utils","c":"StatusRuntimeExceptionNoStacktrace","l":"StatusRuntimeExceptionNoStacktrace(Status, Metadata)","u":"%3Cinit%3E(io.grpc.Status,io.grpc.Metadata)"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrType","l":"SYMLINK"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"symlink()"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"symlink(String, String)","u":"symlink(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"symlink(String, String)","u":"symlink(java.lang.String,java.lang.String)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHandler","l":"SyncHandler(Instance>, Instance>)","u":"%3Cinit%3E(jakarta.enterprise.inject.Instance,jakarta.enterprise.inject.Instance)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHandlerService","l":"SyncHandlerService()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper","l":"SyncHelper()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.kleppmanntree","c":"LogInterface","l":"takeOldest()"},{"p":"com.usatiuk.dhfs","c":"TemporaryOpSerializer","l":"TemporaryOpSerializer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.rpc","c":"TemporaryReceivedObjectSerializer","l":"TemporaryReceivedObjectSerializer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.rpc","c":"TemporaryRemoteObjectSerializer","l":"TemporaryRemoteObjectSerializer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"timestamp()"},{"p":"com.usatiuk.kleppmanntree","c":"CombinedTimestamp","l":"timestamp()"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"timestamp()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"toBuilder()"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"toBuilder()"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"toByteBuffer()"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"toByteBuffer()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMax","l":"toByteBuffer()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMin","l":"toByteBuffer()"},{"p":"com.usatiuk.dhfs.syncmap","c":"DtoMapper","l":"toDto(F)"},{"p":"com.usatiuk.dhfs.syncmap","c":"DtoMapperService","l":"toDto(F, Class)","u":"toDto(F,java.lang.Class)"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDtoMapper","l":"toDto(File)","u":"toDto(com.usatiuk.dhfsfs.objects.File)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"toJObjectKey()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneImpl","l":"TombstoneImpl()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"TombstoneSkippingIterator(IteratorStart, K, List>>)","u":"%3Cinit%3E(com.usatiuk.objects.iterators.IteratorStart,K,java.util.List)"},{"p":"com.usatiuk.dhfs.invalidation","c":"IndexUpdateOp","l":"toString()"},{"p":"com.usatiuk.dhfs.invalidation","c":"InvalidationQueueEntry","l":"toString()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpWrapper","l":"toString()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"toString()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"toString()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"toString()"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"toString()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapEntry","l":"toString()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapLongKey","l":"toString()"},{"p":"com.usatiuk.dhfs.jmap","c":"JMapRef","l":"toString()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"toString()"},{"p":"com.usatiuk.dhfs.peersync.api","c":"ApiPeerInfo","l":"toString()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerId","l":"toString()"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"toString()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"toString()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager.HostStateSnapshot","l":"toString()"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"toString()"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataNormalRef","l":"toString()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"ReceivedObject","l":"toString()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"toString()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"toString()"},{"p":"com.usatiuk.dhfs.webapi","c":"KnownPeerPut","l":"toString()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerAddressInfo","l":"toString()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerInfo","l":"toString()"},{"p":"com.usatiuk.dhfs.webapi","c":"SelfInfo","l":"toString()"},{"p":"com.usatiuk.dhfsfs.objects","c":"ChunkData","l":"toString()"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"toString()"},{"p":"com.usatiuk.dhfsfs.objects","c":"FileDto","l":"toString()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaDirectory","l":"toString()"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"toString()"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"toString()"},{"p":"com.usatiuk.kleppmanntree","c":"CombinedTimestamp","l":"toString()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffect","l":"toString()"},{"p":"com.usatiuk.kleppmanntree","c":"LogEffectOld","l":"toString()"},{"p":"com.usatiuk.kleppmanntree","c":"LogRecord","l":"toString()"},{"p":"com.usatiuk.kleppmanntree","c":"OpMove","l":"toString()"},{"p":"com.usatiuk.objects.iterators","c":"DataWrapper","l":"toString()"},{"p":"com.usatiuk.objects.iterators","c":"KeyPredicateKvIterator","l":"toString()"},{"p":"com.usatiuk.objects.iterators","c":"MappingKvIterator","l":"toString()"},{"p":"com.usatiuk.objects.iterators","c":"MergingKvIterator","l":"toString()"},{"p":"com.usatiuk.objects.iterators","c":"NavigableMapKvIterator","l":"toString()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneImpl","l":"toString()"},{"p":"com.usatiuk.objects.iterators","c":"TombstoneSkippingIterator","l":"toString()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperImpl","l":"toString()"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"toString()"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"toString()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMax","l":"toString()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMin","l":"toString()"},{"p":"com.usatiuk.objects.stores","c":"PendingDelete","l":"toString()"},{"p":"com.usatiuk.objects.stores","c":"PendingWrite","l":"toString()"},{"p":"com.usatiuk.objects.stores","c":"TxManifestObj","l":"toString()"},{"p":"com.usatiuk.objects.stores","c":"TxManifestRaw","l":"toString()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordDeleted","l":"toString()"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordWrite","l":"toString()"},{"p":"com.usatiuk.objects.transaction","c":"TransactionManagerImpl","l":"TransactionManagerImpl()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"trash(JKleppmannTreeNodeMeta, JObjectKey)","u":"trash(com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta,com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeManager.JKleppmannTree","l":"traverse(List)","u":"traverse(java.util.List)"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"traverse(List)","u":"traverse(java.util.List)"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"traverse(NodeIdT, List)","u":"traverse(NodeIdT,java.util.List)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfoService","l":"TREE_KEY"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreeOpWrapper","l":"treeName()"},{"p":"com.usatiuk.dhfs.jkleppmanntree","c":"JKleppmannTreePeriodicPushOp","l":"treeName()"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"truncate(JObjectKey, long)","u":"truncate(com.usatiuk.objects.JObjectKey,long)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"truncate(String, long)","u":"truncate(java.lang.String,long)"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager","l":"tryConnectAll()"},{"p":"com.usatiuk.utils","c":"HashSetDelayedBlockingQueue","l":"tryGet()"},{"p":"com.usatiuk.utils","c":"DataLocker","l":"tryLock(Object)","u":"tryLock(java.lang.Object)"},{"p":"com.usatiuk.objects.transaction","c":"TxCommitException","l":"TxCommitException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.usatiuk.objects.transaction","c":"TxCommitException","l":"TxCommitException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"com.usatiuk.objects.stores","c":"TxManifestObj","l":"TxManifestObj(Collection>, Collection)","u":"%3Cinit%3E(java.util.Collection,java.util.Collection)"},{"p":"com.usatiuk.objects.stores","c":"TxManifestRaw","l":"TxManifestRaw(Collection>, Collection)","u":"%3Cinit%3E(java.util.Collection,java.util.Collection)"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordDeleted","l":"TxObjectRecordDeleted(JObjectKey)","u":"%3Cinit%3E(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord.TxObjectRecordWrite","l":"TxObjectRecordWrite(JData)","u":"%3Cinit%3E(com.usatiuk.objects.JData)"},{"p":"com.usatiuk.objects.transaction","c":"TxRecord","l":"TxRecord()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"type()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddress","l":"type()"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrRes","l":"type()"},{"p":"com.usatiuk.dhfs.peersync","c":"ReachablePeerManager.HostStateSnapshot","l":"unavailable()"},{"p":"com.usatiuk.utils","c":"UninitializedByteBuffer","l":"UninitializedByteBuffer()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"unlink(String)","u":"unlink(java.lang.String)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"unlink(String)","u":"unlink(java.lang.String)"},{"p":"com.usatiuk.utils","c":"UnsafeAccessor","l":"UNSAFE"},{"p":"com.usatiuk.utils","c":"UnsafeAccessor","l":"UnsafeAccessor()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentPeerDataService","l":"updateCerts()"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"updateExternalTimestamp(PeerIdT, TimestampT)","u":"updateExternalTimestamp(PeerIdT,TimestampT)"},{"p":"com.usatiuk.kleppmanntree","c":"Clock","l":"updateTimestamp(TimestampT)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"utimens(String, Timespec[])","u":"utimens(java.lang.String,ru.serce.jnrfuse.struct.Timespec[])"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"UUID_FIELD_NUMBER"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerAddressInfo","l":"uuid()"},{"p":"com.usatiuk.dhfs.webapi","c":"PeerInfo","l":"uuid()"},{"p":"com.usatiuk.dhfs.webapi","c":"SelfInfo","l":"uuid()"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"VALUE_FIELD_NUMBER"},{"p":"com.usatiuk.objects.iterators","c":"Data","l":"value()"},{"p":"com.usatiuk.objects.iterators","c":"DataWrapper","l":"value()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapper","l":"value()"},{"p":"com.usatiuk.objects","c":"JObjectKey","l":"value()"},{"p":"com.usatiuk.objects","c":"JObjectKeyImpl","l":"value()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMax","l":"value()"},{"p":"com.usatiuk.objects","c":"JObjectKeyMin","l":"value()"},{"p":"com.usatiuk.objects.stores","c":"PendingWrite","l":"value()"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddressType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper.ChangelogCmpResult","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.usatiuk.objects.iterators","c":"IteratorStart","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddressType","l":"values()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"SyncHelper.ChangelogCmpResult","l":"values()"},{"p":"com.usatiuk.dhfsfs.service","c":"GetattrType","l":"values()"},{"p":"com.usatiuk.objects.iterators","c":"IteratorStart","l":"values()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapper","l":"version()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperImpl","l":"version()"},{"p":"com.usatiuk.objects","c":"JDataVersionedWrapperLazy","l":"version()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"versionSum()"},{"p":"com.usatiuk.kleppmanntree","c":"KleppmannTree","l":"walkTree(Consumer>)","u":"walkTree(java.util.function.Consumer)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerAddressType","l":"WAN"},{"p":"com.usatiuk.dhfs.webui","c":"WebUiRouter","l":"WebUiRouter(Optional)","u":"%3Cinit%3E(java.util.Optional)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withChangelog(PMap)","u":"withChangelog(org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"withChildren(PMap)","u":"withChildren(org.pcollections.PMap)"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"withChildren(PMap)","u":"withChildren(org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"withClock(long)"},{"p":"com.usatiuk.dhfs.repository","c":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase","l":"withCompression(String)","u":"withCompression(java.lang.String)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withConfirmedDeletes(PSet)","u":"withConfirmedDeletes(org.pcollections.PSet)"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"withCTime(long)"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"withCurrentMTime()"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"withData(T)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"withFrozen(boolean)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"withFrozen(boolean)"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataRefcounted","l":"withFrozen(boolean)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"withFrozen(boolean)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withFrozen(boolean)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withHaveLocal(boolean)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"withIncrementedKickCounter(PeerId)","u":"withIncrementedKickCounter(com.usatiuk.dhfs.peersync.PeerId)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"withInitialSyncDone(PSet)","u":"withInitialSyncDone(org.pcollections.PSet)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"withKickCounter(PMap)","u":"withKickCounter(org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withKnownRemoteVersions(PMap)","u":"withKnownRemoteVersions(org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withKnownType(Class)","u":"withKnownType(java.lang.Class)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"withLastEffectiveOp(OpMove)","u":"withLastEffectiveOp(com.usatiuk.kleppmanntree.OpMove)"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"withLastEffectiveOp(OpMove)","u":"withLastEffectiveOp(com.usatiuk.kleppmanntree.OpMove)"},{"p":"com.usatiuk.dhfs.peersync","c":"PeerInfo","l":"withLastSeenTimestamp(long)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"withLog(PSortedMap, LogRecord>)","u":"withLog(org.pcollections.PSortedMap)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"withMeta(JKleppmannTreeNodeMeta)","u":"withMeta(com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta)"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"withMeta(MetaT)"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"withMode(long)"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"withMTime(long)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeMeta","l":"withName(String)","u":"withName(java.lang.String)"},{"p":"com.usatiuk.dhfs.peersync.structs","c":"JKleppmannTreeNodeMetaPeer","l":"withName(String)","u":"withName(java.lang.String)"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaDirectory","l":"withName(String)","u":"withName(java.lang.String)"},{"p":"com.usatiuk.dhfsfs.objects","c":"JKleppmannTreeNodeMetaFile","l":"withName(String)","u":"withName(java.lang.String)"},{"p":"com.usatiuk.kleppmanntree","c":"NodeMeta","l":"withName(String)","u":"withName(java.lang.String)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"withNode(JKleppmannTreeNode)","u":"withNode(com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode)"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcClientFactory","l":"withObjSyncClient(Collection, RpcClientFactory.ObjectSyncClientFunction)","u":"withObjSyncClient(java.util.Collection,com.usatiuk.dhfs.rpc.RpcClientFactory.ObjectSyncClientFunction)"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcClientFactory","l":"withObjSyncClient(PeerId, InetAddress, int, long, RpcClientFactory.ObjectSyncClientFunction)","u":"withObjSyncClient(com.usatiuk.dhfs.peersync.PeerId,java.net.InetAddress,int,long,com.usatiuk.dhfs.rpc.RpcClientFactory.ObjectSyncClientFunction)"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcClientFactory","l":"withObjSyncClient(PeerId, PeerAddress, long, RpcClientFactory.ObjectSyncClientFunction)","u":"withObjSyncClient(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.peerdiscovery.PeerAddress,long,com.usatiuk.dhfs.rpc.RpcClientFactory.ObjectSyncClientFunction)"},{"p":"com.usatiuk.dhfs.rpc","c":"RpcClientFactory","l":"withObjSyncClient(PeerId, RpcClientFactory.ObjectSyncClientFunction)","u":"withObjSyncClient(com.usatiuk.dhfs.peersync.PeerId,com.usatiuk.dhfs.rpc.RpcClientFactory.ObjectSyncClientFunction)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNode","l":"withParent(JObjectKey)","u":"withParent(com.usatiuk.objects.JObjectKey)"},{"p":"com.usatiuk.kleppmanntree","c":"TreeNode","l":"withParent(NodeIdT)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"withPeerTimestampLog(PMap)","u":"withPeerTimestampLog(org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.peersync","c":"PersistentRemoteHostsData","l":"withPersistentPeerAddress(PMap)","u":"withPersistentPeerAddress(org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"withQueues(PMap, OpMove>>)","u":"withQueues(org.pcollections.PMap)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreeNodeHolder","l":"withRefsFrom(PCollection)","u":"withRefsFrom(org.pcollections.PCollection)"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","c":"JKleppmannTreePersistentData","l":"withRefsFrom(PCollection)","u":"withRefsFrom(org.pcollections.PCollection)"},{"p":"com.usatiuk.dhfs.refcount","c":"JDataRefcounted","l":"withRefsFrom(PCollection)","u":"withRefsFrom(org.pcollections.PCollection)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectDataWrapper","l":"withRefsFrom(PCollection)","u":"withRefsFrom(org.pcollections.PCollection)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withRefsFrom(PCollection)","u":"withRefsFrom(org.pcollections.PCollection)"},{"p":"com.usatiuk.dhfs.remoteobj","c":"RemoteObjectMeta","l":"withSeen(boolean)"},{"p":"com.usatiuk.dhfsfs.objects","c":"File","l":"withSymlink(boolean)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"IpPeerAddress","l":"withType(PeerAddressType)","u":"withType(com.usatiuk.dhfs.peerdiscovery.PeerAddressType)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"write_buf(String, FuseBufvec, long, FuseFileInfo)","u":"write_buf(java.lang.String,ru.serce.jnrfuse.struct.FuseBufvec,long,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.dhfsfuse","c":"JnrPtrByteOutput","l":"write(byte)"},{"p":"com.usatiuk.dhfsfuse","c":"JnrPtrByteOutput","l":"write(byte[], int, int)","u":"write(byte[],int,int)"},{"p":"com.usatiuk.dhfsfuse","c":"JnrPtrByteOutput","l":"write(ByteBuffer)","u":"write(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"write(JObjectKey, long, byte[])","u":"write(com.usatiuk.objects.JObjectKey,long,byte[])"},{"p":"com.usatiuk.dhfsfs.service","c":"DhfsFileService","l":"write(JObjectKey, long, ByteString)","u":"write(com.usatiuk.objects.JObjectKey,long,com.google.protobuf.ByteString)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"write(String, ByteBuffer, long, FuseFileInfo)","u":"write(java.lang.String,java.nio.ByteBuffer,long,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.dhfsfuse","c":"DhfsFuse","l":"write(String, Pointer, long, long, FuseFileInfo)","u":"write(java.lang.String,jnr.ffi.Pointer,long,long,ru.serce.jnrfuse.struct.FuseFileInfo)"},{"p":"com.usatiuk.objects.stores","c":"WritebackObjectPersistentStore","l":"WritebackObjectPersistentStore()","u":"%3Cinit%3E()"},{"p":"com.usatiuk.dhfsfuse","c":"JnrPtrByteOutput","l":"writeLazy(byte[], int, int)","u":"writeLazy(byte[],int,int)"},{"p":"com.usatiuk.dhfsfuse","c":"JnrPtrByteOutput","l":"writeLazy(ByteBuffer)","u":"writeLazy(java.nio.ByteBuffer)"},{"p":"com.usatiuk.dhfs.peerdiscovery","c":"PeerDiscoveryInfo","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ChunkDataP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"FileDtoP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JDataRemoteDtoP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"JObjectKeyP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog.entries_Entry","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"ObjectChangelog","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerIdP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.persistence","c":"PeerInfoP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteReply","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"CanDeleteRequest","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectReply","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"GetObjectRequest","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpP","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushReply","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"OpPushRequest","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingReply","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.dhfs.repository","c":"PingRequest","l":"writeTo(CodedOutputStream)","u":"writeTo(com.google.protobuf.CodedOutputStream)"},{"p":"com.usatiuk.objects.stores","c":"TxManifestObj","l":"written()"},{"p":"com.usatiuk.objects.stores","c":"TxManifestRaw","l":"written()"}];updateSearchResults(); \ No newline at end of file diff --git a/module-search-index.js b/module-search-index.js new file mode 100644 index 00000000..0d59754f --- /dev/null +++ b/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/overview-summary.html b/overview-summary.html new file mode 100644 index 00000000..355f46d5 --- /dev/null +++ b/overview-summary.html @@ -0,0 +1,26 @@ + + + + +dhfs-parent 1.0-SNAPSHOT API + + + + + + + + + + + +
+ +

index.html

+
+ + diff --git a/overview-tree.html b/overview-tree.html new file mode 100644 index 00000000..dfcd1fc0 --- /dev/null +++ b/overview-tree.html @@ -0,0 +1,534 @@ + + + + +Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For All Packages

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Annotation Interface Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+

Record Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/package-search-index.js b/package-search-index.js new file mode 100644 index 00000000..2b77b0f2 --- /dev/null +++ b/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.usatiuk.dhfs"},{"l":"com.usatiuk.dhfs.autosync"},{"l":"com.usatiuk.dhfs.invalidation"},{"l":"com.usatiuk.dhfs.jkleppmanntree"},{"l":"com.usatiuk.dhfs.jkleppmanntree.structs"},{"l":"com.usatiuk.dhfs.jmap"},{"l":"com.usatiuk.dhfs.peerdiscovery"},{"l":"com.usatiuk.dhfs.peerdiscovery.local"},{"l":"com.usatiuk.dhfs.peersync"},{"l":"com.usatiuk.dhfs.peersync.api"},{"l":"com.usatiuk.dhfs.peersync.structs"},{"l":"com.usatiuk.dhfs.peertrust"},{"l":"com.usatiuk.dhfs.persistence"},{"l":"com.usatiuk.dhfs.refcount"},{"l":"com.usatiuk.dhfs.remoteobj"},{"l":"com.usatiuk.dhfs.repository"},{"l":"com.usatiuk.dhfs.rpc"},{"l":"com.usatiuk.dhfs.syncmap"},{"l":"com.usatiuk.dhfs.webapi"},{"l":"com.usatiuk.dhfs.webui"},{"l":"com.usatiuk.dhfsfs.objects"},{"l":"com.usatiuk.dhfsfs.service"},{"l":"com.usatiuk.dhfsfuse"},{"l":"com.usatiuk.kleppmanntree"},{"l":"com.usatiuk.objects"},{"l":"com.usatiuk.objects.iterators"},{"l":"com.usatiuk.objects.snapshot"},{"l":"com.usatiuk.objects.stores"},{"l":"com.usatiuk.objects.transaction"},{"l":"com.usatiuk.utils"}];updateSearchResults(); \ No newline at end of file diff --git a/package-summary.html b/package-summary.html new file mode 100644 index 00000000..8592d345 --- /dev/null +++ b/package-summary.html @@ -0,0 +1,95 @@ + + + + +Unnamed Package (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Unnamed Package

+
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/package-tree.html b/package-tree.html new file mode 100644 index 00000000..69aee93a --- /dev/null +++ b/package-tree.html @@ -0,0 +1,76 @@ + + + + + Class Hierarchy (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Unnamed Package

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/package-use.html b/package-use.html new file mode 100644 index 00000000..33736d50 --- /dev/null +++ b/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package

+
+No usage of Unnamed Package
+
+
+ +
+
+
+ + diff --git a/resources/glass.png b/resources/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f591f467a1c0c949bbc510156a0c1afb860a6e GIT binary patch literal 499 zcmVJoRsvExf%rEN>jUL}qZ_~k#FbE+Q;{`;0FZwVNX2n-^JoI; zP;4#$8DIy*Yk-P>VN(DUKmPse7mx+ExD4O|;?E5D0Z5($mjO3`*anwQU^s{ZDK#Lz zj>~{qyaIx5K!t%=G&2IJNzg!ChRpyLkO7}Ry!QaotAHAMpbB3AF(}|_f!G-oI|uK6 z`id_dumai5K%C3Y$;tKS_iqMPHg<*|-@e`liWLAggVM!zAP#@l;=c>S03;{#04Z~5 zN_+ss=Yg6*hTr59mzMwZ@+l~q!+?ft!fF66AXT#wWavHt30bZWFCK%!BNk}LN?0Hg z1VF_nfs`Lm^DjYZ1(1uD0u4CSIr)XAaqW6IT{!St5~1{i=i}zAy76p%_|w8rh@@c0Axr!ns=D-X+|*sY6!@wacG9%)Qn*O zl0sa739kT-&_?#oVxXF6tOnqTD)cZ}2vi$`ZU8RLAlo8=_z#*P3xI~i!lEh+Pdu-L zx{d*wgjtXbnGX_Yf@Tc7Q3YhLhPvc8noGJs2DA~1DySiA&6V{5JzFt ojAY1KXm~va;tU{v7C?Xj0BHw!K;2aXV*mgE07*qoM6N<$f;4TDA^-pY literal 0 HcmV?d00001 diff --git a/run-wrapper/run b/run-wrapper/run deleted file mode 100755 index ad312ee2..00000000 --- a/run-wrapper/run +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -set -e -set -u -set -o pipefail - -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -PIDFILE="$SCRIPT_DIR"/.pid -EXTRAOPTS="$SCRIPT_DIR"/extra-opts - -if [ ! -f "$EXTRAOPTS" ]; then - touch "$EXTRAOPTS" -fi - -if [ -f "$PIDFILE" ]; then - if kill -0 $(cat "$PIDFILE") >/dev/null; then - echo "Already running: "$(cat "$PIDFILE") - exit 2 - fi -fi - -EXTRAOPTS_PARSED="$(tr '\n\r' ' ' <"$EXTRAOPTS")" - -echo "Extra options: $EXTRAOPTS_PARSED" - -java \ - -Xmx512M \ - --enable-preview \ - -Ddhfs.objects.writeback.limit=134217728 \ - -Ddhfs.objects.lru.limit=134217728 \ - --add-exports java.base/sun.nio.ch=ALL-UNNAMED \ - --add-exports java.base/jdk.internal.access=ALL-UNNAMED \ - --add-opens=java.base/java.nio=ALL-UNNAMED \ - -Ddhfs.objects.persistence.files.root="$SCRIPT_DIR"/../data/objects \ - -Ddhfs.objects.persistence.stuff.root="$SCRIPT_DIR"/../data/stuff \ - -Ddhfs.fuse.root="$SCRIPT_DIR"/../fuse \ - -Dquarkus.http.host=0.0.0.0 \ - -Dquarkus.log.category.\"com.usatiuk\".level=INFO \ - -Dquarkus.log.category.\"com.usatiuk.dhfs\".level=INFO \ - -Ddhfs.webui.root="$SCRIPT_DIR"/Webui $EXTRAOPTS_PARSED \ - -jar "$SCRIPT_DIR"/"Server"/quarkus-run.jar >quarkus.log 2>&1 & - -echo "Started $!" - -echo $! >"$PIDFILE" - -disown diff --git a/run-wrapper/run.ps1 b/run-wrapper/run.ps1 deleted file mode 100644 index 8549e694..00000000 --- a/run-wrapper/run.ps1 +++ /dev/null @@ -1,48 +0,0 @@ -$ErrorActionPreference = 'Stop' - -$PIDFILE = Join-Path $PSScriptRoot ".pid" -$EXTRAOPTS = Join-Path $PSScriptRoot "extra-opts" - -if (-Not (Test-Path $EXTRAOPTS)) { - New-Item -ItemType File -Path $EXTRAOPTS | Out-Null -} - -if (Test-Path $PIDFILE) { - $ReadPID = Get-Content $PIDFILE - if (Get-Process -Id $ReadPID -ErrorAction SilentlyContinue) { - Write-Host "Already running: $ReadPID" - exit 2 - } -} - -$ExtraOptsParsed = Get-Content $EXTRAOPTS | Where-Object {$_} - -Write-Host "Extra options: $($ExtraOptsParsed -join ' ')" - -$JAVA_OPTS = @( - "-Xmx512M" - "--enable-preview" - "-Ddhfs.objects.writeback.limit=134217728" - "-Ddhfs.objects.lru.limit=134217728" - "--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED" - "--add-exports", "java.base/jdk.internal.access=ALL-UNNAMED" - "--add-opens=java.base/java.nio=ALL-UNNAMED" - "-Ddhfs.objects.persistence.files.root=$($PSScriptRoot)\..\data\objects" - "-Ddhfs.objects.persistence.stuff.root=$($PSScriptRoot)\..\data\stuff" - "-Ddhfs.objects.persistence.lmdb.size=1000000000" - "-Ddhfs.fuse.root=Z:\" - "-Dquarkus.http.host=0.0.0.0" - '-Dquarkus.log.category.\"com.usatiuk\".level=INFO' - '-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=INFO' - "-Ddhfs.webui.root=$($PSScriptRoot)\Webui" -) + $ExtraOptsParsed + @( - "-jar", "`"$PSScriptRoot\Server\quarkus-run.jar`"" -) - -$Process = Start-Process -FilePath "java" -ArgumentList $JAVA_OPTS ` - -RedirectStandardOutput "$PSScriptRoot\quarkus.log" ` - -RedirectStandardError "$PSScriptRoot\quarkus.log.err" ` - -NoNewWindow -PassThru - -Write-Host "Started $($Process.Id)" -$Process.Id | Out-File -FilePath $PIDFILE diff --git a/run-wrapper/stop b/run-wrapper/stop deleted file mode 100755 index 064e5fea..00000000 --- a/run-wrapper/stop +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -set -e -set -u -set -o pipefail - -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -PIDFILE="$SCRIPT_DIR"/.pid - -if [ ! -f "$PIDFILE" ]; then - echo "Not running" - exit 2 -fi - -if ! kill -0 $(cat "$PIDFILE") >/dev/null; then - echo "Not running" - rm .pid - exit 2 -fi - -PID=$(cat "$PIDFILE") - -echo "Killing $PID" -kill "$PID" - -rm .pid diff --git a/run-wrapper/stop.ps1 b/run-wrapper/stop.ps1 deleted file mode 100644 index 636c58d7..00000000 --- a/run-wrapper/stop.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -$ErrorActionPreference = 'Stop' - -$PIDFILE = Join-Path $PSScriptRoot ".pid" - -if (-Not (Test-Path $PIDFILE)) { - Write-Host "Not running" - exit 2 -} - -$ReadPID = Get-Content $PIDFILE - -if (-Not (Get-Process -Id $ReadPID -ErrorAction SilentlyContinue)) { - Write-Host "Not running" - Remove-Item $PIDFILE -Force - exit 2 -} - -Write-Host "Killing $ReadPID" - -# TODO: Graceful shutdown - -Stop-Process -Id $ReadPID - -Remove-Item $PIDFILE -Force diff --git a/run-wrapper/update b/run-wrapper/update deleted file mode 100755 index 9f9325c5..00000000 --- a/run-wrapper/update +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -set -e -set -u -set -o pipefail - -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -PIDFILE="$SCRIPT_DIR"/.pid - -if [ -f "$PIDFILE" ]; then - if kill -0 $(cat "$PIDFILE") >/dev/null; then - echo "Already running: "$(cat "$PIDFILE") - exit 2 - fi -fi - -# 💀 -LATEST=$(curl "https://api.github.com/repos/usatiuk/dhfs/actions/runs?branch=main&status=completed&per_page=1" | tr -d "[:space:]" | sed -n "s/.*\[{\"id\":\([0-9]*\).*/\1/p") - -echo Latest: $LATEST - -CUR=$(cat "$SCRIPT_DIR"/version) - -echo Current: $CUR - -if [[ $CUR -ge $LATEST ]]; then - echo Already latest! - exit 1 -fi - -echo Downloading... - -cd "$SCRIPT_DIR" - -rm "Run wrapper.zip" || true -rm "run-wrapper.tar.gz" || true -rm -rf "dhfs" || true - -wget https://nightly.link/usatiuk/dhfs/actions/runs/$LATEST/Run%20wrapper.zip - -unzip "Run wrapper.zip" -rm "Run wrapper.zip" -tar xvf "run-wrapper.tar.gz" --strip-components 2 -rm "run-wrapper.tar.gz" - -rm -rf "Server" -rm -rf "Webui" -rm -rf "NativeLibs" - -mv dhfs/app/* . - -rm -rf "dhfs" - -chmod +x run -chmod +x stop -chmod +x update - -echo "Update complete!" diff --git a/run-wrapper/update.ps1 b/run-wrapper/update.ps1 deleted file mode 100644 index 597f4dc4..00000000 --- a/run-wrapper/update.ps1 +++ /dev/null @@ -1,50 +0,0 @@ -$ErrorActionPreference = 'Stop' - -$PIDFILE = Join-Path $PSScriptRoot ".pid" -$VERSION_FILE = Join-Path $PSScriptRoot "version" - -if (Test-Path $PIDFILE) { - $ReadPID = Get-Content $PIDFILE - if (Get-Process -Id $ReadPID -ErrorAction SilentlyContinue) { - Write-Host "Already running: $ReadPID" - exit 2 - } -} - -$response = Invoke-RestMethod -Uri "https://api.github.com/repos/usatiuk/dhfs/actions/runs?branch=main&status=completed&per_page=1" - -$LATEST = $response.workflow_runs[0].id -Write-Host "Latest: $LATEST" - -$CUR = (Get-Content $VERSION_FILE -Raw).Trim() -Write-Host "Current: $CUR" - -if ([long]$CUR -ge [long]$LATEST) { - Write-Host "Already latest!" - exit 1 -} - -Write-Host "Downloading..." - -Set-Location $PSScriptRoot - -$zipFile = "Run wrapper.zip" -$tarFile = "run-wrapper.tar.gz" -$dhfsDir = "dhfs" - -Remove-Item $zipFile, $tarFile -Force -ErrorAction SilentlyContinue -Remove-Item $dhfsDir -Recurse -Force -ErrorAction SilentlyContinue - -Invoke-WebRequest -Uri "https://nightly.link/usatiuk/dhfs/actions/runs/$LATEST/Run%20wrapper.zip" -OutFile $zipFile - -Expand-Archive -LiteralPath $zipFile -DestinationPath $PSScriptRoot -Remove-Item $zipFile -Force - -tar -xf $tarFile --strip-components=2 -Remove-Item $tarFile -Force - -Remove-Item "Server", "Webui", "NativeLibs" -Recurse -Force -ErrorAction SilentlyContinue -Move-Item "$dhfsDir\app\*" . -Force -Remove-Item $dhfsDir -Recurse -Force - -Write-Host "Update complete!" diff --git a/script-dir/jquery-3.7.1.min.js b/script-dir/jquery-3.7.1.min.js new file mode 100644 index 00000000..7f37b5d9 --- /dev/null +++ b/script-dir/jquery-3.7.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
    ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
    ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
    ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
    ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 00000000..bb9c8a24 --- /dev/null +++ b/script.js @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.getElementById(tableId + '.tabpanel') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/search-page.js b/search-page.js new file mode 100644 index 00000000..540c90f5 --- /dev/null +++ b/search-page.js @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
    ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
    ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
    ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
    " + col1 + "
    ").appendTo(table); + if (category !== "modules") { + $("
    " + col2 + "
    ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
    ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
    ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/search.html b/search.html new file mode 100644 index 00000000..a39ea5f0 --- /dev/null +++ b/search.html @@ -0,0 +1,77 @@ + + + + +Search (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
    + +
    +
    +

    Search

    +
    + + +
    +Additional resources +
    +
    +
    +

    The help page provides an introduction to the scope and syntax of JavaDoc search.

    +

    You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.

    +

    The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.

    +link +

    + +

    +
    +

    Loading search index...

    + +
    +
    +
    + +
    +
    +
    + + diff --git a/search.js b/search.js new file mode 100644 index 00000000..d3986705 --- /dev/null +++ b/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +"use strict"; +const messages = { + enterTerm: "Enter a search term", + noResult: "No results found", + oneResult: "Found one result", + manyResults: "Found {0} results", + loading: "Loading search index...", + searching: "Searching...", + redirecting: "Redirecting to first result...", + linkIcon: "Link icon", + linkToSection: "Link to this section" +} +const categories = { + modules: "Modules", + packages: "Packages", + types: "Classes and Interfaces", + members: "Members", + searchTags: "Search Tags" +}; +const highlight = "$&"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += ""; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += ""; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("
  • " + categories[item.category] + "
  • "); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append(""); + }, + _renderItem: function(ul, item) { + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx && idx.h) { + if (idx.d) { + div.html(label + " (" + idx.h + ")
    " + + idx.d + "
    "); + } else { + div.html(label + " (" + idx.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").each(function(idx, el) { + // Create anchor links for headers with an associated id attribute + var hdr = $(el); + var id = hdr.attr("id") || hdr.parent("section").attr("id") || hdr.children("a").attr("id"); + if (id) { + hdr.append(" " + messages.linkIcon +""); + } + }); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); diff --git a/serialized-form.html b/serialized-form.html new file mode 100644 index 00000000..8213a758 --- /dev/null +++ b/serialized-form.html @@ -0,0 +1,1776 @@ + + + + +Serialized Form (dhfs-parent 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Serialized Form

    +
    + +
    +
    +
    + +
    +
    +
    + + diff --git a/stylesheet.css b/stylesheet.css new file mode 100644 index 00000000..f71489f8 --- /dev/null +++ b/stylesheet.css @@ -0,0 +1,1272 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/tag-search-index.js b/tag-search-index.js new file mode 100644 index 00000000..bf10aaf6 --- /dev/null +++ b/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"},{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/thirdparty/lazyfs/build.sh b/thirdparty/lazyfs/build.sh deleted file mode 100755 index d3f3ed81..00000000 --- a/thirdparty/lazyfs/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -# apt install g++ cmake libfuse3-dev libfuse3-3 fuse3 - -export CMAKE_BUILD_PARALLEL_LEVEL="$(nproc)" - -cd lazyfs - -cd libs/libpcache && ./build.sh && cd - - -cd lazyfs && ./build.sh && cd - diff --git a/thirdparty/lazyfs/lazyfs b/thirdparty/lazyfs/lazyfs deleted file mode 160000 index 7b137f90..00000000 --- a/thirdparty/lazyfs/lazyfs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7b137f90ef85168dc1ffc5dfe651b070aefa88d3 diff --git a/type-search-index.js b/type-search-index.js new file mode 100644 index 00000000..15c4b6de --- /dev/null +++ b/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.usatiuk.kleppmanntree","l":"AlreadyExistsException"},{"p":"com.usatiuk.dhfs.peersync.api","l":"ApiPeerInfo"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcGrpc.AsyncService"},{"p":"com.usatiuk.utils","l":"AutoCloseableNoThrow"},{"p":"com.usatiuk.dhfs.autosync","l":"AutosyncProcessor"},{"p":"com.usatiuk.dhfs.autosync","l":"AutosyncTxHook"},{"p":"com.usatiuk.dhfs.repository","l":"CanDeleteReply.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"CanDeleteRequest.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"ChunkDataP.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"FileDtoP.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"GetObjectReply.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"GetObjectRequest.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"JDataP.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"JDataRemoteDtoP.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"JObjectKeyP.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"ObjectChangelog.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"ObjectChangelog.entries_Entry.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"OpP.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"OpPushReply.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"OpPushRequest.Builder"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PeerDiscoveryInfo.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"PeerIdP.Builder"},{"p":"com.usatiuk.dhfs.persistence","l":"PeerInfoP.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"PingReply.Builder"},{"p":"com.usatiuk.dhfs.repository","l":"PingRequest.Builder"},{"p":"com.usatiuk.utils","l":"ByteUtils"},{"p":"com.usatiuk.objects.stores","l":"CachingObjectPersistentStore"},{"p":"com.usatiuk.dhfs.repository","l":"CanDeleteReply"},{"p":"com.usatiuk.dhfs.repository","l":"CanDeleteReplyOrBuilder"},{"p":"com.usatiuk.dhfs.repository","l":"CanDeleteRequest"},{"p":"com.usatiuk.dhfs.repository","l":"CanDeleteRequestOrBuilder"},{"p":"com.usatiuk.dhfs.peertrust","l":"CertificateTools"},{"p":"com.usatiuk.dhfs.remoteobj","l":"SyncHelper.ChangelogCmpResult"},{"p":"com.usatiuk.dhfsfs.objects","l":"ChunkData"},{"p":"com.usatiuk.dhfs.persistence","l":"ChunkDataP"},{"p":"com.usatiuk.dhfs.persistence","l":"ChunkDataPOrBuilder"},{"p":"com.usatiuk.kleppmanntree","l":"Clock"},{"p":"com.usatiuk.objects.iterators","l":"CloseableKvIterator"},{"p":"com.usatiuk.kleppmanntree","l":"CombinedTimestamp"},{"p":"com.usatiuk.dhfs.remoteobj","l":"ConflictResolver"},{"p":"com.usatiuk.objects.transaction","l":"CurrentTransaction"},{"p":"com.usatiuk.objects.iterators","l":"Data"},{"p":"com.usatiuk.utils","l":"DataLocker"},{"p":"com.usatiuk.objects.iterators","l":"DataWrapper"},{"p":"","l":"DeadlockDetector"},{"p":"com.usatiuk.dhfs.remoteobj","l":"DefaultObjSyncHandler"},{"p":"com.usatiuk.dhfs.invalidation","l":"DeferredInvalidationQueueData"},{"p":"com.usatiuk.dhfs.invalidation","l":"DeferredInvalidationQueueService"},{"p":"com.usatiuk.dhfs.refcount","l":"DeleterTxHook"},{"p":"com.usatiuk.dhfsfs.service","l":"DhfsFileService"},{"p":"com.usatiuk.dhfsfuse","l":"DhfsFuse"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"DhfsObjectPeerDiscoveryApi"},{"p":"com.usatiuk.dhfs.persistence","l":"DhfsObjectPersistence"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncApi"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpc"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcBean"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcBlockingStub"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcClient"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcFutureStub"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcGrpc"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase"},{"p":"com.usatiuk.dhfs.repository","l":"MutinyDhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcImplBase"},{"p":"com.usatiuk.dhfs.repository","l":"DhfsObjectSyncGrpcGrpc.DhfsObjectSyncGrpcStub"},{"p":"com.usatiuk.dhfsfuse","l":"Main.DhfsStorageServerApp"},{"p":"com.usatiuk.dhfsfs.service","l":"DirectoryNotEmptyException"},{"p":"com.usatiuk.dhfs.syncmap","l":"DtoMapper"},{"p":"com.usatiuk.dhfs.syncmap","l":"DtoMapperService"},{"p":"com.usatiuk.dhfs.persistence","l":"ObjectChangelog.entries_Entry"},{"p":"com.usatiuk.dhfs.persistence","l":"ObjectChangelog.entries_EntryOrBuilder"},{"p":"com.usatiuk.dhfsfs.objects","l":"File"},{"p":"com.usatiuk.dhfsfs.objects","l":"FileDto"},{"p":"com.usatiuk.dhfsfs.objects","l":"FileDtoMapper"},{"p":"com.usatiuk.dhfs.persistence","l":"FileDtoP"},{"p":"com.usatiuk.dhfs.persistence","l":"FileDtoPOrBuilder"},{"p":"com.usatiuk.dhfsfs.objects","l":"FileHelper"},{"p":"com.usatiuk.dhfsfs.objects","l":"FileSyncHandler"},{"p":"com.usatiuk.dhfsfs.service","l":"GetattrRes"},{"p":"com.usatiuk.dhfsfs.service","l":"GetattrType"},{"p":"com.usatiuk.dhfs.repository","l":"GetObjectReply"},{"p":"com.usatiuk.dhfs.repository","l":"GetObjectReplyOrBuilder"},{"p":"com.usatiuk.dhfs.repository","l":"GetObjectRequest"},{"p":"com.usatiuk.dhfs.repository","l":"GetObjectRequestOrBuilder"},{"p":"com.usatiuk.utils","l":"HashSetDelayedBlockingQueue"},{"p":"com.usatiuk.dhfs.peersync","l":"ReachablePeerManager.HostStateSnapshot"},{"p":"com.usatiuk.dhfs.invalidation","l":"IndexUpdateOp"},{"p":"com.usatiuk.dhfs.remoteobj","l":"IndexUpdateOpHandler"},{"p":"com.usatiuk.dhfs.peersync","l":"InitialSyncProcessor"},{"p":"com.usatiuk.dhfs.invalidation","l":"InvalidationQueueEntry"},{"p":"com.usatiuk.dhfs.invalidation","l":"InvalidationQueueService"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"IpPeerAddress"},{"p":"com.usatiuk.objects.iterators","l":"IteratorStart"},{"p":"com.usatiuk.objects","l":"JavaDataSerializer"},{"p":"com.usatiuk.objects","l":"JData"},{"p":"com.usatiuk.dhfs.refcount","l":"JDataNormalRef"},{"p":"com.usatiuk.dhfs.persistence","l":"JDataP"},{"p":"com.usatiuk.dhfs.persistence","l":"JDataPOrBuilder"},{"p":"com.usatiuk.dhfs.refcount","l":"JDataRef"},{"p":"com.usatiuk.dhfs.refcount","l":"JDataRefcounted"},{"p":"com.usatiuk.dhfs.remoteobj","l":"JDataRemote"},{"p":"com.usatiuk.dhfs.remoteobj","l":"JDataRemoteDto"},{"p":"com.usatiuk.dhfs.persistence","l":"JDataRemoteDtoP"},{"p":"com.usatiuk.dhfs.persistence","l":"JDataRemoteDtoPOrBuilder"},{"p":"com.usatiuk.dhfs.remoteobj","l":"JDataRemotePush"},{"p":"com.usatiuk.objects","l":"JDataVersionedWrapper"},{"p":"com.usatiuk.objects","l":"JDataVersionedWrapperImpl"},{"p":"com.usatiuk.objects","l":"JDataVersionedWrapperLazy"},{"p":"com.usatiuk.objects","l":"JDataVersionedWrapperSerializer"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreeManager.JKleppmannTree"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreeInitialSyncProcessor"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreeManager"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","l":"JKleppmannTreeNode"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","l":"JKleppmannTreeNodeHolder"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","l":"JKleppmannTreeNodeMeta"},{"p":"com.usatiuk.dhfsfs.objects","l":"JKleppmannTreeNodeMetaDirectory"},{"p":"com.usatiuk.dhfsfs.objects","l":"JKleppmannTreeNodeMetaFile"},{"p":"com.usatiuk.dhfs.peersync.structs","l":"JKleppmannTreeNodeMetaPeer"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreeOpExtractor"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreeOpHandler"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreeOpWrapper"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreePeerInterface"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreePeriodicOpHandler"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreePeriodicPushOp"},{"p":"com.usatiuk.dhfs.jkleppmanntree.structs","l":"JKleppmannTreePersistentData"},{"p":"com.usatiuk.dhfs.jkleppmanntree","l":"JKleppmannTreeManager.JKleppmannTree.JKleppmannTreeStorageInterface"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapEntry"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapHelper"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapHolder"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapHolderRefcounterTxHook"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapIterator"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapKey"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapLongKey"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapRef"},{"p":"com.usatiuk.dhfs.jmap","l":"JMapRefcounterTxHook"},{"p":"com.usatiuk.dhfsfuse","l":"JnrPtrByteOutput"},{"p":"com.usatiuk.objects","l":"JObjectKey"},{"p":"com.usatiuk.objects","l":"JObjectKeyImpl"},{"p":"com.usatiuk.objects","l":"JObjectKeyMax"},{"p":"com.usatiuk.objects","l":"JObjectKeyMin"},{"p":"com.usatiuk.dhfs.persistence","l":"JObjectKeyP"},{"p":"com.usatiuk.dhfs.persistence","l":"JObjectKeyPOrBuilder"},{"p":"com.usatiuk.dhfs","l":"JObjectKeyProtoSerializer"},{"p":"com.usatiuk.objects.iterators","l":"KeyPredicateKvIterator"},{"p":"com.usatiuk.kleppmanntree","l":"KleppmannTree"},{"p":"com.usatiuk.dhfs.webapi","l":"KnownPeerPut"},{"p":"com.usatiuk.utils","l":"ListUtils"},{"p":"com.usatiuk.objects.stores","l":"LmdbObjectPersistentStore"},{"p":"com.usatiuk.dhfs.peerdiscovery.local","l":"LocalPeerDiscoveryBroadcaster"},{"p":"com.usatiuk.dhfs.peerdiscovery.local","l":"LocalPeerDiscoveryClient"},{"p":"com.usatiuk.kleppmanntree","l":"LogEffect"},{"p":"com.usatiuk.kleppmanntree","l":"LogEffectOld"},{"p":"com.usatiuk.kleppmanntree","l":"LogInterface"},{"p":"com.usatiuk.kleppmanntree","l":"LogRecord"},{"p":"com.usatiuk.dhfsfuse","l":"Main"},{"p":"com.usatiuk.objects.iterators","l":"MappingKvIterator"},{"p":"com.usatiuk.objects.iterators","l":"MaybeTombstone"},{"p":"com.usatiuk.objects.stores","l":"MemoryObjectPersistentStore"},{"p":"com.usatiuk.objects.iterators","l":"MergingKvIterator"},{"p":"com.usatiuk.dhfs.repository","l":"MutinyDhfsObjectSyncGrpcGrpc"},{"p":"com.usatiuk.dhfs.repository","l":"MutinyDhfsObjectSyncGrpcGrpc.MutinyDhfsObjectSyncGrpcStub"},{"p":"com.usatiuk.objects.iterators","l":"NavigableMapKvIterator"},{"p":"com.usatiuk.kleppmanntree","l":"NodeMeta"},{"p":"com.usatiuk.dhfs.persistence","l":"ObjectChangelog"},{"p":"com.usatiuk.dhfs.persistence","l":"ObjectChangelogOrBuilder"},{"p":"com.usatiuk.objects.stores","l":"ObjectPersistentStore"},{"p":"com.usatiuk.objects","l":"ObjectSerializer"},{"p":"com.usatiuk.dhfs.rpc","l":"RpcClientFactory.ObjectSyncClientFunction"},{"p":"com.usatiuk.dhfs.remoteobj","l":"ObjSyncHandler"},{"p":"com.usatiuk.dhfs.invalidation","l":"Op"},{"p":"com.usatiuk.dhfs.invalidation","l":"OpExtractor"},{"p":"com.usatiuk.dhfs.invalidation","l":"OpExtractorService"},{"p":"com.usatiuk.dhfs.invalidation","l":"OpHandler"},{"p":"com.usatiuk.dhfs.invalidation","l":"OpHandlerService"},{"p":"com.usatiuk.kleppmanntree","l":"OpMove"},{"p":"com.usatiuk.dhfs.repository","l":"OpP"},{"p":"com.usatiuk.dhfs.repository","l":"OpPOrBuilder"},{"p":"com.usatiuk.dhfs.repository","l":"OpPushReply"},{"p":"com.usatiuk.dhfs.repository","l":"OpPushReplyOrBuilder"},{"p":"com.usatiuk.dhfs.repository","l":"OpPushRequest"},{"p":"com.usatiuk.dhfs.repository","l":"OpPushRequestOrBuilder"},{"p":"com.usatiuk.kleppmanntree","l":"OpRecorder"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PeerAddress"},{"p":"com.usatiuk.dhfs.webapi","l":"PeerAddressInfo"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PeerAddressType"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PeerAddrStringHelper"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerConnectedEventListener"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerDisconnectedEventListener"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PeerDiscoveryDirectory"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PeerDiscoveryInfo"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PeerDiscoveryInfoOrBuilder"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerId"},{"p":"com.usatiuk.dhfs.persistence","l":"PeerIdP"},{"p":"com.usatiuk.dhfs.persistence","l":"PeerIdPOrBuilder"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerInfo"},{"p":"com.usatiuk.dhfs.webapi","l":"PeerInfo"},{"p":"com.usatiuk.dhfs.peertrust","l":"PeerInfoCertUpdateTxHook"},{"p":"com.usatiuk.dhfs.persistence","l":"PeerInfoP"},{"p":"com.usatiuk.dhfs.persistence","l":"PeerInfoPOrBuilder"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerInfoProtoSerializer"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerInfoService"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerInfoSyncHandler"},{"p":"com.usatiuk.kleppmanntree","l":"PeerInterface"},{"p":"com.usatiuk.dhfs.peersync","l":"PeerLastSeenUpdater"},{"p":"com.usatiuk.dhfs.webapi","l":"PeerManagementApi"},{"p":"com.usatiuk.dhfs.peertrust","l":"PeerRolesAugmentor"},{"p":"com.usatiuk.dhfs.peersync.api","l":"PeerSyncApi"},{"p":"com.usatiuk.dhfs.peersync.api","l":"PeerSyncApiClient"},{"p":"com.usatiuk.dhfs.peersync.api","l":"PeerSyncApiClientDynamic"},{"p":"com.usatiuk.kleppmanntree","l":"PeerTimestampLogInterface"},{"p":"com.usatiuk.dhfs.peertrust","l":"PeerTrustManager"},{"p":"com.usatiuk.dhfs.peertrust","l":"PeerTrustServerCustomizer"},{"p":"com.usatiuk.objects.stores","l":"PendingDelete"},{"p":"com.usatiuk.objects.stores","l":"PendingWrite"},{"p":"com.usatiuk.objects.stores","l":"PendingWriteEntry"},{"p":"com.usatiuk.dhfs.webapi","l":"PersistentPeerAddressApi"},{"p":"com.usatiuk.dhfs.peersync","l":"PersistentPeerDataService"},{"p":"com.usatiuk.dhfs.peersync","l":"PersistentRemoteHostsData"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"PersistentStaticPeerDiscovery"},{"p":"com.usatiuk.dhfs.repository","l":"PingReply"},{"p":"com.usatiuk.dhfs.repository","l":"PingReplyOrBuilder"},{"p":"com.usatiuk.dhfs.repository","l":"PingRequest"},{"p":"com.usatiuk.dhfs.repository","l":"PingRequestOrBuilder"},{"p":"com.usatiuk.objects.transaction","l":"PreCommitTxHook"},{"p":"com.usatiuk.dhfs","l":"ProtoSerializer"},{"p":"com.usatiuk.dhfs.peersync","l":"ReachablePeerManager"},{"p":"com.usatiuk.dhfs.remoteobj","l":"ReceivedObject"},{"p":"com.usatiuk.dhfs.refcount","l":"RefcounterTxHook"},{"p":"com.usatiuk.dhfs.remoteobj","l":"RemoteObjectDataWrapper"},{"p":"com.usatiuk.dhfs.remoteobj","l":"RemoteObjectDeleter"},{"p":"com.usatiuk.dhfs.remoteobj","l":"RemoteObjectInitialSyncProcessor"},{"p":"com.usatiuk.dhfs.remoteobj","l":"RemoteObjectMeta"},{"p":"com.usatiuk.dhfs.invalidation","l":"RemoteObjectMetaOpExtractor"},{"p":"com.usatiuk.dhfs.rpc","l":"RemoteObjectServiceClient"},{"p":"com.usatiuk.dhfs.rpc","l":"RemoteObjectServiceServer"},{"p":"com.usatiuk.dhfs.rpc","l":"RemoteObjectServiceServerImpl"},{"p":"com.usatiuk.dhfs.remoteobj","l":"RemoteObjPusherTxHook"},{"p":"com.usatiuk.dhfs.remoteobj","l":"RemoteTransaction"},{"p":"com.usatiuk.objects.iterators","l":"ReversedKvIterator"},{"p":"com.usatiuk.objects.iterators","l":"ReversibleKvIterator"},{"p":"com.usatiuk.dhfs.rpc","l":"RpcChannelFactory"},{"p":"com.usatiuk.dhfs.rpc","l":"RpcClientFactory"},{"p":"com.usatiuk.dhfs.webapi","l":"SelfInfo"},{"p":"com.usatiuk.utils","l":"SerializationHelper"},{"p":"com.usatiuk.objects.stores","l":"SerializingObjectPersistentStore"},{"p":"com.usatiuk.dhfs","l":"ShutdownChecker"},{"p":"com.usatiuk.objects.snapshot","l":"Snapshot"},{"p":"com.usatiuk.dhfs.peerdiscovery","l":"StaticPeerDiscovery"},{"p":"com.usatiuk.utils","l":"StatusRuntimeExceptionNoStacktrace"},{"p":"com.usatiuk.kleppmanntree","l":"StorageInterface"},{"p":"com.usatiuk.dhfs.remoteobj","l":"SyncHandler"},{"p":"com.usatiuk.dhfs.remoteobj","l":"SyncHandlerService"},{"p":"com.usatiuk.dhfs.remoteobj","l":"SyncHelper"},{"p":"com.usatiuk.dhfs","l":"TemporaryOpSerializer"},{"p":"com.usatiuk.dhfs.rpc","l":"TemporaryReceivedObjectSerializer"},{"p":"com.usatiuk.dhfs.rpc","l":"TemporaryRemoteObjectSerializer"},{"p":"com.usatiuk.objects.iterators","l":"Tombstone"},{"p":"com.usatiuk.objects.iterators","l":"TombstoneImpl"},{"p":"com.usatiuk.objects.iterators","l":"TombstoneSkippingIterator"},{"p":"com.usatiuk.objects.transaction","l":"Transaction"},{"p":"com.usatiuk.objects.transaction","l":"TransactionHandle"},{"p":"com.usatiuk.objects.transaction","l":"TransactionManager"},{"p":"com.usatiuk.objects.transaction","l":"TransactionManagerImpl"},{"p":"com.usatiuk.objects.transaction","l":"TransactionService"},{"p":"com.usatiuk.kleppmanntree","l":"TreeNode"},{"p":"com.usatiuk.objects.transaction","l":"TxCommitException"},{"p":"com.usatiuk.objects.stores","l":"TxManifestObj"},{"p":"com.usatiuk.objects.stores","l":"TxManifestRaw"},{"p":"com.usatiuk.objects.transaction","l":"TxRecord.TxObjectRecord"},{"p":"com.usatiuk.objects.transaction","l":"TxRecord.TxObjectRecordDeleted"},{"p":"com.usatiuk.objects.transaction","l":"TxRecord.TxObjectRecordWrite"},{"p":"com.usatiuk.objects.transaction","l":"TxRecord"},{"p":"com.usatiuk.utils","l":"UninitializedByteBuffer"},{"p":"com.usatiuk.utils","l":"UnsafeAccessor"},{"p":"com.usatiuk.dhfs.webui","l":"WebUiRouter"},{"p":"com.usatiuk.objects.stores","l":"WritebackObjectPersistentStore"}];updateSearchResults(); \ No newline at end of file diff --git a/webui/.eslintrc.json b/webui/.eslintrc.json deleted file mode 100644 index 0417aa6b..00000000 --- a/webui/.eslintrc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "root": true, - "env": { - "browser": true, - "es2021": true - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:react/jsx-runtime", - "prettier" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module", - "project": "./tsconfig.json" - }, - "plugins": [ - "@typescript-eslint", - "react" - ], - "rules": { - "@typescript-eslint/no-floating-promises": [ - "error" - ] - } -} diff --git a/webui/.gitignore b/webui/.gitignore deleted file mode 100644 index c7241bd8..00000000 --- a/webui/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -.idea/ -node_modules/ -build/ -tmp/ -temp/ -dist/ -.env -.cache -.directory -.history -.parcel-cache -frontend-reports/ \ No newline at end of file diff --git a/webui/.parcelrc b/webui/.parcelrc deleted file mode 100644 index bf427c9a..00000000 --- a/webui/.parcelrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@parcel/config-default", - "transformers": { - "*.{ts,tsx}": ["@parcel/transformer-typescript-tsc"] - }, - "validators": { - "*.{ts,tsx}": ["@parcel/validator-typescript"] - } -} \ No newline at end of file diff --git a/webui/.prettierrc b/webui/.prettierrc deleted file mode 100644 index d73dc0af..00000000 --- a/webui/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "trailingComma": "all", - "tabWidth": 4, - "endOfLine": "auto" -} \ No newline at end of file diff --git a/webui/.proxyrc b/webui/.proxyrc deleted file mode 100644 index 98c5259e..00000000 --- a/webui/.proxyrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "/apiproxy": { - "target": "http://localhost:8080/", - "pathRewrite": { - "^/apiproxy": "" - } - } -} diff --git a/webui/package-lock.json b/webui/package-lock.json deleted file mode 100644 index 3b7e515c..00000000 --- a/webui/package-lock.json +++ /dev/null @@ -1,7108 +0,0 @@ -{ - "name": "dhfs-webui", - "version": "0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "dhfs-webui", - "version": "0.0.1", - "dependencies": { - "jwt-decode": "^4.0.0", - "node-forge": "^1.3.1", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "react-router": "^7.5.2", - "react-router-dom": "^7.5.2", - "zod": "^3.24.2" - }, - "devDependencies": { - "@parcel/transformer-sass": "^2.14.4", - "@parcel/transformer-typescript-tsc": "^2.14.4", - "@parcel/validator-typescript": "^2.14.4", - "@types/eslint": "^9.6.1", - "@types/eslint-config-prettier": "^6.11.3", - "@types/node-forge": "^1.3.11", - "@types/react": "^19.0.12", - "@types/react-dom": "^19.0.4", - "@typescript-eslint/eslint-plugin": "^8.28.0", - "@typescript-eslint/parser": "^8.28.0", - "eslint": "^9", - "eslint-config-prettier": "^10.1.1", - "eslint-plugin-react": "^7.37.4", - "parcel": "^2.14.4", - "prettier": "^3.5.3", - "process": "^0.11.10", - "typescript": "^5.8.2" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", - "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", - "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", - "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.12.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@lezer/common": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", - "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@lezer/lr": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", - "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz", - "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz", - "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz", - "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz", - "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-x64": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", - "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-win32-x64": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz", - "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@mischnic/json-sourcemap": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", - "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0", - "@lezer/lr": "^1.0.0", - "json5": "^2.2.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", - "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", - "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", - "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", - "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", - "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", - "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@parcel/bundler-default": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.14.4.tgz", - "integrity": "sha512-JVqi5Sb7wv2KCTJFAAjHbnl6KC61jKNVYw/GtZm5s/Wxqvxx2tcp93rmRoBFo9X3gSgkg8jp4HkNAUHTxnsPnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/graph": "3.4.4", - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/cache": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.14.4.tgz", - "integrity": "sha512-CTTMySgNSgcSwbNWL4gODU1h9hMjBRyiC8/gcKDFqzw0wC/T+ZwX7wc5zNc/S9aJRTmmgvndcYKoVlds7YV2sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/fs": "2.14.4", - "@parcel/logger": "2.14.4", - "@parcel/utils": "2.14.4", - "lmdb": "2.8.5" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@parcel/codeframe": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.14.4.tgz", - "integrity": "sha512-fRKkmFGnQIa/X+Kr8csTWjOwRRh2JfJfTpNS8JhbjBSWvOoKsDG9T2U5Ky8akIG7c9WDGwB3ngONauI1vtaInA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/compressor-raw": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.14.4.tgz", - "integrity": "sha512-wYRdokznP1iI3n6M6leQ0nI65tCIWhZaD0vW3G3qodDFi+qsdpvZymCpNUkh6AYkFFr3Lur+r/+xkWDoqNoMWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/config-default": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.14.4.tgz", - "integrity": "sha512-bHtr8yT2IZDv5w44/VKoNz07goidO99c6hsp9s0hjSVC1G6krdE+nriryPVfUFbw044LeQThSvA8EwTas72QZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/bundler-default": "2.14.4", - "@parcel/compressor-raw": "2.14.4", - "@parcel/namer-default": "2.14.4", - "@parcel/optimizer-css": "2.14.4", - "@parcel/optimizer-htmlnano": "2.14.4", - "@parcel/optimizer-image": "2.14.4", - "@parcel/optimizer-svgo": "2.14.4", - "@parcel/optimizer-swc": "2.14.4", - "@parcel/packager-css": "2.14.4", - "@parcel/packager-html": "2.14.4", - "@parcel/packager-js": "2.14.4", - "@parcel/packager-raw": "2.14.4", - "@parcel/packager-svg": "2.14.4", - "@parcel/packager-wasm": "2.14.4", - "@parcel/reporter-dev-server": "2.14.4", - "@parcel/resolver-default": "2.14.4", - "@parcel/runtime-browser-hmr": "2.14.4", - "@parcel/runtime-js": "2.14.4", - "@parcel/runtime-rsc": "2.14.4", - "@parcel/runtime-service-worker": "2.14.4", - "@parcel/transformer-babel": "2.14.4", - "@parcel/transformer-css": "2.14.4", - "@parcel/transformer-html": "2.14.4", - "@parcel/transformer-image": "2.14.4", - "@parcel/transformer-js": "2.14.4", - "@parcel/transformer-json": "2.14.4", - "@parcel/transformer-node": "2.14.4", - "@parcel/transformer-postcss": "2.14.4", - "@parcel/transformer-posthtml": "2.14.4", - "@parcel/transformer-raw": "2.14.4", - "@parcel/transformer-react-refresh-wrap": "2.14.4", - "@parcel/transformer-svg": "2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@parcel/core": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.14.4.tgz", - "integrity": "sha512-dtUMmPDXd7CRAWwMlOc6jh6yLRL4wMi/vNMNdX9J/fafCLFgFBmPqWBhQ9tlX015Q8DEcIRWYPumHIn5dzqEbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.14.4", - "@parcel/diagnostic": "2.14.4", - "@parcel/events": "2.14.4", - "@parcel/feature-flags": "2.14.4", - "@parcel/fs": "2.14.4", - "@parcel/graph": "3.4.4", - "@parcel/logger": "2.14.4", - "@parcel/package-manager": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/profiler": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.14.4", - "@parcel/utils": "2.14.4", - "@parcel/workers": "2.14.4", - "base-x": "^3.0.8", - "browserslist": "^4.6.6", - "clone": "^2.1.1", - "dotenv": "^16.4.5", - "dotenv-expand": "^11.0.6", - "json5": "^2.2.0", - "msgpackr": "^1.9.9", - "nullthrows": "^1.1.1", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/diagnostic": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.14.4.tgz", - "integrity": "sha512-+pElcMMlTnpEIm9MrrSEOh38ylKYYdTYMgv2iZQU7799yzD9sSac9dkGSbbKGDYWhALCuzWQOgdaGG9ExJZw6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@mischnic/json-sourcemap": "^0.1.0", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/error-overlay": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/error-overlay/-/error-overlay-2.14.4.tgz", - "integrity": "sha512-GZ6Z1XO/VYqIFNwa3iAYWX7Pskwd+xw9tPw9kjF7tG8wdL9VipkcILJ4APj/G5CKw8XrXH/6NsC7HndNbR7EqA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/events": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.14.4.tgz", - "integrity": "sha512-QzZr291JuENw7BsehKc3z29ukLMApPdjRFcOYXFuMWaHkpC7lzFK/KAY4Mi9HCa3aQe90zCcuxZg+bBsNF9XxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/feature-flags": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.14.4.tgz", - "integrity": "sha512-T2HE+lOmlU6PZOUnuXn6UZPXV4higCPgF2c2YXhrzTlSFcLMiAXATyzrylbYY/i/WjiYAlqvmEcaBX5fSaW95g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/fs": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.14.4.tgz", - "integrity": "sha512-SQbuW6v1URv871FVj23HoC8+UUwpgkQ7iWmG7EITpp6AV42ojRr/jZ93hLjzkQQfYlRI64jUExn6AQAZDN3bqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/feature-flags": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/types-internal": "2.14.4", - "@parcel/utils": "2.14.4", - "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@parcel/graph": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.4.4.tgz", - "integrity": "sha512-AIbJ8d8aCPcKAkqc45LENjAMIrp8nRGlmky5LyY5244qqnR1B+tsvU47XoGymM3OaXLdVjv8knJ4K0ci9/l/4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/feature-flags": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/logger": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.14.4.tgz", - "integrity": "sha512-uqSGeCqraWpbe8gqbb1k9ePrlzdKoOwkdQPcRIv8TTTWZfCt6Qcl08w8didO4iAOz4H5C4Ng82wbVO/ieaMoKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/events": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/markdown-ansi": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.14.4.tgz", - "integrity": "sha512-B4787HHXHi0wcuYbV4qBibws/yaX4RXoNel5xWdwzn1ZFmeLAXluNjMO2Q6FmII/Lej9OIQEaTppl7/DxJGifg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/namer-default": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.14.4.tgz", - "integrity": "sha512-3FvZhkRgYlipj0NGRmw/rZ9ZiuM+a9ZcNW/MHRpytiNNBgcGCpR00XKhhvn0O5//MH13nLpiQXUf+J279CuN2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/node-resolver-core": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.5.4.tgz", - "integrity": "sha512-KmmsVD8Ym+19DIbe0Y2SUbdcB+iUfgstR4dBpaogV36DlxV4d0uiia4GCpOO3kG9zlRYMVsfZEwy/NNZHELx3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.14.4", - "@parcel/fs": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/optimizer-css": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.14.4.tgz", - "integrity": "sha512-5rwwnsP8pnTqis5fs2YyNUvke6YprWlU8Y9pD55hK1Y1MbYmvCqaIyQv9lcpHJQiqrwsZ2pl5B3Ph5buDSQehQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.14.4", - "browserslist": "^4.6.6", - "lightningcss": "^1.22.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/optimizer-htmlnano": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.14.4.tgz", - "integrity": "sha512-hLVaN7ResQcgKRo9uDm7oddC4DwR7qoTFsYn4Ftj8qGbgqB2nRpCCK0R66PA/9U98LyTOlAl1J6TEvxWR+IlKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4", - "htmlnano": "^2.0.0", - "nullthrows": "^1.1.1", - "posthtml": "^0.16.5" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/optimizer-image": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.14.4.tgz", - "integrity": "sha512-F5xw6ayFWOxu2XP5MI8g9khOCKNkVj4nGoXrBcgLoCKW4o07buCUKY4Sy04P3u7Leip6TOk7qpt3Q1179h6KTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/utils": "2.14.4", - "@parcel/workers": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@parcel/optimizer-svgo": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.14.4.tgz", - "integrity": "sha512-bjZ2VHhzclBQ99SC2ZXsFKJ6zi0hXTPbGdaVblMu0iheeXcATdoNzey0eizaoSmLe9IyFJoN6gvnLdQqGfZLZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/optimizer-swc": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.14.4.tgz", - "integrity": "sha512-7+p5ILEj2S02Rs6YzwF74g0kpAZzF9idDP9zjLVZWo9JYvoRvH0LW90bI7yKXWpKB8QOtwziqgWkcgItSIWBnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.14.4", - "@swc/core": "^1.11.5", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/package-manager": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.14.4.tgz", - "integrity": "sha512-chF2rBmLtLPZe0qtbqJtq6hNGCRu0+1wFs2j5sqxr1ZttvvhRpATu/7pD+gKTFmfL7iJkOpGTU485SYmyO1xjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/fs": "2.14.4", - "@parcel/logger": "2.14.4", - "@parcel/node-resolver-core": "3.5.4", - "@parcel/types": "2.14.4", - "@parcel/utils": "2.14.4", - "@parcel/workers": "2.14.4", - "@swc/core": "^1.11.5", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@parcel/packager-css": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.14.4.tgz", - "integrity": "sha512-AvJhE1AQ4OcuOUtKoifhE1Y8KgYitzKMvmgsgQlwySdrkk6dz+XGHfZ9goTzIUaz9xZzwbJH7h/pvaIP8jQ9yQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.14.4", - "lightningcss": "^1.22.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/packager-html": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.14.4.tgz", - "integrity": "sha512-rsYz3NDaKRCuQOAWGc3eYJ2GHesm62iRCQTMGlZ7Oplp748vu2c1Uee/mP43WlslvDxHtV7rzVNyo88MS6sc5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/types": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1", - "posthtml": "^0.16.5" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/packager-js": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.14.4.tgz", - "integrity": "sha512-Fz98TzYFcd9xCj6jqMtyd7c3n65GRmuoG7u0S/2g4sJrR5Zen70n1zlBGX7mEoOvB5lKRijzoNqBtB+7bWqS5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.14.4", - "@parcel/utils": "2.14.4", - "globals": "^13.2.0", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/packager-js/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@parcel/packager-raw": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.14.4.tgz", - "integrity": "sha512-7yDcPGsSSz4WiCWj2KoC2pNBXNislulI1RXaWyBAMzQhevQ+9D2ga/ZPgpcNjcWr8Y1tRb3QITETkTmZVHmPXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/packager-svg": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.14.4.tgz", - "integrity": "sha512-ja5P9PXp+v/mh+UXUXdQ1O35yr2kRqdRlytYrzmAaeILuS1ko2n3ZJoeUYYprYOh/UmLmkgbXh/DyzrhEH7TZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/types": "2.14.4", - "@parcel/utils": "2.14.4", - "posthtml": "^0.16.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/packager-wasm": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.14.4.tgz", - "integrity": "sha512-sgGCitPjl80Ku+xZIu3wCIAjOYXVEGJ00uXeexR8hgMx/PMhiHXLWUG8eLYAvxXx/CcLmHDOEBNrl6G3JxsP9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4" - }, - "engines": { - "node": ">=16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/plugin": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.14.4.tgz", - "integrity": "sha512-EcehbthkBtQ9S2jWAzIiSlodbIMZ0bSsN3PC1q9jVaCM16ueObjZohKkzMjzR6Qot91qL0EJoMLzuNvtryvpHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/types": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/profiler": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.14.4.tgz", - "integrity": "sha512-oZAdCDW3bYRpBOuL4coq4OQDN6HXADaSd4X8xJCeGsEsbVfJt0Qg5RgxdWC1L86mukyZMQ9ZrQUpC8aU9CAmFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/events": "2.14.4", - "@parcel/types-internal": "2.14.4", - "chrome-trace-event": "^1.0.2" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/reporter-cli": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.14.4.tgz", - "integrity": "sha512-KgBXBiwGb9hqf3A6vw6eIqX1uYaMRjSqYXUUybGTOxonc+yB6J5q+skv1Wuty6IYuBfjNlV/zdvgggVZMl0ZxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/types": "2.14.4", - "@parcel/utils": "2.14.4", - "chalk": "^4.1.2", - "term-size": "^2.2.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/reporter-dev-server": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.14.4.tgz", - "integrity": "sha512-Ezg24vHftV0El0tWcxnsGAxwSdNTMs9M+l9Nbm1k4rydx1lCoKBAhpa2Icv8vKZY8K075giww8TOkjk6zVkAmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/codeframe": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/reporter-tracer": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.14.4.tgz", - "integrity": "sha512-EN+rzdEnoMuC5qbYIcuP6v1vTb/dDPrrnIEtDFEsSyuBuDfQevtOech8oHzjGEBOlC8svm+OzW/wIj2L2rmF2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4", - "chrome-trace-event": "^1.0.3", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/resolver-default": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.14.4.tgz", - "integrity": "sha512-s4XKnfScF/cwqGyYG/sB4WpktIJ55dvpu64ZiglHkkPvY5wT4p7A61mTIp6ck0ZPYmeG/zfd+P0B3qPpNF5mUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/node-resolver-core": "3.5.4", - "@parcel/plugin": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/runtime-browser-hmr": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.14.4.tgz", - "integrity": "sha512-7o3XHOkuNy2jUH8xdKJSzIfatdAqvr/PHg9vQN0Cz4r80XCXDh1ovfz/x0Q9gpBv+LMBs+ufZ4tP+RfgJ/jKpQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/runtime-js": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.14.4.tgz", - "integrity": "sha512-F9RvDELU/0fyV2/rHkjpPcLeKF/ZU3gnHIQnkh2Q5/41XhymyNAvMmYGPM6VpbOAnDlYeVjwfyJ41x8FOL6u4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/runtime-rsc": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/runtime-rsc/-/runtime-rsc-2.14.4.tgz", - "integrity": "sha512-FXoO1GWvC/yQOUYX+0rTUQVku91DSJnjegqJaiJSUOEGeJWF9mBmY/3QDkksvhwB25vJkLYsu/M5Fx83OA2u6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/runtime-service-worker": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.14.4.tgz", - "integrity": "sha512-6+vz2DYP9tK+GHRPwW/qfUNvGOHvFpsN/Thk+tSIZ+PHT1DTWfpf02eo7fzpImdZAzllSz3m1IXgrOH00LdOKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/rust": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.14.4.tgz", - "integrity": "sha512-Ti+ZVr8mMTgrSA7UHcFXxG98anD0C8dGzYfP1+DTgxkcU16nywTv5F/VsPqpV2qiDWrHbm06CEWQbOrowjzvVw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "napi-wasm": "^1.1.2" - }, - "peerDependenciesMeta": { - "napi-wasm": { - "optional": true - } - } - }, - "node_modules/@parcel/source-map": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", - "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": "^12.18.3 || >=14" - } - }, - "node_modules/@parcel/transformer-babel": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.14.4.tgz", - "integrity": "sha512-9yMnlFuKQYgXJY8OWpcR2vSigpMm5MCEJJl6r+g3KkXHFwK1Gket2sC4Wd5JbHv98SNzJ9rdD4Xrre/eXJu6pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.14.4", - "browserslist": "^4.6.6", - "json5": "^2.2.0", - "nullthrows": "^1.1.1", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-css": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.14.4.tgz", - "integrity": "sha512-sf0NuzPH4kSpL4VgV94xY5kPxoAndoNouUFPaHmN3hW6QiTHShRubfDsginSOHl5QhghSfr4qtP7t7HxCSDq6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.14.4", - "browserslist": "^4.6.6", - "lightningcss": "^1.22.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-html": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.14.4.tgz", - "integrity": "sha512-h0iCfU2SN+gh5LTfZTRiXHavl3CdJ2i3F9jzVrRjdH8pfLqy5eOy1tQ8vyqMsshk+VdlZ1+vUiZ7uaKkkBq/fg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "nullthrows": "^1.1.1", - "posthtml": "^0.16.5", - "posthtml-parser": "^0.12.1", - "posthtml-render": "^3.0.0", - "semver": "^7.5.2", - "srcset": "4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-html/node_modules/srcset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", - "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@parcel/transformer-image": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.14.4.tgz", - "integrity": "sha512-QVGAdQ16YxNo7PTzBazUabmrn4dss1EDeMrh0bFUeRTZdYaYu5z/+gnRc5R4oHcHK6oxnECi808TquMQcQxDEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4", - "@parcel/workers": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@parcel/transformer-js": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.14.4.tgz", - "integrity": "sha512-fBC8NVM8xXxjGQY5r88Z46akSErFO5hRVA4kuRI0tkXorjov3Mu4hu6MLq974TEQluSvGXUYGT5Mq2iXZ75M7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.14.4", - "@parcel/workers": "2.14.4", - "@swc/helpers": "^0.5.0", - "browserslist": "^4.6.6", - "nullthrows": "^1.1.1", - "regenerator-runtime": "^0.14.1", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@parcel/transformer-json": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.14.4.tgz", - "integrity": "sha512-+28n3/qhc2q6Zoqhufk1YKU442a2JyyE0ILFsT17Of+lcNX+QtXYPOYcky7TNENnoUz9TpOAFev64P99UN7huA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "json5": "^2.2.0" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-node": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-node/-/transformer-node-2.14.4.tgz", - "integrity": "sha512-K5k/GkGN4SwGdil8g10AcPPJn+hV0vzcv4l2qYoCqaxxIPCrpjmMnoA8a3kRgxvD8s54KciFYYjmU5Cj5NjvbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-postcss": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.14.4.tgz", - "integrity": "sha512-GxkXkcgG2XGt6ivoUF5yD1tmQPV+d71gUxyBGv1i1jg4x65R12Gc/npzWk9TCH2dShSdHOA90OJpNL4k0JlLtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/utils": "2.14.4", - "clone": "^2.1.1", - "nullthrows": "^1.1.1", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-posthtml": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.14.4.tgz", - "integrity": "sha512-V9dnsA5+t7uF/hWc9HwJcaKkmP8K2go6yAQOpxu+knyszfz3t2jw/k4L/VFjqCATf90agal/iRTPVkHvWDCzZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1", - "posthtml": "^0.16.5", - "posthtml-parser": "^0.12.1", - "posthtml-render": "^3.0.0", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-raw": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.14.4.tgz", - "integrity": "sha512-GCuUWKAb9YHB/krmzBeQbtHKKZopT3c3AzoPTq/4woV4Ti1zUZ83oFyTX1tBKQ+MMB1BW+HrPkFld0iY4gp/Ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-react-refresh-wrap": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.14.4.tgz", - "integrity": "sha512-nb70CAvjDizAIQ1naZ39P/PxYWtPllWvvxrkpldNnk8AF74OcHodrsuHKwhyPZHMmnMdexFonsenf+VeN4l/aQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/error-overlay": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/utils": "2.14.4", - "react-refresh": ">=0.9 <=0.16" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-sass": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.14.4.tgz", - "integrity": "sha512-GspG5jYpr4XmO5xa5UFBmf78og9Gx1DLbZo/KKD7hYd9DnuqtwFhvcoWsOB/TPNd4wzMjvg0yP34Kij9Bcs2vQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "sass": "^1.38.0" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-svg": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.14.4.tgz", - "integrity": "sha512-iqnyvgGmwu4wNh+khEBkMEu1hAGZWnc7/xQnhiuQBAcoy5qGNEjyVUv6PbMLWWAVK/0PjqV4FaB2deXBYKeW0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/rust": "2.14.4", - "nullthrows": "^1.1.1", - "posthtml": "^0.16.5", - "posthtml-parser": "^0.12.1", - "posthtml-render": "^3.0.0", - "semver": "^7.5.2" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/transformer-typescript-tsc": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/transformer-typescript-tsc/-/transformer-typescript-tsc-2.14.4.tgz", - "integrity": "sha512-BFFUyjPVGCb/Olb+uSt/AlBYrK12lNtQQ0Q1mc0XRHccSVskU5sJqvkTzzZS5x8T94EIRTxgkcEDussv7J5Kvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/plugin": "2.14.4", - "@parcel/source-map": "^2.1.1", - "@parcel/ts-utils": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "typescript": ">=3.0.0" - } - }, - "node_modules/@parcel/ts-utils": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.14.4.tgz", - "integrity": "sha512-HKBd1Nardh2S7IJxdpxel+w6Yp/6e/q3Bl3eFejye0tZpkb4wZeypfzIG1OSTniPDdlYPQwbzCSxBa5quQMOqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "typescript": ">=3.0.0" - } - }, - "node_modules/@parcel/types": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.14.4.tgz", - "integrity": "sha512-NL4N9M6IPwBquAo1DKOPqy66nwJLXMX3KPalzAA7ktt3HYr5YNG5h3GeVXPOLNIVVMrSIiodYGPEeEBYy6kyYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/types-internal": "2.14.4", - "@parcel/workers": "2.14.4" - } - }, - "node_modules/@parcel/types-internal": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.14.4.tgz", - "integrity": "sha512-Y2JnljFG7KcxLrCiYNCqBfjDo12alhRVpNugm0jwz1EQ3OQNO3HYiB0f3djq6pv2clZ5ndpgkNgYsn6L7KR9Nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/feature-flags": "2.14.4", - "@parcel/source-map": "^2.1.1", - "utility-types": "^3.10.0" - } - }, - "node_modules/@parcel/utils": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.14.4.tgz", - "integrity": "sha512-icK6QgKjis+UZLyaHJcsKXYOSKYeYr41m8ZB9j20/yEcvrMqj/LMVsNjLz3iWVhLwfgussG2ODxycCdu3M5cvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/codeframe": "2.14.4", - "@parcel/diagnostic": "2.14.4", - "@parcel/logger": "2.14.4", - "@parcel/markdown-ansi": "2.14.4", - "@parcel/rust": "2.14.4", - "@parcel/source-map": "^2.1.1", - "chalk": "^4.1.2", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/validator-typescript": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/validator-typescript/-/validator-typescript-2.14.4.tgz", - "integrity": "sha512-zIB3ZW1iPkxqQIV9WYOvDs3cdwSrlVZuzmaWKkJxyZwcFmRfrVJB5OM6B0OfyySRL3JqFOLvDR7v46u9Db7eKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/plugin": "2.14.4", - "@parcel/ts-utils": "2.14.4", - "@parcel/types": "2.14.4", - "@parcel/utils": "2.14.4" - }, - "engines": { - "node": ">= 16.0.0", - "parcel": "^2.14.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "typescript": ">=3.0.0" - } - }, - "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/workers": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.14.4.tgz", - "integrity": "sha512-OAjW2dJOaRKy4UD5YwnUi7mY+gt/QbjagjrKh2fQDnrvuK8dpr5GrjEOLOe6QsxEE0vpe3jshhGMJTYqLni3kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/diagnostic": "2.14.4", - "@parcel/logger": "2.14.4", - "@parcel/profiler": "2.14.4", - "@parcel/types-internal": "2.14.4", - "@parcel/utils": "2.14.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.14.4" - } - }, - "node_modules/@swc/core": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.13.tgz", - "integrity": "sha512-9BXdYz12Wl0zWmZ80PvtjBWeg2ncwJ9L5WJzjhN6yUTZWEV/AwAdVdJnIEp4pro3WyKmAaMxcVOSbhuuOZco5g==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.19" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.11.13", - "@swc/core-darwin-x64": "1.11.13", - "@swc/core-linux-arm-gnueabihf": "1.11.13", - "@swc/core-linux-arm64-gnu": "1.11.13", - "@swc/core-linux-arm64-musl": "1.11.13", - "@swc/core-linux-x64-gnu": "1.11.13", - "@swc/core-linux-x64-musl": "1.11.13", - "@swc/core-win32-arm64-msvc": "1.11.13", - "@swc/core-win32-ia32-msvc": "1.11.13", - "@swc/core-win32-x64-msvc": "1.11.13" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.13.tgz", - "integrity": "sha512-loSERhLaQ9XDS+5Kdx8cLe2tM1G0HLit8MfehipAcsdctpo79zrRlkW34elOf3tQoVPKUItV0b/rTuhjj8NtHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.13.tgz", - "integrity": "sha512-uSA4UwgsDCIysUPfPS8OrQTH2h9spO7IYFd+1NB6dJlVGUuR6jLKuMBOP1IeLeax4cGHayvkcwSJ3OvxHwgcZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.13.tgz", - "integrity": "sha512-boVtyJzS8g30iQfe8Q46W5QE/cmhKRln/7NMz/5sBP/am2Lce9NL0d05NnFwEWJp1e2AMGHFOdRr3Xg1cDiPKw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.13.tgz", - "integrity": "sha512-+IK0jZ84zHUaKtwpV+T+wT0qIUBnK9v2xXD03vARubKF+eUqCsIvcVHXmLpFuap62dClMrhCiwW10X3RbXNlHw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.13.tgz", - "integrity": "sha512-+ukuB8RHD5BHPCUjQwuLP98z+VRfu+NkKQVBcLJGgp0/+w7y0IkaxLY/aKmrAS5ofCNEGqKL+AOVyRpX1aw+XA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.13.tgz", - "integrity": "sha512-q9H3WI3U3dfJ34tdv60zc8oTuWvSd5fOxytyAO9Pc5M82Hic3jjWaf2xBekUg07ubnMZpyfnv+MlD+EbUI3Llw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.13.tgz", - "integrity": "sha512-9aaZnnq2pLdTbAzTSzy/q8dr7Woy3aYIcQISmw1+Q2/xHJg5y80ZzbWSWKYca/hKonDMjIbGR6dp299I5J0aeA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.13.tgz", - "integrity": "sha512-n3QZmDewkHANcoHvtwvA6yJbmS4XJf0MBMmwLZoKDZ2dOnC9D/jHiXw7JOohEuzYcpLoL5tgbqmjxa3XNo9Oow==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.13.tgz", - "integrity": "sha512-wM+Nt4lc6YSJFthCx3W2dz0EwFNf++j0/2TQ0Js9QLJuIxUQAgukhNDVCDdq8TNcT0zuA399ALYbvj5lfIqG6g==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.13.tgz", - "integrity": "sha512-+X5/uW3s1L5gK7wAo0E27YaAoidJDo51dnfKSfU7gF3mlEUuWH8H1bAy5OTt2mU4eXtfsdUMEVXSwhDlLtQkuA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@swc/types": { - "version": "0.1.20", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.20.tgz", - "integrity": "sha512-/rlIpxwKrhz4BIplXf6nsEHtqlhzuNN34/k3kMAXH4/lvVoA3cdq+60aqVNnyvw2uITEaCi0WV3pxBe4dQqoXQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-config-prettier": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@types/eslint-config-prettier/-/eslint-config-prettier-6.11.3.tgz", - "integrity": "sha512-3wXCiM8croUnhg9LdtZUJQwNcQYGWxxdOWDjPe1ykCqJFPVpzAKfs/2dgSoCtAvdPeaponcWPI7mPcGGp9dkKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.15.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz", - "integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/react": { - "version": "19.0.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz", - "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", - "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", - "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/type-utils": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", - "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", - "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", - "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.28.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base-x": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", - "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001707", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", - "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-expand": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", - "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dotenv": "^16.4.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.128", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.128.tgz", - "integrity": "sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", - "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/config-helpers": "^0.2.0", - "@eslint/core": "^0.12.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.23.0", - "@eslint/plugin-kit": "^0.2.7", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", - "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", - "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/htmlnano": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.1.tgz", - "integrity": "sha512-kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^9.0.0", - "posthtml": "^0.16.5", - "timsort": "^0.3.0" - }, - "peerDependencies": { - "cssnano": "^7.0.0", - "postcss": "^8.3.11", - "purgecss": "^6.0.0", - "relateurl": "^0.2.7", - "srcset": "5.0.1", - "svgo": "^3.0.2", - "terser": "^5.10.0", - "uncss": "^0.17.3" - }, - "peerDependenciesMeta": { - "cssnano": { - "optional": true - }, - "postcss": { - "optional": true - }, - "purgecss": { - "optional": true - }, - "relateurl": { - "optional": true - }, - "srcset": { - "optional": true - }, - "svgo": { - "optional": true - }, - "terser": { - "optional": true - }, - "uncss": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz", - "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==", - "dev": true, - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-json": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/jwt-decode": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", - "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lightningcss": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.3.tgz", - "integrity": "sha512-GlOJwTIP6TMIlrTFsxTerwC0W6OpQpCGuX1ECRLBUVRh6fpJH3xTqjCjRgQHTb4ZXexH9rtHou1Lf03GKzmhhQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.29.3", - "lightningcss-darwin-x64": "1.29.3", - "lightningcss-freebsd-x64": "1.29.3", - "lightningcss-linux-arm-gnueabihf": "1.29.3", - "lightningcss-linux-arm64-gnu": "1.29.3", - "lightningcss-linux-arm64-musl": "1.29.3", - "lightningcss-linux-x64-gnu": "1.29.3", - "lightningcss-linux-x64-musl": "1.29.3", - "lightningcss-win32-arm64-msvc": "1.29.3", - "lightningcss-win32-x64-msvc": "1.29.3" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.3.tgz", - "integrity": "sha512-fb7raKO3pXtlNbQbiMeEu8RbBVHnpyqAoxTyTRMEWFQWmscGC2wZxoHzZ+YKAepUuKT9uIW5vL2QbFivTgprZg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.3.tgz", - "integrity": "sha512-KF2XZ4ZdmDGGtEYmx5wpzn6u8vg7AdBHaEOvDKu8GOs7xDL/vcU2vMKtTeNe1d4dogkDdi3B9zC77jkatWBwEQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.3.tgz", - "integrity": "sha512-VUWeVf+V1UM54jv9M4wen9vMlIAyT69Krl9XjI8SsRxz4tdNV/7QEPlW6JASev/pYdiynUCW0pwaFquDRYdxMw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.3.tgz", - "integrity": "sha512-UhgZ/XVNfXQVEJrMIWeK1Laj8KbhjbIz7F4znUk7G4zeGw7TRoJxhb66uWrEsonn1+O45w//0i0Fu0wIovYdYg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.3.tgz", - "integrity": "sha512-Pqau7jtgJNmQ/esugfmAT1aCFy/Gxc92FOxI+3n+LbMHBheBnk41xHDhc0HeYlx9G0xP5tK4t0Koy3QGGNqypw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.3.tgz", - "integrity": "sha512-dxakOk66pf7KLS7VRYFO7B8WOJLecE5OPL2YOk52eriFd/yeyxt2Km5H0BjLfElokIaR+qWi33gB8MQLrdAY3A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.3.tgz", - "integrity": "sha512-ySZTNCpbfbK8rqpKJeJR2S0g/8UqqV3QnzcuWvpI60LWxnFN91nxpSSwCbzfOXkzKfar9j5eOuOplf+klKtINg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.3.tgz", - "integrity": "sha512-3pVZhIzW09nzi10usAXfIGTTSTYQ141dk88vGFNCgawIzayiIzZQxEcxVtIkdvlEq2YuFsL9Wcj/h61JHHzuFQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.3.tgz", - "integrity": "sha512-VRnkAvtIkeWuoBJeGOTrZxsNp4HogXtcaaLm8agmbYtLDOhQdpgxW6NjZZjDXbvGF+eOehGulXZ3C1TiwHY4QQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.3.tgz", - "integrity": "sha512-IszwRPu2cPnDQsZpd7/EAr0x2W7jkaWqQ1SwCVIZ/tSbZVXPLt6k8s6FkcyBjViCzvB5CW0We0QbbP7zp2aBjQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss/node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lmdb": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz", - "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "msgpackr": "^1.9.5", - "node-addon-api": "^6.1.0", - "node-gyp-build-optional-packages": "5.1.1", - "ordered-binary": "^1.4.1", - "weak-lru-cache": "^1.2.2" - }, - "bin": { - "download-lmdb-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "2.8.5", - "@lmdb/lmdb-darwin-x64": "2.8.5", - "@lmdb/lmdb-linux-arm": "2.8.5", - "@lmdb/lmdb-linux-arm64": "2.8.5", - "@lmdb/lmdb-linux-x64": "2.8.5", - "@lmdb/lmdb-win32-x64": "2.8.5" - } - }, - "node_modules/lmdb/node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/msgpackr": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", - "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "msgpackr-extract": "^3.0.2" - } - }, - "node_modules/msgpackr-extract": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", - "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "node-gyp-build-optional-packages": "5.2.2" - }, - "bin": { - "download-msgpackr-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" - } - }, - "node_modules/msgpackr-extract/node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", - "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.1" - }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp-build-optional-packages": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", - "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.1" - }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, - "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ordered-binary": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", - "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", - "dev": true, - "license": "MIT" - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parcel": { - "version": "2.14.4", - "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.14.4.tgz", - "integrity": "sha512-XmnIurC4CPdQm9OFJMbjgvto5Jz2szZ5/p6EY4pAljU/SLPhtBzJ3+J6OyljGFdbVxEXx4dp+7Cvf7eaDZsEEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@parcel/config-default": "2.14.4", - "@parcel/core": "2.14.4", - "@parcel/diagnostic": "2.14.4", - "@parcel/events": "2.14.4", - "@parcel/feature-flags": "2.14.4", - "@parcel/fs": "2.14.4", - "@parcel/logger": "2.14.4", - "@parcel/package-manager": "2.14.4", - "@parcel/reporter-cli": "2.14.4", - "@parcel/reporter-dev-server": "2.14.4", - "@parcel/reporter-tracer": "2.14.4", - "@parcel/utils": "2.14.4", - "chalk": "^4.1.2", - "commander": "^12.1.0", - "get-port": "^4.2.0" - }, - "bin": { - "parcel": "lib/bin.js" - }, - "engines": { - "node": ">= 16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/posthtml": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", - "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "posthtml-parser": "^0.11.0", - "posthtml-render": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/posthtml-parser": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.12.1.tgz", - "integrity": "sha512-rYFmsDLfYm+4Ts2Oh4DCDSZPtdC1BLnRXAobypVzX9alj28KGl65dIFtgDY9zB57D0TC4Qxqrawuq/2et1P0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "htmlparser2": "^9.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/posthtml-render": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", - "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-json": "^2.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/posthtml/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/posthtml/node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/posthtml/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/posthtml/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/posthtml/node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/posthtml/node_modules/htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" - } - }, - "node_modules/posthtml/node_modules/posthtml-parser": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", - "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "htmlparser2": "^7.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-refresh": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.16.0.tgz", - "integrity": "sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.2.tgz", - "integrity": "sha512-9Rw8r199klMnlGZ8VAsV/I8WrIF6IyJ90JQUdboupx1cdkgYqwnrYjH+I/nY/7cA1X5zia4mDJqH36npP7sxGQ==", - "license": "MIT", - "dependencies": { - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-router-dom": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.2.tgz", - "integrity": "sha512-yk1XW8Fj7gK7flpYBXF3yzd2NbX6P7Kxjvs2b5nu1M04rb5pg/Zc4fGdBNTeT4eDYL2bvzWNyKaIMJX/RKHTTg==", - "license": "MIT", - "dependencies": { - "react-router": "7.5.2" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sass": { - "version": "1.86.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.0.tgz", - "integrity": "sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" - } - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/srcset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz", - "integrity": "sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", - "dev": true, - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/weak-lru-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", - "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.24.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", - "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/webui/package.json b/webui/package.json deleted file mode 100644 index 53f8cf78..00000000 --- a/webui/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "dhfs-webui", - "version": "0.0.1", - "private": true, - "source": "src/index.html", - "scripts": { - "start": "parcel --public-url /webui", - "build": "parcel build --public-url /webui" - }, - "browserslist": "> 0.5%, last 2 versions, not dead", - "dependencies": { - "jwt-decode": "^4.0.0", - "node-forge": "^1.3.1", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "react-router": "^7.5.2", - "react-router-dom": "^7.5.2", - "zod": "^3.24.2" - }, - "@parcel/resolver-default": { - "packageExports": true - }, - "devDependencies": { - "@parcel/transformer-sass": "^2.14.4", - "@parcel/transformer-typescript-tsc": "^2.14.4", - "@parcel/validator-typescript": "^2.14.4", - "@types/eslint": "^9.6.1", - "@types/eslint-config-prettier": "^6.11.3", - "@types/node-forge": "^1.3.11", - "@types/react": "^19.0.12", - "@types/react-dom": "^19.0.4", - "@typescript-eslint/eslint-plugin": "^8.28.0", - "@typescript-eslint/parser": "^8.28.0", - "eslint": "^9", - "eslint-config-prettier": "^10.1.1", - "eslint-plugin-react": "^7.37.4", - "parcel": "^2.14.4", - "prettier": "^3.5.3", - "process": "^0.11.10", - "typescript": "^5.8.2" - } -} diff --git a/webui/src/App.scss b/webui/src/App.scss deleted file mode 100644 index 7fa534a8..00000000 --- a/webui/src/App.scss +++ /dev/null @@ -1,5 +0,0 @@ -#appRoot { - font-family: sans-serif; - max-width: 50rem; - margin: 0 auto; -} \ No newline at end of file diff --git a/webui/src/App.tsx b/webui/src/App.tsx deleted file mode 100644 index c778eab1..00000000 --- a/webui/src/App.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from "react"; -import { - createBrowserRouter, - redirect, - RouterProvider, -} from "react-router-dom"; - -import "./App.scss"; -import { Home } from "./Home"; -import { PeerState } from "./PeerState"; -import { peerStateAction, peerStateLoader } from "./PeerStatePlumbing"; -import { ErrorGate } from "./ErrorGate"; - -const router = createBrowserRouter( - [ - { - path: "/", - loader: async () => { - return redirect("/home"); - // if (getToken() == null) { - // return redirect("/login"); - // } else { - // return redirect("/home"); - // } - }, - errorElement: , - }, - { - path: "/home", - element: , - children: [ - { - path: "peers", - element: , - loader: peerStateLoader, - action: peerStateAction, - }, - ], - errorElement: , - }, - ], - { basename: "/webui" }, -); - -export function App() { - return ( - -
    - -
    -
    - ); -} diff --git a/webui/src/ErrorGate.tsx b/webui/src/ErrorGate.tsx deleted file mode 100644 index 61d003e4..00000000 --- a/webui/src/ErrorGate.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { useRouteError } from "react-router-dom"; - -export function ErrorGate() { - const error = useRouteError(); - console.error(error); - return
    {JSON.stringify(error)}
    ; -} diff --git a/webui/src/Home.scss b/webui/src/Home.scss deleted file mode 100644 index 47bb7be2..00000000 --- a/webui/src/Home.scss +++ /dev/null @@ -1,73 +0,0 @@ -@import "./common"; - -#Home { - display: flex; - flex-direction: row; - min-height: 100vh; - flex: auto; - - #HomeSidebar { - min-width: 15rem; - max-width: 15rem; - min-height: 100vh; - border-right: solid gray 1px; - border-bottom-right-radius: 7px; - padding: 2rem 1rem; - position: fixed; - top: 0; - box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.2), 2px 0px 0px 0px rgba(0, 0, 0, 0.1), 3px 0px 0px 0px rgba(0, 0, 0, 0.05); - - #SidebarUserInfo { - display: flex; - flex-direction: column; - - button { - background: none; - border: none; - padding: 0; - text-decoration: none; - cursor: pointer; - color: inherit; - font-size: inherit; - } - } - - * { - margin: 0.5rem 0; - } - - #SidebarNav { - a { - color: black; - text-decoration: none; - - min-width: 100%; - height: 2rem; - - display: flex; - flex-direction: column; - justify-content: center; - text-align: left; - padding-left: 1rem; - font-size: 1.15rem; - - @include border-shadow; - - &.active { - background-color: #EFEFEF; - } - - &.pending { - background-color: #EEEEEE; - } - - } - - } - } - - #HomeContent { - width: 100%; - margin: 0 0 0 15rem; - } -} \ No newline at end of file diff --git a/webui/src/Home.tsx b/webui/src/Home.tsx deleted file mode 100644 index b45fa244..00000000 --- a/webui/src/Home.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { NavLink, Outlet } from "react-router-dom"; - -import "./Home.scss"; - -export function Home() { - const activePendingClassName = ({ - isActive, - isPending, - }: { - isActive: boolean; - isPending: boolean; - }) => (isActive ? "active" : isPending ? "pending" : ""); - - return ( -
    -
    -
    DHFS
    -
    - - Peers - {" "} -
    -
    -
    - -
    -
    - ); -} diff --git a/webui/src/PeerAvailableCard.scss b/webui/src/PeerAvailableCard.scss deleted file mode 100644 index 101d187e..00000000 --- a/webui/src/PeerAvailableCard.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "./PeerCardCommon"; - -.peerAvailableCard { - @extend .peerCard; -} diff --git a/webui/src/PeerAvailableCard.tsx b/webui/src/PeerAvailableCard.tsx deleted file mode 100644 index c6cf7772..00000000 --- a/webui/src/PeerAvailableCard.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { TAvailablePeerInfoTo } from "./api/dto"; -import { useFetcher } from "react-router-dom"; - -import "./PeerAvailableCard.scss"; - -interface TAvailablePeerInfoToWithHash extends TAvailablePeerInfoTo { - certHash: string; -} - -export interface TPeerAvailableCardProps { - peerInfo: TAvailablePeerInfoToWithHash; -} - -export function PeerAvailableCard({ peerInfo }: TPeerAvailableCardProps) { - const fetcher = useFetcher(); - return ( -
    -
    -
    - UUID: - {peerInfo.uuid} -
    -
    - Certificate: {peerInfo.certHash} -
    { -
    - Address: {peerInfo.knownAddress} -
    -
    - - - - - - -
    - ); -} diff --git a/webui/src/PeerCardCommon.scss b/webui/src/PeerCardCommon.scss deleted file mode 100644 index f0d5ea24..00000000 --- a/webui/src/PeerCardCommon.scss +++ /dev/null @@ -1,17 +0,0 @@ -@import "./common"; - -.peerCard { - @include border-shadow; - - > * { - padding: 0.5rem; - } - - @include card-with-actions; - - .peerInfo { - flex-grow: 1; - } - - margin-bottom: 0.5rem; -} \ No newline at end of file diff --git a/webui/src/PeerKnownCard.scss b/webui/src/PeerKnownCard.scss deleted file mode 100644 index 784d3ffe..00000000 --- a/webui/src/PeerKnownCard.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "./PeerCardCommon"; - -.peerKnownCard { - @extend .peerCard; -} diff --git a/webui/src/PeerKnownCard.tsx b/webui/src/PeerKnownCard.tsx deleted file mode 100644 index 44636510..00000000 --- a/webui/src/PeerKnownCard.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { TKnownPeerInfoTo } from "./api/dto"; - -import "./PeerKnownCard.scss"; -import { useFetcher, useLoaderData } from "react-router-dom"; -import { LoaderToType } from "./commonPlumbing"; -import { peerStateLoader } from "./PeerStatePlumbing"; - -interface TKnownPeerInfoToWithHash extends TKnownPeerInfoTo { - certHash: string; -} - -export interface TPeerKnownCardProps { - peerInfo: TKnownPeerInfoToWithHash; -} - -export function PeerKnownCard({ peerInfo }: TPeerKnownCardProps) { - const fetcher = useFetcher(); - const loaderData = useLoaderData() as LoaderToType; - - const addr = loaderData.peerAddresses.find( - (item) => item.uuid === peerInfo.uuid, - ); - - return ( -
    -
    -
    - UUID: - {peerInfo.uuid} -
    -
    - Certificate: {peerInfo.certHash} -
    -
    - - Manual address: - - - - - -
    -
    - - {peerInfo.knownAddress - ? "connected: " + peerInfo.knownAddress - : "not connected"} - -
    -
    - - - - - -
    - ); -} diff --git a/webui/src/PeerState.scss b/webui/src/PeerState.scss deleted file mode 100644 index a31df279..00000000 --- a/webui/src/PeerState.scss +++ /dev/null @@ -1,18 +0,0 @@ -@import "./common"; - -#PeerState { - @include home-view; - - display: flex; - flex-direction: column; - - > * { - margin-top: 1rem; - } - - .selfInfo { - > * { - margin-top: 0.2rem; - } - } -} \ No newline at end of file diff --git a/webui/src/PeerState.tsx b/webui/src/PeerState.tsx deleted file mode 100644 index 48c6120b..00000000 --- a/webui/src/PeerState.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import "./PeerState.scss"; -import { useLoaderData } from "react-router-dom"; -import { LoaderToType } from "./commonPlumbing"; -import { peerStateLoader } from "./PeerStatePlumbing"; -import { PeerAvailableCard } from "./PeerAvailableCard"; -import { PeerKnownCard } from "./PeerKnownCard"; - -export function PeerState() { - const loaderData = useLoaderData() as LoaderToType; - - const knownPeers = loaderData.knownPeers - ?.filter((p) => p.uuid !== loaderData.selfInfo.selfUuid) - ?.map((p) => ); - - const availablePeers = loaderData.availablePeers.map((p) => ( - - )); - - return ( -
    -
    -
    This node:
    -
    UUID: {loaderData.selfInfo.selfUuid}
    -
    Certificate: {loaderData.selfInfo.certHash}
    -
    -
    -
    Known peers
    -
    {knownPeers}
    -
    -
    -
    Available peers
    -
    {availablePeers}
    -
    -
    - ); -} diff --git a/webui/src/PeerStatePlumbing.ts b/webui/src/PeerStatePlumbing.ts deleted file mode 100644 index 4e0e8521..00000000 --- a/webui/src/PeerStatePlumbing.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { - getAvailablePeers, - getKnownPeers, - getPeerAddresses, - getSelfInfo, - putKnownPeer, - putPeerAddress, - removeKnownPeer, -} from "./api/PeerState"; -import { ActionFunctionArgs } from "react-router-dom"; -import { hashCert } from "./hash"; - -export async function peerStateLoader() { - const selfInfoApi = await getSelfInfo(); - const selfInfo = { - ...selfInfoApi, - certHash: await hashCert(selfInfoApi.cert), - }; - const availablePeersApi = await getAvailablePeers(); - const availablePeers = await Promise.all( - availablePeersApi.map(async (peerInfo) => { - return { - ...peerInfo, - certHash: await hashCert(peerInfo.cert), - }; - }), - ); - const knownPeersApi = await getKnownPeers(); - const knownPeers = await Promise.all( - knownPeersApi.map(async (peerInfo) => { - return { - ...peerInfo, - certHash: await hashCert(peerInfo.cert), - }; - }), - ); - const peerAddresses = await getPeerAddresses(); - return { - selfInfo, - availablePeers, - knownPeers, - peerAddresses, - }; -} - -export type PeerStateActionType = - | "add_peer" - | "remove_peer" - | "save_addr" - | unknown; - -export async function peerStateAction({ request }: ActionFunctionArgs) { - const formData = await request.formData(); - const intent = formData.get("intent") as PeerStateActionType; - if (intent === "add_peer") { - return await putKnownPeer( - formData.get("uuid") as string, - formData.get("cert") as string, - ); - } else if (intent === "remove_peer") { - return await removeKnownPeer(formData.get("uuid") as string); - } else if (intent === "save_addr") { - return await putPeerAddress( - formData.get("uuid") as string, - formData.get("address") as string, - ); - } else { - throw new Error("Malformed action: " + JSON.stringify(request)); - } -} diff --git a/webui/src/api/PeerState.ts b/webui/src/api/PeerState.ts deleted file mode 100644 index 1ccaf0fc..00000000 --- a/webui/src/api/PeerState.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { fetchJSON, fetchJSON_throws } from "./utils"; -import { - AvailablePeerInfoToResp, - KnownPeersToResp, - NoContentToResp, - PeerAddressInfoToResp, - SelfInfoToResp, - TAvailablePeerInfoArrTo, - TAvailablePeerInfoToResp, - TKnownPeersTo, - TKnownPeersToResp, - TNoContentToResp, - TPeerAddressInfoArrTo, - TPeerAddressInfoToResp, - TSelfInfoTo, - TSelfInfoToResp, -} from "./dto"; - -export async function getSelfInfo(): Promise { - return fetchJSON_throws( - "/peer-info/self", - "GET", - SelfInfoToResp, - ); -} - -export async function getAvailablePeers(): Promise { - return fetchJSON_throws< - TAvailablePeerInfoToResp, - typeof AvailablePeerInfoToResp - >("/peers-manage/available-peers", "GET", AvailablePeerInfoToResp); -} - -export async function getKnownPeers(): Promise { - return fetchJSON_throws( - "/peers-manage/known-peers", - "GET", - KnownPeersToResp, - ); -} - -export async function putKnownPeer( - uuid: string, - cert: string, -): Promise { - return fetchJSON( - `/peers-manage/known-peers/${uuid}`, - "PUT", - NoContentToResp, - { - cert, - }, - ); -} - -export async function removeKnownPeer(uuid: string): Promise { - return fetchJSON( - `/peers-manage/known-peers/${uuid}`, - "DELETE", - NoContentToResp, - {}, - ); -} - -export async function getPeerAddresses(): Promise { - return fetchJSON_throws< - TPeerAddressInfoToResp, - typeof PeerAddressInfoToResp - >("/peers-addr-manage", "GET", PeerAddressInfoToResp); -} - -export async function putPeerAddress( - uuid: string, - address: string, -): Promise { - return fetchJSON( - `/peers-addr-manage/${uuid}`, - "PUT", - NoContentToResp, - address, - ); -} - -export async function removePeerAddress( - uuid: string, -): Promise { - return fetchJSON(`/peers-addr-manage/${uuid}`, "DELETE", NoContentToResp); -} - -export async function getPeerAddress( - uuid: string, -): Promise { - return fetchJSON_throws< - TPeerAddressInfoToResp, - typeof PeerAddressInfoToResp - >(`/peers-addr-manage/${uuid}`, "GET", PeerAddressInfoToResp); -} diff --git a/webui/src/api/dto.ts b/webui/src/api/dto.ts deleted file mode 100644 index 39c1d81b..00000000 --- a/webui/src/api/dto.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { z } from "zod"; - -export const ErrorTo = z.object({ - errors: z.array(z.string()), - code: z.number(), -}); -export type TErrorTo = z.infer; - -export function isError(value: unknown): value is TErrorTo { - return ErrorTo.safeParse(value).success; -} - -function CreateAPIResponse(obj: T) { - return z.union([ErrorTo, obj]); -} - -export const NoContentTo = z.object({}); -export type TNoContentTo = z.infer; - -export const NoContentToResp = CreateAPIResponse(NoContentTo); -export type TNoContentToResp = z.infer; - -// TokenRequest -export const TokenRequestTo = z.object({ - username: z.string(), - password: z.string(), -}); -export type TTokenRequestTo = z.infer; - -// Token -export const TokenTo = z.object({ - token: z.string(), -}); -export type TTokenTo = z.infer; - -export const TokenToResp = CreateAPIResponse(TokenTo); -export type TTokenToResp = z.infer; - -// SelfInfo - -export const SelfInfoTo = z.object({ - selfUuid: z.string(), - cert: z.string(), -}); -export type TSelfInfoTo = z.infer; - -export const SelfInfoToResp = CreateAPIResponse(SelfInfoTo); -export type TSelfInfoToResp = z.infer; - -// PeerInfo - -export const PeerInfoTo = z.object({ - uuid: z.string(), - knownAddress: z.string().optional(), - cert: z.string(), -}); -export type TPeerInfoTo = z.infer; - -// AvailablePeerInfo -export const AvailablePeerInfoTo = PeerInfoTo; -export type TAvailablePeerInfoTo = z.infer; - -export const AvailablePeerInfoArrTo = z.array(AvailablePeerInfoTo); -export type TAvailablePeerInfoArrTo = z.infer; - -export const AvailablePeerInfoToResp = CreateAPIResponse( - AvailablePeerInfoArrTo, -); -export type TAvailablePeerInfoToResp = z.infer; - -// KnownPeerInfo -export const KnownPeerInfoTo = PeerInfoTo; -export type TKnownPeerInfoTo = z.infer; - -export const KnownPeerInfoArrTo = z.array(KnownPeerInfoTo); -export type TKnownPeerInfoArrTo = z.infer; - -export const KnownPeersTo = KnownPeerInfoArrTo; -export type TKnownPeersTo = z.infer; - -export const KnownPeersToResp = CreateAPIResponse(KnownPeersTo); -export type TKnownPeersToResp = z.infer; - -// PeerAddressInfo -export const PeerAddressInfoTo = z.object({ - uuid: z.string(), - address: z.string(), -}); -export type TPeerAddressInfoTo = z.infer; - -export const PeerAddressInfoArrTo = z.array(PeerAddressInfoTo); -export type TPeerAddressInfoArrTo = z.infer; - -export const PeerAddressInfoToResp = CreateAPIResponse(PeerAddressInfoArrTo); -export type TPeerAddressInfoToResp = z.infer; - -// KnownPeerPut -export const KnownPeerPutTo = z.object({ cert: z.string() }); -export type TKnownPeerPutTo = z.infer; - -// KnownPeerDelete -export const KnownPeerDeleteTo = NoContentTo; -export type TKnownPeerDeleteTo = z.infer; diff --git a/webui/src/api/utils.ts b/webui/src/api/utils.ts deleted file mode 100644 index 03cbd50e..00000000 --- a/webui/src/api/utils.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { jwtDecode } from "jwt-decode"; -import { isError, TErrorTo } from "./dto"; - -declare const process: { - env: { - NODE_ENV: string; - }; -}; - -export const apiRoot: string = - process.env.NODE_ENV == "production" - ? "" - : "http://localhost:1234/apiproxy"; - -let token: string | null; - -export function setToken(_token: string): void { - token = _token; - localStorage.setItem("jwt_token", token); -} - -export function getToken(): string | null { - if (!token && localStorage.getItem("jwt_token") != null) { - token = localStorage.getItem("jwt_token"); - } - return token; -} - -export function getTokenUserUuid(): string | null { - const token = getToken(); - if (!token) return null; - return jwtDecode(token).sub ?? null; -} - -export function deleteToken(): void { - token = null; - localStorage.removeItem("jwt_token"); -} - -export async function fetchJSON T }>( - path: string, - method: string, - parser: P, - body?: string | Record | File, - headers?: Record, -): Promise { - const reqBody = () => { - if (typeof body === "string" || body instanceof String) - return body.toString(); - return body instanceof File - ? (() => { - const fd = new FormData(); - fd.append("file", body); - return fd; - })() - : JSON.stringify(body); - }; - - const reqHeaders = () => - body instanceof File - ? headers - : { ...headers, "Content-Type": "application/json" }; - - const response = await fetch(apiRoot + path, { - method, - headers: reqHeaders(), - body: reqBody(), - }); - - const json = await response.json().catch(() => { - return {}; - }); - const parsed = parser.parse(json); - if (isError(parsed)) { - alert(parsed.errors.join(", ")); - } - return parsed; -} - -export async function fetchJSONAuth T }>( - path: string, - method: string, - parser: P, - body?: string | Record | File, - headers?: Record, -): Promise { - if (token) { - return fetchJSON(path, method, parser, body, { - ...headers, - Authorization: `Bearer ${token}`, - }); - } else { - throw new Error("Not logged in"); - } -} - -function errorCheck(fn: (...args: A) => R) { - return async (...args: A): Promise, TErrorTo>> => { - const ret = await fn(...args); - if (isError(ret)) { - throw ret; - } else { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - return ret; - } - }; -} - -export const fetchJSON_throws = errorCheck(fetchJSON); -export const fetchJSONAuth_throws = errorCheck(fetchJSONAuth); diff --git a/webui/src/common.scss b/webui/src/common.scss deleted file mode 100644 index 272babea..00000000 --- a/webui/src/common.scss +++ /dev/null @@ -1,50 +0,0 @@ -@mixin border-shadow { - border-radius: 7px; - border: 1px solid #E0E0E0; - box-shadow: 1px 1px 0px 0px rgba(0, 0, 0, 0.05), 2px 2px 0px 0px rgba(0, 0, 0, 0.025); -} - -@mixin home-view { - padding: 1rem; -} - -@mixin card-with-actions { - - display: flex; - flex-direction: row; - - .actions { - display: flex; - align-self: stretch; - - border-left: 1px solid #e4e4e4; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; - - padding: 0; - - > * { - margin-left: 0.5rem; - } - - > *:first-child { - margin-left: 0; - } - - button { - background: none; - border: none; - text-decoration: none; - cursor: pointer; - font-family: inherit; - color: inherit; - font-size: inherit; - - padding: 0.5rem; - - width: 100%; - height: 100%; - } - } - -} \ No newline at end of file diff --git a/webui/src/commonPlumbing.ts b/webui/src/commonPlumbing.ts deleted file mode 100644 index 1fa3e3c5..00000000 --- a/webui/src/commonPlumbing.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type LoaderToType unknown> = Awaited< - ReturnType ->; diff --git a/webui/src/hash.ts b/webui/src/hash.ts deleted file mode 100644 index 0a0eb049..00000000 --- a/webui/src/hash.ts +++ /dev/null @@ -1,7 +0,0 @@ -import * as forge from "node-forge"; - -export async function hashCert(cert: string) { - const md = forge.md.sha1.create(); - md.update(cert); - return md.digest().toHex(); -} diff --git a/webui/src/index.html b/webui/src/index.html deleted file mode 100644 index fbf46769..00000000 --- a/webui/src/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - DHFS - - -
    - - - \ No newline at end of file diff --git a/webui/src/index.scss b/webui/src/index.scss deleted file mode 100644 index 32fb1669..00000000 --- a/webui/src/index.scss +++ /dev/null @@ -1,13 +0,0 @@ -*, -*::before, -*::after { - box-sizing: border-box; -} - -* { - margin: 0; -} - -body { - min-height: 100vh; -} \ No newline at end of file diff --git a/webui/src/index.tsx b/webui/src/index.tsx deleted file mode 100644 index 02130012..00000000 --- a/webui/src/index.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { createRoot } from "react-dom/client"; -import { App } from "./App"; - -import "./index.scss"; - -const container = document.getElementById("app")!; -const root = createRoot(container); -root.render(); diff --git a/webui/tsconfig.json b/webui/tsconfig.json deleted file mode 100644 index eb977ffb..00000000 --- a/webui/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "lib": [ - "ES2023", - "dom" - ], - "jsx": "react-jsx", - "target": "es2015", - "moduleResolution": "bundler", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "sourceMap": true, - "noImplicitAny": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "isolatedModules": true - }, - "include": [ - "./src/**/*.ts", - "./src/**/*.tsx" - ] -}