]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/messageCache/CachedMessage.java
c1f310e848cc61d2bc7996185e032870afe4f858
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / storage / messageCache / CachedMessage.java
1 package org.asamk.signal.manager.storage.messageCache;
2
3 import org.asamk.signal.manager.util.MessageCacheUtils;
4 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory;
6 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
7
8 import java.io.File;
9 import java.io.IOException;
10 import java.nio.file.Files;
11
12 public final class CachedMessage {
13
14 private final static Logger logger = LoggerFactory.getLogger(CachedMessage.class);
15
16 private final File file;
17
18 CachedMessage(final File file) {
19 this.file = file;
20 }
21
22 File getFile() {
23 return file;
24 }
25
26 public SignalServiceEnvelope loadEnvelope() {
27 try {
28 return MessageCacheUtils.loadEnvelope(file);
29 } catch (Exception e) {
30 logger.error("Failed to load cached message envelope “{}”: {}", file, e.getMessage(), e);
31 return null;
32 }
33 }
34
35 public void delete() {
36 try {
37 Files.delete(file.toPath());
38 } catch (IOException e) {
39 logger.warn("Failed to delete cached message file “{}”, ignoring: {}", file, e.getMessage());
40 }
41 // Delete parent directory, if empty
42 try {
43 Files.delete(file.toPath().getParent());
44 } catch (IOException ignored) {
45 }
46 }
47 }