+ public Optional<SignalStorageManifest> getStorageManifest() {
+ final var storageManifestFile = getStorageManifestFile(dataPath, accountPath);
+ if (!storageManifestFile.exists()) {
+ return Optional.empty();
+ }
+ try (var inputStream = new FileInputStream(storageManifestFile)) {
+ return Optional.of(SignalStorageManifest.deserialize(inputStream.readAllBytes()));
+ } catch (IOException e) {
+ logger.warn("Failed to read local storage manifest.", e);
+ return Optional.empty();
+ }
+ }
+
+ public void setStorageManifest(SignalStorageManifest manifest) {
+ final var manifestBytes = manifest.serialize();
+
+ final var storageManifestFile = getStorageManifestFile(dataPath, accountPath);
+ try (var outputStream = new FileOutputStream(storageManifestFile)) {
+ outputStream.write(manifestBytes);
+ } catch (IOException e) {
+ logger.error("Failed to store local storage manifest.", e);
+ }
+ }
+